SmartLiving.ru

Обсуждение проекта
 
Текущее время: Пт дек 15, 2017 3:10 pm

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 208 ]  На страницу 1, 2, 3, 4, 5 ... 21  След.
Автор Сообщение
 Заголовок сообщения: модуль modbus
СообщениеДобавлено: Пт июл 04, 2014 8:32 am 
Не в сети

Зарегистрирован: Вс июл 14, 2013 2:42 pm
Сообщения: 130
Благодарил (а): 6 раз.
Поблагодарили: 18 раз.
Добрый день.
понадобилось мне подружить пром.автоматику и умный дом. Было два варианта, первый - ModBus over RS485, второй - ModbusTCP
Для первого нужны преобразователи, для второго все есть. Но вот беда, в MDM нет функции работы по этому протоколу.
Около недели сидел колупал модуль snmpdevices, хотел на его основе сделать модуль для modbus, но ничего не получилось.
Сейчас все работает на основе сценариев и phpmodbusTcp, но это как то.. на костыли похоже. может кто то сделать модуль или подскажите где почитать про модулеписание для MDM
спасибо.
З.Ы.
На случай если кто то возмется за разработку и не имеет железа для проверки:
Вот тут http://habrahabr.ru/post/214011/ человек юзает на ардуине modbus slave, проверял, работает.
А вот тут http://www.modbustools.com/download.asp можно качнуть софтику для проверки конекта
PHP ModBUS https://code.google.com/p/phpmodbus


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: модуль modbus
СообщениеДобавлено: Пт июл 04, 2014 11:08 am 
Не в сети

Зарегистрирован: Сб дек 21, 2013 9:21 pm
Сообщения: 208
Откуда: Spain
Благодарил (а): 1 раз.
Поблагодарили: 22 раз.
Вот в этой французкой системе, есть модуль на си ModBus over RS485, сделанный русским.

git clone https://github.com/calaos/calaos-os.git
sudo wajig install gawk
./build.sh config raspberrypi
sudo wajig install diffstat chrpath
cd /home/user/claos/calaos-os/
nano /home/user/claos/calaos-os/sources/meta-calaos/recipes-extended/log4cpp/log4cpp_1.0.bb
Need change current to old inside of link.
./build.sh build
(may be : bitbake calaos-image, . ./env.sh)
sudo dd if=./tmp-calaos-eglibc/deploy/images/calaos-image-raspberrypi-
20131203193356.rootfs.rpi-sdimg of=/dev/mmcblk0
sudo dd bs=1M if=./tmp-calaos-eglibc/deploy/images/raspberrypi/calaos-image-
raspberrypi-20131203193356.rootfs.rpi-sdimg of=/dev/sdb
Extra experimental images :
http://calaos.fr/download/experimental/

Имидж на Райсрбери Пай лучше писать популярной утилитой под виндоус, под Линукс нужно делать ещё один финт с загрузчиком, который тут не указан.

_________________
http://onename.com/ignat


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: модуль modbus
СообщениеДобавлено: Пт июл 04, 2014 12:29 pm 
Не в сети

Зарегистрирован: Вс июл 14, 2013 2:42 pm
Сообщения: 130
Благодарил (а): 6 раз.
Поблагодарили: 18 раз.
проблема не в том что бы подружить modbus с линуксовой машиной, с этим траблов нет. Хотелось иметь поддержку этого протокола внутри MDM, так сказать нативно. А не так как это работает у меня сейчас.
На винду у меня аллергия. Поэтому все действия происходят под Debian7


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: модуль modbus
СообщениеДобавлено: Пн июл 07, 2014 1:10 pm 
Не в сети
Site Admin

Зарегистрирован: Пн сен 05, 2011 6:48 pm
Сообщения: 4171
Откуда: Минск, Беларусь
Благодарил (а): 66 раз.
Поблагодарили: 1138 раз.
Geban писал(а):
проблема не в том что бы подружить modbus с линуксовой машиной, с этим траблов нет. Хотелось иметь поддержку этого протокола внутри MDM, так сказать нативно. А не так как это работает у меня сейчас.
На винду у меня аллергия. Поэтому все действия происходят под Debian7


А нет какого-нибудь HTTP API для этого протокола? Типа как для OneWire. Было бы идеально.

_________________

Сергей Джейгало, разработчик MajorDoMo
Профиль Connect -- информация, сотрудничество, услуги


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: модуль modbus
СообщениеДобавлено: Пн июл 07, 2014 1:52 pm 
Не в сети

Зарегистрирован: Вс июл 14, 2013 2:42 pm
Сообщения: 130
Благодарил (а): 6 раз.
Поблагодарили: 18 раз.
sergejey писал(а):
Geban писал(а):
проблема не в том что бы подружить modbus с линуксовой машиной, с этим траблов нет. Хотелось иметь поддержку этого протокола внутри MDM, так сказать нативно. А не так как это работает у меня сейчас.
На винду у меня аллергия. Поэтому все действия происходят под Debian7


