Тема / Topic: Modbus и запись в holding register по битно от кнопки.
Kharin
Junior Member / Новичок
Участник № / Member № 9628
отправлено / posted
Добрый день. Сдаюсь, помогите, не пойму где допускаю ошибку. Если команда модбас на катушки, все работает прекрасно, просто получается слишком много каналов. Планировали использовать слово управления (в один holding регистр отправить и из него читать разные состояния). Но уже на стадии отправки проблемы Пробовали разные команды и 16 и 6 на запись HR, но запись не происходит, и внутренние алгоритмы (в ТМ7) не исполняются. Убираем привязку - алгоритмы работают. Привязываем каждый выходной сигнал на coil тоже все работает ПЛК все команды видит. Запись в атрибут IN работает, но так как везде команды - это "1" реакция не очень. Запись в атрибуты 10-25 не помогает. Все подвисает.
Сообщения / Posts 15 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Nico
Forum Professor / Завсегдатай форума
Участник № / Member № 5342
отправлено / posted
- попробуйте coils писать групповым образом - внутренние алгоритмы (в ТМ7) не исполняются - уточните какие ? - Запись в атрибуты 10-25 не помогает. Попробуйте через панель МРВ без программ и графики с одним каналом(OUTPUT) в узле
Kharin
Junior Member / Новичок
Участник № / Member № 9628
отправлено / posted
Да, все верно, что-то намудрил в алгоритмах, если отвязаться от них, то все нормально работает напрямую в 10-25. Поторопился с веткой. Контроллер черная коробка от заказчика, где все биты в Holding как слова управления. Конечно все можно пересобрать в программе, но хотел разобраться именно в этом механизме. Спасибо.
Сообщения / Posts 15 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Kharin
Junior Member / Новичок
Участник № / Member № 9628
отправлено / posted
Коллеги, еще вопрос по сути о том же. С побитной записью разобрались, но вот какая особенность есть. Если мы допустим пишем в какой-то бит "1" одной кнопкой, а другой кнопкой по клику пишем "0" все работает прекрасно, но по алгоритму в ПЛК, данный бит (управляет режимом) может сбрасываться в ноль (при АВР система из автомата переходит в мануал). Если мы послали "1" нажатием, а она по программе сбросилась в ноль, то повторное нажатие "1" не продавливает. Необходимо обязательно нажать кнопку посылки "0", и только потом "1" посылается.
Сообщения / Posts 15 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Kharin
Junior Member / Новичок
Участник № / Member № 9628
отправлено / posted
Попытки поиграть с 51 аргументом не дают рабочих вариантов, параметры результат и дв состояния, кроме как на визуал никак не влияют. именно клик отправляет значение в Descrete типа output и там это значение висит до тех пор, пока новым кликом не будет отправлено новое. Понятно, что можно поиграть с написанием программы, но сейчас совсем нет желания для такой простой вещи писать какой-то код. Какие могут быть подручные средства для решения такой элементарной задачи? Есть ли инструмент, который позволит двунаправлено контролировать конкретный бит или может есть какой-то аргумент экрана, который сбрасывает все или конкретные команды, чтоб система "забыла" об отправленной команде? Ну и в чем сакральный смысл параметров "источник" и "два состояния"? По логике, они и должны были не только оператору помочь понять, что какие-то элементы изменили состояние, но и система должным образом на это отреагировала. В частности, сразу ввести в работу те элементы, у которых 1 бит на вкл/выкл откр/закр если они по логике ПЛК отработали иначе, чем было в последний раз с АРМа отправлено, то оператор увидит это но не сможет повторно отправить команду, пока не произведет то действие, которое отображено на экране!. Сомнительно. А значит я что-то сделал не правильно. Прошу подсказку.
Сообщения / Posts 15 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Kharin
Junior Member / Новичок
Участник № / Member № 9628
отправлено / posted
Реализовал двумя кнопками в разные биты (3 и 4) промежуточного DISCRETE с 203 атрибутом 1. Далее в программу с SR триггером: взводим по команде Авто (3). Сброс по (4) или по спаду от бита из ПЛК. Ну а собственно сам SR этот самый бит в ПЛК и взводит. Думаю, я окончательно понял логику работы кнопок как действие и наверное без условных скриптов тут не обойтись, но если есть какие-то еще хитрые варианты, было бы полезно узнать.
Сообщения / Posts 15 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Nico
Forum Professor / Завсегдатай форума
Участник № / Member № 5342
отправлено / posted
- 51 атрибут замечательно работает для Output каналов на старте TM( ReadBack ) - принудительное возведение данного флага в реальном времени( вручную или алгоритмически ) приводит так же к Readback значения, но требует аккуратности( не возводить если уже возведен, не сбрасывать, анализа режима управления и т.п.) - если сигнал меняется вне TM, то его значение нужно читать
Сообщения / Posts 873 | Из / From: Россия
| IP / IP: IP адрес / IP address |
quote:Отправитель / Originally posted by Kharin: ... именно клик отправляет значение в Descrete типа output и там это значение висит до тех пор, пока новым кликом не будет отправлено новое. ... Прошу подсказку.
Здравствуйте. Каналу записи (направление output) установите период пересчета calc exe. Тогда значение будет отправляться, даже если оно уже есть в данном канале.
Однако, Nico прав. Если параметр (любой) может быть изменен самим устройством и СКАДА, то следует данное значение считывать.
Возможно, у устройства есть входной регистр, который как раз служит для записи, и есть выходной регистр, который служит только для чтения.
Сообщения / Posts 17316 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Kharin
Junior Member / Новичок
Участник № / Member № 9628