![]() |
![]() |
#61 |
Junior Member
Регистрация: 14.01.2013
Сообщений: 18
Вес репутации: 0 ![]() |
![]()
Очень понравилось решение через сокеты, многое упрощает. Не надо мутить с базами данных и прочей прокладкой между двумя процессами. Правда есть вопрос создателю: если мы настроим select таким образом, что через секунду мы всё равно опросим порт с устройством командой чтения( необходимо следить за состоянием того или иного регистра) и завяжем некоторый алгоритм,то реализацию алгоритма надо предусмотреть в самом приложении сервера? Например смс-ку отправить. Я бегло просмотрел код и насколько я понял, инициатором опроса микроконтроллера у нас выступает php скрипт. То есть, пока страничка с интерфейсом открыта - контроллер опрашивается. Так ли это?
|
![]() |
![]() |
![]() |
#62 |
Senior Member
Регистрация: 16.09.2012
Адрес: Irkutsk
Сообщений: 555
Вес репутации: 1605 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Да так. Инициатором обмена выступает браузер web клиента, далее запрос через php скрипт уже с web сервера поступает по слушающему определенный порт (сокет) на "сервер-шлюз", который уже обменивается данными с микроконтроллером.
Конечно обмениваться через шлюз можно и без web-клиента. Используя любое приложение которое умеет работать через сокеты. В данном случае как вы правильно заметили можно работать на чистом php. Лишь поддерживая протокол обмена шлюза. Я не совсем понял вопрос про select? Могу сказать что, я пробовал одновременно с разных компьютеров (в том числе удаленных на тысячи км. ![]() чей то запрос обработается раньше, чей то позже. Я так понимаю вы хотите одновременно опрашивать контроллер для какой-то еще задачи, думаю проблем не будет. Последний раз редактировалось andr128; 17.02.2014 в 20:50. |
![]() |
![]() |
![]() |
#63 |
Junior Member
Регистрация: 25.02.2014
Сообщений: 5
Вес репутации: 0 ![]() |
![]()
Доброго дня форумчане! Прошу прощения за оффтопик, но меня гложет один вопрос, по которому я незнаю с кем проконсультироваться ! У меня есть приточная вентиляция ПВУ-300, которая управляется парой пульт-контроллер OASIS-SYBERIA v.2 от GTControllers, которые работают друг с другом по протоколу Modbus. Вопрос такой - с какой стороны подойти к этой связке, чтобы иметь возможность получать значения датчиков, а в идеале и отдавать команды типа вкл./выкл, регулирования скорости вентилятора и степени подогрева проходящего воздуха ? Какое оборудование необходимо ?
|
![]() |
![]() |
![]() |
#64 |
Senior Member
Регистрация: 16.09.2012
Адрес: Irkutsk
Сообщений: 555
Вес репутации: 1605 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
На контроллер должна быть документация и соответственно должны быть расписаны регистры протокола. Простейшим способом можно подключиться такими утилитами как: QModbus, Modbus Pull и прочитать значения. Далее все зависит от ваших желаний и возможностей. Либо писать самому, либо использовать готовые SCADA системы.
|
![]() |
![]() |
![]() |
#65 | |
Junior Member
Регистрация: 25.02.2014
Сообщений: 5
Вес репутации: 0 ![]() |
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#66 |
Senior Member
Регистрация: 16.09.2012
Адрес: Irkutsk
Сообщений: 555
Вес репутации: 1605 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
да с ПК нужен преобразователь USB-RS485 далее к линии сети + -
|
![]() |
![]() |
![]() |
#67 |
Junior Member
Регистрация: 14.01.2013
Сообщений: 18
Вес репутации: 0 ![]() |
![]()
Огромное спасибо автору за этот пост! Осветил так сказать долгий и тернистый путь в нужном направлении. Хотя я реализовал немного по-другому.
Связку между основной программой и php скриптом реализовал через механизм очереди сообщений system V IPC. Заставил jq обращаться к php-скрипту ежесекундно. Скрипт читает из IPC очереди сообщение, определенного для него типа, туда же шлет команду, если она есть, с другим типом сообщения. Основная программа по аналогии из очереди принимает команду и постоянно меняет в этой очереди сообщение с состоянием контроллера(то что вычитала модбасом из контроллера). Таким образом в очереди всегда есть сообщение со значениями регистров контроллера, которое читается php скриптом и пересылается на сторону браузера. Далее дело техники. Еще реализовал программку, которая работает с gnokii. Вызывает её в дочернем процессе в режиме чтения и ждет прихода смс. Когда приходит смс, то в IPC очередь кладет соответствующую команду для основной программы. Оттуда же берет текст сообщения смс, если основная программа считает нужным таковую отправить, ну и отправляет в другом процессе(убив предварительно дочерний), далее опять слушает. Всё отлично работает, за одним исключением. Глючит GSM-свисток. Ну никак не удается подключить его к роутеру c openWRT: то флешка размонтируется, то порт ttyACM0, где висит микроконтроллер отвалится. Читал про монтирование с uuid, не помогло. Думаю дело в USB-хабе, уж больно много устройств висит на нем. Все прогрограммки тестил на ubuntu, работало всё неделями без глюков. И тут такая засада...Кто подскажет какой проверенный хаб взять или не в нем дело? |
![]() |
![]() |
![]() |
#68 |
Member
Регистрация: 19.03.2013
Адрес: Москва
Возраст: 57
Сообщений: 42
Вес репутации: 0 ![]() |
![]()
Попробуйте хаб с внешним питанием.
|
![]() |
![]() |
![]() |
#69 |
Junior Member
Регистрация: 14.01.2013
Сообщений: 18
Вес репутации: 0 ![]() |
![]()
Приобрёл чудо-агрегат под названием usb2.0 hub с внешним питанием. Всё заработало! Спасибо за дельный совет!!!
|
![]() |
![]() |
![]() |
#70 |
Junior Member
Регистрация: 21.01.2013
Возраст: 45
Сообщений: 17
Вес репутации: 0 ![]() |
![]()
Подключить arduino uno R3 с датчиком температуры, работает без правок кода.
Огромное спасибо за пример. Последний раз редактировалось mszerg; 12.05.2014 в 02:30. |
![]() |
![]() |
![]() |
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
Опции темы | Поиск в этой теме |
Опции просмотра | |
|
|