Взаимодействие с LPT портами
Модератор: immortal
- shemnik69
- Сообщения: 590
- Зарегистрирован: Пн дек 24, 2012 3:01 pm
- Откуда: Саратов Saratov
- Благодарил (а): 67 раз
- Поблагодарили: 63 раза
Взаимодействие с LPT портами
Уважаемые коллеги!
В моем исполнении система управления домашней автоматикой (Умный дом) построена на использовании ключевых элементов, т.е. это реле семисторы и ключи 1-ware.
Центральный (база) модуль всей системы это обособленный блок управления, установленный в отдельном помещении котельной или иными словами программа и силовые элементы, воздействующие на внешние устройства (свет, вентиляция, отопление, ворота, сигнализация и предупреждение и прочее).
Все основные варианты взаимодействия программ, которые крутится на сервере (мат. плата и обвес (HDD/LAN/БП/UPS) были основаны на программах имеющих независимое друг от друга, управление т.е. как таковой единой программы нет. Проблем это не создавало, до появления желания установить MajonoDoMo.
Сама система установилась и сразу заработала, но поскольку у меня есть две платы расширения с LPT и COM портами, на которых все вышеизложенное и подключено (просто так проще и работает уже несколько лет) то возникло желание иметь в программе модуль взаимодействия с LPT портом. Да это несколько старомодно, но очень просто и надежно. Может, кто уже экспериментировал в этой области, прошу поделиться наработками. Сам не силен в PHP и пользуюсь услугами программистов, так что надеюсь на Ваше понимание.
Еще добавлю что внешний модуль на основе ардуино есть, это как раз ворота и калитка но он внешний, а центральные реле и прочее, уже увязаны на LPT и все отлажено в части схемотехники и "железа" а вот программа???
В моем исполнении система управления домашней автоматикой (Умный дом) построена на использовании ключевых элементов, т.е. это реле семисторы и ключи 1-ware.
Центральный (база) модуль всей системы это обособленный блок управления, установленный в отдельном помещении котельной или иными словами программа и силовые элементы, воздействующие на внешние устройства (свет, вентиляция, отопление, ворота, сигнализация и предупреждение и прочее).
Все основные варианты взаимодействия программ, которые крутится на сервере (мат. плата и обвес (HDD/LAN/БП/UPS) были основаны на программах имеющих независимое друг от друга, управление т.е. как таковой единой программы нет. Проблем это не создавало, до появления желания установить MajonoDoMo.
Сама система установилась и сразу заработала, но поскольку у меня есть две платы расширения с LPT и COM портами, на которых все вышеизложенное и подключено (просто так проще и работает уже несколько лет) то возникло желание иметь в программе модуль взаимодействия с LPT портом. Да это несколько старомодно, но очень просто и надежно. Может, кто уже экспериментировал в этой области, прошу поделиться наработками. Сам не силен в PHP и пользуюсь услугами программистов, так что надеюсь на Ваше понимание.
Еще добавлю что внешний модуль на основе ардуино есть, это как раз ворота и калитка но он внешний, а центральные реле и прочее, уже увязаны на LPT и все отлажено в части схемотехники и "железа" а вот программа???
- sergejey
- Site Admin
- Сообщения: 4286
- Зарегистрирован: Пн сен 05, 2011 6:48 pm
- Откуда: Минск, Беларусь
- Благодарил (а): 76 раз
- Поблагодарили: 1559 раз
- Контактная информация:
Re: Модуль взаимодействия с LPT портами
а как идёт взаимодействие по портам? ну к примеру, что нужно отправить на LPT порт, что бы включить реле.
ещё, система будет стоять на windows или linux?
ещё, система будет стоять на windows или linux?
Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
- shemnik69
- Сообщения: 590
- Зарегистрирован: Пн дек 24, 2012 3:01 pm
- Откуда: Саратов Saratov
- Благодарил (а): 67 раз
- Поблагодарили: 63 раза
Re: Модуль взаимодействия с LPT портами
Добрый день Сергей!
На сервере (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 головка) и Ардуино.
На сервере (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 портами
Если есть программа LPT_Switch, то может быть через неё сделать связь? MajorDoMo может запускать любые программы и если работа с LPT может быть организована через запуск этой программы с определёнными параметрами, то больше ничего и не нужно. Такое возможно? Можно ссылочку на саму программу?
Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
- shemnik69
- Сообщения: 590
- Зарегистрирован: Пн дек 24, 2012 3:01 pm
- Откуда: Саратов Saratov
- Благодарил (а): 67 раз
- Поблагодарили: 63 раза
Re: Модуль взаимодействия с LPT портами
Ссылка на сайт программы :http://www.counterslab.com/rus/index.htm
Могу приложить саму программу, она 600 кБ. в архиве, как ее ВАм перправить? Могу на эл почту. Мой почта mail@rw4cju.ru вижу постоянно на сматрфоне.
С Уважением!.
Могу приложить саму программу, она 600 кБ. в архиве, как ее ВАм перправить? Могу на эл почту. Мой почта mail@rw4cju.ru вижу постоянно на сматрфоне.
С Уважением!.
- sergejey
- Site Admin
- Сообщения: 4286
- Зарегистрирован: Пн сен 05, 2011 6:48 pm
- Откуда: Минск, Беларусь
- Благодарил (а): 76 раз
- Поблагодарили: 1559 раз
- Контактная информация:
Re: Модуль взаимодействия с LPT портами
Программу попробовал -- нашел возможность запуска внешних программ при изменении состояния линии, а вот управлять линией через командную строку не нашёл как. Может плохо искал? Так было бы проще всего организовать связь.
Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
- shemnik69
- Сообщения: 590
- Зарегистрирован: Пн дек 24, 2012 3:01 pm
- Откуда: Саратов Saratov
- Благодарил (а): 67 раз
- Поблагодарили: 63 раза
Re: Модуль взаимодействия с LPT портами
Может этот путь не совсем простой. Здесь проблема в чем... как таймерная, данная программа работает без замечаний и корректно отрабатывает задачи А вот под внешнее управление через удаленный WEB интерфейс она не совсем заточена.
Есть мысль про inpout32 это драйвер управление. сейчас изучаю. Вопрос только в том как из Системы направллять и в систему передовать данные с LPT?
Есть мысль про inpout32 это драйвер управление. сейчас изучаю. Вопрос только в том как из Системы направллять и в систему передовать данные с LPT?
- shemnik69
- Сообщения: 590
- Зарегистрирован: Пн дек 24, 2012 3:01 pm
- Откуда: Саратов Saratov
- Благодарил (а): 67 раз
- Поблагодарили: 63 раза
Re: Модуль взаимодействия с LPT портами
Эксперементы увенчались успехом. В сети найдена свободная программа 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 портами
можно использовать safe_exec для вызова из сценариев. например так:
safe_exex('“C:\Program Files\Switcher\Switcher.exe” /LPT2 /Ontop');
safe_exex('“C:\Program Files\Switcher\Switcher.exe” /LPT2 /Ontop');
Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
- shemnik69
- Сообщения: 590
- Зарегистрирован: Пн дек 24, 2012 3:01 pm
- Откуда: Саратов Saratov
- Благодарил (а): 67 раз
- Поблагодарили: 63 раза
Re: Модуль взаимодействия с LPT портами
Спасибо! Забыл указать что у программы LPT_Switch, есть внешний модуль клиент он работает по сети и однозначно протокол обмена IP только как его перехватить сам клиент практически полностью управляет основными функциями (он же работает ка удаленный доступ с другого компа. Единственный момент это мало знаний как это протокол отловить и использовать. А с программой еще разбираюсь простая но ...