[Модуль] ModBus (modbus)

Разработка дополнительных модулей, подключение различных приложений.

Модератор: immortal

Аватара пользователя
sergejey
Site Admin
Сообщения: 4279
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1518 раз
Контактная информация:

Re: модуль modbus

Сообщение sergejey » Пт фев 24, 2017 1:39 pm

blackangel писал(а):Есть предложение к автору!
Крайне неудобно, открывать отдельно взятую запись чтобы увидеть тип запроса и адрес. Поэтому предлагаю добавить в общий список колонки "Адрес" и "тип запроса". Было бы очень удобно наглядно смотреть какие у тебя адреса заняты.
Я добавил эти сведения при выводе списка.

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
temandroid
Сообщения: 1
Зарегистрирован: Вс мар 05, 2017 5:00 pm
Благодарил (а): 0
Поблагодарили: 0

Re: модуль modbus

Сообщение temandroid » Вс мар 05, 2017 5:02 pm

Подскажите, не происходит опрос датчиков по крону, в чем может быть проблема? При ручном обновлении все ок...
directman66
Сообщения: 2769
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 377 раз
Поблагодарили: 637 раз
Контактная информация:

Re: модуль modbus

Сообщение directman66 » Ср апр 05, 2017 9:54 am

Подскажите, имеется счетчик милур 104 (http://milur.ru/index.php?page=milur-104)

в описании прибора указан протокол взаимодействия modbus.
СпойлерПоказать
Требования к аппаратной и программной платформе
Соединение счетчика с персональным компьютером осуществляется с помощью
устройства оптического сопряжения (УСО), для работы со счетчиком через оптический
порт, либо с помощью преобразователя интерфейсов (ПИ) вида RS-485 – RS232 или RS485
– USB. Без описанных устройств дальнейшая работы с программы невозможна.
Программное обеспечение, в настоящее время, работает в среде Windows (XP и
старше), не требует установки и работает без дополнительных компонентов.
Согласно инструкции к конфигуратору http://milur.ru/uploads/Products/electr ... 7_1.19.pdf

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


Можно ли имея устройства оптического сопряжения (УСО) каким-то образом получать эти показатели и передавать из в MD?
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram | +79122962262 WhatsApp
omelchuk890
Сообщения: 5
Зарегистрирован: Чт май 11, 2017 11:43 am
Благодарил (а): 3 раза
Поблагодарили: 0

Re: модуль modbus

Сообщение omelchuk890 » Чт май 11, 2017 12:04 pm

Всем доброго времени суток!
Имеются в домашней работе два промышленых контролера, расположенные далеко друг от друга, интерфейс 232.
С существующей системе подключены через USR-TCP232-2 , сервер raspberry pi 2 B, в итоге имею RTU over TCP, для его принятия на распбери запушена программа socat, получаю виртуальные ссылки (порты), их указываю для com портов в софте - всё ок.
Хочу всё это перенести на majordomo, но как приклеить ДВА RTU-over-TCP - незнаю... Разница всего-то в CRC....
Замена USR-TCP232-2 на преобразователи RTU-TCP не рассматривается, т.к. при програмировании они работают как Ethernet to Serial.
С *unix на Вы и шёпотом.
auris
Сообщения: 5
Зарегистрирован: Ср апр 05, 2017 12:07 am
Благодарил (а): 4 раза
Поблагодарили: 0

Re: модуль modbus

Сообщение auris » Пт май 26, 2017 12:08 am

установил ser2net на разбери, настоил на 4001 порт , подключил к считчику SDM220 по юсб,
конфиг ser2net:
TRACEFILE:tr1:/var/log/ser2net/p-Y-M-D-H:i:s.U
4001:telnet:0:/dev/ttyUSB0:9600 8DATABITS NONE 1STOPBIT banner tr=tr1 timestamp

Выдает в Мажердомо:
2017-05-04 10:29:10 FC4 Error: <pre>readMultipleInputRegisters: START
Connected
Packet: 903b00000006010400000002
Send
Wait data ...
Data received
Packet: fffb03fffb01fffe01fffd000d0a736572326e657420706f7274203430303120646576696365202f6465762f74747955534230205b39363030204e38315d202844656269616e20474e552f4c696e7578290d0a0d0a
</pre> exception 'Exception' with message 'Modbus response error code: 1 (ILLEGAL FUNCTION)' in /var/www/modules/modbus/ModbusMaster.php:205
Stack trace:
#0 /var/www/modules/modbus/ModbusMaster.php(608): ModbusMaster->responseCode('\xFF\xFB\x03\xFF\xFB\x01\xFF\xFE\x01\xFF\xFD\x00\r\ns...')
#1 /var/www/modules/modbus/ModbusMaster.php(544): ModbusMaster->readMultipleInputRegistersParser('\xFF\xFB\x03\xFF\xFB\x01\xFF\xFE\x01\xFF\xFD\x00\r\ns...')
#2 /var/www/modules/modbus/modbus.class.php(249): ModbusMaster->readMultipleInputRegisters('1', '0', '2')
#3 /var/www/modules/modbus/modbus.class.php(134): modbus->poll_device('2')
#4 /var/www/modules/modbus/modbus.class.php(93): modbus->admin(Array)
#5 /var/www/lib/jTemplate.class.php(711) : eval()'d code(8): modbus->run()
#6 /var/www/lib/jTemplate.class.php(711): eval()
#7 /var/www/lib/jTemplate.class.php(195): jTemplate->parseModules('<!DOCTYPE html>...', Array, './templates/')
#8 /var/www/lib/jTemplate.class.php(109): jTemplate->parse('<!--#\n @version...', Array, './templates/')
#9 /var/www/lib/parser.class.php(93): jTemplate->__construct('./templates/pan...', Array, Object(panel))
#10 /var/www/lib/parser.class.php(63): parser->jtemplate_parse('./templates/pan...', Array)
#11 /var/www/modules/panel.class.php(162): parser->__construct('./templates/pan...', Array, Object(panel))
#12 /var/www/admin.php(37): panel->run()
#13 {main}
Аватара пользователя
cepxuo
Сообщения: 98
Зарегистрирован: Вт май 02, 2017 7:31 am
Благодарил (а): 31 раз
Поблагодарили: 6 раз

Re: модуль modbus

Сообщение cepxuo » Вс июн 04, 2017 11:57 am

Для тех, у кого MDM крутится под Windows и кто использует USB modbus контроллер. Данный контроллер отправляет данные по COM-порту, а МДМ нужно TCP-соединение.
Я нашёл удобную утилитку, пробрасывающую СОМ-порт в ТСР: https://sourceforge.net/projects/tcpcom32/
omelchuk890
Сообщения: 5
Зарегистрирован: Чт май 11, 2017 11:43 am
Благодарил (а): 3 раза
Поблагодарили: 0

Re: модуль modbus

Сообщение omelchuk890 » Чт июн 08, 2017 5:56 pm

cepxuo писал(а):Для тех, у кого MDM крутится под Windows и кто использует USB modbus контроллер. Данный контроллер отправляет данные по COM-порту, а МДМ нужно TCP-соединение.
Я нашёл удобную утилитку, пробрасывающую СОМ-порт в ТСР: https://sourceforge.net/projects/tcpcom32/
Вы опробовали?
Если да, то получается, что модбас тср в majordomo вычисляет и отправляет контрольную сумму в пакете, как в rtu ?!
Получается, он должен отработать режим RTU over TCP ?????
Завтра-же проверю!!!!!!!!!!!!
В чистом ModBus ТСР этого (CRC) нет.
Аватара пользователя
cepxuo
Сообщения: 98
Зарегистрирован: Вт май 02, 2017 7:31 am
Благодарил (а): 31 раз
Поблагодарили: 6 раз

Re: модуль modbus

Сообщение cepxuo » Чт июн 08, 2017 8:20 pm

omelchuk890 писал(а): Вы опробовали?
С живыми данными не проверял, жду датчик температуры и влажности, он что-то застрял по дороге. Но пока, по ТСР получаю от USB-донгла точно такой же ответ, как по СОМ-порту.
omelchuk890
Сообщения: 5
Зарегистрирован: Чт май 11, 2017 11:43 am
Благодарил (а): 3 раза
Поблагодарили: 0

Re: модуль modbus

Сообщение omelchuk890 » Пт июн 09, 2017 11:00 am

Попробовал вживую контролер Овен ПЛК-63 с модулем Serial to Ethernet, т.е. режим RTU поверх ТСР - не работает.
Смею предположить, что и с указанной утилитой будет тоже, т.к. она НЕ конвертирует протоколы RTU<->TCP, а меняет лишь "обёртку", физический уровень.
Надеюсь, что когда нибудь в majordomo появится и ModBus RTU over TCP. проставлюсь :)
Аватара пользователя
cepxuo
Сообщения: 98
Зарегистрирован: Вт май 02, 2017 7:31 am
Благодарил (а): 31 раз
Поблагодарили: 6 раз

