Обмен данными между регистрами

15 февраля 2021 г.

Переносить данные из одного регистра в другой - стандартная задача, возникающая при разработке практически любого проекта. Сегодня мы расскажем о способах обмена данными между регистрами.

1. Передача данных.

Расположение: вкладка "Объект", пункт "Передача данных".

Стандартный способ обмена данными. В настройках выбирается адрес источника, адрес приёмника. При выборе опции "Глобальный" настраивается передача данных по временному интервалу, происходящая постоянно при работе панели, либо только в одном конкретном окне. При выборе опции "Окно" нужно выбрать триггер передачи данных - по кнопке или по внешнему триггеру, которым является переход состояния битового регистра.

Недостатком такого способа является отсутствие возможности настроить передачу данных в некоторых случаях. Из-за некоторых программных ограничений не всегда можно настроить, например, передачу данных из одного ПЛК в другой.

Скриншот 1 показывает настройку глобальной передачи данных из регистра LW0 в регистр LW1 с интервалом в 3 секунды.

2. Триггер действия (только для серии cMT).

Расположение: вкладка "Объект", пункт "Связанные действия" -> "Триггер действия".

Данная опция аналогична предыдущей, но позволяет производить передачу данных внутри триггера, что позволяет объединить данную операцию с другими.

Скриншот 2 показывает настройку передачи данных из регистра LW0 в регистр LW1 как часть триггера, который выполняется при переходе состояния бита LB0 из ON в OFF.

3. Макрос.

Расположение: вкладка "Проект", пункт "Макрос".

В макросе можно настроить передачу данных из одного регистра в другой с помощью функций GetData (чтение значение из регистра) и SetData (запись значения в регистр). Макрос может выполняться периодически или по триггеру (с помощью Управления ПЛК или Триггера Действия). Подробно про функции макросов вы можете прочитать в главе 18 мануала по EasyBuilder Pro.

Недостатком является необходимость умения писать макросы, что для некоторых разработчиков может являться трудностью. Зато есть очевидные плюсы, особенно в некоторых случаях: вы можете передавать данные между любыми регистрами, а также обрабатывать их между - менять типы данных и проводить математические операции (в том числе битовые).

Скриншот 3 показывает макрос, который считывает значение регистра LW0, добавляет к нему число 100 и записывает результат в регистр LW1.

Если у вас остались вопросы - пишите к нам на почту, где специалисты техподдержки готовы оперативно заняться вашим вопросом! Наш адрес: support@weintek.pro.