IF NOT xLQ1_L_Up THEN // Левый верхний концевик
eLQ_State := 10;
END_IF
IF NOT xLQ2_L_Down THEN // Левый нижний концевик
eLQ_State := 20;
END_IF
IF NOT xLQ3_R_Up THEN // Правый верхний концевик
eLQ_State := 30;
END_IF
IF NOT xLQ4_R_Down THEN // Правый нижний концевик
eLQ_State := 40;
END_IF
IF xLQ5_Open THEN // Концевик границы открытия пиноли
xOpen_DO := TRUE;
ELSE // Сильно раскрыта пиноль
xOpen_DO := FALSE;
uiErrorCode := 14;
END_IF
IF xLQ6_Close THEN // Концевик границы закрытия пиноли
xClose_DO := TRUE;
ELSE // Сильно зажата пиноль
xClose_DO := FALSE;
uiErrorCode := 15;
END_IF
IF xLQ1_L_Up AND xLQ3_R_Up THEN // Верхнии концевики исправны
eLQ_State := 50;
END_IF
IF xLQ2_L_Down AND xLQ4_R_Down THEN // Нижнии концевики исправны
eLQ_State := 60;
END_IF
CASE eLQ_State OF
10: // Не исправен верхний левый концевик
xL_Up_DO := FALSE;
xR_Up_DO := FALSE;
uiErrorCode := 10;
astErrorData[10].xAlarm := TRUE;
astErrorData[10].wsMessage := "Не исправен верхний левый концевик";
20: // Не исправен нижний левый концевик
xL_Down_DO := FALSE;
xR_Down_DO := FALSE;
uiErrorCode := 11;
astErrorData[11].xAlarm := TRUE;
astErrorData[11].wsMessage := "Не исправен нижний левый концевик";
30: // Не исправен верхний правый концевик
xL_Up_DO := FALSE;
xR_Up_DO := FALSE;
uiErrorCode := 12;
astErrorData[12].xAlarm := TRUE;
astErrorData[12].wsMessage := "Не исправен верхний правый концевик";
40: // Не исправен нижний левый концевик
xL_Down_DO := FALSE;
xR_Down_DO := FALSE;
uiErrorCode := 13;
astErrorData[13].xAlarm := TRUE;
astErrorData[13].wsMessage := "Не исправен нижний левый концевик";
50: // Верхнии концевики исправны
xL_Up_DO := TRUE;
xL_Down_DO := TRUE;
60: // Нижнии концевики исправны
xR_Up_DO := TRUE;
xR_Down_DO := TRUE;
END_CASE