Я вот скольки значную логику использую):Код://Визуализация состояния механизмов FOR Ind_03:= 1 TO 4 DO IF NOT MEC[Ind_03].STA_REA AND NOT MEC[Ind_03].STA_ALA THEN Ind_00X[Ind_03]:= 1; Ind_00Y[Ind_03]:= FALSE; //"НЕ В ГОТОВНОСТИ"/"" ELSIF MEC[Ind_03].STA_REA AND NOT MEC[Ind_03].STA_ALA AND NOT MEC[Ind_03].COM_OF AND NOT MEC[Ind_03].INP_OF AND NOT MEC[Ind_03].COM_CR AND NOT MEC[Ind_03].INP_CR THEN Ind_00X[Ind_03]:= 2; Ind_00Y[Ind_03]:= FALSE; //"В ГОТОВНОСТИ"/"ОСТАНОВЛЕН" ELSIF MEC[Ind_03].STA_REA AND NOT MEC[Ind_03].STA_ALA AND MEC[Ind_03].COM_OF AND MEC[Ind_03].OUT_ALA THEN Ind_00X[Ind_03]:= 3; Ind_00Y[Ind_03]:= FALSE; //"ПРЕДПУСКОВАЯ СИГН-Я"/"ВПЕРЕД" ELSIF MEC[Ind_03].STA_REA AND NOT MEC[Ind_03].STA_ALA AND MEC[Ind_03].COM_CR AND MEC[Ind_03].OUT_ALA THEN Ind_00X[Ind_03]:= 4; Ind_00Y[Ind_03]:= FALSE; //"ПРЕДПУСКОВАЯ СИГН-Я"/"НАЗАД" ELSIF MEC[Ind_03].STA_REA AND NOT MEC[Ind_03].STA_ALA AND MEC[Ind_03].COM_OF AND NOT MEC[Ind_03].INP_OF AND MEC[Ind_03].PAR_OF THEN Ind_00X[Ind_03]:= 5; Ind_00Y[Ind_03]:= FALSE; //"ЗАПУСКАЕТСЯ"/"ВПЕРЕД" ELSIF MEC[Ind_03].STA_REA AND NOT MEC[Ind_03].STA_ALA AND MEC[Ind_03].COM_CR AND NOT MEC[Ind_03].INP_CR AND MEC[Ind_03].PAR_CR THEN Ind_00X[Ind_03]:= 6; Ind_00Y[Ind_03]:= FALSE; //"ЗАПУСКАЕТСЯ"/"НАЗАД" ELSIF MEC[Ind_03].STA_REA AND NOT MEC[Ind_03].STA_ALA AND MEC[Ind_03].COM_OF AND MEC[Ind_03].INP_OF AND MEC[Ind_03].PAR_OF THEN Ind_00X[Ind_03]:= 7; Ind_00Y[Ind_03]:= FALSE; //"В РАБОТЕ"/"ВПЕРЕД" ELSIF MEC[Ind_03].STA_REA AND NOT MEC[Ind_03].STA_ALA AND MEC[Ind_03].COM_CR AND MEC[Ind_03].INP_CR AND MEC[Ind_03].PAR_CR THEN Ind_00X[Ind_03]:= 8; Ind_00Y[Ind_03]:= FALSE; //"В РАБОТЕ"/"НАЗАД" ELSIF MEC[Ind_03].STA_REA AND NOT MEC[Ind_03].STA_ALA AND NOT MEC[Ind_03].COM_OF AND MEC[Ind_03].INP_OF AND MEC[Ind_03].PAR_OF THEN Ind_00X[Ind_03]:= 9; Ind_00Y[Ind_03]:= FALSE; //"ОСТАНАВЛИВАЕТСЯ"/"ВПЕРЕД" ELSIF MEC[Ind_03].STA_REA AND NOT MEC[Ind_03].STA_ALA AND NOT MEC[Ind_03].COM_CR AND MEC[Ind_03].INP_CR AND MEC[Ind_03].PAR_CR THEN Ind_00X[Ind_03]:= 10; Ind_00Y[Ind_03]:= FALSE; //"ОСТАНАВЛИВАЕТСЯ"/"НАЗАД" ELSIF NOT MEC[Ind_03].STA_REA AND MEC[Ind_03].STA_ALA AND NOT MEC[Ind_03].STA_RUN AND MEC_ALA_MEM_CON[Ind_03] THEN Ind_00X[Ind_03]:= 11; Ind_00Y[Ind_03]:= TRUE; //"АВАРИЯ"/"НЕ В ГОТОВНОСТИ" - активная ELSIF NOT MEC[Ind_03].STA_REA AND MEC[Ind_03].STA_ALA AND MEC[Ind_03].STA_RUN AND MEC[Ind_03].INP_OF AND MEC_ALA_MEM_CON[Ind_03] THEN Ind_00X[Ind_03]:= 12; Ind_00Y[Ind_03]:= TRUE; //"АВАРИЯ"/"ВПЕРЕД" - активная ELSIF NOT MEC[Ind_03].STA_REA AND MEC[Ind_03].STA_ALA AND MEC[Ind_03].STA_RUN AND MEC[Ind_03].INP_CR AND MEC_ALA_MEM_CON[Ind_03] THEN Ind_00X[Ind_03]:= 13; Ind_00Y[Ind_03]:= TRUE; //"АВАРИЯ"/"НАЗАД" - активная ELSIF NOT MEC[Ind_03].STA_REA AND MEC[Ind_03].STA_ALA AND NOT MEC[Ind_03].STA_RUN AND MEC_ALA_CUR[Ind_03] THEN Ind_00X[Ind_03]:= 14; Ind_00Y[Ind_03]:= FALSE; //"АВАРИЯ"/"НЕ В ГОТОВНОСТИ" ELSIF NOT MEC[Ind_03].STA_REA AND MEC[Ind_03].STA_ALA AND MEC[Ind_03].STA_RUN AND MEC[Ind_03].INP_OF AND MEC_ALA_CUR[Ind_03] THEN Ind_00X[Ind_03]:= 15; Ind_00Y[Ind_03]:= FALSE; //"АВАРИЯ"/"ВПЕРЕД" ELSIF NOT MEC[Ind_03].STA_REA AND MEC[Ind_03].STA_ALA AND MEC[Ind_03].STA_RUN AND MEC[Ind_03].INP_CR AND MEC_ALA_CUR[Ind_03] THEN Ind_00X[Ind_03]:= 16; Ind_00Y[Ind_03]:= FALSE; //"АВАРИЯ"/"НАЗАД" ELSE Ind_00X[Ind_03]:= 0; Ind_00Y[Ind_03]:= FALSE; //"НЕ ОПРЕДЕЛЕНО"/"НЕ ОПРЕДЕЛЕНО" END_IF END_FOR




Ответить с цитированием