Modbus: Parity Bits / RS485 per Skript Ein- und Ausschalten

Hallo zusammen,
als erstes: Ich habe nach einem Unterforum gesucht, in das meine Frage besser passt, aber leider hab ich kein Modbus Forum o. ä. gefunden :confused: Also gerne verschieben, wenns irgendwo besser passt :wink:

Ich versuche zwei Geräte (beides Stromzähler) verschiedener Hersteller über Modbus anzubinden. Das ganze läuft über eine Serielle Schnittstelle mit einem USB to SERIAL RS 485 Converter von Digitus. Ich kann auch beide einzelnd anbinden und auslesen. Leider braucht der eine beim Einstellen der seriellen Schnittstelle in IPS kein Parity Bit, der andere brauch die Einstellung Parity Bit: Even.

Ich hab in IPS zwei Serielle Schnittstellen eingerichtet, beide zeigen auf die gleiche Hardware (in meinem Fall COM4). Jetzt kann ich die auch die eine aktivieren (und dann den entsprechenden Zähler auslesen), wieder deaktivieren und dann die andere aktivieren - aber das geht nicht automatisch. Also hab ich mir gedacht, schreib ich ein Skript, dass die erste Serielle Schnittstelle deaktiviert und danach die andere aktiviert und lass das Skript per Zeitinterval starten. Aber wie startet man eine Serielle Schnittstelle per Skript? Gibt es noch eine andere Möglichkeit, eine Serielle Schnittstelle für beide Einstellungen zu benutzen?

Danke schonmal für Eure Hilfe!

Patrick

tl;dr: Wie kann man serielle Schnittstellen per php Ein- und Ausschalten?

Hallo,

probier mal folgendes.

COMPort_SetOpen($ID, true);
IPS_ApplyChanges($ID);

Ich habe das bei mir um den Serial Port zu aktivieren bzw. mit „false“ zum deaktivieren.
Kann dir aber leider nicht sagen wo ich das damals gefunden habe…

Habe in der Dokumentation folgendes gefunden.

IPS_SetProperty($id, "Open", true); //I/O Instanz soll aktiviert sein.
IPS_ApplyChanges($id); //Neue Konfiguration übernehmen

IPS_SetProperty — IP-Symcon :: Automatisierungssoftware

Vielen Dank für die schnellen Antworten! Ich hab eben noch an einer anderen Stelle im Forum folgendes gefunden:


COMPort_SetParity($comPortID, 'Even');

Das war zwar nicht genau das, was ich gesucht hab, aber damit gehts auch. Ich schreib damit halt einfach 1 mal pro Minute die Einstellung um und lass beide Zähler auf der selben seriellen Schnittstelle arbeiten. Logischerweise gehen dann die Anfragen des jeweils nicht richtig konfigurierten Zählers ins Leere, aber das ist ja egal. Ich musste zwar ein bisschen mit den Zeiten rumspielen, aber mit 5 sec für die einzelnen Werte und 1 Minute beim Umstellen der Schnittstelle läufts jetzt ganz stabil.

Mal sehen, vielleicht setz ich dann gleich nochmal meine ursprüngliche Idee mit euren Vorschlägen um und guck mal, was am stabilsten klappt :wink:

Aber dass das jetzt erstmal läuft ist schon mal super :smiley: Dankeschön nochmal!

Patrick