Beckoff Twincat 3 Modbus RTU

AndreasLM

Level-1
Beiträge
5
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Mit einer CX5140 möchte ich über die KL6041 einen Energiezähler via Modbus auslesen.
Die Klemme wurde entsprechend konfiguriert (halfduplex, baudrate etc.) und gibt keinen Fehler zurück.
Über ModbusRtuMaster.ReadRegs möchte ich ein Register auslesen, mein Problem ist nun, dass die Funktion nun ein dauer-busy signalisiert. Nach meinem Verständnis sollte jedoch nach der eingestellten Timeout die Funktion aus dem busy Status kommen.
Hat jemand eine Idee, was da los ist?

anbei der Code:

1682958609123.png


1682958646643.png
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Klingone22,

danke für die Nachfrage, es handelt sich um einen Belimo Energiezähler 22PE. Nach deren Modbus Datenblatt machen sie keinen Unterschied zwischen den Datentypen, man kann alle Register mit Read Holding Registers [3] auslesen oder mit Write Single Register [6] beschreiben.
Haste noch ein Idee?
Viele Grüße
Andreas
 
Zeig doch bitte den Teil Deines Codes wo die Modbus Kommunikation stattfindet. Nur weil Du die richtigen Bausteine verwendest, heißt das noch nicht, dass Du Sie auch richtig verwendest.
 
Oben in meiner Beschreibung habe ich den Teil eingefügt, der das Register auslesen soll. Anbei noch die Definition.

1683398846456.png

Habe ich noch was vergessen?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich kenne die Bausteine nicht, vermisse aber irgendwie die Verlinkung vom Modbus Baustein mit der Klemme. Gibt es da noch was anderes als FB_ModbusRtuMaster.ReadRegs? Sicherlich noch ein FB_ModbusRtuMaster.WriteRegs, aber da könnte es noch irgendwas anderes zur Konfiguration geben.
 
Ich habe die Klemme mit der Variable verknüpft, was jedoch auffällt, dass trotzdem die Funktion dauernd busy ist, keine Online Aktivität stattfindet.

1683485575633.png
 
Hallo,
für mich sieht das so aus das du die Hardware mit den falschen Variablen verknüpft hast. Du hast in einer GVL namens "Prozessabbild_Ein_Ausgang" etwas definiert was du verknüpft hast. (Objekt "MODBUS_KL6041"). Verknüpfen musst du die Hardware aber mit den EAs von "Modbus.FB_ModbusRTUMaster".

Deswegen funktioniert nur der Konfigurationsbaustein, welcher über die Parameter pComIn und PComOut die Verknüpfung zur Hardware hat.

Ich habe den RTU_Master mal in ein Testprojekt eingebunden, da siehst du das er seine eigene EA-Schnittstelle mitbringt:
1683626143055.png


Des weiteren stimmt die Addresse beim ReadRegs nicht, statt 40020 sollte dort 20 stehen.
 
Zuletzt bearbeitet:
Zurück
Oben