Взаимодействие с LPT портами

Подключение исполнительных устройств, датчиков, контроллеров.

Модератор: immortal

Аватара пользователя
shemnik69
Сообщения: 590
Зарегистрирован: Пн дек 24, 2012 3:01 pm
Откуда: Саратов Saratov
Благодарил (а): 67 раз
Поблагодарили: 63 раза

Взаимодействие с LPT портами

Сообщение shemnik69 » Чт июн 13, 2013 10:23 am

Уважаемые коллеги!
В моем исполнении система управления домашней автоматикой (Умный дом) построена на использовании ключевых элементов, т.е. это реле семисторы и ключи 1-ware.
Центральный (база) модуль всей системы это обособленный блок управления, установленный в отдельном помещении котельной или иными словами программа и силовые элементы, воздействующие на внешние устройства (свет, вентиляция, отопление, ворота, сигнализация и предупреждение и прочее).
Все основные варианты взаимодействия программ, которые крутится на сервере (мат. плата и обвес (HDD/LAN/БП/UPS) были основаны на программах имеющих независимое друг от друга, управление т.е. как таковой единой программы нет. Проблем это не создавало, до появления желания установить MajonoDoMo.
Сама система установилась и сразу заработала, но поскольку у меня есть две платы расширения с LPT и COM портами, на которых все вышеизложенное и подключено (просто так проще и работает уже несколько лет) то возникло желание иметь в программе модуль взаимодействия с LPT портом. Да это несколько старомодно, но очень просто и надежно. Может, кто уже экспериментировал в этой области, прошу поделиться наработками. Сам не силен в PHP и пользуюсь услугами программистов, так что надеюсь на Ваше понимание.
Еще добавлю что внешний модуль на основе ардуино есть, это как раз ворота и калитка но он внешний, а центральные реле и прочее, уже увязаны на LPT и все отлажено в части схемотехники и "железа" а вот программа???
Аватара пользователя
sergejey
Site Admin
Сообщения: 4286
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 76 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: Модуль взаимодействия с LPT портами

Сообщение sergejey » Чт июн 13, 2013 10:42 am

а как идёт взаимодействие по портам? ну к примеру, что нужно отправить на LPT порт, что бы включить реле.

ещё, система будет стоять на windows или linux?

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
Аватара пользователя
shemnik69
Сообщения: 590
Зарегистрирован: Пн дек 24, 2012 3:01 pm
Откуда: Саратов Saratov
Благодарил (а): 67 раз
Поблагодарили: 63 раза

Re: Модуль взаимодействия с LPT портами

Сообщение shemnik69 » Чт июн 13, 2013 11:27 am

Добрый день Сергей!
На сервере (Win XP Game 2012) установлена программа, (LPT_Switch) которая напрямую воздействует на LPT порт, функции простые, это таймерные установки, например на время срабатывания (освещение, сигнализация прочее), и реакция (и) на датчики, всего 5 только входных сигналов и 12 выходных, причем эти 12 можно изменить как на вход, так и на выход. Карт LPT портов в моем варианте 2 итого это 24 порта вход/выход. Жалко такое не использовать.
Технически LPT порт имеет стандартный выход TTL т.е. 1 -2.4. в. 0---0 . Иными словами просто через стандартные схемы драйверов (например, ULN2003A (ключи Дарлингтона) подключаем реле. Или через отопару семисторы. Входные сигналы, это например датчики герконов или датчики движения. Это просто и понятно, а самое главное очень удобно при центральной группировке сервер – силовая часть, без посредников (ардуино или другое). Но несколько затруднительно при распределенной сети. Тут удобнее, да и вообще практичнее только внешние модули (Ардуино+Lan/USB).
Так вот LPT меня и привлек этим.
На сервере установлена Win. Поскольку в качестве «Умного дома» работает Benuks. Программы авторские закрытые, но работают надежно (не реклама) но хочется единого владельца всего этого хозяйства чему как раз отвечает Ваша программа.

Параллельный порт для связи с принтером (или другим устройством) имеет базовый адрес &H378 (LPT1), &H278 (LPT2), &H3BC (LPT3). LPT1 занимает диапазон &H378-&H37F. Адрес &H378 называется базовым и служит для передачи или чтения данных, через контакты 2-9 разъема LPT-порта. Адрес &H37A служит для передачи управляющих сигналов к устройству, подключенного к этому порту (принтер, сканер и т.д.). И, наконец, адрес &H379 предназначен для приема управляющих сигналов с устройства, подключенного к этому порту (принтер, сканер и т.д.).
Если проще то адрес &H379 это только чтение (5 сигналов датчиков), Адрес &H37A это как чтение так и запись 5 сигналов (5 точек подключения). Адрес &H378 основной порт ввод /вывод 8 сигналов. Информацию о том как написать модуль или программку для обслуживания портов на PHP я не нашёл.

Сеть 1-ware это температурные датчики 8 шт и ключи DS2413 b DS2408. К ним претензий нет, работают через COM порты тех же карт расширения. USB (4 шт) использую для опроса электросчетчика (USB-IR головка) и Ардуино.
Последний раз редактировалось shemnik69 Чт июн 13, 2013 12:03 pm, всего редактировалось 1 раз.
Аватара пользователя
sergejey
Site Admin
Сообщения: 4286
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 76 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: Модуль взаимодействия с LPT портами

Сообщение sergejey » Чт июн 13, 2013 11:53 am

Если есть программа LPT_Switch, то может быть через неё сделать связь? MajorDoMo может запускать любые программы и если работа с LPT может быть организована через запуск этой программы с определёнными параметрами, то больше ничего и не нужно. Такое возможно? Можно ссылочку на саму программу?

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
Аватара пользователя
shemnik69
Сообщения: 590
Зарегистрирован: Пн дек 24, 2012 3:01 pm
Откуда: Саратов Saratov
Благодарил (а): 67 раз
Поблагодарили: 63 раза

Re: Модуль взаимодействия с LPT портами

Сообщение shemnik69 » Чт июн 13, 2013 12:10 pm

Ссылка на сайт программы :http://www.counterslab.com/rus/index.htm
Могу приложить саму программу, она 600 кБ. в архиве, как ее ВАм перправить? Могу на эл почту. Мой почта mail@rw4cju.ru вижу постоянно на сматрфоне.
С Уважением!.
Аватара пользователя
sergejey
Site Admin
Сообщения: 4286
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 76 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: Модуль взаимодействия с LPT портами

Сообщение sergejey » Чт июн 13, 2013 1:18 pm

Программу попробовал -- нашел возможность запуска внешних программ при изменении состояния линии, а вот управлять линией через командную строку не нашёл как. Может плохо искал? Так было бы проще всего организовать связь.

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
Аватара пользователя
shemnik69
Сообщения: 590
Зарегистрирован: Пн дек 24, 2012 3:01 pm
Откуда: Саратов Saratov
Благодарил (а): 67 раз
Поблагодарили: 63 раза

Re: Модуль взаимодействия с LPT портами

Сообщение shemnik69 » Чт июн 13, 2013 2:14 pm

Может этот путь не совсем простой. Здесь проблема в чем... как таймерная, данная программа работает без замечаний и корректно отрабатывает задачи А вот под внешнее управление через удаленный WEB интерфейс она не совсем заточена.
Есть мысль про inpout32 это драйвер управление. сейчас изучаю. Вопрос только в том как из Системы направллять и в систему передовать данные с LPT?
Аватара пользователя
shemnik69
Сообщения: 590
Зарегистрирован: Пн дек 24, 2012 3:01 pm
Откуда: Саратов Saratov
Благодарил (а): 67 раз
Поблагодарили: 63 раза

Re: Модуль взаимодействия с LPT портами

Сообщение shemnik69 » Пн июн 17, 2013 7:59 am

Эксперементы увенчались успехом. В сети найдена свободная программа Switcher v2.10 ссылка: http://amx.dxsoft.com/ru/products/switcher/index.html имеющая управление через командную строку т.е. управление реле (семистор) стало очень постое. Теперь разбираюсь как приладить к системе и как через командную строку передовать управление.
Аватара пользователя
sergejey
Site Admin
Сообщения: 4286
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 76 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: Модуль взаимодействия с LPT портами

Сообщение sergejey » Пн июн 17, 2013 12:37 pm

можно использовать safe_exec для вызова из сценариев. например так:
safe_exex('“C:\Program Files\Switcher\Switcher.exe” /LPT2 /Ontop');

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
Аватара пользователя
shemnik69
Сообщения: 590
Зарегистрирован: Пн дек 24, 2012 3:01 pm
Откуда: Саратов Saratov
Благодарил (а): 67 раз
Поблагодарили: 63 раза

Re: Модуль взаимодействия с LPT портами

Сообщение shemnik69 » Пн июн 17, 2013 11:07 pm

Спасибо! Забыл указать что у программы LPT_Switch, есть внешний модуль клиент он работает по сети и однозначно протокол обмена IP только как его перехватить сам клиент практически полностью управляет основными функциями (он же работает ка удаленный доступ с другого компа. Единственный момент это мало знаний как это протокол отловить и использовать. А с программой еще разбираюсь простая но ...
Ответить