8 800 6003347
info@weintek.net
Закладки
Сравнение
Ваша корзина пуста!
Корзина

В настройках драйвера для протокола  Modbus  есть возможность поменять местами байты в слове, но только для целого диапазона адресов (например, все Holding регистры или все Input регистры).

А как же поступить в случае, если поменять байты нужно только для некоторых переменных ?

Конкретно в драйвере modbus есть возможность использовать специальный тип адреса 3x_Double и 4x_Double, для которых можно задать порядок байт.

Таким образом без каких-либо ухищрений можно получать значение одного и того же регистра с разным порядком байт просто выбирая тип адреса 3x или 3х_Double4x или 4х_Double соответственно)

Однако бывают устройства, в драйвере которых нет возможности указать смену порядка байт.

Например в драйвере Siemens S7-1200/S7-1500 (Absolute Addressing) (Ethernet) такой возможности нет.

В этой статье мы рассмотрим два примера реализации возможности преобразования порядка байт на примере двух драйверов: Modbus TCP/IP и  Siemens S7-1200/S7-1500 (Absolute Addressing) (Ethernet).

Для первого примера запустим симулятор сервера modbus и зададим регистрам 1, 2, 3, 4 в области памяти Holding Registers соответствующие значения 1,2,3 и 4.

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

Откроем Макросы (про макросы у нас есть несколько статей и видео на нашем Rutube-канале ) и в нём откроем Библиотеку макросов.

Откроем Библиотеку макросов и добавим новый макрос, который будем использовать для преобразлвания.

Назовём его swap_byte.

 Текст нашего макроса будет простой:

sub unsigned short swap_byte(unsigned short input)

unsigned short output = 0

SWAPB(input, output)

return output

end sub

Для нашего преобразования мы использовали встроенную в EasyBuilder Pro функцию SWAPB.

 Имя  SWAPB
 Синтаксис  SWAPB(source, result) 
 Описание

 Обменивает старший и младший байты местами в 16-битном источнике.

 Источник может быть константой или переменной.

 Результат должен быть переменной. 

 Пример использования macro_command main()   
     short source, result 
 
     SWAPB(0x5678, result)   //  result is 0x7856 
 
      source = 0x123 
      SWAPB(source, result)   //   result is 0x2301 
 
end macro_command 


Откроем EasyBuilder Pro и добавим в окно несколько полей ввода/вывода чисел и текстовые подписи к ним.

Для удобства наблюдения за результатом преобразования отобразим одну и ту же переменные в разных системах счисления (dec - десятичной, hex - шестнадцатеричной, bin - двоичной).

Подписи swaped и direct означают перевернутый и прямой порядок байт.

Одновременно в окне будем наблюдать теги устройства "Modbus TCP/IP" и адресные метки с тем же адресами регистров.

Для наглядности механизма преобразования cоздадим две адресные метки с одним и тем же регистром modbus. В одной будем использовать преобразование, в другой не будем.



 

Создадим адресную метку (в рамках Weintek можно использовать термин "тег" для адресной метки) со следующими параметрами:

  • имя: "tag_4x_swaped"
  • устройство: " MODBUS TCP/IP"
  • режим адреса: "слово"
  • тип адреса: "4х"
  • адрес: 1
  • тип переменной выберем "16-bit Unsigned" для наглядности преобразования
  • Поставим флажок "Преобразование/Вычисления"
  • преобразование: формат данных – "16-bit Unsigned"
  • преобразование: преобразование при чтении – выберем нашу функцию "swap_byte"
  • преобразование: преобразование при записи  – выберем нашу функцию "swap_byte"

Создадим адресную метку (в рамках Weintek можно использовать термин "тег" для адресной метки) со следующими параметрами:

  • имя: "tag_4x_direct"
  • устройство: " MODBUS TCP/IP"
  • режим адреса: "слово"
  • тип адреса: "4х"
  • адрес: 1
  • тип переменной выберем "16-bit Unsigned" для наглядности преобразования
  • флажок "Преобразование/Вычисления" ставить не будем

Для второго примера возьмем ПЛК Siemens S7-1200 с драйвером  Siemens S7-1200/S7-1500 (Absolute Addressing) (Ethernet).

В примере будем использовать тег hmi_cpu_load, который имеет тип UInt.

Создадим две адресные метки для этого тега – в одном будем использовать преобразование, в другом нет.

Запустим онлайн симулятор и посмотрим на значения регистра 1 в нашем устройстве "MODBUS  TCP/IP" в оригинальном отображении (в десятичном представлении, в шестнадцатеричном и в двоичном) и в представлении наших адресных меток.

В онлайн симуляторе видно, что значение 1 в регистре представляется в адресной метке с преобразованием как 256.

Теперь зададим значение 256 в регистре 1 и посмотрим, что получится в наших адресных метках.

Запишем значение 8 в регистр и посмотрим, что получится после преобразования.