Re: модуль modbus

Сообщение cepxuo » Пн июн 12, 2017 9:50 pm

пришёл датчик температуры/влажности на SHT20, вот отсюда: https://ru.aliexpress.com/item/RS485-SH ... 0.0.1D8DyN
Пришёл и загнал меня в ступор. Выхлоп у него такой:

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

c:\_majordomo\apps>modpoll -1 -c 9 -m rtu -b 9600 -p none  COM4
modpoll 3.4 - FieldTalk(tm) Modbus(R) Master Simulator
Copyright (c) 2002-2013 proconX Pty Ltd
Visit http://www.modbusdriver.com for Modbus libraries and tools.

Protocol configuration: Modbus RTU
Slave configuration...: address = 1, start reference = 1, count = 9
Communication.........: COM4, 9600, 8, 1, none, t/o 1.00 s, poll rate 1000 ms
Data type.............: 16-bit register, output (holding) register table

-- Polling slave...
[1]: 415
[2]: 303
[3]: 158
[4]: 16934
[5]: 26160
[6]: 16882
[7]: -13504
[8]: 16765
[9]: -28228
Кто знает, как понять что тут где? Скорее всего 41.5% - это влажность и 30,3 градуса - температура. А остальное - что?

И да, рано радовался проге TCPCOM32. Не передаёт она RTU по TCP.
Ответить