Про Modbus

Подключение исполнительных устройств, датчиков, контроллеров.

Модератор: immortal

Аватара пользователя
shemnik69
Сообщения: 590
Зарегистрирован: Пн дек 24, 2012 3:01 pm
Откуда: Саратов Saratov
Благодарил (а): 67 раз
Поблагодарили: 63 раза

Про Modbus

Сообщение shemnik69 » Ср дек 23, 2015 2:29 pm

Наткнулся на довольно интересную статью: http://arduino-kit.com.ua/instruction/a ... odbus.html
Описано все, в простой и понятной форме, приведены примеры, и куча еще разных полезных примеров и готовых скетчей и програм. Короче полезный материал.
Geban
Сообщения: 136
Зарегистрирован: Вс июл 14, 2013 2:42 pm
Благодарил (а): 6 раз
Поблагодарили: 27 раз

Re: Про Modbus

Сообщение Geban » Ср дек 23, 2015 5:42 pm

Ничего нового. Хотя для новичков самое то. А ещё через один регистр можно управлять кучей дискретных выходов.. если брать за состояние выхода каждый отдельный бит регистра. и того одним регистром можно описать 16 состояний.
Аватара пользователя
shemnik69
Сообщения: 590
Зарегистрирован: Пн дек 24, 2012 3:01 pm
Откуда: Саратов Saratov
Благодарил (а): 67 раз
Поблагодарили: 63 раза

Re: Про Modbus

Сообщение shemnik69 » Ср дек 23, 2015 9:34 pm

так про то и речь. Не все спецы уровня магистра Ёды, :D поэтому небольшой ликбез и основные понятия расписаные и показанные просто и понятно всегда полезены. Также указана интересная библиотека. да и еще на эом сайте я накопал много интересных и полезных скетчей и готового кода (для коллекции).
Victor_S
Сообщения: 265
Зарегистрирован: Пт дек 26, 2014 1:58 pm
Благодарил (а): 33 раза
Поблагодарили: 24 раза

Re: Про Modbus

Сообщение Victor_S » Чт дек 24, 2015 7:51 am

Ребята, а расшифруйте эту строчку из статьи, пожалуйста:
modbus_configure(&Serial, 9600, SERIAL_8N2, 1, 13, HOLDING_REGS_SIZE, holdingRegs);// Конфигурируем MODBUS
Geban
Сообщения: 136
Зарегистрирован: Вс июл 14, 2013 2:42 pm
Благодарил (а): 6 раз
Поблагодарили: 27 раз

Re: Про Modbus

Сообщение Geban » Чт дек 24, 2015 8:57 am

Ну так в скетче ж написано все )
это строка конфигурации модуля modbus
&Serial - это указатель на последовательный порт(видимо..надо смотреть библиотеку)
9600 - скорость передачи в сети
SERIAL_8N2 - параметры порта 8 бит данных, без бита четности и 2 бита окончания
HOLDING_REG_SIZE - это размер массива holdingRegs который был объявлен выше и который используется как holdingRegister в программе ниже
Victor_S
Сообщения: 265
Зарегистрирован: Пт дек 26, 2014 1:58 pm
Благодарил (а): 33 раза
Поблагодарили: 24 раза

Re: Про Modbus

Сообщение Victor_S » Чт дек 24, 2015 3:56 pm

Geban писал(а): это строка конфигурации модуля modbus
&Serial - это указатель на последовательный порт(видимо..надо смотреть библиотеку)
9600 - скорость передачи в сети
SERIAL_8N2 - параметры порта 8 бит данных, без бита четности и 2 бита окончания
HOLDING_REG_SIZE - это размер массива holdingRegs который был объявлен выше и который используется как holdingRegister в программе ниже
Там еще параметры имеются...;) и зачем параматры порта и скорости дважды(см.следующую строчку). Что же делает эта функция?
Просто мне все никак не дает покоя проблема именно первичной инициализации связи со счетчиками Меркурий по rs485. Там правда не modbus в чистом виде, а некая своя помесь...:) Родная прога от счетчиков что-то прописывает в порт помимо основных параметров, вот и гадаю что...
Geban
Сообщения: 136
Зарегистрирован: Вс июл 14, 2013 2:42 pm
Благодарил (а): 6 раз
Поблагодарили: 27 раз