25.05.2021
Связанные статьи
17.04.2026
Чем отличаются панель оператора, облачный терминал (iV) и Веб-панель (W)
Рассмотрим на примере трёх панелей: cMT3108XP - 10.1" панель оператора Weintek   (MQTT, EasyAccess 2.0, OPC UA, Codesys, Dashboard, Wi-Fi) cMT3108XP(iV)..
28.01.2026
Подключение портативной панели оператора cMT3106XM к коммутационным базам cMT-XMBS и cMT-XMBC
Подключение портативной панели оператора cMT3106XM к коммутационным базам производится посредством 26-пинового круглого соединителя. Нужно вставить его до щелчка фикса..
14.01.2026
Как продлить жизнь FLASH памяти панели?
[ВАЖНО] Согласно главе 3.2.1. Prolong the Lifespan of Flash Memory документа Product Security User Manual eng.pdf: Из-за ограниченного числа циклов записи в..
29.09.2025
Все о Weincloud Dashboard
Вступление Часто пользователи сталкиваются с необходимостью проводить мониторинг и управление несколькими устройствами, которые могут работать в разных сетях и/или в р..
15.09.2023
Расширение графического функционала панелей Weintek средствами встроенного JavaScript
EasyBuilder Pro позволяет создавать довольно симпатичный пользовательский интерфейс, графическим объектам (кнопки, поля ввода/вывода, спидометр и т.п.) можно придавать ра..
09.06.2023
Codesys от Weintek . Быстрый старт
Эта статья содержит информацию необходимую для начала работы в среде CODESYS V3.5 с устройствами Weintek и рассчитана на пользователей, которые первый раз столкнулись с C..
30.03.2023
Модули ввода-вывода Weintek, ПЛК cMT-CTRL01, каплеры iR-ETN, iR-COP, iR-ECAT, описание работы
Панели оператора имеют на борту COM порты (RS-232/485) и Ethernet порты. А как "завести" в панель полевые сигналы ? Для работы с полевыми сигналами ко..
19.10.2022
Система контроля и управления доступом на базе панели Weintek и считывателя RFID меток
1. Введение В данном проекте мы реализуем простую систему контроля и управления доступом на базе панели Weintek. Наша СКУД будет управлять турникетом-"верт..
19.10.2022
Взрывозащищенные панели оператора и взрывозащищенные компьютеры
Взрывозащищенные панели оператора и взрывозащищенные компьютеры - это решение для работы в потенциально взрывоопасной среде. Существуют такие производственные отрасли,..
03.10.2022
Панель оператора Weintek вместо VPN-роутера
Управление производственным процессом из любой точки мира можно реализовать двумя способами: используя защищенный VPN-канал, для чего понадобится промышленный VPN-р..
01.06.2022
Умный офис с панелями оператора Weintek
В последние годы панели оператора Weintek настолько улучшили свой дизайн и производительность, что стали все чаще применяться для автоматизации жилых и офисных зданий, а ..
20.05.2022
Пример проекта для панели Weintek, демо проект
Предисловие Панели оператор используются для взаимодействия человека с системой управления чем-либо, например, технологическим процессом переработки нефти или дизель-г..
23.03.2022
Как подключить ПЛК к панели Weintek?
ВВЕДЕНИЕ Первый вопрос, которым задается пользователь, столкнувшийся с новым оборудованием: как его связать с другим оборудованием ? Мы рассмотрим три варианта: ..
29.12.2021
Как получить доступ к COM порту панели оператора и ПЛК CTRL01 Weintek из встроенного Codesys?
Согласно документации на встроенный Codesys доступными из Codesys остаются только Ethernet порт и CAN bus. COM порт остается в "билдеровской части". Но на пр..
27.10.2021
[Отзыв клиента] Применение панели Weintek cMT2078X в системе управления поливом
О проекте информационно-управляющей системы водоподготовки и автополива на базе панели Weintek cMT2078X Впечатления от панели Weintek cMT2078Х самые положитель..
08.09.2021
Сервис Дашборд в Weincloud от Weintek. Быстрый старт.
Хотя EasyAccess 2.0 обеспечивает простой способ доступа к удаленным устройствам, он может не подходить для удаленного мониторинга. В промышленной сфере построению системы..
05.09.2021
Как заменить неработающую панель оператора Weintek на исправную
Начните с файла проекта Панель оператора состоит из аппаратной части и программной. При замене панели на новую, нужно позаботиться о переносе программной части в новую..
27.08.2021
Типы адресов в драйвере Modbus панелей Weintek
Согласно встроенной справке Weintek обозначения Modbus адресов следует понимать так: Тип адреса Описание 0x ..
20.07.2021
Веб-интерфейс в панелях Weintek
В панелях Weintek серий cMT и cMT_X есть веб-интерфейс, который дает доступ к системным настройкам панели и позволяет ее удаленно обслуживать (например, производить актив..
05.07.2021
Настройка Wi-Fi в панелях Weintek (MT8103iE, cMT3103, cMT-G02, cMT-SVR-200)
Глава 1. Обзор 1.1. Вступление Некоторые модели HMI имеют беспроводное сетевое соединение (Wi-Fi), которое позволяет пользователям подключаться к локальной беспрово..
26.05.2021
Подключение к панелям Weintek в локальной сети
Рассматриваем подключение именно в локальной сети. Если возможно в локальной, то в глобальной уже дело техники (белый IP адрес у панели, самостоятельно организовать VPN и..
18.05.2021
Проброс портов на роутере для cMT Viewer
В EasyBuilder Pro начиная с версии 6.05.02.313 и для cMT Viewer (PC) начиная с версии 2.15.46 для cMT Viewer добавлена возможность указания портов не по умолчанию. Так..
17.05.2021
Какие TCP порты используют панели Weintek ?
В ПО Weintek   используются следующие TCP порты: Опция Порт по умолчанию Примечание Коммуника..
27.04.2021
Как обновить прошивку у панелей MT8102iP ?
В марте 2021 года компания Weintek выпустила обновление для панелей серии IP значительно расширяющее возможности по обработке данных. В моделях MT8051iP / MT8071iP / M..
17.02.2021
Панели оператора с браузером, Web браузер в панелях Weintek
Использование функции PLC WEB Bowser в панелях оператора Weintek позволяет получить так называемую web панель оператора (веб-панель). Какие модели панелей Weintek ..
//
0