Форум обсуждения систем  

Вернуться   Форум обсуждения систем "Умный дом", проектов Ардуино, OpenWRT и других DIY устройств > Форум умного дома > Сделай сам > CyberWrt

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 08.06.2014, 11:43   #1
uni
Senior Member
 
Аватар для uni
 
Регистрация: 29.10.2013
Адрес: Екатеринбург, Нижневартовск, Энергодар
Возраст: 43
Сообщений: 573
Вес репутации: 599
uni has a spectacular aura aboutuni has a spectacular aura about
Отправить сообщение для uni с помощью ICQ
По умолчанию CyberWrt модуль "Modbus"

Набор функций для работы по протоколу Modbus-RTU (master).

Исходники на github: modbus

Зависимости: coreutils-sleep.

Описание класса Modbus

Свойства:

Tasks - массив задач.


Методы:

crc16( data ) - вычисление CRC16 табличным способом для массива байт;
Fill( func, data ) - заполнение массивов с данными (используется в обработчике OnReceive());
Post( task ) - post-запрос к скрипту командного интерпретатора;

ReadCoils( handle, slaveid, address, quantity, updaterate );
ReadDiscreteInputs( handle, slaveid, address, quantity, updaterate );
ReadHoldingRegisters( handle, slaveid, address, quantity, updaterate );
ReadInputRegisters( handle, slaveid, address, quantity, updaterate );
WriteSingleCoil( handle, slaveid, address, value, updaterate );
WriteSingleRegister( handle, slaveid, address, value, updaterate );
WriteMultipleRegisters( handle, slaveid, address, values, updaterate );

UpdateEnable( handle );
UpdateDisable( handle );
UpdateOnce( handle );

Register( handle, n ) - возвращает uint16 значение регистра n, запрошенного в задаче handle.


События:

OnReceive( task, data ) - функция-обработчик при приёме данных после post-запроса;
OnFailure( handle, error ) - функция-обработчик ошибки при приёме данных;
OnSuccess( handle ) - функция-обработчик в случае успешного приёма данных;
OnTimer( task ) - функция-обработчик таймера.


Особенности:

1. Функцию с параметрами нужно вписывать в верхнее текстовое окно.
2. Настройки порта выполняются путём изменения свойства modbus.Serial. Если в качестве Name используется ttyATH0, то должна быть отключена функция вывода системных сообщений в этот порт. Они мешают нормальной работе.

Работа скриптов проверялась при помощи симулятора: Modbus Slave.

Документацию на протокол Modbus-RTU можно скачать отсюда:
1. Modbus_Application_Protocol_V1_1b3.pdf
2. Modbus_Rus.Doc

RTU фрейм.

В RTU режиме сообщение начинается с интервала тишины равного времени передачи 3.5 символов при данной скорости передачи в сети. Первым полем затем передается адрес устройства.
Вслед за последним передаваемым символом также следует интервал тишины продолжительностью не менее 3.5 символов. Новое сообщение может начинаться после этого интервала.
Фрейм сообщения передается непрерывно. Если интервал тишины продолжительностью 1.5 возник во время передачи фрейма, принимающее устройство заканчивает прием сообщения и следующий байт будет воспринят как начало следующего сообщения.
Таким образом, если новое сообщение начнется раньше 3.5 интервала, принимающее устройство воспримет его как продолжение предыдущего сообщения. В этом случае устанавливается ошибка, так как будет несовпадение контрольных сумм. Типичный фрейм сообщения показан ниже.
Код:
 +-----------+--------+--------+--------+--------+-----------+
 ¦   старт   ¦  адрес ¦функция ¦ данные ¦   CRC  ¦   конец   ¦
 +-----------+--------+--------+--------+--------+-----------+
 ¦T1-T2-T3-T4¦  8 бит ¦  8 бит ¦n x бит ¦ 16 бит ¦T1-T2-T3-T4¦
 +-----------+--------+--------+--------+--------+-----------+
__________________
Россия навсегда!

Последний раз редактировалось uni; 03.12.2014 в 15:27.
uni вне форума   Ответить с цитированием
 

Метки
modbus, modbus-rtu, скрипт, модуль


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 20:49. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Яндекс.Метрика