set_modbus_output(iobus, value, time=None, val2=None)
Features
This function sends the signal to an external Modbus system.
Function Code 05 Write Single Coil Register
Function Code 06 Write Signle Holding Register
Parameters
Parameter Name | Data Type | Default Value | Description |
iobus | string | - | modbus name (set in the TP) |
value | int | - | Value for Modbus coil register.
|
Value for Modbus holding register | |||
time | int (or float) | None | User-specified delayed time value |
val2 | int | None | Value to be applied after user-specified delay time
|
Note
When registered as a multiple signal, it is available by adding address value index to signal name.
Return
Value | Description |
---|---|
0 | Success |
Negative value | Failed |
Exception
Exception | Description |
---|---|
DR_Error (DR_ERROR_TYPE) | Parameter data type error occurred |
DR_Error (DR_ERROR_VALUE) | Parameter value is invalid |
DR_Error (DR_ERROR_RUNTIME) | C extension module error occurred |
DR_Error (DR_ERROR_STOP) | Program terminated forcefully |
Example
#Modbus Coil Registers are registered as "do1" and "do2".
set_modbus_output("do1", ON)
set_modbus_output("do2", OFF)
#Modbus Holding Registers are registered as "reg1" and "reg2".
set_modbus_output("reg1", 10)
set_modbus_output("reg2", 24)
#Modbus multiple signal is registered as “multi”(start address=10, cnt=2).
#“multi_10” & “multi_11” abailable
set_modbus_output("multi_10", 24)
set_modbus_output("multi_11", 65535)
# When use timeout
# value defined 100 and after timeout 3sec, value changes to 50
set_modbus_output("reg1-to", 100, 3, 50)
# value defined 50 and after timeout 1sec, value changes to 5
set_modbus_output("reg2-to", 50, 1, 5)