ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
11 ноября
1611461 Топик полностью
IBAH (Вчера, 23:03, просмотров: 59) ответил LordN на вот такой вопрос, есть массив асинхронных независимых переменных int16. при изменении любой из них надо получить строб. как это проще всего сделать? но так, чтобы это было на 146% надёжно.
Бред какойто... Надо сравнивать с предыдущим состоянием, а выходы компараторов кодов объединить по ИЛИ. В ФБД должен быть блок задержки на один проход цикла, его выход на компаратор вместе с текущим значением, выходы компараторов по ИЛИ. Болван отвечает что этот блок называется DELI 
Блок задержки сигнала ровно на один проход программы (цикл ПЛК) в языке FBD действительно существует и широко используется. Как он называется и где применяется • Название: В различных средах разработки он называется по-разному: DELI (задержка целого сигнала на 1 цикл), Линия задержки (например, в Owen Logic), или реализуется через специальную связь/регистр сдвига на 1 шаг. • Принцип работы: Значение на выходе блока обновляется в каждом новом программном цикле и равно тому значению, которое было на его входе в предыдущем цикле. Зачем он нужен? 1. Создание однократных импульсов: Используется внутри логики детекторов фронта (таких как R_Trig и F_Trig), чтобы выдать импульс длительностью ровно в один цикл. 2. Устранение гонок сигналов и организация порядка вычислений: Позволяет явно задать последовательность обработки данных, когда выход переменной должен зависеть от её состояния из прошлого такта (например, в самоподхватывающихся схемах, регистрах памяти или простых счётчиках). 3. Запоминание значения (защёлка): Позволяет реализовать обратную связь в диаграмме, передавая значение с выхода элемента обратно на его вход через один такт. Если вы работаете в конкретной среде программирования (например, Owen Logic, CoDeSys, Siemens STEP 7 / TIA Portal или FLProg), укажите её — подсказать точное имя блока или способ реализации будет проще.