DOP-100 чтение нескольких регистров и реле во внутреннюю память

wayneenterprise
Сообщения: 54
Зарегистрирован: 12 ноя 2018, 12:23

DOP-100 чтение нескольких регистров и реле во внутреннюю память

Сообщение wayneenterprise »

Добрый день!

Начинаю изучать работу с сенсорными панелями на примере серии DOP-100. Панель обменивается данными с ПЛК серии AS200 по Modbus, и необходимо по состоянию реле в ПЛК отображать на панели разную индикацию, а также на основе данных в регистрах ПЛК выводить на панели значения. Как менять состояние элемента панели в зависимости от состояния реле понятно. Как отображать значение из регистра тоже понятно. Но всего необходимо считывать 20 реле и 5 регистров, и если это делать по отдельности, то суммарное время обработки, естественно, получится довольно большим.

Подскажите, пожалуйста, как правильно считывать в начале каждого цикла панели сразу весь диапазон реле ПЛК M0-M19 и сразу весь диапазон регистров ПЛК D0-D4 во внутреннюю память панели за одну операцию чтения, а уже потом работать со считанными значениями? Я так понимаю, это делается с помощью макроса?

ivan bratanov
Сообщения: 181
Зарегистрирован: 31 авг 2019, 13:12

Re: DOP-100 чтение нескольких регистров и реле во внутреннюю память

Сообщение ivan bratanov »

необходимо по состоянию реле в ПЛК отображать на панели разную индикацию, а также на основе данных в регистрах ПЛК выводить на панели значения.
Подскажите, пожалуйста, как правильно считывать в начале каждого цикла панели сразу весь диапазон реле ПЛК M0-M19 и сразу весь диапазон регистров ПЛК D0-D4 во внутреннюю память панели за одну операцию чтения, а уже потом работать со считанными значениями?
Какой смысл в том, чтобы данные контроллера сначала копировались во внутреннюю память, а объекты экрана указывали на нее? До сих пор в моих проектах экранные объекты всегда напрямую обращались к регистрам контроллера.

tvent
Сообщения: 1019
Зарегистрирован: 11 янв 2011, 17:02

Re: DOP-100 чтение нескольких регистров и реле во внутреннюю память

Сообщение tvent »

wayneenterprise писал(а):
21 май 2023, 18:00
как правильно считывать...
1. Панель сама пытается оптимизировать обмен данными.
2. Дополнительно в настройках Communication Setings можно :
- в Series выбрать Delta AS series PLC.
- в Baund rate - 115200
- поставить галку на Optimize
3. Настроить порт PLC на новую скорость.

wayneenterprise
Сообщения: 54
Зарегистрирован: 12 ноя 2018, 12:23

Re: DOP-100 чтение нескольких регистров и реле во внутреннюю память

Сообщение wayneenterprise »

ivan bratanov писал(а):
21 май 2023, 21:07
Какой смысл в том, чтобы данные контроллера сначала копировались во внутреннюю память, а объекты экрана указывали на нее? До сих пор в моих проектах экранные объекты всегда напрямую обращались к регистрам контроллера.
Я просто прикинул, что если на одну операцию чтения по Modbus в среднем уходит 20 мс, то при чтении 25 элементов в хаотичном порядке уйдёт около 500 мс, и подумал, что это будет заметно при взаимодействии (например, после нажатия кнопки панели пройдёт полсекунды, прежде чем изменится состояние экрана). По крайней мере, при реализации обмена данными между устройствами вручную всегда так и получается без оптимизации. А тут, если считывать сразу все реле и сразу все регистры подряд, то получится всего 2 операции чтения, и обмен данными ускорится в 12,5 раз.
tvent писал(а):
22 май 2023, 06:55
Панель сама пытается оптимизировать обмен данными
Интересно, не знал об этом. То есть, не возникнет проблемы, которую я описал выше?

bayk
Сообщения: 887
Зарегистрирован: 30 май 2015, 21:20

Re: DOP-100 чтение нескольких регистров и реле во внутреннюю память

Сообщение bayk »

Вы неправильно прикидываете. Почитайте как происходит групповой опрос по модбас. Если вы расположите все регистры чтения подряд и на панели пропускать не будете, то опрос 25 регистров займет 24 мс.
В модбасе самая главная точка потери скорости - это пауза между запросами.

wayneenterprise
Сообщения: 54
Зарегистрирован: 12 ноя 2018, 12:23

Re: DOP-100 чтение нескольких регистров и реле во внутреннюю память

Сообщение wayneenterprise »

Получается, что главное - это читать реле и регистры обязательно подряд, чтобы панель могла самостоятельно их оптимизировать и избежать разбиения чтения на несколько запросов?

tvent
Сообщения: 1019
Зарегистрирован: 11 янв 2011, 17:02

Re: DOP-100 чтение нескольких регистров и реле во внутреннюю память

Сообщение tvent »

bayk писал(а):
22 май 2023, 08:57
В модбасе самая главная точка потери скорости - это пауза между запросами.
Протокол RTU работает быстрее, чем протокол ASCII. Но ASCII на панелях и ПЛК установлен по умолчанию и...)))

tvent
Сообщения: 1019
Зарегистрирован: 11 янв 2011, 17:02

Re: DOP-100 чтение нескольких регистров и реле во внутреннюю память

Сообщение tvent »

wayneenterprise писал(а):
22 май 2023, 09:20
Получается, что главное - это читать реле и регистры обязательно подряд...
Если Панель работает на отображение данных и ввод с минимальным количеством макросов - все работает достаточно быстро. Даже с несколькими подключенными к панели ПЛК и десятком "забитыми" данными экранов.

wayneenterprise
Сообщения: 54
Зарегистрирован: 12 ноя 2018, 12:23

Re: DOP-100 чтение нескольких регистров и реле во внутреннюю память

Сообщение wayneenterprise »

tvent писал(а):
22 май 2023, 10:13
с минимальным количеством макросов
Ну, сейчас единственный макрос используется для проверки состояний реле и обновления "слоёв" экрана в соответствии с этими состояниями. Получается цепочка условий if-elseif-else, которая либо отображает элемент, либо скрывает элемент, либо выводит на его месте другие элементы. Такая реализация правильная, или нужно как-то по-другому менять видимость элементов в соответствии с состояниями реле?

tvent
Сообщения: 1019
Зарегистрирован: 11 янв 2011, 17:02

Re: DOP-100 чтение нескольких регистров и реле во внутреннюю память

Сообщение tvent »

wayneenterprise писал(а):
22 май 2023, 10:20
9600 бод/сек = 1200 б/с, 115200 бод/сек = 14400 б/c
Поменяйте скорость обмена и сравните разницу. ИМХО, вы не тем заморачиваетесь))). Удачи!

Ответить