2 Instruction Descriptions
Internal
Vari-
ables
ModbusCmdRequest-
Trigger
SlaveAdr
DevicePort
IF ( (ModbusCmdRequestTrigger=TRUE)
AND (ModbusStage=INT#0) ) THEN
SlaveAdr := 1;
ModbusCmdDat[1]:=BYTE#16#03; // Function code (read variable)
ModbusCmdDat[2]:=BYTE#16#00; // Reading start address (H)
ModbusCmdDat[3]:=BYTE#16#20; // Reading start address (L)
ModbusCmdDat[4]:=BYTE#16#00; // Number of data (H)
ModbusCmdDat[5]:=BYTE#16#01; // Number of data (L)
ModbusDatSize:=5;
ModbusStage:=1;
DevicePort.DeviceType:=_eDEVICE_TYPE#_DeviceNXUnit;
DevicePort.NxUnit:=N1_Node_location_information;
DevicePort.PortNo:=2;
END_IF
// General command sending/receiving
NX_ModbusRtuCmd_instance( Execute:=ModbusCmdRequestTrigger,
IF ModbusStage=1 THEN
ModbusCmdRequestTrigger:=FALSE;
// Error occurred.
IF (Error<>FALSE) THEN
ModbusStage:=0;
ELSE
ModbusStage:=2;
END_IF;
ELSIF (ModbusStage=2) THEN
// Reception completed.
IF (Error=FALSE) AND (Done=TRUE) THEN
// Received command interpretation
ModbusStage:=0;
// Reception processing in progress
ELSIF (Busy=TRUE) THEN
// Reception failed.
ELSE
ModbusStage:=0;
END_IF;
END_IF;
2-1192
Variable
Data type
BOOL
UINT
_sDEVICE_PORT
DevicePort:=DevicePort,
SlaveAdr:=SlaveAdr,
CmdDat:=ModbusCmdDat[1],
CmdSize:=ModbusDatSize,
RespDat:=RspDat[0],
Done=>Done,
Busy=>Busy,
Error=>Error,
ErrorID=>ErrorID,
RespSize=>RspSize);
Initial value
FALSE
UINT#0
// Slave address
NY-series Instructions Reference Manual (W560)
Comment
Execution condition
Slave address
Port settings