Modbus
Hi,
How to define access variables for modbus (CI867 acting as slave).
%MX10#1032=Boolean 32
%MW10#1000=Dint
To What modbus address does the above variables map to
How to define access variables for modbus (CI867 acting as slave).
%MX10#1032=Boolean 32
%MW10#1000=Dint
To What modbus address does the above variables map to
Voted best answer
Hi,
In case your CI867 acts as slave, you have to know the protocol specific features of the master too.
In the particular case, according to the manuals and my experience, the "usual" mapping should be the following:
%MW10#1000 = Var_Register_M
it means holding register start address 41000 (but it could be also 41001 depends on master's addressing principle)
Var_Register_M - you can assign here INT or DINT
%QW10#1000 = Var_Register_Q
it means holding register start address 31000 (but it could be also 31001 depends on master's addressing principle)
Var_Register_Q - you can assign here INT or DINT
For the booleans it is recommended to use the following start address syntais
%IX10#1032=Var_Bool_I
it means coil status start address 11032
or %QX10#1032=Var_Bool_Q
it means coil status start address 1032
But again, it ALSO depends on the Modbus TCP/IP master's functionality (e.g. FC functions, start address method 0 or 1)
What is your master in this case?
I could recommend to try how it works in your case, starting with putting of some test variables in %MW10#0 and %IX10#0. Then you have to "read" them correctly from the master, using start address 0, I think easier than 1032 for eample.
Once the communication is established, you can use the actual start addresses as required.
In case your CI867 acts as slave, you have to know the protocol specific features of the master too.
In the particular case, according to the manuals and my experience, the "usual" mapping should be the following:
%MW10#1000 = Var_Register_M
it means holding register start address 41000 (but it could be also 41001 depends on master's addressing principle)
Var_Register_M - you can assign here INT or DINT
%QW10#1000 = Var_Register_Q
it means holding register start address 31000 (but it could be also 31001 depends on master's addressing principle)
Var_Register_Q - you can assign here INT or DINT
For the booleans it is recommended to use the following start address syntais
%IX10#1032=Var_Bool_I
it means coil status start address 11032
or %QX10#1032=Var_Bool_Q
it means coil status start address 1032
But again, it ALSO depends on the Modbus TCP/IP master's functionality (e.g. FC functions, start address method 0 or 1)
What is your master in this case?
I could recommend to try how it works in your case, starting with putting of some test variables in %MW10#0 and %IX10#0. Then you have to "read" them correctly from the master, using start address 0, I think easier than 1032 for eample.
Once the communication is established, you can use the actual start addresses as required.
Answers
Did under stand question properly.
If you are looking for the format for modbus slave is access variable
%MW
%MX
AC800M Slave only support
Coil and Holding register only , when act as slave
If you are looking for the format for modbus slave is access variable
%MW
%MX
AC800M Slave only support
Coil and Holding register only , when act as slave
Add new comment