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

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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 15.04.2013, 17:37   #121
Bulatovor
Senior Member
 
Регистрация: 20.01.2013
Адрес: Уфа
Сообщений: 444
Вес репутации: 799
Bulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond repute
По умолчанию

А если после считывания принудительно закрывать соединение или перед открытием нового?
Bulatovor вне форума   Ответить с цитированием
Старый 15.04.2013, 18:59   #122
andr128
Senior Member
 
Аватар для andr128
 
Регистрация: 16.09.2012
Адрес: Irkutsk
Сообщений: 555
Вес репутации: 1605
andr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond repute
По умолчанию

Если просто вызывать 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.
andr128 вне форума   Ответить с цитированием
Старый 15.04.2013, 19:38   #123
andr128
Senior Member
 
Аватар для andr128
 
Регистрация: 16.09.2012
Адрес: Irkutsk
Сообщений: 555
Вес репутации: 1605
andr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond repute
По умолчанию

вот результат работы data.php пока еще все нормально

PHP код:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>TEST MODBUS</title>
</head>
<body>

<?php

require_once dirname(__FILE__) . '/Phpmodbus/ModbusMaster.php'

$modbus = new ModbusMaster("localhost""TCP"); 


// Read multiple registers Fn 3 (ID, addr, registers read)
try {
    
$recData $modbus->readMultipleRegisters(111); 
}
catch (
Exception $e) {
// Print error information if any
    
echo $modbus;
    echo 
$e;
    exit;
}

  echo 
"Время ".date('H:i:s')."\n";
  echo 
"<h2>Температура</h2>\n";
  
$tm PhpType::bytes2signedInt($recData) / 100
  
$tmr round($tm,  1); 
  echo 
"<h2> $tmr ºC</h2>";

  echo 
$modbus->status// состояние для отладки

?>

</body>
</html>
Вывод самой страницы
Код:
Время 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
Как видно соединение открывается и закрывается
andr128 вне форума   Ответить с цитированием
Старый 15.04.2013, 21:46   #124
dmitry123
Member
 
Регистрация: 03.12.2012
Адрес: Ярославль
Сообщений: 53
Вес репутации: 0
dmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant future
По умолчанию

У меня были проблемы при опросе modbus в основном цикле. Как выяснилось из-за задержек опроса DS18B20, случайно установил DS1820 и удивился, что проблем нет ...
В результате тестирования на 1 час запросов с интервалом в 5 секунд, всего 7 ошибок modbus. Тесты не через ModBus Poll, а сразу же через PHP скрипты и Ваш выложенный modbusgw. Шлюз не подвис. С DS18B20 бывали случаи перезагрузки роутера.

Последний раз редактировалось dmitry123; 15.04.2013 в 21:49.
dmitry123 вне форума   Ответить с цитированием
Старый 15.04.2013, 21:48   #125
dmitry123
Member
 
Регистрация: 03.12.2012
Адрес: Ярославль
Сообщений: 53
Вес репутации: 0
dmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant futuredmitry123 has a brilliant future
По умолчанию

Вот как отрицательную температуру передать ? У меня не передается.
dmitry123 вне форума   Ответить с цитированием
Старый 15.04.2013, 22:43   #126
andr128
Senior Member
 
Аватар для andr128
 
Регистрация: 16.09.2012
Адрес: Irkutsk
Сообщений: 555
Вес репутации: 1605
andr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond repute
По умолчанию

Цитата:
Сообщение от dmitry123 Посмотреть сообщение
Вот как отрицательную температуру передать ? У меня не передается.
Почему же, все работает я даже скриншот выкладывал.
Сейчас правда уже тепло, но еще зимой тестировал именно с отриц. температурой.

Сейчас я испытываю др. библиотеку modbus php, может на ней будет работать.

p.s.
нееее такая же фигня.

Последний раз редактировалось andr128; 15.04.2013 в 22:47.
andr128 вне форума   Ответить с цитированием
Старый 16.04.2013, 00:06   #127
Iron
Junior Member
 
Регистрация: 28.01.2013
Сообщений: 23
Вес репутации: 0
Iron is an unknown quantity at this point
По умолчанию

Отвечаю сам себе:
"вот что получил от скрипта

Fatal error: Call to undefined function socket_create() in /www/Phpmodbus/ModbusMaster.php on line 84"


не хватало:

opkg install php5-mod-sockets
Iron вне форума   Ответить с цитированием
Старый 17.04.2013, 07:49   #128
andr128
Senior Member
 
Аватар для andr128
 
Регистрация: 16.09.2012
Адрес: Irkutsk
Сообщений: 555
Вес репутации: 1605
andr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond repute
По умолчанию

Продолжаю эксперименты.
Подключил ардуину через переходник 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):
Подключение ардуины напрямую по USB. Тоже самое только в профиль.

Код:
...
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.
andr128 вне форума   Ответить с цитированием
Старый 17.04.2013, 09:58   #129
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию

А если Aduino подключить по USB, тоже подвисает?
Admin вне форума   Ответить с цитированием
Старый 17.04.2013, 12:09   #130
andr128
Senior Member
 
Аватар для andr128
 
Регистрация: 16.09.2012
Адрес: Irkutsk
Сообщений: 555
Вес репутации: 1605
andr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond repute
По умолчанию

Да тоже виснет через 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)
55 мин - полет нормальный

Что мне в нем не нравится, почему то не хочет работать с 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.
andr128 вне форума   Ответить с цитированием
Ответ


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

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

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

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


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


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