INTRODUCTION
Started using Codesys this week, been using TWinCAT for years though.
Programming is not an issue given my background, but the configuration part changes a little and I have a doubt about the ModbusTCPSlave I/O Mapping.
I have to communicate the PLC (Modbus TCP master) to a small device (slave) which will send me 1 BYTEs, 1 WORDs, 1 BYTEs and 15 REALs (64 bytes or 32 words in total).
I have put all those variables are inside a structure:
TYPE ST_MODBUS_DATA_FROM_DEVICE_1 :STRUCT B01 : BYTE := 0; w01 : WORD := 0; B02 : BYTE := 0; r01 : REAL := 0.0; r02 : REAL := 0.0; r03 : REAL := 0.0; r04 : REAL := 0.0; r05 : REAL := 0.0; r06 : REAL := 0.0; r07 : REAL := 0.0; r08 : REAL := 0.0; r09 : REAL := 0.0; r10 : REAL := 0.0; r11 : REAL := 0.0; r12 : REAL := 0.0; r13 : REAL := 0.0; r14 : REAL := 0.0; r15 : REAL := 0.0;END_STRUCTEND_TYPE
In the configuration, I've added 1 channel, with an offset of 16#7531 and a length of 32.
This has created an array[0..31] of WORD in the ModbusTCPSlave I/O Mapping.
Now, I want to link/map the variables into the channel, but I have BYTEs and REALs not WORDs.
QUESTION
How can I map my structure (or it's components) to the Modbus channel?
Any hint (related to this ;) ) will be appreciated.
Thank you very much for your time and help.
Last edit: joanm 2021-07-01
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
OK, solved... in TWinCAT you MUST put the variable you want to connect to any IO channel as %I / %Q or similar... it looks like in Codesys you MUST NOT.
After reading the message slowly (good for me) I've been able to solve it and now I can directly assign the structure to the beginning of the Modbus channel.
^^Β‘
π
1
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hello all,
INTRODUCTION
Started using Codesys this week, been using TWinCAT for years though.
Programming is not an issue given my background, but the configuration part changes a little and I have a doubt about the ModbusTCPSlave I/O Mapping.
I have to communicate the PLC (Modbus TCP master) to a small device (slave) which will send me 1 BYTEs, 1 WORDs, 1 BYTEs and 15 REALs (64 bytes or 32 words in total).
I have put all those variables are inside a structure:
In the configuration, I've added 1 channel, with an offset of 16#7531 and a length of 32.
This has created an array[0..31] of WORD in the ModbusTCPSlave I/O Mapping.
Now, I want to link/map the variables into the channel, but I have BYTEs and REALs not WORDs.
QUESTION
How can I map my structure (or it's components) to the Modbus channel?
Any hint (related to this ;) ) will be appreciated.
Thank you very much for your time and help.
Last edit: joanm 2021-07-01
OK, solved... in TWinCAT you MUST put the variable you want to connect to any IO channel as %I / %Q or similar... it looks like in Codesys you MUST NOT.
After reading the message slowly (good for me) I've been able to solve it and now I can directly assign the structure to the beginning of the Modbus channel.
^^Β‘