PFC200 Modbus RTU cCockpit -> Codesys V3.5

Oliver Wetzel

Level-2
Beiträge
20
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

wir sind schon zu zweit am verzweifeln. Wir haben eine 750-8212 unter eCockpit am laufen mit der wir über die serielle Schnittstelle COM1 per Modbus RTU mit Temperatursensoren kommunizieren. Das ganze über Funktionsbausteine der WagoAppPlcModbus. Alles klappt wunderbar.
Nun haben wir eine weitere 750-8212 allerdings unter Codesys V3.5 und wollen auch da mit dem Temperatursensor kommunizieren. Auch wieder über die gleichen Funktionsbausteine. Gleicher Temperatursensor angeklemmt und auch gleiches serielles Kabel verwendet um den Fehler da auszuschließen. Wir kriegen aber immer nur einen Timeoutfehler. Muss man unter der Codesys V3.5 noch etwas anderes einstellen als unter der eCockpit?
 
Hallo Oliver,
hab mich auch ne ganze weile damit rumgeschlagen bis ich es zum laufen hatte. Hatte aber mehrere Probleme :D
Ich kenne eCockpit nicht, weiß also nicht was alles unterschiedlich ist, aber ich arbeite auch mit dem FbMbMasterSerial und einer 750-652 Karte in Codesys 3.5 Sp18. Da ist mir schon aufgefallen das Codesys nicht meckert wenn man den Port falsch angibt (z.B. ohne "IoConfig_Globals."). Weiß aber jetzt nicht ob das nötig ist wenn man den internen Port nimmt.
Was sagt denn Wago-IO-Check? Passiert auf der Schnittstelle überhaupt etwas? Habe zur Diagnose damals die PLC mit einem USB Adapter am PC angeschlossen und dann mal so mit ihr kommuniziert.
Ansonsten zu den Einstellungen, ist die erlaubte Timeout zeit vielleicht zu kurz oder gar nicht angegeben? Hast du die UnitId, FC und Adresse in hex angegeben? Ich meine mich daran zu erinnern das ich damit auch Probleme hatte als ich die nicht in hex hatte.


So läufts bei mir auf jeden fall:

Code:
(*Interface parameters*)
FbMbMasterSerial_1    : FbMbMasterSerial:=(    xConnect    :=    TRUE,
                                            udiBaudrate    :=    19200,
                                            usiDataBits    :=    8,
                                            eParity        :=    WagoTypesCom.eTTYParity.Even,
                                            eStopBits    :=    WagoTypesCom.eTTYStopBits.One,
                                            eHandshake    :=    WagoTypesCom.eTTYHandshake.None,
                                            ePhysical    :=    WagoTypescom.eTTYPhysicalLayer.RS485_HalfDuplex,
                                            eFrameType    :=    eMbFrameType.RTU,
                                            tTimeOut    :=    T#5S);
//-------------------------------------------------------------------------------------------------                                   
utQueryR8020             : typMbQuery := ( bUnitId        := 16#C8,               // Slaveaddress
                                        bFunctionCode   := 16#03,           // read input registers
                                        uiReadAddress   := 16#1F54,           // Startaddress
                                        uiReadQuantity  := 2                  // Quantity of wanted registers
                                    );
utResponseR8020            :typmbResponse;
xTxTriggerR8020                :BOOL;

---------------------------------------------------------------------------------------------------------------------------


 //Modbus request register 8020 | Residual current measured value (DC)[Amps] | float32
    FbMbMasterSerial_1( I_Port      := IoConfig_Globals.UC9_0KF02_RS485_COM,        //serial port
                    utQuery     := utQueryR8020,
                       xTrigger    := xTxTriggerR8020,
                       utResponse  := utResponseR8020,
                    xIsConnected=> connectbool);
 
Zurück
Oben