Step 7 CPU 315-2DP MODBUS TCP zur Energiemessgerät Phoenix EMPro

Ambientologo11

Level-2
Beiträge
15
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten Tag zusammen,

Vor einigen Wochen haben wir einen neuen Auftrag von einem Kunden erhalten.Dieser Auftrag besteht darin, eine MODBUS TCP-Kommunikation mit einem Energiemessgerät des Phoenix Frameworks herzustellen.
In der Vergangenheit und bei anderen aktuellen Projekten haben wir diese Verbindung erfolgreich mit einer 1500er oder 1200er CPU hergestellt.

Um diese Kommunikation durchzuführen, haben wir die Lizenz MODBUS/TCP PN-CPU V3 gekauft. Im Moment hat die Verbindung nicht funktioniert und wir können den Fehler nicht finden. Am Freitag haben wir eine Anfrage an den Siemens Support gestellt, da wir den Fehler nicht finden konnten.

Wir arbeiten mit TIA Portal V16 0.0.
Das Programm hat die nächste Versionen von der notwendigen Anweisungen:
TSEND - V4.0; TRCV - V4.0; TCON - V4.0; TDISCON - V2.1; MODBUSPN - V2.2
Für den Test wollen wir die ersten 12 Register (DWORD-Real). Die Start-Adresse wäre 32768.

Aktuell erhalten wir einen Fehler auf der Verbindung: INIT_ERROR = True und INIT_STATUS = 16#A083. Zu Beginn bekamen wir auch 16#0A80.
Wie ich in der Dokumentation gesehen habe:
"
Status A080 bedeutet: Die Anweisung MODBUSPN wurde noch nicht initialisiert. --> Nach dem Transferieren des IDBs in die CPU muss die Anweisung MODBUSPN mit Init = TRUE initialisiert werden.
Status A083 bedeutet: S7 ist Client: Es ist ein Auftrag angestoßen worden, während der vorherige Auftrag noch läuft. Der Auftrag wird nicht ausgeführt. Dies ist eine Statusinformation. Das Bit ERROR ist nicht gesetzt.
Es wurde versucht, den Baustein zu initialisieren, während noch ein Auftrag läuft bzw. während ENQ_ENR gesetzt war.
"
Laut Siemens-Support werten wir unseren Baustein korrekt aus, und geben diesen auch erst wieder frei, wenn der Baustein auf DONE oder ERROR gegangen ist, und nicht mehr BUSY ist. Dies ist so korrekt.

Es kann sein, dass wir die Initialisierung nicht korrekt machen. Wir das INIT-Bit setzen (OB100 - "CONTROL_DAT".Init). Dieses Bit wird über den Ausgang Init in der MODBUSPN-Funktion wieder zurückgesetzt oder?

Das Programm ist als Datei angehängt. Die Funktion MODBUSPN ist im OB1, man findet sie unter 01_Organisationsbausteine --> OBs und die für die Kommunikation notwendigen DBs findet man unter 01_Organisationsbausteine --> DBs.

Hat jemand Erfharung mit diesem MODBUSPN FunktionBausteine?

Danke für eure Hilfe.
Viele Grüßen!
 

Anhänge

  • MODBUSPN_TEST.zip
    516,4 KB · Aufrufe: 9
Zurück
Oben