15.04.2013, 17:37 | #121 |
Senior Member
Регистрация: 20.01.2013
Адрес: Уфа
Сообщений: 444
Вес репутации: 799 |
А если после считывания принудительно закрывать соединение или перед открытием нового?
|
15.04.2013, 18:59 | #122 |
Senior Member
Регистрация: 16.09.2012
Адрес: Irkutsk
Сообщений: 555
Вес репутации: 1605 |
Если просто вызывать data.php разок то никаких проблем нет.
Весь смысл в динамике, чтоб в реале видеть состояние. вот в отладочном режиме через 12 мин работы после сбоя что выдает data.php Код:
readMultipleRegisters: START Connected Packet: 739700000006010300010001 Send Wait data ... Wait data ... Wait data ... Wait data ... Wait data ... Wait data ... Wait data ... Wait data ... Wait data ... Wait data ... Wait data ... Wait data ... Wait data ... Wait data ... Wait data ... exception 'Exception' with message 'Watchdog time expired [ 5 sec]!!! Connection to localhost is not established.' in /www/Phpmodbus/ModbusMaster.php:164 Stack trace: #0 /www/Phpmodbus/ModbusMaster.php(440): ModbusMaster->rec() #1 /www/data.php(17): ModbusMaster->readMultipleRegisters(1, 1, 1) #2 {main} readMultipleRegisters: START exception 'Exception' with message 'socket_connect() failed. Reason: ()Operation now in progress' in /www/Phpmodbus/ModbusMaster.php:106 Stack trace: #0 /www/Phpmodbus/ModbusMaster.php(434): ModbusMaster->connect() #1 /www/data.php(17): ModbusMaster->readMultipleRegisters(1, 1, 1) #2 {main} Последний раз редактировалось andr128; 15.04.2013 в 19:08. |
15.04.2013, 19:38 | #123 |
Senior Member
Регистрация: 16.09.2012
Адрес: Irkutsk
Сообщений: 555
Вес репутации: 1605 |
вот результат работы data.php пока еще все нормально
PHP код:
Код:
Время 00:32:26 Температура 24.7 ºC readMultipleRegisters: START Connected Packet: 9fc200000006010300010001 Send Wait data ... Data received Packet: 9fc20000000501030209a4 Modbus response error code: NOERROR Disconnected readMultipleRegisters: DONE |
15.04.2013, 21:46 | #124 |
Member
Регистрация: 03.12.2012
Адрес: Ярославль
Сообщений: 53
Вес репутации: 0 |
У меня были проблемы при опросе modbus в основном цикле. Как выяснилось из-за задержек опроса DS18B20, случайно установил DS1820 и удивился, что проблем нет ...
В результате тестирования на 1 час запросов с интервалом в 5 секунд, всего 7 ошибок modbus. Тесты не через ModBus Poll, а сразу же через PHP скрипты и Ваш выложенный modbusgw. Шлюз не подвис. С DS18B20 бывали случаи перезагрузки роутера. Последний раз редактировалось dmitry123; 15.04.2013 в 21:49. |
15.04.2013, 21:48 | #125 |
Member
Регистрация: 03.12.2012
Адрес: Ярославль
Сообщений: 53
Вес репутации: 0 |
Вот как отрицательную температуру передать ? У меня не передается.
|
15.04.2013, 22:43 | #126 |
Senior Member
Регистрация: 16.09.2012
Адрес: Irkutsk
Сообщений: 555
Вес репутации: 1605 |
Почему же, все работает я даже скриншот выкладывал.
Сейчас правда уже тепло, но еще зимой тестировал именно с отриц. температурой. Сейчас я испытываю др. библиотеку modbus php, может на ней будет работать. p.s. нееее такая же фигня. Последний раз редактировалось andr128; 15.04.2013 в 22:47. |
16.04.2013, 00:06 | #127 |
Junior Member
Регистрация: 28.01.2013
Сообщений: 23
Вес репутации: 0 |
Отвечаю сам себе:
"вот что получил от скрипта Fatal error: Call to undefined function socket_create() in /www/Phpmodbus/ModbusMaster.php on line 84" не хватало: opkg install php5-mod-sockets |
17.04.2013, 07:49 | #128 |
Senior Member
Регистрация: 16.09.2012
Адрес: Irkutsk
Сообщений: 555
Вес репутации: 1605 |
Продолжаю эксперименты.
Подключил ардуину через переходник USB - UART (PL2303) - RS485 Через 10 мин затык. Причем лог работы шлюза другой. Также как и предыдущих случаях помогает перезагрузка шлюза. modbusgw -port /dev/ttyUSB0 -baud 19200 -verbose -debug Код:
... Worker thread 0x6cb0530 shutting down A worker thread might be available Started worker 0x066b0530 Waiting for available worker thread Worker thread 0x066b0530 processing transaction 23713 SEND(fd=5, 8): 0x01 0x03 0x00 0x01 0x00 0x01 0xD5 0xCA timeout RECV(fd=5, 0): No response Worker thread 0x6ab0530 shutting down A worker thread might be available Started worker 0x064b0530 Waiting for available worker thread Worker thread 0x064b0530 processing transaction 5225 SEND(fd=5, 8): 0x01 0x03 0x00 0x01 0x00 0x01 0xD5 0xCA timeout RECV(fd=5, 0): Код:
... Worker thread 0x7fa28530 shutting down Started worker 0x7fc28530 Worker thread 0x7fc28530 processing transaction 10848 SEND(fd=5, 8): 0x01 0x03 0x00 0x01 0x00 0x01 0xD5 0xCA RECV(fd=5, 7): 0x01 0x03 0x02 0x09 0xA4 0xBF 0xAF write(fd=6, 11) Worker thread 0x7fc28530 shutting down Started worker 0x7ff44530 Worker thread 0x7ff44530 processing transaction 39010 SEND(fd=5, 8): 0x01 0x03 0x00 0x01 0x00 0x01 0xD5 0xCA RECV(fd=5, 7): 0x01 0x03 0x02 0x09 0xA4 0xBF 0xAF write(fd=6, 11) Worker thread 0x7ff44530 shutting down Started worker 0x7ff44530 Started worker 0x7ff44530 Started worker 0x7ff44530 Waiting for available worker thread Подключение ADAM-4024 (заводской блок УСО, фирмы Advantech) к mr3020. Подключение было сделано 2-мя вариантами: 1. через железный UART-RS232 <-> RS232-RS485 <-> ADAM 2. через переходник USB-RS485 (на PL2303) <-> ADAM Эксперимент также закончился зависанием через 10-15 мин Ухх что-то не получается автоматизация. вот тут товарищ тоже пишет нечто подобное Последний раз редактировалось andr128; 17.04.2013 в 12:12. |
17.04.2013, 09:58 | #129 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823 |
А если Aduino подключить по USB, тоже подвисает?
|
17.04.2013, 12:09 | #130 |
Senior Member
Регистрация: 16.09.2012
Адрес: Irkutsk
Сообщений: 555
Вес репутации: 1605 |
Да тоже виснет через xx мин.
Сейчас вроде добился стабильной работы с др. шлюзом mbusd + напрямую по USB Arduino. Через какое-то время повис. Но запустил с др. параметрами - что бы не писал свой лог в /var/log/mbus.log (это по сути /tmp/log/) т.е. память которая постепенно уменьшается. Может поэтому и повис. mbusd -L/dev/null -p/dev/ttyUSB0 -s19200 вот его хелп: Код:
mbusd-0.1.2 Copyright (C) 2002, 2003 Victor Antonovich <[email protected]> Usage: mbusd [-h] [-d] [-v level] [-L name] [-p name] [-s value] [-P number] [-C number] [-N number] [-R value] [-W value] [-T value] -h this help -d don't daemonize -v<level> set log level (0-9, default 2, 0 - errors only) -L<name> set log file name (default /var/log/mbus.log, value '-' forces log data output to STDOUT only if '-d' switch was given) -p<name> set serial port device name (default /dev/ttyS0) -s<value> set serial port speed (default 19200) -P<number> set TCP server port number (default 502) -C<number> set maximum number of simultaneous connections (1-128, default 32) -N<number> set maximum number of request retries установить максимальное количество попыток запроса (0-15, default 3, 0 - without retries) -R<value> set pause between requests in milliseconds установить паузу между запросами в миллисекундах (1-10000, default 100) -W<value> set response wait time in milliseconds установить время ожидания ответа в миллисекундах (1-10000, default 10) -T<value> set connection timeout value in seconds (0-1000, default 60, 0 - no timeout) Что мне в нем не нравится, почему то не хочет работать с ttyATH0 ? Рано обрадовался через ~60 мин подвис. php в отладке выдал такую хрень: Код:
Web site started: 16:14:09 readMultipleRegisters: START Connected Packet: bb2a00000006010300010001 Send Wait data ... Data received Packet: bb2a00000003018381 exception 'Exception' with message 'Modbus response error code: 129 (UNDEFINED FAILURE CODE)' in /www/Phpmodbus/ModbusMaster.php:203 Stack trace: #0 /www/Phpmodbus/ModbusMaster.php(507): ModbusMaster->responseCode('?*???????') #1 /www/Phpmodbus/ModbusMaster.php(443): ModbusMaster->readMultipleRegistersParser('?*???????') #2 /www/data.php(17): ModbusMaster->readMultipleRegisters(1, 1, 1) #3 {main} Код:
root@OpenWrt:~# killall mbusd root@OpenWrt:~# mbusd -L/null -p/dev/ttyUSB0 Код:
Web site started: 16:14:09 Время 17:20:00 Температура 24.4 ºC readMultipleRegisters: START Connected Packet: e8e300000006010300010001 Send Wait data ... Data received Packet: e8e300000005010302098b Modbus response error code: NOERROR Disconnected readMultipleRegisters: DONE Последний раз редактировалось andr128; 18.04.2013 в 20:41. |
Здесь присутствуют: 8 (пользователей: 0 , гостей: 8) | |
|
|