This is topic Работа с битовыми переключателями регистра Modbus TCP из NetLink Light in forum TRACE MODE 6 бесплатная Базовая версия / TRACE MODE 6 free Base version at Форум TRACE MODE: техническая поддержка.
Ситуация: есть шкаф, управляемый по Modbus TCP и автоматами. За группу автоматов отвечает один регистр, каждый бит - это состояние одного автомата. На ГЭ пришлось делать для этого регистра логику управления автоматами через XOR, потому что побитово NetLink управлять не умеет. Теперь пришла новая задача: создать таймер включения автоматов. В условные 8 утра три бита регистра должны перейти в состояние 1, в условные 22 часа ночи - в состояние 0.
Я создал источник данных времени, по нему успешно происходит реакция каналов. Вот только теперь у меня, кажется, какой-то конфликт управления регистром: когда этот основной регистр, в котором биты правления шкафами, привязан и к кнопкам (для управления вручную по логике XOR), и использован в качестве входного параметра программы, которая сверяет время с уставкой и переключает нужные биты, он не меняется ни там, ни там. Возможно, я что-то сделал не так, или сама логика моей программы неверная. Помогите, пожалуйста, разобраться.
Основной вопрос: как корректно изменять биты в регистре из NetLink light и из программы-таймера?
Posted by EgorovV (Участник № / Member № 8847) on :
Уточню ещё: этот основной регистр также используется и в выходном параметре программы, мне ведь нужно брать его исходное значение и изменять его на выходе.
Posted by АдАстра. Техподдержка (Участник № / Member № 4) on :
Без самого проекта сложно понять в чем может быть погрешность проекта. Проверьте привязки, их направление. Везде ли пишутся в нужный атрибут канала (например чтобы записать значение в числовой канал, надо подавать значение на атрибут IN, а не R и т.п.). Проверьте есть ли конфликты, когда например пишется из двух мест в одно одновременно и другие возможные логические погрешности.
Posted by EgorovV (Участник № / Member № 8847) on :
Проект большой, используется около 20 тысяч каналов, я уже получал несколько отказов в помощи по нему в предыдущие годы. Отдельно я протестировал функциональность программы, и она работает корректно. Но когда я дублирую её и сопутствующие каналы в основной проект, что-то идёт не так. Не может быть конфликта из-за того, что один и тот же канал используется и в кнопках, и в программе?
Posted by АдАстра. Техподдержка (Участник № / Member № 4) on :
Здравствуйте! Специалисты технической поддержки всегда готовы помочь нашим Пользователям. Конечно, анализировать все 20.000 каналов при наличии конкретной проблемы не стоит. Можно описать что, где и как.
Если в один канал происходит запись из двух источников, то определенно будет конфликт.
Универсального решения соревновательного конфликта (запись в один канал из двух или более источников) не существует. Особенности объекта автоматизации оказывают свое влияние.
Общий подход к решению - определение приоритетности управления (чья команда приоритетнее) или системой блокировок (Оператор А взял управление на себя и значит только он управляет сигналом до тех пока не снимет блокировку).