DOP-100 чтение нескольких регистров и реле во внутреннюю память
-
- Сообщения: 54
- Зарегистрирован: 12 ноя 2018, 12:23
DOP-100 чтение нескольких регистров и реле во внутреннюю память
Добрый день!
Начинаю изучать работу с сенсорными панелями на примере серии DOP-100. Панель обменивается данными с ПЛК серии AS200 по Modbus, и необходимо по состоянию реле в ПЛК отображать на панели разную индикацию, а также на основе данных в регистрах ПЛК выводить на панели значения. Как менять состояние элемента панели в зависимости от состояния реле понятно. Как отображать значение из регистра тоже понятно. Но всего необходимо считывать 20 реле и 5 регистров, и если это делать по отдельности, то суммарное время обработки, естественно, получится довольно большим.
Подскажите, пожалуйста, как правильно считывать в начале каждого цикла панели сразу весь диапазон реле ПЛК M0-M19 и сразу весь диапазон регистров ПЛК D0-D4 во внутреннюю память панели за одну операцию чтения, а уже потом работать со считанными значениями? Я так понимаю, это делается с помощью макроса?
Начинаю изучать работу с сенсорными панелями на примере серии DOP-100. Панель обменивается данными с ПЛК серии AS200 по Modbus, и необходимо по состоянию реле в ПЛК отображать на панели разную индикацию, а также на основе данных в регистрах ПЛК выводить на панели значения. Как менять состояние элемента панели в зависимости от состояния реле понятно. Как отображать значение из регистра тоже понятно. Но всего необходимо считывать 20 реле и 5 регистров, и если это делать по отдельности, то суммарное время обработки, естественно, получится довольно большим.
Подскажите, пожалуйста, как правильно считывать в начале каждого цикла панели сразу весь диапазон реле ПЛК M0-M19 и сразу весь диапазон регистров ПЛК D0-D4 во внутреннюю память панели за одну операцию чтения, а уже потом работать со считанными значениями? Я так понимаю, это делается с помощью макроса?
-
- Сообщения: 181
- Зарегистрирован: 31 авг 2019, 13:12
Re: DOP-100 чтение нескольких регистров и реле во внутреннюю память
необходимо по состоянию реле в ПЛК отображать на панели разную индикацию, а также на основе данных в регистрах ПЛК выводить на панели значения.
Какой смысл в том, чтобы данные контроллера сначала копировались во внутреннюю память, а объекты экрана указывали на нее? До сих пор в моих проектах экранные объекты всегда напрямую обращались к регистрам контроллера.Подскажите, пожалуйста, как правильно считывать в начале каждого цикла панели сразу весь диапазон реле ПЛК M0-M19 и сразу весь диапазон регистров ПЛК D0-D4 во внутреннюю память панели за одну операцию чтения, а уже потом работать со считанными значениями?
Re: DOP-100 чтение нескольких регистров и реле во внутреннюю память
1. Панель сама пытается оптимизировать обмен данными.
2. Дополнительно в настройках Communication Setings можно :
- в Series выбрать Delta AS series PLC.
- в Baund rate - 115200
- поставить галку на Optimize
3. Настроить порт PLC на новую скорость.
-
- Сообщения: 54
- Зарегистрирован: 12 ноя 2018, 12:23
Re: DOP-100 чтение нескольких регистров и реле во внутреннюю память
Я просто прикинул, что если на одну операцию чтения по Modbus в среднем уходит 20 мс, то при чтении 25 элементов в хаотичном порядке уйдёт около 500 мс, и подумал, что это будет заметно при взаимодействии (например, после нажатия кнопки панели пройдёт полсекунды, прежде чем изменится состояние экрана). По крайней мере, при реализации обмена данными между устройствами вручную всегда так и получается без оптимизации. А тут, если считывать сразу все реле и сразу все регистры подряд, то получится всего 2 операции чтения, и обмен данными ускорится в 12,5 раз.ivan bratanov писал(а): ↑21 май 2023, 21:07Какой смысл в том, чтобы данные контроллера сначала копировались во внутреннюю память, а объекты экрана указывали на нее? До сих пор в моих проектах экранные объекты всегда напрямую обращались к регистрам контроллера.
Интересно, не знал об этом. То есть, не возникнет проблемы, которую я описал выше?
Re: DOP-100 чтение нескольких регистров и реле во внутреннюю память
Вы неправильно прикидываете. Почитайте как происходит групповой опрос по модбас. Если вы расположите все регистры чтения подряд и на панели пропускать не будете, то опрос 25 регистров займет 24 мс.
В модбасе самая главная точка потери скорости - это пауза между запросами.
В модбасе самая главная точка потери скорости - это пауза между запросами.
-
- Сообщения: 54
- Зарегистрирован: 12 ноя 2018, 12:23
Re: DOP-100 чтение нескольких регистров и реле во внутреннюю память
Получается, что главное - это читать реле и регистры обязательно подряд, чтобы панель могла самостоятельно их оптимизировать и избежать разбиения чтения на несколько запросов?
Re: DOP-100 чтение нескольких регистров и реле во внутреннюю память
Если Панель работает на отображение данных и ввод с минимальным количеством макросов - все работает достаточно быстро. Даже с несколькими подключенными к панели ПЛК и десятком "забитыми" данными экранов.wayneenterprise писал(а): ↑22 май 2023, 09:20Получается, что главное - это читать реле и регистры обязательно подряд...
-
- Сообщения: 54
- Зарегистрирован: 12 ноя 2018, 12:23
Re: DOP-100 чтение нескольких регистров и реле во внутреннюю память
Ну, сейчас единственный макрос используется для проверки состояний реле и обновления "слоёв" экрана в соответствии с этими состояниями. Получается цепочка условий if-elseif-else, которая либо отображает элемент, либо скрывает элемент, либо выводит на его месте другие элементы. Такая реализация правильная, или нужно как-то по-другому менять видимость элементов в соответствии с состояниями реле?
Re: DOP-100 чтение нескольких регистров и реле во внутреннюю память
9600 бод/сек = 1200 б/с, 115200 бод/сек = 14400 б/c
Поменяйте скорость обмена и сравните разницу. ИМХО, вы не тем заморачиваетесь))). Удачи!