August 7, 2019 at 1:50 pm #5807
I have a modbus I/O device in which i would like to write the output registers (Function – 05) as 16bit unsigned Int as per the manufacturer recommendations. If i send the command as 02 05 00 00 00 01 CRC, then the device will turn ON (Device address is 02).
I am able to write the output register with the same format mentioned above using another modbus software.
How can i achieve the above said command using rapid scada. Kindly help me.August 7, 2019 at 2:44 pm #5811
You should specify a command in your Modbus template. If you share a screenshot of your template after you do this, I can validate it.August 7, 2019 at 4:22 pm #5815
Please find the link for the image in which i have assigned command. But element type was disabled and was not unable to modify it.
I would like to set the element type or data type as Unsigned Int (2 bytes). Kindly help how can i set that.
Trailing image in which i have written output coil by assigning coil as 16bit unsigned int. Kindly verify this too.August 8, 2019 at 1:29 pm #5817
It’s a good idea to create a one command while testing.
To set 2 bytes register, choose Holding Registers in command properties.
Watch the new video about it.August 8, 2019 at 7:18 pm #5818
I have followed the entire procedure same. I succeed in reading and writing holding registers which are specified in register map. I also able to read the status of digital inputs and digital outputs. I can force the multiple digital outputs from available holding register provided in manual by sending the command 1 to turn on output 1 or 4 to turn on input 5, but this is not feasible for me. So i would like to TURN ON one coil at at time just by sending decimal 01 to the register.
But the problem is that in order to force on one digital input at a time, i have to declare the coil type as unsigned int instead of bool and have to send 00 01 command instead of FF 00 to TURN ON.
If i declare as holding register in command properties then the communicator will send the command the as 02 06 00 00 00 01 48 39 (since device address is 02 and function code of write holding register is 06)
I would like to send the command with function code – 05 and want to declare the register as 02 bytes uint. Kindly help how can i achieve this.
Trailing image for your reference, i have declared command as holding register and it is sending command as function code 06. I have clearly shown you the image in the previous post that i would like to send the command as 02 05 00 00 00 01 along with CRC.
Waiting for your help.August 9, 2019 at 2:34 pm #5822
I would like to send the command with function code – 05 and want to declare the register as 02 bytes uint.
According to the Modbus specification, function 05 is used to set a coil. Coil is a one bit, so you can’t set uint by function 05.
To set holding registers, function 06 is used.August 10, 2019 at 7:20 am #5825
I understand that coil is only one bit. But the device which i bought was using two register for coil. I have already sent you image in the first post that i have turned ON a coil by assigning it as UINT.
This device modbus request is not as per standard modbus commands(Only for output coil).
How can i do this in Rapidscada ??August 10, 2019 at 9:01 am #5828
If a device provide flags as uint, likely you need to set them as holding register by a function 06. Isn’t it?
In case you need to mix functions 05 and 06 that is out of Modbus standard, you should modify the driver source code.
- You must be logged in to reply to this topic.