# RS-триггер | Типовые задачи Предыдущий Следующий

## Общие сведения Наименование: TRG. Тип выхода: логический. Количество входов: 2 или 3. ## Примечания по входам •порядок входов: «S-вход», «R-вход», «Приоритетное значение»; •значение на третий вход («Приоритетное значение») можно не указывать — по умолчанию равно логической единице. ## Функционирование •если «Приоритетное значение» равно логической единице (приоритет на включение): •значение выхода будет равно логической единице с момента установления значения логической единицы на «S-входе» до момента установления значения логического нуля на «S-входе» и логической единицы на «R-входе»; •значение выхода будет равно логическому нулю с момента установления значения логического нуля на «S-входе» и логической единицы на «R-входе» до момента установления значения логической единицы на «S-входе»; •если «Приоритетное значение» равно логическому нулю (приоритет на отключение): •значение выхода будет равно логической единице с момента установления значения логической единицы на «S-входе» и логического нуля на «R-входе» до момента установления логической единицы на «R-входе»; •значение выхода будет равно логическому нулю с момента установления значения логического нуля на «S-входе» и логической единицы на «R-входе» до момента установления значения логической единицы на «S-входе»; •выход имеет неинициализированное состояние, если хотя бы один из входов имеет неинициализированное состояние; •значение выхода недостоверно, если один из входов имеет недостоверное значение (даже если другой вход имеет неинициализированное состояние).
Не допускается использование данного алгоблока в вызываемых подпрограммах!
## Примеры использования BLOCK1 = TRG(DI1.1; DI1.2; 0) // Приоритет на отключение. // ======================================= BLOCK2 = TRG(DO1.1; ~DO1.2) // ~DO1.2 — инверсия значения. // ======================================= BLOCK3 = TRG(BLOCK1; BLOCK2) // Использование в аргументах значений других алгоблоков. // ======================================= B1 = OR(DI1.1; DI1.2; DI1.3) B2 = AND(DI1.4; DI1.5) B3 = TRG(B1; B2) B4 = RESULT(DO1.1; B3) // Реализация дискретного регулирования на канале DO1.1, // (где: В1 - формула включения, В2 - формула отключения) // с приоритетом на включение. // ======================================= // Дискретное регулирование от 100 до 900 B1 = DOWN_HYSTER(AI1.1; 100) B3 = UP_HYSTER(AI1.1; 900) B5 = TRG(B1; B3) B6 = RESULT(DO1.1; B5) B7 = PHY_DSC(DO1.1) // Дискретное регулирование по значению // аналогового входного канала AI1.1 // от 100 до 900 посредством // дискретного выходного канала DO1.1. Файл для импорта: do100to900.help // ======================================= // Реализация тумблера // (первое нажатие DI1.1 включает DO1.1, // второе нажатие DI1.1 отключает DO1.1) B010 = TRG(B020; ~DI1.1) B020 = AND(DI1.1; ~B010) B030 = AND(~B050; B020) B040 = AND(B050; B020) B050 = TRG(B030; B040) B060 = RESULT(DO1.1; B050) Файл для импорта: toggle.help // ======================================= // Квитирование прерывания звуковой сигнализации // на физическом выходе (перевод в 0) // DO1.1 - сигнальный звуковой канал // B001 - логика срабатывания DO1.1 B001 = OR(DI1.1; DI2.1; DI3.1) B005 = RESULT(DO1.1; B001) // DI1.2 - кнопка квитирования // прерывание физ. сигнала (вкл/откл): 1 с / 1 с B010 = OR(DO1.1; DI1.2) B020 = TRG(DI1.2; ~B010) B030 = FRN(DO1.1; 1) B040 = FRQ(10; 10; 1; B030) B050 = AND(~B020; DO1.1; B040) B060 = PHY_DSC(DO1.1; B050) Файл для импорта: confirm_alarm.help // ======================================= // Выделение переднего фронта из сигнала DI1.1 // DO1.1 на один такт = 1, когда включается DI1.1 B020 = TRG(B030; ~DI1.1) B030 = AND(~B020; DI1.1) B040 = RESULT(DO1.1; B030) // Выделение заднего фронта из сигнала DI1.1 // DO1.2 на один такт = 1, когда отключается DI1.1 B110 = TRG(DI1.1; B120) B120 = AND(~DI1.1; B110) B130 = RESULT(DO1.2; B120) Файл для импорта: front.help