А нет какого-нибудь HTTP API для этого протокола? Типа как для OneWire. Было бы идеально.


Да вот фиг знает! Не нашел я. Все что есть это библиотека для PHP которую я пользую.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: модуль modbus
СообщениеДобавлено: Пн июл 07, 2014 2:07 pm 
Не в сети
Site Admin

Зарегистрирован: Пн сен 05, 2011 6:48 pm
Сообщения: 4171
Откуда: Минск, Беларусь
Благодарил (а): 66 раз.
Поблагодарили: 1138 раз.
В принципе, этой библиотеки вполне достаточно и я могу попробовать сделать модуль "вслепую", чтобы его потом можно было проверить.
А есть примеры того, как сейчас используется эта библиотека с реальным железом?

_________________

Сергей Джейгало, разработчик MajorDoMo
Профиль Connect -- информация, сотрудничество, услуги


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: модуль modbus
СообщениеДобавлено: Пн июл 07, 2014 10:32 pm 
Не в сети

Зарегистрирован: Вс июл 14, 2013 2:42 pm
Сообщения: 130
Благодарил (а): 6 раз.
Поблагодарили: 18 раз.
в корне вэб сервера лежит файл modbus.php . Вот с такими вот кишками
Код:

<?php

require_once dirname
(__FILE__) . '/Phpmodbus/ModbusMasterTcp.php';

// Create Modbus object
$modbus = new ModbusMasterTcp("$ip");

try {
    // FC 3
    $recData = $modbus->readMultipleRegisters(0, 12288, 10);
}
catch (Exception $e) {
    echo "!!error";
    exit;
}

for ($i=1;$i < count($recData); $i++)
{
 print $recData[$i].'|';
}
return 0;
?>


на выходе функция readMultipleRegisters(0, 12288, 10) отдает массив прочитанных регистров. Тут 0 - device id, 12288 - начало адресного пространства по версии этой библиотеки, 10 кол-во регистров для чтения.
Я немного подправил вывод что бы получать форматированную строку удобную для парсинга. MDM раз в минуту или по событию дергает этот скрипт, в ответ получает строку и распарсивает её. В принципе такая конструкция работает не плохо, но это большой и страшный костыль. Примеры чтения и записи устройств есть в архиве с библиотекой, ссылку на которую я давал в первом посте.
У меня на шине висит панель оператора, модуль сбора данных и самодельный девайс на ардуине. Панель пока не ковырял, времени нет, модуль собирает инфу с термодатчиков, ардуина получает инфу с восьми DHT22 и рулит пятью твердотельными реле, а MDM принимает решение о мерах для поддержания климата.


Последний раз редактировалось Geban Вт июл 08, 2014 9:02 am, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: модуль modbus
СообщениеДобавлено: Вт июл 08, 2014 8:33 am 
Не в сети

Зарегистрирован: Вс апр 07, 2013 9:30 pm
Сообщения: 526
Откуда: Moscow
Благодарил (а): 1 раз.
Поблагодарили: 56 раз.
Внесу свои пять копеек :)
Для того, чтобы каждый раз в цикле не высчитывать количество элементов, замените кусок кода:
Код:
for ($i=1;$i < count($recData); $i++)
{
 print $recData[$i].'|';
}
на этот:
Код:
$recDataCount = count($recData); 
for 
($i = 1; $i < $recDataCount; $i++)
{
   print $recData[$i] . '|';
}
 

_________________
________________________________________________________
Majordomo (GitHub) на HP Microserver Gen8. OS Debian Wheezy


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: модуль modbus
СообщениеДобавлено: Вт июл 08, 2014 8:59 am 
Не в сети

Зарегистрирован: Вс июл 14, 2013 2:42 pm
Сообщения: 130
Благодарил (а): 6 раз.
Поблагодарили: 18 раз.
LutsenkoDenis писал(а):
Внесу свои пять копеек :)
Для того, чтобы каждый раз в цикле не высчитывать количество элементов, замените кусок кода:
Код:
for ($i=1;$i < count($recData); $i++)
{
 print $recData[$i].'|';
на этот:
Код:
$recDataCount = count($recData); 
for 
($i = 1; $i < $recDataCount; $i++)
{
   print $recData[$i] . '|';
}


Можно и так. спасибо )


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: модуль modbus
СообщениеДобавлено: Вт июл 08, 2014 10:35 am 
Не в сети
Site Admin

Зарегистрирован: Пн сен 05, 2011 6:48 pm
Сообщения: 4171
Откуда: Минск, Беларусь
Благодарил (а): 66 раз.
Поблагодарили: 1138 раз.
В целом ясно. Записал себе в список задач. Постараюсь сделать модуль в ближайшее время.

_________________

Сергей Джейгало, разработчик MajorDoMo
Профиль Connect -- информация, сотрудничество, услуги


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 208 ]  На страницу 1, 2, 3, 4, 5 ... 21  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: kyle21 и гости: 1


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

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB