Здравствуйте. Опрашиваю модули МВ210-101, МВ210-212 и запись в модули МУ210-402 с помощью библиотеки OWENCommunication. В чем суть проблемы: при загрузке проекта в контроллер, модули опрашиваются только один раз. Нет циклического опроса. При этом опрос проходит без ошибок, данные получаю. Опрос организовал согласно "CoDeSys V3.5. Настройка обмена по протоколу Modbus. Раздел 5.9.3" при небольших изменениях. Возможно я что-то не учел. Прошу помочь, так как в моем понимании все должно работать. Опрос модулей и запись в модули разделены на 3 POU. Привожу код опроса модулей МВ210-101.
PHP код:
PROGRAM Read_AI_All
VAR
    
// ФБ Открытие коммуникационного блока
    
fbTCPClient_AI1        ocl.TCP_Client;
    
fbTCPClient_AI2        ocl.TCP_Client;
    
fbTCPClient_AI3        ocl.TCP_Client;
    
fbTCPClient_AI4        ocl.TCP_Client;
    
fbTCPClient_AI5        ocl.TCP_Client;
    
fbTCPClient_AI6        ocl.TCP_Client;
    
fbTCPClient_AI7        ocl.TCP_Client;
    
fbTCPClient_AI8        ocl.TCP_Client;
    
fbTCPClient_AI9        ocl.TCP_Client;
    
fbTCPClient_AI10        ocl.TCP_Client;
    
fbTCPClient_AI11        ocl.TCP_Client;
    
fbTCPClient_AI12        ocl.TCP_Client;
    
    
    
// ФБ опроса модуля 
    
fbMV210_101_AI1        ocl.MB_TcpRequest// МВ210-101 AI1 (каналы 1 - 8)
    
fbMV210_101_AI2        ocl.MB_TcpRequest// МВ210-101 AI2 (каналы 1 - 8)
    
fbMV210_101_AI3        ocl.MB_TcpRequest// МВ210-101 AI3 (каналы 1 - 8)
    
fbMV210_101_AI4        ocl.MB_TcpRequest// МВ210-101 AI4 (каналы 1 - 8)
    
fbMV210_101_AI5        ocl.MB_TcpRequest// МВ210-101 AI5 (каналы 1 - 8)
    
fbMV210_101_AI6        ocl.MB_TcpRequest// МВ210-101 AI6 (каналы 1 - 8)
    
fbMV210_101_AI7        ocl.MB_TcpRequest// МВ210-101 AI7 (каналы 1 - 8)
    
fbMV210_101_AI8        ocl.MB_TcpRequest// МВ210-101 AI8 (каналы 1 - 8)
    
fbMV210_101_AI9        ocl.MB_TcpRequest// МВ210-101 AI9 (каналы 1 - 8)
    
fbMV210_101_AI10        ocl.MB_TcpRequest// МВ210-101 AI10 (каналы 1 - 8)
    
fbMV210_101_AI11        ocl.MB_TcpRequest// МВ210-101 AI11 (каналы 1 - 8)
    
fbMV210_101_AI12        ocl.MB_TcpRequest// МВ210-101 AI12 (каналы 1 - 8)
    
    // Данные с модулей МВ210-101
    
