FLProg
Вход на сайт
Логин:
Пароль:
Мы в VK
Поиск
Статистика


Яндекс.Метрика
Пятница, 09.12.2016, 10:40
Приветствую Вас Гость | RSS
Главная | Регистрация | Вход

Поиск по сайту


Форум
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Модератор форума: support, Сергей 
Форум » Основной » Спросить у знатоков » передача данных по сети
передача данных по сети
keeper1978
Дата: Вторник, 19.04.2016, 17:57 | Сообщение # 1
Лейтенант
Группа: Проверенные
Сообщений: 91
Награды: 0
Репутация: 0
Статус: Offline
Ребят нужен ваш совет
вводная:
Имеется мега, управляющая оборудованием и возможность её подключения к локальной сети посредством интернет шилда,
и Openhab на OrangePI  так же в этой сети.
надо подключить мегу к openhab, при этом допускаю использование в качестве промежутка ещё одну ардуинку, подключённую к апельсине по ком порту.

надо: передовать данные с меги на опенхаб и опенхабом управлять мегой.
как это проще реализовать посредством программы.
mqtt блок не предлагать хоть  этот протокол был бы лдля меня более предпочтителен, так как он корректно работает только c передачей, а на прием не работает !!


Сообщение отредактировал keeper1978 - Вторник, 19.04.2016, 18:24
 
XENOMAN Дата: Вторник, 19.04.2016, 20:47 | Сообщение # 2
Рядовой
Группа: Проверенные
Сообщений: 21
Награды: 1
Репутация: 0
Статус: Offline
Как насчет Modbus? Openhab его поддерживает, настройка - проще пареной репы, и не надо городить огородов с html кодами.

Если использование интернет шилда - принципиально. http://flprog.ru/forum/18-199-1 - тут я описывал пару костылей для общения openhab и ардуины через W5100. Стабильность работы не гарантирована.


Сообщение отредактировал XENOMAN - Вторник, 19.04.2016, 21:41
 
keeper1978 Дата: Вторник, 19.04.2016, 23:30 | Сообщение # 3
Лейтенант
Группа: Проверенные
Сообщений: 91
Награды: 0
Репутация: 0
Статус: Offline
у меня нет возможности из того места передать данные по проводам, приходится использовать точку доступа

Добавлено (19.04.2016, 22:40)
---------------------------------------------
Да читал я както давно эту тему ну и подзабыл про неё
но проблема не в этом а в передаче переменных из опен хаба на ардуинку а там я этого не нашел  (( может плохо смотрел
а вообще еслиб был в программе блок хотябы mqtt  можно былоб уже смело использовать в разработках опенхаб+Flprog на полную катушку
а с модбасом проблемы так как туда нет доступа для кабеля

о всё разобрался вроде работает

Добавлено (19.04.2016, 23:30)
---------------------------------------------
а как тогда апелсинкой принимать Modbus протокол


Сообщение отредактировал keeper1978 - Среда, 20.04.2016, 01:10
 
XENOMAN Дата: Среда, 20.04.2016, 20:08 | Сообщение # 4
Рядовой
Группа: Проверенные
Сообщений: 21
Награды: 1
Репутация: 0
Статус: Offline
Цитата keeper1978 ()
а как тогда апелсинкой принимать Modbus протокол

Купите USB-RS485 переходник. По поводу настройки модбас и OpenHab: есть статья на Хабре - https://habrahabr.ru/post/252555/


З.Ы. Есть две очень важные особенности.

1) В статье на хабре приведен пример где берется сразу несколько адресов переменных.



2) Адресация



Сообщение отредактировал XENOMAN - Среда, 20.04.2016, 20:47
 
keeper1978 Дата: Суббота, 23.04.2016, 01:14 | Сообщение # 5
Лейтенант
Группа: Проверенные
Сообщений: 91
Награды: 0
Репутация: 0
Статус: Offline
Помогите с настройкой модбаса
в системе



где ошибка


Сообщение отредактировал keeper1978 - Суббота, 23.04.2016, 01:18
 
