/
George_Smith
/
RuSTy
Обзор
Документация
Войти
/
George_Smith
/
RuSTy
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
Peter
InputTS.ResourceProject.st
251 строка
22 KB
Peter Korobeynikov
FB-CALL TESTING
25 янв 2026, 17:25
25 янв 2026, 17:25
feb4daa
Код
Авторство
О чём код?
PROGRAM InputTS VAR TimerCount: ARRAY[1..500] OF UINT; TimerStart: ARRAY[1..500] OF BOOL; TempDIn: ARRAY[1..500] OF BOOL; DInModulPrev: ARRAY[1..500] OF BOOL; DInModul: ARRAY[1..500] OF BOOL; J: UINT; I: UINT; Count: INT; Count2: INT; Messenger: Messenger; Start: BOOL; END_VAR IF Start THEN CASE Count OF 1: TmTS[300] := TRUE; 2,3: TmTS[300] := FALSE; END_CASE; Count := Count +1; IF COUNT > 3 AND Count2 < 10 THEN Count := 1; Count2 := Count2 + 1; END_IF; ELSE Count := 0; Count2 := 0; END_IF; IF NOT Imitator THEN DInModul[1] := DI1_01 ; (* Наличие напряжения ~220В на вводе 1 *) DInModul[2] := DI1_02 ; (* Исправность оборудования питания ввода 1 *) DInModul[3] := DI1_03 ; (* Наличие напряжения ~220В на вводе 2 *) DInModul[4] := DI1_04 ; (* Исправность оборудования питания ввода 2 *) DInModul[5] := DI1_05 ; (* Общая исправность системы питания *) DInModul[6] := DI1_06 ; (* Дверь шкафа открыта *) DInModul[7] := DI1_07 ; (* Неисправность изоляции внешних цепей питания *) DInModul[8] := DI1_08 ; (* Резерв *) DInModul[9] := DI1_09 ; (* КВО замкнут (ТС). Задвижка №014.3 *) DInModul[10] := DI1_10 ; (* КВЗ замкнут (ТС). Задвижка №014.3 *) DInModul[11] := DI1_11 ; (* МПО включен (ТС). Задвижка №014.3 *) DInModul[12] := DI1_12 ; (* МПЗ включен (ТС). Задвижка №014.3 *) DInModul[13] := DI1_13 ; (* ВММО(ТС)/Сработала муфта (ТС). Задвижка №014.3 *) DInModul[14] := DI1_14 ; (* ВММЗ(ТС)/Авария привода (ТС). Задвижка №014.3 *) DInModul[15] := DI1_15 ; (* Дист. управление с БУ (ТС) (резерв). Задвижка №014.3 *) DInModul[16] := DI1_16 ; (* Дист. управление с БРУ (ТС). Задвижка №014.3 *) DInModul[17] := DI1_17 ; (* КВО замкнут (ТС). Задвижка №014.7 *) DInModul[18] := DI1_18 ; (* КВЗ замкнут (ТС). Задвижка №014.7 *) DInModul[19] := DI1_19 ; (* МПО включен (ТС). Задвижка №014.7 *) DInModul[20] := DI1_20 ; (* МПЗ включен (ТС). Задвижка №014.7 *) DInModul[21] := DI1_21 ; (* ВММО(ТС)/Сработала муфта (ТС). Задвижка №014.7 *) DInModul[22] := DI1_22 ; (* ВММЗ(ТС)/Авария привода (ТС). Задвижка №014.7 *) DInModul[23] := DI1_23 ; (* Дист. управление с БУ (ТС) (резерв). Задвижка №014.7 *) DInModul[24] := DI1_24 ; (* Дист. управление с БРУ (ТС). Задвижка №014.7 *) DInModul[25] := DI1_25 ; (* КВО замкнут (ТС). Задвижка №014.9 *) DInModul[26] := DI1_26 ; (* КВЗ замкнут (ТС). Задвижка №014.9 *) DInModul[27] := DI1_27 ; (* МПО включен (ТС). Задвижка №014.9 *) DInModul[28] := DI1_28 ; (* МПЗ включен (ТС). Задвижка №014.9 *) DInModul[29] := DI1_29 ; (* ВММО(ТС)/Сработала муфта (ТС). Задвижка №014.9 *) DInModul[30] := DI1_30 ; (* ВММЗ(ТС)/Авария привода (ТС). Задвижка №014.9 *) DInModul[31] := DI1_31 ; (* Дист. управление с БУ (ТС) (резерв). Задвижка №014.9 *) DInModul[32] := DI1_32 ; (* Дист. управление с БРУ (ТС). Задвижка №014.9 *) DInModul[33] := DI2_01 ; (* КВО замкнут (ТС). Задвижка №014.12 *) DInModul[34] := DI2_02 ; (* КВЗ замкнут (ТС). Задвижка №014.12 *) DInModul[35] := DI2_03 ; (* МПО включен (ТС). Задвижка №014.12 *) DInModul[36] := DI2_04 ; (* МПЗ включен (ТС). Задвижка №014.12 *) DInModul[37] := DI2_05 ; (* ВММО(ТС)/Сработала муфта (ТС). Задвижка №014.12 *) DInModul[38] := DI2_06 ; (* ВММЗ(ТС)/Авария привода (ТС). Задвижка №014.12 *) DInModul[39] := DI2_07 ; (* Дист. управление с БУ (ТС) (резерв). Задвижка №014.12 *) DInModul[40] := DI2_08 ; (* Дист. управление с БРУ (ТС). Задвижка №014.12 *) DInModul[41] := DI2_09 ; (* КВО замкнут (ТС). Задвижка № резерв *) DInModul[42] := DI2_10 ; (* КВЗ замкнут (ТС). Задвижка № резерв *) DInModul[43] := DI2_11 ; (* МПО включен (ТС). Задвижка № резерв *) DInModul[44] := DI2_12 ; (* МПЗ включен (ТС). Задвижка № резерв *) DInModul[45] := DI2_13 ; (* ВММО(ТС)/Сработала муфта (ТС). Задвижка № резерв *) DInModul[46] := DI2_14 ; (* ВММЗ(ТС)/Авария привода (ТС). Задвижка № резерв *) DInModul[47] := DI2_15 ; (* Дист. управление с БУ (ТС) (резерв). Задвижка № резерв *) DInModul[48] := DI2_16 ; (* Дист. управление с БРУ (ТС). Задвижка № резерв *) DInModul[49] := DI2_17 ; (* КВО замкнут (ТС). Задвижка № резерв *) DInModul[50] := DI2_18 ; (* КВЗ замкнут (ТС). Задвижка № резерв *) DInModul[51] := DI2_19 ; (* МПО включен (ТС). Задвижка № резерв *) DInModul[52] := DI2_20 ; (* МПЗ включен (ТС). Задвижка № резерв *) DInModul[53] := DI2_21 ; (* ВММО(ТС)/Сработала муфта (ТС). Задвижка № резерв *) DInModul[54] := DI2_22 ; (* ВММЗ(ТС)/Авария привода (ТС). Задвижка № резерв *) DInModul[55] := DI2_23 ; (* Дист. управление с БУ (ТС) (резерв). Задвижка № резерв *) DInModul[56] := DI2_24 ; (* Дист. управление с БРУ (ТС). Задвижка № резерв *) DInModul[57] := DI2_25 ; (* КВО замкнут (ТС). Задвижка №437-1 *) DInModul[58] := DI2_26 ; (* КВЗ замкнут (ТС). Задвижка №437-1 *) DInModul[59] := DI2_27 ; (* ВММО(ТС)/Сработала муфта (ТС). Задвижка №437-1 *) DInModul[60] := DI2_28 ; (* ВММЗ(ТС)/Авария привода (ТС). Задвижка №437-1 *) DInModul[61] := DI2_29 ; (* МПО включен (ТС). Задвижка №437-1 *) DInModul[62] := DI2_30 ; (* МПЗ включен (ТС). Задвижка №437-1 *) DInModul[63] := DI2_31 ; (* Дист. управление с БУ (ТС). Задвижка №437-1 *) DInModul[64] := DI2_32 ; (* Сигнал от ключа ДУ-О-МУ (ТС). Задвижка № 437-1 *) DInModul[65] := DI3_01 ; (* КВО замкнут (ТС). Задвижка №437-1П *) DInModul[66] := DI3_02 ; (* КВЗ замкнут (ТС). Задвижка №437-1П *) DInModul[67] := DI3_03 ; (* ВММО(ТС)/Сработала муфта (ТС). Задвижка №437-1П *) DInModul[68] := DI3_04 ; (* ВММЗ(ТС)/Авария привода (ТС). Задвижка №437-1П *) DInModul[69] := DI3_05 ; (* МПО включен (ТС). Задвижка №437-1П *) DInModul[70] := DI3_06 ; (* МПЗ включен (ТС). Задвижка №437-1П *) DInModul[71] := DI3_07 ; (* Дист. управление с БУ (ТС). Задвижка №437-1П *) DInModul[72] := DI3_08 ; (* Сигнал от ключа ДУ-О-МУ (ТС). Задвижка № 437-1П *) DInModul[73] := DI3_09 ; (* КВО замкнут (ТС). Задвижка №437-2П *) DInModul[74] := DI3_10 ; (* КВЗ замкнут (ТС). Задвижка №437-2П *) DInModul[75] := DI3_11 ; (* ВММО(ТС)/Сработала муфта (ТС). Задвижка №437-2П *) DInModul[76] := DI3_12 ; (* ВММЗ(ТС)/Авария привода (ТС). Задвижка №437-2П *) DInModul[77] := DI3_13 ; (* МПО включен (ТС). Задвижка №437-2П *) DInModul[78] := DI3_14 ; (* МПЗ включен (ТС). Задвижка №437-2П *) DInModul[79] := DI3_15 ; (* Дист. управление с БУ (ТС). Задвижка №437-2П *) DInModul[80] := DI3_16 ; (* Сигнал от ключа ДУ-О-МУ (ТС). Задвижка № 437-2П *) DInModul[81] := DI3_17 ; (* КВО замкнут (ТС). Задвижка №437-1Л *) DInModul[82] := DI3_18 ; (* КВЗ замкнут (ТС). Задвижка №437-1Л *) DInModul[83] := DI3_19 ; (* ВММО(ТС)/Сработала муфта (ТС). Задвижка №437-1Л *) DInModul[84] := DI3_20 ; (* ВММЗ(ТС)/Авария привода (ТС). Задвижка №437-1Л *) DInModul[85] := DI3_21 ; (* МПО включен (ТС). Задвижка №437-1Л *) DInModul[86] := DI3_22 ; (* МПЗ включен (ТС). Задвижка №437-1Л *) DInModul[87] := DI3_23 ; (* Дист. управление с БУ (ТС). Задвижка №437-1Л *) DInModul[88] := DI3_24 ; (* Сигнал от ключа ДУ-О-МУ (ТС). Задвижка № 437-1Л *) DInModul[89] := DI3_25 ; (* КВО замкнут (ТС). Задвижка №437-2Л *) DInModul[90] := DI3_26 ; (* КВЗ замкнут (ТС). Задвижка №437-2Л *) DInModul[91] := DI3_27 ; (* ВММО(ТС)/Сработала муфта (ТС). Задвижка №437-2Л *) DInModul[92] := DI3_28 ; (* ВММЗ(ТС)/Авария привода (ТС). Задвижка №437-2Л *) DInModul[93] := DI3_29 ; (* МПО включен (ТС). Задвижка №437-2Л *) DInModul[94] := DI3_30 ; (* МПЗ включен (ТС). Задвижка №437-2Л *) DInModul[95] := DI3_31 ; (* Дист. управление с БУ (ТС). Задвижка №437-2Л *) DInModul[96] := DI3_32 ; (* Сигнал от ключа ДУ-О-МУ (ТС). Задвижка № 437-2Л *) DInModul[97] := DI4_01 ; (* КВО замкнут (ТС). Задвижка №437-3Л *) DInModul[98] := DI4_02 ; (* КВЗ замкнут (ТС). Задвижка №437-3Л *) DInModul[99] := DI4_03 ; (* ВММО(ТС)/Сработала муфта (ТС). Задвижка №437-3Л *) DInModul[100] := DI4_04 ; (* ВММЗ(ТС)/Авария привода (ТС). Задвижка №437-3Л *) DInModul[101] := DI4_05 ; (* МПО включен (ТС). Задвижка №437-3Л *) DInModul[102] := DI4_06 ; (* МПЗ включен (ТС). Задвижка №437-3Л *) DInModul[103] := DI4_07 ; (* Дист. управление с БУ (ТС). Задвижка №437-3Л *) DInModul[104] := DI4_08 ; (* Сигнал от ключа ДУ-О-МУ (ТС). Задвижка № 437-3Л *) DInModul[105] := DI4_09 ; (* Срабатывание сигнализатора прохождения СОД (ОУ) камеры приема СОД МН «XXXX» *) DInModul[106] := DI4_10 ; (* Срабатывание сигнализатора прохождения СОД (ОУ) камеры приема СОД МН «Лисичанск Тихорецк-3» (трансмиттер ОУ) *) DInModul[107] := DI4_11 ; (* Неисправность сигнализатора прохождения СОД камеры приема СОД МН «XXXX» *) DInModul[108] := DI4_12 ; (* Срабатывание сигнализатора контроля герметичности камеры приема СОД МН «XXXX» *) DInModul[109] := DI4_13 ; (* Неисправность сигнализатора контроля герметичности камеры приема СОД МН «XXXX» *) DInModul[110] := DI4_14 ; (* Затопление площадки узла приема СОД *) DInModul[111] := DI4_15 ; (* Отключение звуковой сигнализации у емкости ЕП № 024.2 *) DInModul[112] := DI4_16 ; (* Срабатывание сигнализатора прохождения СОД (ОУ) после задвижки № 437-1 *) DInModul[113] := DI4_17 ; (* Срабатывание сигнализатора прохождения СОД (ОУ) после задвижки № 437-1 (трансмиттер ОУ) *) DInModul[114] := DI4_18 ; (* Неисправность сигнализатора прохождения СОД после задвижки № 437-1 *) DInModul[115] := DI4_19 ; (* Срабатывание сигнализатора прохождения СОД (ОУ) на выходе узла пуска СОД *) DInModul[116] := DI4_20 ; (* Срабатывание сигнализатора прохождения СОД (ОУ) на выходе узла пуска СОД *) DInModul[117] := DI4_21 ; (* Неисправность сигнализатора прохождения СОД на выходе узла пуска СОД *) DInModul[118] := DI4_22 ; (* Срабатывание сигнализатора прохождения СОД (ОУ) камеры пуска СОД *) DInModul[119] := DI4_23 ; (* Срабатывание сигнализатора прохождения СОД (ОУ) камеры пуска СОД (трансмиттер ОУ) *) DInModul[120] := DI4_24 ; (* Неисправность сигнализатора прохождения СОД камеры пуска СОД *) DInModul[121] := DI4_25 ; (* Срабатывание сигнализатора контроля герметичности камеры пуска СОД *) DInModul[122] := DI4_26 ; (* Неисправность сигнализатора контроля герметичности камеры пуска СОД *) DInModul[123] := DI4_27 ; (* Затопление площадки узла пуска СОД *) DInModul[124] := DI4_28 ; (* Отключение звуковой сигнализации у емкости ЕП узла пуска СОД *) DInModul[125] := DI4_29 ; (* Шкаф СОУ. Переход на питание от ИБП *) DInModul[126] := DI4_30 ; (* Минимальная температура воздуха в блок- боксе ПКУ *) DInModul[127] := DI4_31 ; (* Максимальная температура воздуха в блок- боксе ПКУ *) DInModul[128] := DI4_32 ; (* Пожар в ПКУ *) DInModul[129] := DI5_01 ; (* Неисправность пожарной сигнализации в ПКУ *) DInModul[130] := DI5_02 ; (* Срабатывание охранной сигнализации в ПКУ *) DInModul[131] := DI5_03 ; (* ДЭС в работе *) DInModul[132] := DI5_04 ; (* ДЭС неисправна *) DInModul[133] := DI5_05 ; (* Пожар в ДЭС *) DInModul[134] := DI5_06 ; (* Неисправность АСПТ ДЭС *) DInModul[135] := DI5_07 ; (* Пуск ОТВ в ДЭС *) DInModul[136] := DI5_08 ; (* Автоматика СПТ отключена *) DInModul[137] := DI5_09 ; (* Линейный АПС включен *) DInModul[138] := DI5_10 ; (* Линейный АПС аварийно отключен *) DInModul[139] := DI5_11 ; (* Готовность линейного АПС к ТУ *) DInModul[140] := DI5_12 ; (* Наличие напряжения на вводе ПКУ (ввод 1) *) DInModul[141] := DI5_13 ; (* Наличие напряжения на вводе ПКУ (ввод 2) *) DInModul[142] := DI5_14 ; (* Наличие напряжения на вводе ПКУ (ввод 3) *) DInModul[143] := DI5_15 ; (* Наличие напряжения на 1СШ ЩСУ *) DInModul[144] := DI5_16 ; (* Наличие напряжения на 2СШ ЩСУ *) DInModul[145] := DI5_17 ; (* Отключение ИБП от сети электропитания *) DInModul[146] := DI5_18 ; (* Питание расходомера включено *) DInModul[147] := DI5_19 ; (* Отключение звуковой сигнализации *) DInModul[148] := DI5_20 ; (* Отключение звуковой сигнализации *) DInModul[149] := DI5_21 ; (* Фаза. Контроль наличия напряжения (насос емкости ЕП камеры приема, № 024.02) *) DInModul[150] := DI5_22 ; (* Сигнал от МП (насос емкости ЕП камеры приема, № 024.02) *) DInModul[151] := DI5_23 ; (* Фаза. Контроль наличия напряжения (насос емкости ЕП камеры пуска) *) DInModul[152] := DI5_24 ; (* Сигнал от МП (насос емкости ЕП камеры пуска) *) DInModul[153] := DI5_25 ; (* Фаза. Контроль наличия напряжения (на перспективу) *) DInModul[154] := DI5_26 ; (* Сигнал от МП (на перспективу) *) DInModul[155] := DI5_27 ; (* Резерв *) DInModul[156] := DI5_28 ; (* Резерв *) DInModul[157] := DI5_29 ; (* Резерв *) DInModul[158] := DI5_30 ; (* Резерв *) DInModul[159] := DI5_31 ; (* Резерв *) DInModul[160] := DI5_32 ; (* Резерв *) (*ELSE*) (*DInModul[1] := TRUE;*) (* Наличие напряжения ~220В на вводе 1 *) (*DInModul[2] := TRUE;*) (* Исправность оборудования питания ввода 1 *) (*DInModul[3] := TRUE;*) (* Наличие напряжения ~220В на вводе 2 *) (*DInModul[4] := TRUE;*) (* Исправность оборудования питания ввода 2 *) (*DInModul[5] := TRUE;*) (* Общая исправность системы питания *) (*DInModul[9] := DI_143_3.0; *) (* КВО замкнут (ТС). Задвижка №014.3 *) (*DInModul[10] := DI_143_3.1; *) (* КВЗ замкнут (ТС). Задвижка №014.3 *) (*DInModul[11] := DI_143_3.2; *) (* МПО включен (ТС). Задвижка №014.3 *) (*DInModul[12] := DI_143_3.3;*) (* МПЗ включен (ТС). Задвижка №014.3 *) (*DInModul[13] := DI_143_3.4;*) (* ВММО(ТС)/Сработала муфта (ТС). Задвижка №014.3 *) (*DInModul[14] := DI_143_3.5; *) (* ВММЗ(ТС)/Авария привода (ТС). Задвижка №014.3 *) (*DInModul[15] := DI_FROM_MODUL[15]; *) (* Дист. управление с БУ (ТС) (резерв). Задвижка №014.3 *) (*DInModul[16] := DI_143_3.7; *) (* Дист. управление с БРУ (ТС). Задвижка №014.3 *) (*DInModul[73] := DI_437_1.0;*) (* КВО замкнут (ТС). Задвижка №437-2П *) (*DInModul[74] := DI_437_1.1;*) (* КВЗ замкнут (ТС). Задвижка №437-2П *) (*DInModul[75] := DI_437_1.2; *) (* ВММО(ТС)/Сработала муфта (ТС). Задвижка №437-2П *) (*DInModul[76] := DI_437_1.3;*) (* ВММЗ(ТС)/Авария привода (ТС). Задвижка №437-2П *) (*DInModul[59] := DI_437_1.4; *) (* ВММО(ТС)/Сработала муфта (ТС). Задвижка №437-2П *) (*DInModul[60] := DI_437_1.5; *) (* ВММЗ(ТС)/Авария привода (ТС). Задвижка №437-2П *) (*DInModul[77] := DI_437_1.4; *) (* МПО включен (ТС). Задвижка №437-2П *) (*DInModul[78] := DI_437_1.5;*) (* МПЗ включен (ТС). Задвижка №437-2П *) (*DInModul[61] := DI_437_1.2; *) (* МПО включен (ТС). Задвижка №437-2П *) (*DInModul[62] := DI_437_1.3; *) (* МПЗ включен (ТС). Задвижка №437-2П *) (*DInModul[79] := DI_437_1.6; *) (* Дист. управление с БУ (ТС). Задвижка №437-2П *) (*DInModul[80] := DI_437_1.7; *) (* Сигнал от ключа ДУ-О-МУ (ТС). Задвижка №437-2П *) (*DInModul[143] := TRUE;*) (* Наличие напряжения на 1СШ ЩСУ *) (*DInModul[144] := TRUE;*) (* Наличие напряжения на 2СШ ЩСУ *) (*DInModul[149] := TRUE;*) (* Фаза. Контроль наличия напряжения (насос емкости ЕП камеры приема, № 024.02) *) (*DInModul[151] := TRUE;*) (* Фаза. Контроль наличия напряжения (насос емкости ЕП камеры пуска) *) END_IF; (* Растягивание короткого сигнала на количество сканов TimerCount[I] *) FOR I := 1 TO 160 DO Messenger.DeviceId := UINT_TO_BYTE(I); IF (DInModul[I] = NOT DInModulPrev[I]) THEN ; (* Если сигнал поменялся *) MessengerSend(Messenger, BOOL_TO_BYTE(DInModul[I])); (* Сообщение - Сигнал установлен/снят*) END_IF; DInModulPrev[I] := DInModul[I]; IF (DInModul[I] = NOT DIn[I]) THEN (* Если сигнал поменялся *) IF NOT TimerStart[I] THEN (* Если таймер не запущен *) TimerStart[I] := TRUE; (* Старт таймера растягивания сигнала *) TempDIn[I] := DInModul[I]; (* Зафиксируем новое значение сигнала *) END_IF; END_IF; IF TimerStart[I] THEN (* Если таймер запущен *) TimerCount[I] := TimerCount[I] + 1; DIn[I] := TempDIn[I]; (* Зафиксируем значение сигнала *) ELSE DIn[I] := DInModul[I]; (* Выдаем актуальное значение сигнала *) END_IF; IF TimerCount[I] > 25 THEN (* Если таймер сработал *) TimerStart[I] := FALSE; (* Остановка таймера *) TimerCount[I] := 0; END_IF; END_FOR; END_PROGRAM