Здравствуйте. Опрашиваю модули МВ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..8] OF Read_AI;    // Данные с модуля МВ210-101 AI1 (каналы 1 - 8)
    
Read_AI2    : ARRAY [1..8] OF Read_AI;    // Данные с модуля МВ210-101 AI2 (каналы 1 - 8)
    
Read_AI3    : ARRAY [1..8] OF Read_AI;    // Данные с модуля МВ210-101 AI3 (каналы 1 - 8)
    
Read_AI4    : ARRAY [1..8] OF Read_AI;    // Данные с модуля МВ210-101 AI4 (каналы 1 - 8)
    
Read_AI5    : ARRAY [1..8] OF Read_AI;    // Данные с модуля МВ210-101 AI5 (каналы 1 - 8)
    
Read_AI6    : ARRAY [1..8] OF Read_AI;    // Данные с модуля МВ210-101 AI6 (каналы 1 - 8)
    
Read_AI7    : ARRAY [1..8] OF Read_AI;    // Данные с модуля МВ210-101 AI7 (каналы 1 - 8)
    
Read_AI8    : ARRAY [1..8] OF Read_AI;    // Данные с модуля МВ210-101 AI8 (каналы 1 - 8)
    
Read_AI9    : ARRAY [1..8] OF Read_AI;    // Данные с модуля МВ210-101 AI9 (каналы 1 - 8)
    
Read_AI10    : ARRAY [1..8] OF Read_AI;    // Данные с модуля МВ210-101 AI10 (каналы 1 - 8)
    
Read_AI11    : ARRAY [1..8] OF Read_AI;    // Данные с модуля МВ210-101 AI11 (каналы 1 - 8)
    
Read_AI12    : ARRAY [1..8] OF Read_AI;    // Данные с модуля МВ210-101 AI12 (каналы 1 - 8)
    
    
    
tTimeout_TCPClient    : TIME := T#400MS;
    
tTimeOut_TCPRequest    : TIME := T#400MS;
    
i : 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