Re: Про Modbus

Сообщение Geban » Чт дек 24, 2015 5:09 pm

Специально скачал библиотеку по ссылке..
нигде в коде нет объявления функции modbus_update_comms()
Либо в архиве не та версия, либо автор статьи чегото накосячил.
А так я был прав.
Вот заголовочник библиотеки

Код: Выделить всё

#include "Arduino.h"

// function definitions
unsigned int modbus_update();
void modbus_configure(HardwareSerial *SerialPort,
                                            long baud,
                                            unsigned char byteFormat,
                                            unsigned char _slaveID, 
                      unsigned char _TxEnablePin, 
                      unsigned int _holdingRegsSize,
                      unsigned int* _regs);

#endif
 
За это сообщение автора Geban поблагодарил:
Victor_S (Пт дек 25, 2015 8:22 am)
Рейтинг: 1.16%
Аватара пользователя
shemnik69
Сообщения: 590
Зарегистрирован: Пн дек 24, 2012 3:01 pm
Откуда: Саратов Saratov
Благодарил (а): 67 раз
Поблагодарили: 63 раза

Re: Про Modbus

Сообщение shemnik69 » Чт дек 24, 2015 10:45 pm

У Меркурия не Modbus. Там протокол обмена на основе Rs485 сети, но вот сам протокол не раскрывают. Причины простые. данные учета электроэнергии, это информация как коммерческого так и иного характера, также в протоколе есть парольный доступ (программы конфигураторы например мгут менять некоторый даные).
Считать сами данные через эмулирование средствами PHP протокола можно, но вот другие функции скорее всего не получатся.
На Ab-log.ru есть статья про чтеие данных с Меркуриев.
Есть еще вот тут:http://cyber-place.ru/showthread.php?t=1307
Посмотрите может чего интересного найдете.
Сам использую данные счетчика (CE) , но через программу конфигуратор. А промежуточные даные (по фазные мощности (условно), напряжение) через самодельный аналог энергомонитора (описаие в данной ветке).
За это сообщение автора shemnik69 поблагодарил:
Victor_S (Пт дек 25, 2015 8:23 am)
Рейтинг: 1.16%
Victor_S
Сообщения: 265
Зарегистрирован: Пт дек 26, 2014 1:58 pm
Благодарил (а): 33 раза
Поблагодарили: 24 раза

Re: Про Modbus

Сообщение Victor_S » Пт дек 25, 2015 8:28 am

Спасибо, я как бы в курсе...;) А описание протокола есть и довольно подробное. Я себе все настроил и работает. Проблема только с начальной инициализацией порта. Т.е. после перезагрузки компа нужно один раз запустить родную прогу и связаться с любым счетчиком. Потом прогу можно закрыть. После этого я без проблем связываюсь с любым счетчиком, могу читать и писать любые данные. Видимо кроме основных параметров порта(скорость, четность и т.д.), которые есть в интерфейсе программы и которые я соответственно настраиваю и у себя в скрипте она еще какие-то параметры порта настраивает по умолчанию.
Аватара пользователя
shemnik69
Сообщения: 590
Зарегистрирован: Пн дек 24, 2012 3:01 pm
Откуда: Саратов Saratov
Благодарил (а): 67 раз
Поблагодарили: 63 раза

Re: Про Modbus

Сообщение shemnik69 » Пт дек 25, 2015 10:53 am

Скорость какую ставите. Из опыта более 2400 не работает либо работает через пень колоду. Когда конфигуратор поставил пол-дня убил искал что да как пока не поменял на 2400 после этого хоть что с ним делай, читает как нужно.
Ответить