-> Hier kostenlos registrieren
Hallo zusammen,
ich versuche gerade, eine Modbuskommunikation zwischen 2 CPU zu verstehen / realisieren. Leider habe ich keine
Wago Controller um dies zu testen.
Ich würde gerne Daten vom Typ: Time/real/bool/int von den jeweiligen Steuerungen lesen können.
Mein Ansatz ist:
Auf der CPUA (Master) habe ich den Ethernet_modbusmaster_tcp erstellt.
VAR
fbMaster_schreiben :ETHERNET_MODBUSMASTER_TCP;
xVerbinden_Schreiben : BOOL:=TRUE;
strIP_SPS_UPS_A : STRING := '192.168.2.12';
typMasterAnSlaveSchreiben: arComCPU;
dwadrText: DWORD;
xSendTrigger: BOOL; (*geht automatisch auf False wenn fertig*)
tWarteZeit: TIME := t#100ms;
fbZyklischAbfragen: TON;
xIstVerbunden: BOOL;
wError: WORD;
bID: BYTE;
END_VAR

Dazu habe ich ein Struct erstellt:
TYPE arComCPU :
STRUCT
xBatteryRelayA :BOOL ;
xBatteryRelayB :BOOL ;
xDCDBRelayA :BOOL ; (* Rückmeldebit *)
xDCDBRelayB :BOOL ; (* Rückmeldebit *)
rChargerVoltage_A :REAL ;
rChargerVoltage_B :REAL ;
rLoadCurrent_A :REAL ;
rLoadCurrent_B :REAL ;
xNextBatteryChange :BOOL ;
END_STRUCT
END_TYPE
Wenn ich nun auf der Slave Seite das gleiche Struct erstelle kommunizieren die dann schon miteinander?
Die Structvariablen habe ich einerseits auf der A und andererseits auf der B eine feste Adresse gegeben (MX x.y / MD x ).
MfG
MW22
ich versuche gerade, eine Modbuskommunikation zwischen 2 CPU zu verstehen / realisieren. Leider habe ich keine
Wago Controller um dies zu testen.
Ich würde gerne Daten vom Typ: Time/real/bool/int von den jeweiligen Steuerungen lesen können.
Mein Ansatz ist:
Auf der CPUA (Master) habe ich den Ethernet_modbusmaster_tcp erstellt.
VAR
fbMaster_schreiben :ETHERNET_MODBUSMASTER_TCP;
xVerbinden_Schreiben : BOOL:=TRUE;
strIP_SPS_UPS_A : STRING := '192.168.2.12';
typMasterAnSlaveSchreiben: arComCPU;
dwadrText: DWORD;
xSendTrigger: BOOL; (*geht automatisch auf False wenn fertig*)
tWarteZeit: TIME := t#100ms;
fbZyklischAbfragen: TON;
xIstVerbunden: BOOL;
wError: WORD;
bID: BYTE;
END_VAR

Dazu habe ich ein Struct erstellt:
TYPE arComCPU :
STRUCT
xBatteryRelayA :BOOL ;
xBatteryRelayB :BOOL ;
xDCDBRelayA :BOOL ; (* Rückmeldebit *)
xDCDBRelayB :BOOL ; (* Rückmeldebit *)
rChargerVoltage_A :REAL ;
rChargerVoltage_B :REAL ;
rLoadCurrent_A :REAL ;
rLoadCurrent_B :REAL ;
xNextBatteryChange :BOOL ;
END_STRUCT
END_TYPE
Wenn ich nun auf der Slave Seite das gleiche Struct erstelle kommunizieren die dann schon miteinander?
Die Structvariablen habe ich einerseits auf der A und andererseits auf der B eine feste Adresse gegeben (MX x.y / MD x ).
MfG
MW22