FB_MBWriteSingleCoil (Modbus function 5)

This function is used to write to a digital output (coil). Bit access is used.
Inputs
VAR_INPUT
sIPAddr : STRING(15);
nTCPPort : UINT:= MODBUS_TCP_PORT;
nUnitID : BYTE:=16#FF;
nMBAddr : WORD;
nValue : WORD;
bExecute : BOOL;
tTimeout : TIME;
END_VAR
Name | Type | Description |
---|---|---|
sIPAddr | STRING (15) | Is a string containing the IP address of the target device. |
nTCPPort | UINT | Port number of the target device. |
nUnitID | BYTE | Identification number of a serial sub-network device. If a device is addressed directly via TCP/IP, this value must be 16#FF. |
nMBAddr | WORD | Address of the digital output (bit offset). |
nValue | WORD | Value to be written into the digital output. The value 16#FF00 switches the output on, 16#0000 switches it off. |
bExecute | BOOL | The function block is enabled by a rising edge at this input. |
tTimeout | TIME | States the length of the timeout that may not be exceeded by execution of the ADS command. |
Outputs
VAR_OUTPUT
bBUSY : BOOL;
bError : BOOL;
nErrId : UDINT;
END_VAR
Name | Type | Description |
---|---|---|
bBusy | BOOL | When the function block is enabled, this output is set and remains set until a feedback is received. |
bError | BOOL | If an ADS error should occur during the transfer of the command, then this output is set once the bBusy output is reset. |
nErrId | UDINT | Returns the ADS error number when the bError output is set. |
Sample of calling the function block in FBD
PROGRAM Test
VAR
fbWriteSingleCoil : FB_MBWriteSingleCoil;
bWriteCoil : BOOL;
bWriteCoilBusy : BOOL;
bWriteCoilError : BOOL;
nWriteCoilErrorId : UDINT;
nMBAddr : WORD := 3;
nValue : WORD := 16#FF00;
END_VAR

After a rising edge of "bExecute" and successful execution of the WriteSingleCoil command, digital output 4 is switched on.
Requirements
Development environment |
Target system type |
PLC libraries to be linked |
---|---|---|
TwinCAT v3.0.0 |
PC or CX (x86) |
Tc2_ModbusSrv |