Serielle Schnittstellen auf dem Raspberry Pi im IPS verwenden

Hallo,

ich habe so meine Probleme mit der Verwendung eines RS485-USB-Sticks ins IPS auf dem Pi. Im IPS kann ich diesen seriellen Port auch als ttyUSB0 auswählen. Nur das Auslesen der Daten per Modubus geht nicht. Mit dem gleichen Stick und Einstellungen klappt das allerdings bei Windows-IPS ohne Sorgen. So dass ich die Hardware ausschließe.

Ich kann im Debug der Serial Ports finden sich nichts. Da das IPS zyklisch eine Anfrage an den Stromzähler schickt und dieser darauf antwortet, sollte hier ja was zu finden sein. Bei Windows kommt da ne Menge, beim Pi nicht.

Habe hiergelesen, dass Modubus voll unterstützt wird mit Ausnahme der Timer. Diese wurden hierjedoch auch implementiert.

Auch mit der manuellen Anregung zum Kommunizieren klappt es nicht:

$id = 49384 /*[Leistung L1]*/; // Modbus-Instanz
ModBus_RequestRead($id);

Was mache ich falsch? Oder suche etwas, was noch gar nicht geht?

Wenn du per Skript ausliest… Kommt dann eine Fehlermeldung? Siehst du dann nichts im Debug der SerialPort Instanz? Hast du deine Lizenz angegeben?

Eigentlich sollte alles laufen, so wie du es ausprobierst.

Man kann die im Pi verbaute Schnitstelle nicht einfach nutzen da diese noch vom System genutzt wird. Ich hatte hier mal eine Anleitung gepostet wie man diese freiräumt.

Kam erst heute zum weiteren Testen.

[ul]
[li]Wandler vom Windows-PC an den Pi umgesteckt, diesen dann gestartet. Verbindung per IPS-Konsole aufgebaut, Modbus-Instanz eingerichtet, Werte kommen. Toll!
[/li][li]
[/li][li]Beim Einrichten der zweiten Instanz: Werte kommen nicht -> aber Socket-Fehler #10061
[/li][li]
[/li][li]Neustarten Konsole -> keine verbindung möglich -> Socket-Fehler #10061
[/li][li]
[/li][li]Dienst neugestartet -> Neustarten Konsole -> Verbindung möglich -> Löschen der zweiten Modbus-Instanz -> beim Übernehmen Socket-Fehler #10061.
[/li][li]
[/li][li]Ohne Neustarten des Dienstes keine Verbindung mehr. Allerdings wird die Instanz auch nicht gelöscht.
[/li][li]
[/li][/ul]

@paresy: Welche Angaben brauchst du? (Screenshots und logfile im Anhang)

EDIT: weitere Beobachtungen:

nach Neustart Pi konnte ich zumindest die 2.Instanz löschen -> Konsole geschlossen -> Verbindung möglich -> wieder Anlegen möglich -> beide Werte werden einmalig richtig ausgelesen -> beim zweiten Auslesen werden die Werte der Instanzen vertauscht, obwohl die Registernummern in den Instanzen immer noch korrekt stehen. Auslesen geschieht per Timer in der Instanz - nicht per Script.

Beim Anlegen einer dritten Modbus-Instanz: der dann alphabetisch niedrigsten Bezeichnung der Instanz bekommt den Wert der zeilich zuerst angelegten Instanz. (die Pfeile sollen den Soll-Zustand anzeigen)

Lege ich nun die vierte Instanz an, kommt ein weiteres Phänomen zum Vorschein: Die Werte in Instanz 2 und 4 tauschen sich nach jedem Auslesen.

Auch das Zuwesien von Profilen hat scheinbar keinen Einfluss darauf. Denn mit oder ohne Profile tritt der Fehler auf.

f21.JPG

f22.JPG

logfile1405251080.zip (1.42 KB)

Moin Andreas,

wir konnten das Problem nachstellen und mit dem nächsten Update sollte dieses gelöst sein.

Ich bitte dich das nächste Update abzuwarten und es dann nochmal zu testen.

Grüße
Pio

Cool. Dann bin ich ja beruhigt und es ist kein Einzelschiksal. Halte nach dem Update Ausschau. Danke.

Beim Löschen einer Instanz ist dann noch das passiert - keine weitere Bearbeitung möglich - nur Neustart des Dienstes führt wieder zum Zugriff.

PS: Vielleicht könnt ihr den Titel des Threads in „Problem mit Modbus-Instanzen“ o.ä. ändern.

Binnach Update auf 97c23527 erfolgreich gewesen - Instanzen werden nun nicht mehr vermischt.

ABER:

Ich habe einen baugleichen Stick für einen zweiten Stromzähler. Wenn ich diesen anstecke und den Pi starte, wird zwar im IPS einen weitere Schnittstelle (ttyUSB0 und ttyUSB1) zu Auswahl angeboten, allerdings funktionieren bei Sticks zusammen nicht. Einzeln (bisher) kein Problem.

Ich hatte die Idee mit der Spannungsversorgung - also USB-Hub mit Netzteil angesteckt - aber auch damit will es nicht.

Geht nur eine serielle Schnittstelle am Pi mit IPS?