XENOMAN Дата: Суббота, 23.04.2016, 07:48 | Сообщение # 6
Рядовой
Группа: Проверенные
Сообщений: 21
Награды: 1
Репутация: 0
Статус: Offline
У Вас тип переменной в конфиге OpenHab - discrete - , он предназначен для передачи значений 1/0(вкл/выкл) в режиме чтение/запись. А ардуино передает температуру, тут надо использовать - input - register, он предназначен для передачи переменных(числовых значений) в режиме только чтение. + ещё пара синтаксических ошибок.
Не уверен насчет COM портов в linuxe, но вроде правильно будет /dev/ttyUSB0.




p.s. Для Input и Holding регистров адреса пишутся как есть, т.е. переменная с индексом 1 в конфиге так же будет иметь индекс 1. А не 16 как в случае с Discrete или Coil.

p.p.s. В параметр modbus:poll=1000 вставляется смайлик, правильно modbus(двоеточие)poll=1000, 1000 - это частота опроса слейвов в мс, как правило 1 раз в секунду более чем достаточно, особенно учитывая то, что при изменении статуса item'а запрос отправляется "вне очереди".


Сообщение отредактировал XENOMAN - Суббота, 23.04.2016, 07:56
 
keeper1978 Дата: Суббота, 23.04.2016, 14:23 | Сообщение # 7
Лейтенант
Группа: Проверенные
Сообщений: 91
Награды: 0
Репутация: 0
Статус: Offline
а есть какие нибуть визуальные веб утилиты для работы с modbus
хочу проверить данные которые приходят на порт
у меня чего то все равно не заводится опенхаб
хотя в винде в MasterOPC Universal Modbus Server данные без проблем получал

Добавлено (23.04.2016, 14:23)
---------------------------------------------
На винде Опенхаб завелся с пол пинка
но возник вопрос как передать boolean переменную
её ведь нет в переменных модбаса

 
XENOMAN Дата: Суббота, 23.04.2016, 15:35 | Сообщение # 8
Рядовой
Группа: Проверенные
Сообщений: 21
Награды: 1
Репутация: 0
Статус: Offline
Передавайте как INT, а в OpenHub принимайте как Discrete или Coil. Не забывайте про особенности адресации таких переменных.
 
keeper1978 Дата: Суббота, 23.04.2016, 20:13 | Сообщение # 9
Лейтенант
Группа: Проверенные
Сообщений: 91
Награды: 0
Репутация: 0
Статус: Offline
Что то я никак не могу разобратся с записью переменной



или так

никак не получается записать


Сообщение отредактировал keeper1978 - Суббота, 23.04.2016, 23:41
 
XENOMAN Дата: Воскресенье, 24.04.2016, 18:53 | Сообщение # 10
Рядовой
Группа: Проверенные
Сообщений: 21
Награды: 1
Репутация: 0
Статус: Offline
Первый вариант ближе к истине, НО
Одна переменная это 16 бит.

Нулевой тэг, от 0 до 15, 1 тэг 16-31, 2 тэг 32-47, 3 тэг 48-63, 4 тэг 64-79, 5 тэг 80-95, 6 тэг 96-111, 7 тэг 112-128 и т.д.

Но при этом сам седьмой тег так-же включает в себя 16 бит.

Т.е. в опенхабе код будет иметь вид:


Код
modbus:serial.slave1.connection=COM14:9600:8:none:1:rtu
modbus:serial.slave1.id=1
modbus:serial.slave1.start=112
modbus:serial.slave1.length=1
modbus:serial.slave1.type=coil

А в Ардуинке Вам нужно будет считать Первый бит этого тэга.



ЕМНИП, то же самое можно сделать и без считывания первого бита, просто подавая переменную на переключатель. При условии что один тег несет одну переменную.

P.S. Надеюсь Вы обратили внимание, что каждая последующая переменная в ОпенХабе меняет название.




Сообщение отредактировал XENOMAN - Воскресенье, 24.04.2016, 19:01
 
alex2485as Дата: Суббота, 14.05.2016, 14:01 | Сообщение # 11
Рядовой
Группа: Проверенные
Сообщений: 8
Награды: 0
Репутация: 0
Статус: Offline
простите что не в тему , а кто нибудь имеет опыт работы в делфи + FLProg ?
нужна помощь...
 
Форум » Основной » Спросить у знатоков » передача данных по сети
Страница 1 из 11
Поиск:

FLProg © 2016
Яндекс.Метрика