This is topic Modbus и запись в holding register по битно от кнопки. in forum TRACE MODE 7 профессиональная версия / TRACE MODE 7 professional version at Форум TRACE MODE: техническая поддержка.


To visit this topic, use this URL:
http://forum.adastra.ru/ultimatebb.php/ubb/get_topic/f/59/t/000049.html

Posted by Kharin (Участник № / Member № 9628) on :
 
Добрый день. Сдаюсь, помогите, не пойму где допускаю ошибку.
Если команда модбас на катушки, все работает прекрасно, просто получается слишком много каналов. Планировали использовать слово управления (в один holding регистр отправить и из него читать разные состояния). Но уже на стадии отправки проблемы Пробовали разные команды и 16 и 6 на запись HR, но запись не происходит, и внутренние алгоритмы (в ТМ7) не исполняются. Убираем привязку - алгоритмы работают. Привязываем каждый выходной сигнал на coil тоже все работает ПЛК все команды видит.
Запись в атрибут IN работает, но так как везде команды - это "1" реакция не очень.
Запись в атрибуты 10-25 не помогает. Все подвисает.
 
Posted by Nico (Участник № / Member № 5342) on :
 
- попробуйте coils писать групповым образом
- внутренние алгоритмы (в ТМ7) не исполняются -
уточните какие ?
- Запись в атрибуты 10-25 не помогает.
Попробуйте через панель МРВ без программ и графики
с одним каналом(OUTPUT) в узле

[ 10.05.2024, 15:06: Сообщение отредактировал / Message edited by АдАстра. Техподдержка ]
 
Posted by Kharin (Участник № / Member № 9628) on :
 
Да, все верно, что-то намудрил в алгоритмах, если отвязаться от них, то все нормально работает напрямую в 10-25. Поторопился с веткой.
Контроллер черная коробка от заказчика, где все биты в Holding как слова управления. Конечно все можно пересобрать в программе, но хотел разобраться именно в этом механизме. Спасибо.
 
Posted by Kharin (Участник № / Member № 9628) on :
 
Коллеги, еще вопрос по сути о том же.
С побитной записью разобрались, но вот какая особенность есть. Если мы допустим пишем в какой-то бит "1" одной кнопкой, а другой кнопкой по клику пишем "0" все работает прекрасно, но по алгоритму в ПЛК, данный бит (управляет режимом) может сбрасываться в ноль (при АВР система из автомата переходит в мануал). Если мы послали "1" нажатием, а она по программе сбросилась в ноль, то повторное нажатие "1" не продавливает. Необходимо обязательно нажать кнопку посылки "0", и только потом "1" посылается.
 
Posted by Kharin (Участник № / Member № 9628) on :
 
Попытки поиграть с 51 аргументом не дают рабочих вариантов, параметры результат и дв состояния, кроме как на визуал никак не влияют. именно клик отправляет значение в Descrete типа output и там это значение висит до тех пор, пока новым кликом не будет отправлено новое. Понятно, что можно поиграть с написанием программы, но сейчас совсем нет желания для такой простой вещи писать какой-то код. Какие могут быть подручные средства для решения такой элементарной задачи? Есть ли инструмент, который позволит двунаправлено контролировать конкретный бит или может есть какой-то аргумент экрана, который сбрасывает все или конкретные команды, чтоб система "забыла" об отправленной команде? Ну и в чем сакральный смысл параметров "источник" и "два состояния"? По логике, они и должны были не только оператору помочь понять, что какие-то элементы изменили состояние, но и система должным образом на это отреагировала. В частности, сразу ввести в работу те элементы, у которых 1 бит на вкл/выкл откр/закр если они по логике ПЛК отработали иначе, чем было в последний раз с АРМа отправлено, то оператор увидит это но не сможет повторно отправить команду, пока не произведет то действие, которое отображено на экране!. Сомнительно. А значит я что-то сделал не правильно. Прошу подсказку.
 
Posted by Kharin (Участник № / Member № 9628) on :
 
Реализовал двумя кнопками в разные биты (3 и 4) промежуточного DISCRETE с 203 атрибутом 1.
Далее в программу с SR триггером: взводим по команде Авто (3). Сброс по (4) или по спаду от бита из ПЛК.
Ну а собственно сам SR этот самый бит в ПЛК и взводит. Думаю, я окончательно понял логику работы кнопок как действие и наверное без условных скриптов тут не обойтись, но если есть какие-то еще хитрые варианты, было бы полезно узнать.
 
Posted by Nico (Участник № / Member № 5342) on :
 
- 51 атрибут замечательно работает для Output каналов на старте TM( ReadBack )
- принудительное возведение данного флага в реальном
времени( вручную или алгоритмически ) приводит
так же к Readback значения, но требует
аккуратности( не возводить если уже возведен, не сбрасывать, анализа режима управления и т.п.)
- если сигнал меняется вне TM, то его значение
нужно читать
 
Posted by АдАстра. Техподдержка (Участник № / Member № 4) on :
 
quote:
Отправитель / Originally posted by Kharin:
... именно клик отправляет значение в Descrete типа output и там это значение висит до тех пор, пока новым кликом не будет отправлено новое. ... Прошу подсказку.

Здравствуйте.
Каналу записи (направление output) установите период пересчета calc exe.
Тогда значение будет отправляться, даже если оно уже есть в данном канале.

Однако, Nico прав. Если параметр (любой) может быть изменен самим устройством и СКАДА, то следует данное значение считывать.

Возможно, у устройства есть входной регистр, который как раз служит для записи, и есть выходной регистр, который служит только для чтения.
 
Posted by Kharin (Участник № / Member № 9628) on :
 
Отлично, спасибо всем. Все попробуем.
 


Новости АСУ ТП / News | SCADA / HMI | Обучение / Trainings | Свяжитесь с нами / Contact Us



Powered by Infopop Corporation
UBB.classic™ 6.7.2