[[Template core/front/global/updateWarning is throwing an error. This theme may be out of date. Run the support tool in the AdminCP to restore the default theme.]]
I am trying to create a simple `Hello World` Modbus TCP/IP program using Twincat3 and virtual PLC (PLC running locally on my computer).
I have set up a LabVIEW Modbus TCP/IP master + slave program (both of which are working see screenshots below).
I can send data between LabVIEW's master and slave programs. And also read the data from Python script (so I know for sure they are all working).
Now I have tried to create a Twincat3 program to set some registers using Beckhoff example
What I have tried:
- I have tried changing the ipAddr parameter to: 'localhost', '192.168.88.1', '192.168.88.126'
- Also I have tried the nUnitID set to: 0, 1, 16#FF (16#FF as specified by Beckhoff docs)
This is my Beckhoff code:
PROGRAM MAIN
VAR
ipAddr : STRING(15):='192.168.88.1';//Tried also 192.168.88.126 and 192.168.88.1 'localhost'
M0 AT %MB0 : ARRAY [0..3] OF WORD;
nValue : ARRAY [0..3] OF WORD;
fbWriteRegs : FB_MBWriteRegs;
bWriteRegs : BOOL;
END_VAR
IF NOT bWriteRegs THEN
nValue[0]:= nValue[0]+1;
nValue[1]:= nValue[1]+1;
nValue[2]:= nValue[2]+1;
nValue[3]:= nValue[3]+1;
bWriteRegs := TRUE;
fbWriteRegs.sIPAddr := ipAddr;
fbWriteRegs.nTCPPort :=502;
fbWriteRegs.nUnitID :=16#FF; //Tried setting this to 0,1 and it also and didnt work ...
fbWriteRegs.nQuantity :=4;
fbWriteRegs.nMBAddr :=16#3000; //Tried: 16#3000, 0, 1
fbWriteRegs.cbLength := SIZEOF(nValue);
fbWriteRegs.pSrcAddr := ADR(nValue);
fbWriteRegs.tTimeout := T#5S;
fbWriteRegs (bExecute:=TRUE);
ELSE
IF NOT fbWriteRegs.bBUSY THEN
bWriteRegs :=FALSE;
fbWriteRegs (bExecute:=FALSE);
END_IF
fbWriteRegs (bExecute:=FALSE);
END_IF
What should I change in my code in order to make this example work?
Thank you in advance for any support!
Info about LabVIEW programs:
I am using the Modbus TCP Master / Slave examples
The IP address is set to localhost and the port to 502 (which should match the IP address in my Beckhoff code)
I am 100% sure it works because I have also tried connecting to this program via Python script.
Twincat3: Can't connect to LabVIEW's Modbus TCP/IP server via Tc2_ModbusSrv library (on virtual PLC)
in Other PLCs
Posted
I am trying to create a simple `Hello World` Modbus TCP/IP program using Twincat3 and virtual PLC (PLC running locally on my computer).
What I have tried:
- I have tried changing the ipAddr parameter to: 'localhost', '192.168.88.1', '192.168.88.126'
- Also I have tried the nUnitID set to: 0, 1, 16#FF (16#FF as specified by Beckhoff docs)
This is my Beckhoff code:
What should I change in my code in order to make this example work?
Thank you in advance for any support!
Info about LabVIEW programs:
Picture of my LabVIEW programs: