[Модуль] ModBus (modbus)
Модератор: immortal
-
- Сообщения: 30
- Зарегистрирован: Чт апр 18, 2013 10:27 am
- Благодарил (а): 0
- Поблагодарили: 1 раз
Re: модуль modbus
если заполнить соответствующие поля непосредственно в базе MYSQL то свойства в объекте обновляются. После этого при открытии устройства modbus, поле "Связанное с-во" остается пустым. при попытке его изменить появляется "галочка". если нажать "сохранить", то пропадает связь свойство объекта и устройства, данные в "ThisComputer.TestModbus" не передаются.
где ошибка?
где ошибка?
-
- Сообщения: 30
- Зарегистрирован: Чт апр 18, 2013 10:27 am
- Благодарил (а): 0
- Поблагодарили: 1 раз
Re: модуль modbus
Как рассортировать пришедшие данные? запрашиваю диапазон регистров 10-15 (приходят и в виде: 29,2,605,161,207,376). у объекта несколько свойств, соответствующих разным регистрам.
- sergejey
- Site Admin
- Сообщения: 4284
- Зарегистрирован: Пн сен 05, 2011 6:48 pm
- Откуда: Минск, Беларусь
- Благодарил (а): 75 раз
- Поблагодарили: 1559 раз
- Контактная информация:
Re: модуль modbus
если данные сохраняются в одно свойство (object1.prop), то его можно раскидать по нужным таким кодом:Alekseym6 писал(а):Как рассортировать пришедшие данные? запрашиваю диапазон регистров 10-15 (приходят и в виде: 29,2,605,161,207,376). у объекта несколько свойств, соответствующих разным регистрам.
Код: Выделить всё
$tmp=explode(',',getGlobal('object1.prop'));
setGlobal('object1.prop0',$tmp[0]); //1-ый элемент
setGlobal('object1.prop1',$tmp[1]); //2-й элемент
setGlobal('object1.prop2',$tmp[2]); //3-й элемент
...
Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
-
- Сообщения: 30
- Зарегистрирован: Чт апр 18, 2013 10:27 am
- Благодарил (а): 0
- Поблагодарили: 1 раз
Re: модуль modbus
Благодарю, sergejey. методом гугления сделал так:
$str=$this->getProperty('HC_read');
$str_arr=explode(",",$str);
$size=count($str_arr); //для потом
$this->setProperty('volt',$str_arr[4]);
$this->setProperty('current',$str_arr[0]);
Ваш метод больше подходит т.к. объектов у меня больше.
sergejey, подскажите где у меня ошибка:
через WEB настройки modbusTCP не заполняется поле "Связанное с-во", данные в "ThisComputer.TestModbus" не передаются?
пришлось прописывать напрямую в MYSQL базу.
$str=$this->getProperty('HC_read');
$str_arr=explode(",",$str);
$size=count($str_arr); //для потом
$this->setProperty('volt',$str_arr[4]);
$this->setProperty('current',$str_arr[0]);
Ваш метод больше подходит т.к. объектов у меня больше.
sergejey, подскажите где у меня ошибка:
через WEB настройки modbusTCP не заполняется поле "Связанное с-во", данные в "ThisComputer.TestModbus" не передаются?
пришлось прописывать напрямую в MYSQL базу.
-
- Сообщения: 85
- Зарегистрирован: Пт фев 06, 2015 10:19 am
- Благодарил (а): 16 раз
- Поблагодарили: 9 раз
Re: модуль modbus
sergejey, а куда правильнее всего вставить такой код?
Сейчас у меня каждый регистр обновляться по отдельности через 1 секунду, а можно считывать их все одновременно, а потом раскидывать по свойствам кодом, разгрузив тем самым сеть и контроллер.sergejey писал(а): если данные сохраняются в одно свойство (object1.prop), то его можно раскидать по нужным таким кодом:Код: Выделить всё
$tmp=explode(',',getGlobal('object1.prop')); setGlobal('object1.prop0',$tmp[0]); //1-ый элемент setGlobal('object1.prop1',$tmp[1]); //2-й элемент setGlobal('object1.prop2',$tmp[2]); //3-й элемент ...
- Рейтинг: 1.16%
-
- Сообщения: 85
- Зарегистрирован: Пт фев 06, 2015 10:19 am
- Благодарил (а): 16 раз
- Поблагодарили: 9 раз
Re: модуль modbus
перестал выполняться цикл modbus.
Сперва в логах писал значение какой-то переменной, потом вообще перестал писать какие-либо ошибки. По логам стартует, но и все.
Случилось это после того как обновил модуль. До этого на чистой системе было все настроено и работало, решил обновить модуль Modbus и цикл перестал работать, его не видно в start.bat
Сперва в логах писал значение какой-то переменной, потом вообще перестал писать какие-либо ошибки. По логам стартует, но и все.
Случилось это после того как обновил модуль. До этого на чистой системе было все настроено и работало, решил обновить модуль Modbus и цикл перестал работать, его не видно в start.bat
- sergejey
- Site Admin
- Сообщения: 4284
- Зарегистрирован: Пн сен 05, 2011 6:48 pm
- Откуда: Минск, Беларусь
- Благодарил (а): 75 раз
- Поблагодарили: 1559 раз
- Контактная информация:
Re: модуль modbus
В логах есть момент запуска?Silowar писал(а):перестал выполняться цикл modbus.
Сперва в логах писал значение какой-то переменной, потом вообще перестал писать какие-либо ошибки. По логам стартует, но и все.
Случилось это после того как обновил модуль. До этого на чистой системе было все настроено и работало, решил обновить модуль Modbus и цикл перестал работать, его не видно в start.bat
Попробуйте запустить его отдельно от других циклов и посмотреть из-за чего он закрывается.
Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
-
- Сообщения: 85
- Зарегистрирован: Пт фев 06, 2015 10:19 am
- Благодарил (а): 16 раз
- Поблагодарили: 9 раз
Re: модуль modbus
Посмотрел чуть подробнее когда делаешь reroot
В общем логе есть и момент запуска и момент остановки.
16:32:02 DEBUG [root]: Starting ./scripts/cycle_modbus.php ... (at C:\_majordomo\htdocs\lib\general.class.php:430)
16:32:15 DEBUG [root]: Closing thread: c:/_majordomo/server/php/php.exe -q ./scripts/cycle_modbus.php --params "a:0:{}">>C:\_majordomo\htdocs/debmes/log_2015-09-02-cycle_modbus.php.txt (at C:\_majordomo\htdocs\lib\general.class.php:430)
в логе модуля:
16:32:15 running cycle_modbus.php
Удалил все устройства modbus, затем создал заново.
Результат тот же
В общем логе есть и момент запуска и момент остановки.
16:32:02 DEBUG [root]: Starting ./scripts/cycle_modbus.php ... (at C:\_majordomo\htdocs\lib\general.class.php:430)
16:32:15 DEBUG [root]: Closing thread: c:/_majordomo/server/php/php.exe -q ./scripts/cycle_modbus.php --params "a:0:{}">>C:\_majordomo\htdocs/debmes/log_2015-09-02-cycle_modbus.php.txt (at C:\_majordomo\htdocs\lib\general.class.php:430)
в логе модуля:
16:32:15 running cycle_modbus.php
Удалил все устройства modbus, затем создал заново.
Результат тот же
- sergejey
- Site Admin
- Сообщения: 4284
- Зарегистрирован: Пн сен 05, 2011 6:48 pm
- Откуда: Минск, Беларусь
- Благодарил (а): 75 раз
- Поблагодарили: 1559 раз
- Контактная информация:
Re: модуль modbus
Значит секунд 10 он всё-таки работает, а потом падает... Посмотрите в общем логе нет ли каких ошибок, например связанных с базой данных.
Ещё попробуйте добавить только одно устройство и не привязывать к нему никакой логики.
Ну и я всё же попробовал бы запустить этот цикл отдельно, потому что возможно что-то пишется ещё в консоль, а не только в лог.
Ещё попробуйте добавить только одно устройство и не привязывать к нему никакой логики.
Ну и я всё же попробовал бы запустить этот цикл отдельно, потому что возможно что-то пишется ещё в консоль, а не только в лог.
Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги