- Beiträge
- 5.435
- Reaktionspunkte
- 1.409
-> Hier kostenlos registrieren
Hi
Ich versuche grade eine Modbusverbindung zu mehreren Servern aufzubauen.
Die S7-1500 bringt ja einen Modbustreiber mit. Mit dem habe ich auch schon erfolgreich eine Verbinung zu EINEM Server aufgebaut. Jetzt habe ich aber deren 5 und wollte das einfach für jeden Server Instanzieren.
Das hat aber nicht so wirklich geklappt, der Erste hat die Daten immer gebracht die Nächsten blieben einfach auf 0.
Dann habe ich es jetzt so gemacht dass ich nur einen Treiber Starte und die Verbindung nach done oder error kappe und zum nächsten aufbaue. Macht aber die ganze Sache unnötig komplex.
Hat schonmal jemand mehrere Instanzen des MB_Client paralell erfolgreich laufen lassen?
Mich irritiert etwas die Aussage in der Hilfe.
Heisst das ich muss mit den anderen Instanzen auswerten ob schon eine fremdinstanz aktiv ist und mit dem Req warten? Das wird ja richtig übel wenn man dann diverse aktive Verbindungen gegeneinander verriegeln muss und mit einer Statemaschine jede einzelne Kommunikationsanfrage ankicken muss.
Wozu dann überhaupt mehrere Verbindungen projektieren. Dann kann man sie auch ab und aufbauen.
Ich hätte gerne mehrere MB_Clienten Instanziert und nur für sich abgearbeitet. Das heisst es laufen mehrere IDs paralell.
Halt wie wenn man BSEND/BRECV auf mehreren Verbindungen laufen lässt. Die laufen ja auch paralell gleichzeitig ohne gegeneinander verriegelt zu sein.
mfG René
Ich versuche grade eine Modbusverbindung zu mehreren Servern aufzubauen.
Die S7-1500 bringt ja einen Modbustreiber mit. Mit dem habe ich auch schon erfolgreich eine Verbinung zu EINEM Server aufgebaut. Jetzt habe ich aber deren 5 und wollte das einfach für jeden Server Instanzieren.
Das hat aber nicht so wirklich geklappt, der Erste hat die Daten immer gebracht die Nächsten blieben einfach auf 0.
Dann habe ich es jetzt so gemacht dass ich nur einen Treiber Starte und die Verbindung nach done oder error kappe und zum nächsten aufbaue. Macht aber die ganze Sache unnötig komplex.
Hat schonmal jemand mehrere Instanzen des MB_Client paralell erfolgreich laufen lassen?
Mich irritiert etwas die Aussage in der Hilfe.
REQ schrieb:Kommunikationsanfrage mit dem Modbus TCP-ServerDer Paramter REQ ist pegelgesteuert. Das heißt, solange der Eingang gesetzt ist (REQ=true), sendet die Anweisung Kommunikationsanfragen.
- Mit der Kommunikationsanfrage wird der Instanz-DB für andere Clients gesperrt.
- Änderungen an den Eingangsparametern wirken sich erst aus, wenn eine Antwort des Servers erfolgt ist oder eine Fehlermeldung ausgegeben wurde.
- Wird während einer laufenden Modbus-Anfrage der Parameter REQ erneut gesetzt, wird im Anschluss keine weitere Übertragung durchgeführt.
Heisst das ich muss mit den anderen Instanzen auswerten ob schon eine fremdinstanz aktiv ist und mit dem Req warten? Das wird ja richtig übel wenn man dann diverse aktive Verbindungen gegeneinander verriegeln muss und mit einer Statemaschine jede einzelne Kommunikationsanfrage ankicken muss.
Wozu dann überhaupt mehrere Verbindungen projektieren. Dann kann man sie auch ab und aufbauen.
Ich hätte gerne mehrere MB_Clienten Instanziert und nur für sich abgearbeitet. Das heisst es laufen mehrere IDs paralell.
Halt wie wenn man BSEND/BRECV auf mehreren Verbindungen laufen lässt. Die laufen ja auch paralell gleichzeitig ohne gegeneinander verriegelt zu sein.
mfG René