Предлагаю в модулях дискретного ввода добавить программный детектор импульсов. То есть при наличии на входе импульсов с частотой более заданной (задаётся от 1 до 20 Гц) модуль выдает True. Это позволило бы работать прибору в качестве реле контроля скорости на транспортёрах. Использовать счётчики импульсов для этой цели не получилось - обмен по RS-485 тормозит, если используется несколько датчиков.
Вы не поняли крик души![]()
Представьте линию из 20 транспортёров. На каждом транспортёре установлена крыльчатка с индуктивным датчиком ВБИ. Когда транспортёр включен, датчик выдаёт 10Гц на вход модуля ввода. Если частота меньше 10Гц, контроллер останавливает всю линию. Таким образом, на 20 входов модуля ввода подаются импульсы. И каждый счётчик дискретного входа передаёт 2 байта в ПЛК. Каждую секунду ПЛК сравнивает предыдущее значение счётчика с текущим и если разница меньше 10 импульсов, выдаёт аварию.
Вопрос: зачем перегружать модбас лишней информацией (20 переменных по 2 байта)? При наличии программного детектора импульсов, каждый вход будет сам обрабатывать приходящие импульсы и выдавать результат TRUE, либо FALSE. ПЛК будет обрабатывать одну переменную типа DWORD и выдавать аварию, если на каком-то входе частота ниже заданной.
Последний раз редактировалось Mike Osokin; 14.09.2019 в 18:31.
Модуль ввода передаёт состояния счетчиков, а не Герцы.
На каждый вход, счётчик импульсов формирует 2 байта. ПЛК должен получить по модбасу и обработать показания 20 счётчиков. Согласитесь, 20 булевых флагов передать по модбасу одной переменной, гораздо проще. Что касается программной логики в модуле ввода, то она там уже есть - количество импульсов считается. Нужно только сосчитать количество импульсов в секунду и выдать булевый флаг.