FB_MBDiagnose (Modbus function 8)
The diagnosis function provides a series of tests for checking the communication system between the master and the slave and for examining a variety of internal error states within the slave.
VAR_INPUT
VAR_INPUT
sIPAddr : STRING(15);
nTCPPort : UINT:= MODBUS_TCP_PORT;
nUnitID : BYTE:=16#FF;
nSubFnc : WORD;
nWriteData : WORD;
bExecute : BOOL;
tTimeout : TIME;
END_VAR
sIPAddr : Is a string containing the IP address of the target device.
nTCPPort : Port number of the target device.
nUnitID: Identification number of a serial sub-network device. If a device is addressed directly via TCP/IP, this value must be 16#FF.
nSubFnc : The sub-function to be executed.
nWriteData: The data word to be written.
bExecute: The function block is activated by a rising edge at this input.
tTimeout: States the length of the timeout that may not be exceeded by execution of the ADS command.
VAR_OUTPUT
VAR_OUTPUT
bBusy : BOOL;
bError : BOOL;
nErrId : UDINT;
nReadData : WORD;
END_VAR
bBusy : When the function block is activated this output is set. It remains set until an acknowledgement is received.
bError : If an ADS error should occur during the transfer of the command, then this output is set once the bBusy output is reset.
nErrId : Supplies the ADS error number when the bError output is set.
nReadData: Supplies the read data word.
Function specific ADS error code | Possible reason |
---|---|
0x8001 | Modbus function not implemented |
0x8002 | Invalid address or length |
0x8003 | Invalid parameters: - wrong number of registers |
0x8004 | Modbus server error |
Example of calling the block in FBD:
PROGRAM Test
VAR
fbDiagnose : FB_MBDiagnose;
bDiagnose : BOOL;
bDiagnoseBusy : BOOL;
bDiagnoseError : BOOL;
nDiagnoseErrorId : UDINT;
nSubFnc : WORD;
nReadData : WORD;
nWriteData : WORD;
END_VAR
After rising edge of "bExecute" and successful execution of the diagnosis command, nReadData contains the read data word.
Requirements
Development environment |
Target system type |
PLC libraries to be linked |
---|---|---|
TwinCAT v3.0.0 |
PC or CX (x86) |
Tc2_ModbusSrv |