Read_AI1    : ARRAY [1..8OF Read_AI;    // Данные с модуля МВ210-101 AI1 (каналы 1 - 8)
    
Read_AI2    : ARRAY [1..8OF Read_AI;    // Данные с модуля МВ210-101 AI2 (каналы 1 - 8)
    
Read_AI3    : ARRAY [1..8OF Read_AI;    // Данные с модуля МВ210-101 AI3 (каналы 1 - 8)
    
Read_AI4    : ARRAY [1..8OF Read_AI;    // Данные с модуля МВ210-101 AI4 (каналы 1 - 8)
    
Read_AI5    : ARRAY [1..8OF Read_AI;    // Данные с модуля МВ210-101 AI5 (каналы 1 - 8)
    
Read_AI6    : ARRAY [1..8OF Read_AI;    // Данные с модуля МВ210-101 AI6 (каналы 1 - 8)
    
Read_AI7    : ARRAY [1..8OF Read_AI;    // Данные с модуля МВ210-101 AI7 (каналы 1 - 8)
    
Read_AI8    : ARRAY [1..8OF Read_AI;    // Данные с модуля МВ210-101 AI8 (каналы 1 - 8)
    
Read_AI9    : ARRAY [1..8OF Read_AI;    // Данные с модуля МВ210-101 AI9 (каналы 1 - 8)
    
Read_AI10    : ARRAY [1..8OF Read_AI;    // Данные с модуля МВ210-101 AI10 (каналы 1 - 8)
    
Read_AI11    : ARRAY [1..8OF Read_AI;    // Данные с модуля МВ210-101 AI11 (каналы 1 - 8)
    
Read_AI12    : ARRAY [1..8OF Read_AI;    // Данные с модуля МВ210-101 AI12 (каналы 1 - 8)
    
    
    
tTimeout_TCPClient    TIME := T#400MS;
    
tTimeOut_TCPRequest    TIME := T#400MS;
    
INT;
    
iAI_Number    INT := 1;
END_VAR



====================================================================

CASE 
iAI_Number OF
    
1
:    //Опрос модуля AI1


fbTCPClient_AI1
    
(
        
xEnable := TRUE,
        
tTimeOut := tTimeout_TCPClient,
        
sIPAddr := '192.168.51.4',
        
uiPort    := 502
    
);
    
IF 
fbTCPClient_AI1.xActive THEN
    fbMV210_101_AI1
    
(
        
xExecute := TRUE,
        
tTimeOut := tTimeOut_TCPRequest,
        
usiRetry := 3,
        
hConnection := fbTCPClient_AI1.hConnection,
        
xIsRtuOverTcpMode := FALSE,
        
usiUnitId := 255,
        
eFuncCode := OCL.MB_FC.READ_HOLDING_REGISTERS,
        
uiDataAddr := 4000,
        
uiDataCount := 24,
        
pData := ADR(Read_AI1),
        
szSize := SIZEOF(Read_AI1)
    );
    
    IF 
fbMV210_101_AI1.xDone THEN
                
        A1_AI1_LT1_1    
:= Read_AI1[1].rValue;
        
A1_AI1_TT1_1_01    := Read_AI1[2].rValue;
        
A1_AI1_TT1_1_02    := Read_AI1[3].rValue;
        
A1_AI1_TT1_1_03    := Read_AI1[4].rValue;
        
A1_AI1_LT1_2    := Read_AI1[5].rValue;
        
A1_AI1_TT1_2_01    := Read_AI1[6].rValue;
        
A1_AI1_TT1_2_02    := Read_AI1[7].rValue;
        
A1_AI1_TT1_2_03    := Read_AI1[8].rValue;
        
        
// Сброс блока после выполнения 
        //fbMV210_101_AI1(xExecute := FALSE);
        // Закрытие ТСР-соединения
        //fbTCPClient_AI1(xEnable := FALSE);
        //iAI_Number := 2;
        //iAI_Number := 3;
    
END_IF
    
// Сброс блока после выполнения или в случае ошибки
    
IF     fbMV210_101_AI1.xDone OR fbMV210_101_AI1.xError    THEN
        fbMV210_101_AI1
.xExecute := FALSE;
        
//iAI_Number := 2;
        
iAI_Number := 3;
    
END_IF
END_IF    
IF fbTCPClient_AI1.xError THEN
    
    fbTCPClient_AI1
(xEnable := FALSE);
    
    
//iAI_Number := 2;
    
iAI_Number := 3;
END_IF

//iAI_Number := 2;
//iAI_Number := 3;

2// Опрос Модуля AI2
        
fbTCPClient_AI2
    
(
        
xEnable := TRUE,
        
tTimeOut := tTimeout_TCPClient,
        
sIPAddr := '192.168.51.5',
        
uiPort    := 502
    
);
    
IF 
fbTCPClient_AI2.xActive THEN
    fbMV210_101_AI2
    
(
        
xExecute := TRUE,
        
tTimeOut := tTimeOut_TCPRequest,
        
usiRetry := 3,
        
hConnection := fbTCPClient_AI2.hConnection,
        
xIsRtuOverTcpMode := FALSE,
        
usiUnitId := 255,
        
eFuncCode := OCL.MB_FC.READ_HOLDING_REGISTERS,
        
uiDataAddr := 4000,
        
uiDataCount := 24,
        
pData := ADR(Read_AI2),
        
szSize := SIZEOF(Read_AI2)
    );
    
    IF 
fbMV210_101_AI2.xDone THEN
                        
        A1_AI2_LT1_3            
:= Read_AI2[1].rValue;
        
A1_AI2_TT1_3_01            := Read_AI2[2].rValue;
        
A1_AI2_TT1_3_02            := Read_AI2[3].rValue;
        
A1_AI2_TT1_3_03            := Read_AI2[4].rValue;
        
RGS4.A1_AI2_LT1_4        := Read_AI2[5].rValue;
        
RGS4.A1_AI2_TT1_4_01    := Read_AI2[6].rValue;
        
        
// Сброс блока после выполнения 
        //fbMV210_101_AI2(xExecute := FALSE);
        //fbTCPClient_AI2(xEnable := FALSE);
        //iAI_Number := 3;
    
END_IF
    
// Сброс блока после выполнения или в случае ошибки
    
IF fbMV210_101_AI2.xDone OR fbMV210_101_AI2.xError THEN
        fbMV210_101_AI2
.xExecute := FALSE;
        
//iAI_Number := 3;
    
END_IF
END_IF    
IF fbTCPClient_AI2.xError THEN
    
    fbTCPClient_AI2
(xEnable := FALSE);
    
    
//iAI_Number := 3;
    
END_IF

iAI_Number 
:= 3;

3:

fbTCPClient_AI3
    
(
        
xEnable := TRUE,
        
tTimeOut := tTimeout_TCPClient,
        
sIPAddr := '192.168.51.6',
        
uiPort    := 502
    
);
    
IF 
fbTCPClient_AI3.xActive THEN
    fbMV210_101_AI3
    
(
        
xExecute := TRUE,
        
tTimeOut := tTimeOut_TCPRequest,
        
usiRetry := 3,
        
hConnection := fbTCPClient_AI3.hConnection,
        
xIsRtuOverTcpMode := FALSE,
        
usiUnitId := 255,
        
eFuncCode := OCL.MB_FC.READ_HOLDING_REGISTERS,
        
uiDataAddr := 4000,
        
uiDataCount := 24,
        
pData := ADR(Read_AI3),
        
szSize := SIZEOF(Read_AI3)
    );
    
    IF 
fbMV210_101_AI3.xDone THEN        
                
        NS1
.A1_AI3_PIT_01    := Read_AI3[1].rValue;
        
NS2.A1_AI3_PIT_02    := Read_AI3[2].rValue;
        
NS2.A1_AI3_PIT_03    := Read_AI3[3].rValue;
        
NS2.A1_AI3_PIT_04    := Read_AI3[5].rValue;
        
        
// Сброс блока после выполнения 
        //fbMV210_101_AI3(xExecute := FALSE);
        //iAI_Number := 4;
        //fbTCPClient_AI3(xEnable := FALSE);
    
END_IF
    
// Сброс блока после выполнения или в случае ошибки
    
IF     fbMV210_101_AI3.xDone OR fbMV210_101_AI3.xError    THEN
        fbMV210_101_AI3
.xExecute := FALSE;
        
//iAI_Number := 4;
    
END_IF
END_IF    
IF fbTCPClient_AI3.xError THEN
    
    fbTCPClient_AI3
(xEnable := FALSE);    
    
//iAI_Number := 4;
    
END_IF

//iAI_Number := 4;
iAI_Number := 5;

4:

fbTCPClient_AI4
    
(
        
xEnable := TRUE,
        
tTimeOut := tTimeout_TCPClient,
        
sIPAddr := '192.168.51.7',
        
uiPort    := 502
    
);
    
IF 
fbTCPClient_AI4.xActive THEN
    fbMV210_101_AI4
    
(
        
xExecute := TRUE,
        
tTimeOut := tTimeOut_TCPRequest,
        
usiRetry := 3,
        
hConnection := fbTCPClient_AI4.hConnection,
        
xIsRtuOverTcpMode := FALSE,
        
usiUnitId := 255,
        
eFuncCode := OCL.MB_FC.READ_HOLDING_REGISTERS,
        
uiDataAddr := 4000,
        
uiDataCount := 24,
        
pData := ADR(Read_AI4),
        
szSize := SIZEOF(Read_AI4)
    );
    
    IF 
fbMV210_101_AI4.xDone THEN        
                
        NS1
.A1_AI4_TT1_01        := Read_AI4[1].rValue;
        
NS1.A1_AI4_TT1_02        := Read_AI4[2].rValue;
        
NS1.A1_AI4_TT1_03        := Read_AI4[3].rValue;
        
NS1.A1_AI4_TT1_04        := Read_AI4[4].rValue;
        
A1_AI4_TT1_05            := Read_AI4[5].rValue;
        
A1_AI4_TT1_06            := Read_AI4[6].rValue;
        
A1_AI4_TT1_07            := Read_AI4[7].rValue;
        
A1_AI4_TT1_08            := Read_AI4[8].rValue;
        
        
// Сброс блока после выполнения 
        //fbMV210_101_AI4(xExecute := FALSE);
        //iAI_Number := 5;
        //fbTCPClient_AI3(xEnable := FALSE);
    
END_IF
    
// Сброс блока после выполнения или в случае ошибки
    
IF     fbMV210_101_AI4.xDone OR fbMV210_101_AI4.xError THEN    
        fbMV210_101_AI4
.xExecute := FALSE;
        
//iAI_Number := 5;
    
END_IF
END_IF    
IF fbTCPClient_AI4.xError THEN
    
    fbTCPClient_AI4
(xEnable := FALSE);
    
    
//iAI_Number := 5;
    
END_IF

iAI_Number 
:= 5;

5:

fbTCPClient_AI5
    
(
        
xEnable := TRUE,
        
tTimeOut := tTimeout_TCPClient,
        
sIPAddr := '192.168.51.8',
        
uiPort    := 502
    
);
    
IF 
fbTCPClient_AI5.xActive THEN
    fbMV210_101_AI5
    
(
        
xExecute := TRUE,
        
tTimeOut := tTimeOut_TCPRequest,
        
usiRetry := 3,
        
hConnection := fbTCPClient_AI5.hConnection,
        
xIsRtuOverTcpMode := FALSE,
        
usiUnitId := 255,
        
eFuncCode := OCL.MB_FC.READ_HOLDING_REGISTERS,
        
uiDataAddr := 4000,
        
uiDataCount := 24,
        
pData := ADR(Read_AI5),
        
szSize := SIZEOF(Read_AI5)
    );
    
    IF 
fbMV210_101_AI5.xDone THEN        
                
        A1_AI5_TT1_09        
:= Read_AI5[1].rValue;
        
A1_AI5_TT1_10        := Read_AI5[2].rValue;
        
NS2.A1_AI5_TT1_11    := Read_AI5[3].rValue;
        
NS2.A1_AI5_TT1_12    := Read_AI5[4].rValue;
        
NS2.A1_AI5_TT1_13    := Read_AI5[5].rValue;
        
NS2.A1_AI5_TT1_14    := Read_AI5[6].rValue;
        
NS2.A1_AI5_TT1_15    := Read_AI5[7].rValue;
        
NS2.A1_AI5_TT1_16    := Read_AI5[8].rValue;
        
        
// Сброс блока после выполнения 
        //fbMV210_101_AI5(xExecute := FALSE);
        //iAI_Number := 6;
        //fbTCPClient_AI3(xEnable := FALSE);
    
END_IF
    
// Сброс блока после выполнения или в случае ошибки
    
IF fbMV210_101_AI5.xDone OR fbMV210_101_AI5.xError THEN    
        fbMV210_101_AI5
.xExecute := FALSE;
        
//iAI_Number := 6;
    
END_IF
END_IF    
IF fbTCPClient_AI5.xError THEN
    
    fbTCPClient_AI5
(xEnable := FALSE);
    
    
//iAI_Number := 6;
    
END_IF

iAI_Number 
:= 6;

6:

fbTCPClient_AI6
    
(
        
xEnable := TRUE,
        
tTimeOut := tTimeout_TCPClient,
        
sIPAddr := '192.168.51.9',
        
uiPort    := 502
    
);
    
IF 
fbTCPClient_AI6.xActive THEN
    fbMV210_101_AI6
    
(
        
xExecute := TRUE,
        
tTimeOut := tTimeOut_TCPRequest,
        
usiRetry := 3,
        
hConnection := fbTCPClient_AI6.hConnection,
        
xIsRtuOverTcpMode := FALSE,
        
usiUnitId := 255,
        
eFuncCode := OCL.MB_FC.READ_HOLDING_REGISTERS,
        
uiDataAddr := 4000,
        
uiDataCount := 24,
        
pData := ADR(Read_AI6),
        
szSize := SIZEOF(Read_AI6)
    );
    
    IF 
fbMV210_101_AI6.xDone THEN        
                
        Other
.A1_AI6_TT1_18        := Read_AI6[1].rValue;
        
Other.A1_AI6_TT1_19        := Read_AI6[2].rValue;
        
//Other.A1_AI6_TT1_20        := Read_AI6[3].rValue;
        
A1_AI2_LT1_3        := Read_AI6[3].rValue;
        
A1_AI2_TT1_3_01        := Read_AI6[4].rValue;
        
A1_AI2_TT1_3_02        := Read_AI6[5].rValue;
        
A1_AI2_TT1_3_03        := Read_AI6[6].rValue;
        
A1_AI4_TT1_05        := Read_AI6[7].rValue;
        
A1_AI4_TT1_06        := Read_AI6[8].rValue;
        
        
// Сброс блока после выполнения 
        //fbMV210_101_AI6(xExecute := FALSE);        
        //iAI_Number := 7;
        //fbTCPClient_AI3(xEnable := FALSE);
    
END_IF    
    
// Сброс блока после выполнения или в случае ошибки
    
IF fbMV210_101_AI6.xDone OR fbMV210_101_AI6.xError THEN        
        fbMV210_101_AI6
.xExecute := FALSE;
        
//iAI_Number := 7;
    
END_IF
END_IF    
IF fbTCPClient_AI6.xError THEN
    
    fbTCPClient_AI6
(xEnable := FALSE);
    
    
//iAI_Number := 7;
    
END_IF

iAI_Number 
:= 7;

7:

fbTCPClient_AI7
    
(
        
xEnable := TRUE,
        
tTimeOut := tTimeout_TCPClient,
        
sIPAddr := '192.168.51.10',
        
uiPort    := 502
    
);
    
IF 
fbTCPClient_AI7.xActive THEN
    fbMV210_101_AI7
    
(
        
xExecute := TRUE,
        
tTimeOut := tTimeOut_TCPRequest,
        
usiRetry := 3,
        
hConnection := fbTCPClient_AI7.hConnection,
        
xIsRtuOverTcpMode := FALSE,
        
usiUnitId := 255,
        
eFuncCode := OCL.MB_FC.READ_HOLDING_REGISTERS,
        
uiDataAddr := 4000,
        
uiDataCount := 24,
        
pData := ADR(Read_AI7),
        
szSize := SIZEOF(Read_AI7)
    );
    
    IF 
fbMV210_101_AI7.xDone THEN        
                
        Other
.A1_AI7_TT2_01        := Read_AI7[1].rValue;
        
A1_AI7_TT2_02            := Read_AI7[2].rValue;
        
A1_AI7_TT2_03            := Read_AI7[3].rValue;
        
A1_AI7_TT2_04            := Read_AI7[4].rValue;
        
A1_AI4_TT1_07            := Read_AI7[5].rValue;
        
A1_AI4_TT1_08            := Read_AI7[6].rValue;
        
NS1.A1_AI4_TT1_01            := Read_AI7[7].rValue;
        
NS1.A1_AI4_TT1_02            := Read_AI7[8].rValue;
        
        
// Сброс блока после выполнения 
        //fbMV210_101_AI7(xExecute := FALSE);
        //iAI_Number := 8;
        //fbTCPClient_AI3(xEnable := FALSE);
    
END_IF
    
// Сброс блока после выполнения или в случае ошибки
    
IF fbMV210_101_AI7.xDone OR fbMV210_101_AI7.xError THEN    
        fbMV210_101_AI7
.xExecute := FALSE;
        
//iAI_Number := 8;
    
END_IF
END_IF    
IF fbTCPClient_AI7.xError THEN
    
    fbTCPClient_AI7
(xEnable := FALSE);
    
    
//iAI_Number := 8;
    
END_IF

iAI_Number 
:= 8;

8:

fbTCPClient_AI8
    
(
        
xEnable := TRUE,
        
tTimeOut := tTimeout_TCPClient,
        
sIPAddr := '192.168.51.11',
        
uiPort    := 502
    
);
    
IF 
fbTCPClient_AI8.xActive THEN
    fbMV210_101_AI8
    
(
        
xExecute := TRUE,
        
tTimeOut := tTimeOut_TCPRequest,
        
usiRetry := 3,
        
hConnection := fbTCPClient_AI8.hConnection,
        
xIsRtuOverTcpMode := FALSE,
        
usiUnitId := 255,
        
eFuncCode := OCL.MB_FC.READ_HOLDING_REGISTERS,
        
uiDataAddr := 4000,
        
uiDataCount := 24,
        
pData := ADR(Read_AI8),
        
szSize := SIZEOF(Read_AI8)
    );
    
    IF 
fbMV210_101_AI8.xDone THEN        
                
        RGS4
.A1_AI8_TT3_01        := Read_AI8[1].rValue;
        
A1_AI8_TT3_02            := Read_AI8[2].rValue;
        
A1_AI8_TT3_03            := Read_AI8[3].rValue;
        
A1_AI8_TT3_04            := Read_AI8[4].rValue;
        
Other.A1_AI8_TT3_05        := Read_AI8[5].rValue;
        
        
// Сброс блока после выполнения 
        //fbMV210_101_AI8(xExecute := FALSE);
        //iAI_Number := 9;
        //fbTCPClient_AI3(xEnable := FALSE);
    
END_IF    
    
// Сброс блока после выполнения или в случае ошибки
    
IF    fbMV210_101_AI8.xDone OR fbMV210_101_AI8.xError THEN 
        fbMV210_101_AI8
.xExecute := FALSE;
        
//iAI_Number := 9;
    
END_IF
END_IF    
IF fbTCPClient_AI8.xError THEN
    
    fbTCPClient_AI8
(xEnable := FALSE);
    
    
//iAI_Number := 9;
    
END_IF

iAI_Number 
:= 9;

9:

fbTCPClient_AI9
    
(
        
xEnable := TRUE,
        
tTimeOut := tTimeout_TCPClient,
        
sIPAddr := '192.168.51.12',
        
uiPort    := 502
    
);
    
IF 
fbTCPClient_AI9.xActive THEN
    fbMV210_101_AI9
    
(
        
xExecute := TRUE,
        
tTimeOut := tTimeOut_TCPRequest,
        
usiRetry := 3,
        
hConnection := fbTCPClient_AI9.hConnection,
        
xIsRtuOverTcpMode := FALSE,
        
usiUnitId := 255,
        
eFuncCode := OCL.MB_FC.READ_HOLDING_REGISTERS,
        
uiDataAddr := 4000,
        
uiDataCount := 24,
        
pData := ADR(Read_AI9),
        
szSize := SIZEOF(Read_AI9)
    );
    
    IF 
fbMV210_101_AI9.xDone THEN        
                
        Other
.A1_AI9_TT4_01        := Read_AI9[1].rValue;
        
Other.A1_AI9_TT4_02        := Read_AI9[2].rValue;
        
RGS4.A1_AI2_LT1_4        := Read_AI9[6].rValue;
        
        
        
// Сброс блока после выполнения 
        //fbMV210_101_AI9(xExecute := FALSE);
        //iAI_Number := 10;
        //fbTCPClient_AI3(xEnable := FALSE);
    
END_IF    
    
// Сброс блока после выполнения или в случае ошибки
    
IF     fbMV210_101_AI9.xDone OR fbMV210_101_AI9.xError THEN 
        fbMV210_101_AI9
.xExecute := FALSE;
        
//iAI_Number := 10;
    
END_IF
END_IF    
IF fbTCPClient_AI9.xError THEN
    
    fbTCPClient_AI9
(xEnable := FALSE);
    
    
//iAI_Number := 10;
    
END_IF

iAI_Number 
:= 10;

10:

fbTCPClient_AI10
    
(
        
xEnable := TRUE,
        
tTimeOut := tTimeout_TCPClient,
        
sIPAddr := '192.168.51.13',
        
uiPort    := 502
    
);
    
IF 
fbTCPClient_AI10.xActive THEN
    fbMV210_101_AI10
    
(
        
xExecute := TRUE,
        
tTimeOut := tTimeOut_TCPRequest,
        
usiRetry := 3,
        
hConnection := fbTCPClient_AI10.hConnection,
        
xIsRtuOverTcpMode := FALSE,
        
usiUnitId := 255,
        
eFuncCode := OCL.MB_FC.READ_HOLDING_REGISTERS,
        
uiDataAddr := 4000,
        
uiDataCount := 24,
        
pData := ADR(Read_AI10),
        
szSize := SIZEOF(Read_AI10)
    );
    
    IF 
fbMV210_101_AI10.xDone THEN        
                
        Other
.A1_AI10_TT1_21        := Read_AI10[1].rValue;
        
RGS4.A1_AI2_TT1_4_01        := Read_AI10[2].rValue;
        
NS1.A1_AI4_TT1_03            := Read_AI10[3].rValue;
        
NS1.A1_AI4_TT1_04            := Read_AI10[4].rValue;
        
Other.A1_AI10_TT1_25        := Read_AI10[5].rValue;
        
Other.A1_AI10_TT1_26        := Read_AI10[6].rValue;
        
Other.A1_AI10_TT1_27        := Read_AI10[7].rValue;
        
        
// Сброс блока после выполнения 
        //fbMV210_101_AI10(xExecute := FALSE);        
        //iAI_Number := 11;
        //fbTCPClient_AI3(xEnable := FALSE);
    
END_IF    
    
// Сброс блока после выполнения или в случае ошибки
    
IF     fbMV210_101_AI10.xDone OR fbMV210_101_AI10.xError THEN    
        fbMV210_101_AI10
.xExecute := FALSE;
        
//iAI_Number := 11;
    
END_IF
END_IF    
IF fbTCPClient_AI10.xError THEN
    
    fbTCPClient_AI10
(xEnable := FALSE);
    
    
//iAI_Number := 11;
    
END_IF

//iAI_Number := 11;
iAI_Number := 1;

11:

fbTCPClient_AI11
    
(
        
xEnable := TRUE,
        
tTimeOut := tTimeout_TCPClient,
        
sIPAddr := '192.168.51.14',
        
uiPort    := 502
    
);
    
IF 
fbTCPClient_AI11.xActive THEN
    fbMV210_101_AI11
    
(
        
xExecute := TRUE,
        
tTimeOut := tTimeOut_TCPRequest,
        
usiRetry := 3,
        
hConnection := fbTCPClient_AI11.hConnection,
        
xIsRtuOverTcpMode := FALSE,
        
usiUnitId := 255,
        
eFuncCode := OCL.MB_FC.READ_HOLDING_REGISTERS,
        
uiDataAddr := 4000,
        
uiDataCount := 24,
        
pData := ADR(Read_AI11),
        
szSize := SIZEOF(Read_AI11)
    );
    
    IF 
fbMV210_101_AI11.xDone THEN
        
    
    
        
// Сброс блока после выполнения 
        //fbMV210_101_AI11(xExecute := FALSE);                    
        //iAI_Number := 12;
        //fbTCPClient_AI3(xEnable := FALSE);
    
END_IF    
    
// Сброс блока после выполнения или в случае ошибки
    
IF fbMV210_101_AI11.xDone OR fbMV210_101_AI11.xError THEN    
        fbMV210_101_AI11
.xExecute := FALSE;
        
//iAI_Number := 12;
    
END_IF
END_IF    
IF fbTCPClient_AI11.xError THEN
    
    fbTCPClient_AI11
(xEnable := FALSE);
    
    
//iAI_Number := 12;
    
END_IF

iAI_Number 
:= 12;

12:

fbTCPClient_AI12
    
(
        
xEnable := TRUE,
        
tTimeOut := tTimeout_TCPClient,
        
sIPAddr := '192.168.51.15',
        
uiPort    := 502
    
);
    
IF 
fbTCPClient_AI12.xActive THEN
    fbMV210_101_AI12
    
(
        
xExecute := TRUE,
        
tTimeOut := tTimeOut_TCPRequest,
        
usiRetry := 3,
        
hConnection := fbTCPClient_AI12.hConnection,
        
xIsRtuOverTcpMode := FALSE,
        
usiUnitId := 255,
        
eFuncCode := OCL.MB_FC.READ_HOLDING_REGISTERS,
        
uiDataAddr := 4000,
        
uiDataCount := 24,
        
pData := ADR(Read_AI12),
        
szSize := SIZEOF(Read_AI12)
    );
    
    IF 
fbMV210_101_AI12.xDone THEN
        
    
        
        
// Сброс блока после выполнения 
        //fbMV210_101_AI12(xExecute := FALSE);                
        //iAI_Number := 1;
        //fbTCPClient_AI3(xEnable := FALSE);
    
END_IF    
    
// Сброс блока после выполнения или в случае ошибки
    
IF     fbMV210_101_AI12.xDone OR fbMV210_101_AI12.xError THEN    
        fbMV210_101_AI12
.xExecute := FALSE;
        
//iAI_Number := 1;
    
END_IF
END_IF    
IF fbTCPClient_AI12.xError THEN
    
    fbTCPClient_AI12
(xEnable := FALSE);
    
    
//iAI_Number := 1;
    
END_IF

iAI_Number 
:= 1;

END_CASE