Просмотр полной версии : ПР200 управление через modbus
Васильев
05.05.2024, 14:55
прошу помощи..
Eсть несколько устройство управление на ПР200 (slave) и панель weintek(master).
Объединены в сеть modbus. В каждом устройстве есть битовые переменные, которые могут изменятся посредством экранного
меню на ПР200 и влияют на алгоритм работы. Сейчас на панели weintek я принимаю данные о температуре, состоянии входов и выходов.
задача: через панель реализовать параллельное управление битовыми переменными по шине modbus,
чтобы изменения на панели отражались на ПР200 и обратно изменив параметр на ПР200 увидеть это на панели.
как правильно сделать? может у кого есть решения.
Спасибо большое.
Так того... этого...
Переменная МОДБАС slave в ПР так и обрабатывается.
Или как Вы получаете данные с ПР?
Васильев
05.05.2024, 15:47
Переменные считываются без проблем. Затык возникает вот когда..
Есть битовые переменные, которые я изменяю в пр200 в экранном меню,
Собираю в регистр (slave пр200 не поддерживает работу с битами) и записываю в сетевую переменную, которая отображается в панели.(Можно разобрать побитно, и отобразить).
А теперь как изменить битовую переменную и отобразить её в Пр200?
Переменные считываются без проблем. Затык возникает вот когда..
Есть битовые переменные, которые я изменяю в пр200 в экранном меню,
Собираю в регистр (slave пр200 не поддерживает работу с битами) и записываю в сетевую переменную, которая отображается в панели.(Можно разобрать побитно, и отобразить).
А теперь как изменить битовую переменную и отобразить её в Пр200?
Для начала, выложите проект с указанием хотя бы одной необходимой переменной.
А вообще - как обычно. Винтик умеет работать с битами регистра. Единственный вопрос - у Вас разные регистры для чтения и записи или один в ПР?
Васильев
05.05.2024, 18:27
Для начала, выложите проект с указанием хотя бы одной необходимой переменной.
А вообще - как обычно. Винтик умеет работать с битами регистра. Единственный вопрос - у Вас разные регистры для чтения и записи или один в ПР?
регистр один
пытался сделать как в примере выше, только не делал проверку изменения состояния
и у меня начиналась генерация ...
регистр один
пытался сделать как в примере выше, только не делал проверку изменения состояния
и у меня начиналась генерация ...
А где задержка? ОЛ должен был сообщить.
Вот пример битового переключателя регистра (для МК110)75563
Васильев
06.05.2024, 02:24
Вот так можно
благодарю за решение
заработало по вашей схеме
ФБ code собирает битики в слово
ФБ chg выдает на выход последнее измененное состояние входов
ФБ decode разбирает слово на битики
Сергей0308
06.05.2024, 09:20
благодарю за решение
заработало по вашей схеме
ФБ code собирает битики в слово
ФБ chg выдает на выход последнее измененное состояние входов
ФБ decode разбирает слово на битики
Здесь у Вас при изменении ходя бы одного бита с экрана ПР всё слово изменится, а Вы, насколько понимаю, хотели менять отдельные биты в слове.
Васильев
06.05.2024, 09:31
Да, всё верно.
У меня в проекте меняется достаточно много битов (разрешения, инверсия входов и тд)
Васильев
06.05.2024, 09:41
1. На st не могу сделать инверсию (логические операции) над переменной типа udint.
В справке написано что только для bool. На рабочем поле можно сделать. Значит надо вынести переменную, сделать логическую операцию и снова ввести в ФБ. (Получается как то неправильно). Может не могу найти?
2.Как сделать на st запись числа в шестнадцатеричном или двоичном виде?
3. Для получения дополнительного кода числа - стандартно инверсия +1.
А если из максимального возможного числа длязаданного типа данных вычесть входное и +1 фактически тоже самое? Правильно?
Сергей0308
06.05.2024, 09:52
Может по старинке, в смысле, без извращений:
75577
75578
75579
Васильев
06.05.2024, 10:00
Может по старинке, в смысле, без извращений:
75577
75578
это решение какого вопроса? не много не понимаю
с параллельным управлением (с пр200 и модбус я уже решил)
Сергей0308
06.05.2024, 10:04
это решение какого вопроса? не много не понимаю
Вы вроде хотели с экрана ПР отдельные биты менять, в смысле, чтобы при изменении одного из битов слова остальные биты оставались прежними(без изменения)!
Васильев
06.05.2024, 10:25
спасибо за решение, я уже реализовал
всё равно нужно установить задержку записи в переменную modbus - иначе начинается генерация...
компонент putbit16 сборный?
Сергей0308
06.05.2024, 10:49
спасибо за решение, я уже реализовал
всё равно нужно установить задержку записи в переменную modbus - иначе начинается генерация...
компонент putbit16 сборный?
Вы смотрели мой пример там всё нормально работает и без всякой генерации, а то вечный двигатель получится!
Да, это мой макрос, там в свойствах макроса и настройки есть, в смысле, могут понадобится при расширении до 32 бит!
Васильев
09.05.2024, 17:31
подтверждаю -задержка не нужна
Powered by vBulletin® Version 4.2.3 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot