TIA S7 1200 CM1241 Modbus Receive Buffer

HandsomeHans

Level-1
Beiträge
3
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten Tag zusammen,
bei meiner Modbus Kommunikation stehe ich vor folgendem Problem:
Ich möchte mittels RS482 eine Hubsäule ansteuern. Die Ansteuerung benötigt eine Zyklische abfrage < 500ms. Modbus-Master Baustein funktioniert nicht.
Daraufhin habe ich Send_PTP und Receive_PTP bausteine verwendet. Das auslesen sowie das Senden funktioniert nun.
Allerdings tritt bei mir ein Entscheidener Fehler auf. Zu aller erst starte ich mit meiner Zyklischen abfrage mit dem Laden eines Registers. Modbus Anweisung 03.
Nun wird entsprechend mein Receive_Buffer mit den passenden Daten die ich von meiner Ansteuerung bekomme beladen. Werte sind auch korrekt. Eine abfrage eines anderen Registers funktioniert ebenfalls.
Sobald ich aber nun ein Register schreibe 06 bekomme ich einen CRC Fehler (81E9) und mein Receive_Buffer bekommt keine neuen werte mehr.
Er führt den Befehl aber aus, und wenn ich anschließend ein weiteren Schreibbefehl absende wird dieser auch verarbeitet.
Im Anhang habe ich mal ein Testprojekt angehangen sind auch noch einige dinge drin die zu Testzwecken reingekommen sind die aber entfallen.

Vielen dank schonmal :)
 

Anhänge

  • TestModbus.zip
    1,5 MB · Aufrufe: 3
Zuviel Werbung?
-> Hier kostenlos registrieren
Hier der Programmausdruck. Sind viele "unnötige" Seiten dabei. Hoffe das stört nicht.
Vielleicht noch als Anmerkung: Nach dem CRC Fehler muss ich die CPU Neustarten damit meine Read anfrage wieder in den Receive Buffer geladen wird. Das Senden der Anfrage funktioniert. Geprüft mit ModbusPoll und Windmill ComDebug via USB Adapter.
 

Anhänge

  • TestModbusPrint.pdf
    3,3 MB · Aufrufe: 15
Zuletzt bearbeitet:
Hab es jetzt vorrübergehend umgehen können indem ich direkt auf den Receive Buffer des Receive_PTP Datenbaustein zugreife. Eine Lösung ist es dennoch nicht. Ich gehe davon aus der Fehler liegt darin das mein Slave mir mit ungleich langen Telegrammen antwortet und der Receive Baustein immer gleiche längen erwartet und hierbei dann einen CRC Fehler berechnet.
 
Zurück
Oben