Код:PROGRAM PLC_PRG VAR iStateCOM: INT := 0; fbComControl: OCL.COM_Control; // ФБ настройки и открытия порта COM fbMBRead: OCL.MB_SerialRequest; arrAI1: ARRAY [0..1] OF WORD; VAL: REAL; iError: INT := 0; END_VARКод:CASE iStateCOM OF 0: fbComControl ( xEnable := TRUE, udiComPort := 5, udiBaudrate := 9600, udiByteSize := 8, eParity := OCL.COM_PARITY.NONE, eStopBit := OCL.COM_STOPBIT.ONE ); IF fbComControl.xError THEN iStateCOM := 2; fbComControl(xEnable := FALSE); END_IF IF fbComControl.xDone THEN iStateCOM := 1; END_IF 1: fbMBRead ( xExecute := fbComControl.xActive, tTimeout := T#200MS, usiRetry := 0, hCom := fbComControl.hCom, xIsAsciiMode := FALSE , usiSlaveId := 10, eFuncCode := OCL.MB_FC.READ_HOLDING_REGISTERS, uiDataAddr := 4105, uiDataCount := 2, pData := ADR(arrAI1), szSize := SIZEOF(arrAI1) ); IF fbMBRead.xDone OR fbMBRead.xError THEN iError := fbmbread.eError; VAL := OCL.WORD2_TO_REAL(arrAI1[1], arrAI1[0], FALSE); fbMBRead(xExecute := FALSE); iStateCOM := 2; END_IF 2: iStateCOM := 0; END_CASE




