Hallo Kollegen, folgendes Problem versuche ich gerade mit günstigsten Mitteln zu lösen, da es für die freiwillige Feuerwehr gedacht ist. Zur Verfügung steht mir ein Relaiskontakt welcher schließt wenn ein Alarm ausgelöst wird. Ich habe eine Software die auf der RS232 Schnittstelle "schüffelt" und auf eine 8Bit Nachricht mit einer "1" wartet (00000001). Sobald diese rein kommt, wird der Alarm per Netzwerk an die Kollegen weiter geleitet. Demzufolge besteht jetzt die Herausforderung darin, aus dem Relaiskontakt eine sinnvolle RS232 Botschaft zu generieren. Wie bereits geschrieben, ist das finanzielle Budget beschränkt. Außerdem bin ich in der Programmierung von µC nicht besonders fit. Hat jemand eine günstige Idee, wie ich das Problem lösen kann? Vielen Dank schon mal im voraus! Gruß Tommy
Tommy schrieb: > Hat jemand eine günstige Idee, wie ich das Problem lösen kann? Das kann jedes billigste uC Board mit RS232 (Arniduo :), STM32 DISCOS, und tausend andere). RS232 initilisieren, Port abfragen, Text senden. Überlege aber bitte auch, ob das Thema wirklich so trivial ist: Was, wenn auf dem uC durch EMV das Bit am Port tatäschlich mal 1 wird obwohl das Relais nicht geschaltet hat, was wenn die textmessage gestört wird, der Text 0x01 gesendet wird aber 0x00 beim Emfpänger ankommt, ...). Hier sind Sicherungsmaßnahmen gefragt (saubere Entprellung am Eingang, HW und SW, Doppelte Übertragungen, Parity oder Checksumme, ...). Mag sein dass das nicht sicherheitrelevant ist, ungewollte Einsätze oder nicht gerufene Kollegen danken es Dir. rgds
Vielen Dank für deine Antwort :) Darüber habe ich durchaus auch schon nachgedacht, eine kleine Vorbeschaltung wäre nicht das Problem um das Relais zu entprellen. Diese Software ist nur dafür gedacht, dass die Kollegen angeben können in welcher Zeit sie da sein können (5min, 10min, usw.). Der eigentliche Alarm kommt über den extra Piepser. Zu deiner Lösung: Das habe ich mir bereits gedacht, dass man das Problem nur damit lösen kann. Es fehlen dabei eben nur fundierte Kenntnisse in der µC Programmierung. Ich denke das ist mit einem erheblichen Zeitaufwand verbunden eh ich oder mein Kollege soetwas zustande gebracht haben. :) Daher würde ich meine Frage noch um den Punkt "schnell zu realisieren" erweitern. Eine Idee die wir noch hatten war, einen digitalen Input der RS232 Schnittstelle zu nutzen (RI, DTS, etc.), ein Script am Rechner schreiben welche auf einem virtuellen COM Port dann die Nachricht an die Software weiter leitet. Sicher keine elegante Lösung, aber wäre noch ein Lösungsansatz. Das Programmierproblem besteht natürlich weiterhin :) Gruß Tommy
Tommy schrieb: > Sicher keine elegante Lösung, aber wäre noch ein > Lösungsansatz. Sicher. Ein Ansatz. Der Rechner muss die ganze Zeit laufen, die SW-muss programmiert werden. Andere Ansätze: CPDL mit nachfolgendem RS232 Treiber, EEPROM mit Zähler als Statemachine, NE555 als Oszillator mit genau der Baudrate der startet wenn das Signal 1 wird und dann 0x55 oder 0xaa permanent sendet (hat dann aber kein CR/LF), ... Ideen gibt es viele. Du sprichst aber nicht davon welche Umgebung Du hast und was Du realisieren kannst. rgds
Wenn das Relais länger geschaltet ist als ein paar ms, evtl. dauerhaft während des Alarms und die Sache wirklich nicht sicherheitskritisch, könnte man den Controller auch direkt vom Relais schalten lassen und er sendet einfach immer die gleiche Botschaft solange er an ist. Dann bräuchte man nur noch eine Batterie oder ein Netzteil.
Tommy schrieb: > Hat jemand eine günstige Idee, wie ich das Problem lösen kann? Das Bitmuster, das erzeugt werden muss, ist zwar einfach, aber trotzdem recht aufwändig zu erzeugen, wenn man es dirkret aufbauen möchte:
1 | +10V _ _____________ |
2 | | | | | |
3 | | | | | |
4 | -10V ___________| |_| |______ |
5 | S 0 1 2 3 4 5 6 7 S |
6 | t t |
7 | a o |
8 | r p |
9 | t |
Tommy schrieb: > Ich habe eine Software die auf der RS232 Schnittstelle "schüffelt" und > auf eine 8Bit Nachricht mit einer "1" wartet (00000001). Könntest du die Software nach einer 80hex = 10000000bin oder nach F0hex schnüffeln lassen? Dann wäre das Bitmuster viel einfacher und ein einziges Monoflop reicht aus:
1 | 80hex: |
2 | |
3 | +10V _______________ |
4 | | | |
5 | | | |
6 | -10V ___________| |________ |
7 | S 0 1 2 3 4 5 6 7 S |
8 | t t |
9 | a o |
10 | r p |
11 | t |
12 | F0hex: |
13 | +10V _________ |
14 | | | |
15 | | | |
16 | -10V ___________| |______________ |
6a66 schrieb: > Andere Ansätze: CPDL Ich glaube, dass es für einen Anfänger einfacher ist, einen kleinen uC zum Laufen zu bekommen, als einen Zustandsautomaten auf einem CPLD... ;-)
:
Bearbeitet durch Moderator
Tommy schrieb: > ... welche auf einem virtuellen COM Port .... Also war die vorherige Festlegung auf RS232C nur eine Nebelkerze, welche die Sicht auf das Problem verstellen wollte.... Ein Arduino Nano kann das geschaltet Relais erkennen. Käbelchen werden dazu nötig sein. Der Nano verhält sich über USB so am PC als hätte er RS232C implementiert. Es ist kein Problem, das Relais in Software zu entprellen. Es ist kein Problem, für den Nano, den String 000001 an den PC zu senden. Kosten des Projektes: unter 4 Euro Zeitaufwand, incl. erwerben rudimentärer Programmierkenntnisse, ca 1 Monat
Captain Albern schrieb: > einfach immer die gleiche Botschaft solange er an ist Das ist noch ein Punkt den ich nicht erwähnt habe. 1. zu dieser Funktion in der Software gibt es keine Dokumentation und den Entwickler erreichen wir nicht. Daher sind unsere Informationen dahingehend etwas begrenzt. Was wir bisher wissen ist, wenn wir mit einem anderen Rechner eine 00000001 schicken, reagiert die SW mit einem Alarm. Wenn wir aber 11111111 schicken, schickt es 8 Alarme raus :) Also es darf defintiv nur eine 1 sein. 6a66 schrieb: > Du sprichst aber nicht davon welche Umgebung Du > hast und was Du realisieren kannst. Ich bin zwar Elektroniker, aber die Schaltungsentwicklung ist bei mir (leider) schon eine Weile her, wodurch ich auf dem Gebiet nicht mehr ganz fit bin. Zur Verfügung steht auf jeden Fall ein PC/Server auf dem die Alarmierungs-Software 24/7 läuft. Auf Arbeit stehen mir auch Lötkolben, etc. zur Verfügung, aber bei mir fehlt es an Zeit mich ausgiebig mit dem Thema zu beschäftigen. Daher war meine Hoffung, dass eventuell jemand von Euch ein ähnliches Problem hatte/eine kaufbare Lösung kennt oder dergleichen. Vielen Dank erstmal für Eure Unterstützung! PS: Unser Programmierer auf Arbeit hat mir gerade eine Lösung angeboten die er auch zügig umsetzen könnte. COM1 mittels kleiner Software das RI Signal überwachen. Wenn RI Signal kommt, auf COM1 die Botschaft 000000001 raussenden. Die COM1 dann Hardwaremäßig mit gekreuztem Kabel mit COM2 Verbinden und in der Alarmierungssoftware COM2 überwachen. Könnte funktionieren :)
Lothar M. schrieb: > Könntest du die Software nach einer 80hex = 10000000bin oder nach F0hex > schnüffeln lassen? Leider haben wir keinerlei Einstellungsmöglichkeiten in der Software. Das einzige was wir auswählen können ist den COM Port. Als Kommentar steht in der Software "zum Anschluss einen binären Relais (sendet 1'en wenn Alarm ausgelöst wird)." Für den Kommentar hat der Programmierer eigentlich eine Ohrfeige verdient :) durch probieren haben wir schlussendlich herausgefunden, das er nur auf pro Alarm auf 00000001 reagiert.
Lothar M. schrieb: >> Andere Ansätze: CPDL > Ich glaube, dass es für einen Anfänger einfacher ist, einen kleinen uC > zum Laufen zu bekommen, als einen Zustandsautomaten auf einem CPLD... > ;-) Hallo Lothar, RICHTIG. Tommy schrieb: > Ich bin zwar Elektroniker, aber die Schaltungsentwicklung ist bei mir > (leider) schon eine Weile her, wodurch ich auf dem Gebiet nicht mehr > ganz fit bin. > Zur Verfügung steht auf jeden Fall ein PC/Server auf dem die > Alarmierungs-Software 24/7 läuft. > Auf Arbeit stehen mir auch Lötkolben, etc. zur Verfügung, aber bei mir > fehlt es an Zeit mich ausgiebig mit dem Thema zu beschäftigen. Daher war > meine Hoffung, dass eventuell jemand von Euch ein ähnliches Problem > hatte/eine kaufbare Lösung kennt oder dergleichen. Aaaaaaaaarrrgh :( Wenig Schaltungskenntnisse, keine Programmmierkenntnisse. Keine Zeit. Das Thema hatten wir gerade in eiem anderen Thread. Tommy schrieb: > PS: Unser Programmierer auf Arbeit hat mir gerade eine Lösung angeboten > die er auch zügig umsetzen könnte. > COM1 mittels kleiner Software das RI Signal überwachen. Wenn RI Signal > kommt, auf COM1 die Botschaft 000000001 raussenden. Die COM1 dann > Hardwaremäßig mit gekreuztem Kabel mit COM2 Verbinden und in der > Alarmierungssoftware COM2 überwachen. Machen. rgds
Tommy schrieb: > Demzufolge besteht jetzt die Herausforderung darin, aus dem > Relaiskontakt eine sinnvolle RS232 Botschaft zu generieren. Das gibt es fertig, nennt sich Störmelder, z.B. https://www.welotec.com/de/sms-email-stoermelder-mt-021 Georg
Sonst: Habt ihr ne (Fach-)Hochschule in der Nähe? Mal bei nem Prof durchklingeln und Fragen, ob er nicht Studenten hat, die noch ne Semesteraufgabe suchen.
6a66 schrieb: > Aaaaaaaaarrrgh :( > Wenig Schaltungskenntnisse, keine Programmmierkenntnisse. Keine Zeit. > Das Thema hatten wir gerade in eiem anderen Thread. Ja, in der heutigen Zeit leider ein viel zu brisantes und unterschätztes Problem. 6a66 schrieb: > Machen. Alles klar!! :) Georg schrieb: > Das gibt es fertig, nennt sich Störmelder, z.B. Ich vermute, das übersteigt das Budget was sich im unteren zweistelligen Bereich befinden soll. @alle: vielen Dank erstmal für Eure Hilfe, wir werden das Thema mit den zwei Rs232 Schnittstellen in Angriff nehmen. Sollte das so nicht funktionieren, würde ich mich noch mal melden! Gruß Tommy
6a66 schrieb: > nicht > gerufene Kollegen danken es Dir Unwahrscheinlich wenn sie nie erfahren, dass es nur der Beschaltung zu verdanken war, dass es keinen Fehlalarm gab ;)
M. K. schrieb: > Unwahrscheinlich wenn sie nie erfahren, dass es nur der Beschaltung zu > verdanken war, dass es keinen Fehlalarm gab ;) Nein, umgekehrt. Aus der 0x00 wird um 02:30 in der Nacht durch einen Störimpuls des benachbarten Löschkühlschranks eine 0x01 und die Kollegen freuen sich darüber dass sie geweckt wurden .... oder was auch immer. rgds
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.