Код:
PROGRAM PLC_PRG
VAR
fbComControl: OCL.COM_Control;
fbMbSerialSlave: OCL.MB_SerialSlave;
awSlaveData: ARRAY [0..15] OF WORD;
awSpyData: ARRAY [0..10] OF WORD;
awNeedData: ARRAY [0..10] OF WORD;
xNewRequestCounter: UINT := 0;
END_VAR
//////////////////////////////////
fbComControl
(
xEnable := TRUE,
udiComPort := 2,
udiBaudrate := 9600,
udiByteSize := 8,
eParity := OCL.COM_PARITY.NONE,
eStopBit := OCL.COM_STOPBIT.ONE
);
fbMbSerialSlave
(
xEnable := fbComControl.xActive,
hCom := fbComControl.hCom,
usiSlaveId := 2,
pData := ADR(awSlaveData),
szSize := SIZEOF(awSlaveData),
xSpyMode := TRUE,
pSpyData := ADR(awSpyData),
szSpyData := SIZEOF(awSpyData),
);
IF fbMbSerialSlave.xNewRequest THEN
xNewRequestCounter := xNewRequestCounter + 1;
IF fbMbSerialSlave.stRequestInfo.usiSlaveId = 2 AND
fbMbSerialSlave.stRequestInfo.eFuncCode = OCL.MB_FC.READ_HOLDING_REGISTERS AND
fbMbSerialSlave.stRequestInfo.uiDataAddr = 16#1E
THEN
awNeedData := awSpyData;
awNeedData[0] := awSpyData[0];
awNeedData[1] := awSpyData[1];
END_IF
END_IF