Управление через lpt порт внешним устройством. Сопряжение LCD дисплея c компьютером, через LPT. Приступим к сборке

Проблема подключения к системе ЧПУ станка через LPT – комплекс трудностей, которые возникают при подключении станочного оборудования с числовым программным управлением к компьютеру или ноутбуку. Без решения проблемы прибор нельзя будет использовать в автономном или полуавтономном режиме. Решение осуществляется несколькими способами различного уровня сложности.

Что такое LPT

Люди, не имеющие опыта работы на станках с ЧПУ или с компьютерными технологиями, часто не знают, что такое LPT-порт и как им пользоваться. LPT-порт, известный также под названиями параллельный порт и порт принтера, – разъем на компьютерном устройстве, предназначенный для подключения различных устройств. Данный порт выполняется по международному стандарту, поэтому является универсальным.

С его помощью к компьютеру можно подключить:

  • принтер;
  • сканер;
  • внешние устройства для хранения данных.

Перечисленные варианты входят в число самых популярных. Но LPT-порт используется и для других целей. Благодаря его особенностям можно синхронизировать работу двух компьютеров, настроить телеуправление, или управление станочным оборудованием. Стандарт порта выполнен по интерфейсу Centronics. На современных устройствах имеются расширенные варианты ECP и EPP.

Но ввиду большой популярности USB-портов актуальность LPT постепенно снижается.

Управление станком через LPT-порт ноутбука

На современных ноутбуках не всегда можно встретить LPT-порт. В связи с этим у неопытных людей часто возникает проблема с подключением оборудования. Чтобы оператор подключил агрегат к системе ноутбука, требуются модели, имеющие этот разъем. LPT-портами в обязательном порядке оснащаются промышленные ноутбуки. Они обладают функционалом, достаточным для управления станочным прибором.

Для управления аппаратом через ноутбук потребуются специальные программы. Одной из самых популярных является программа Mach. USB-адаптер не способен заменить LPT-порт. Он создает виртуальный привод, который не рассчитан на совместимость с программами управления приборами ЧПУ. Рабочий вариант заключается в подключении станка к компьютеру и удаленным управлением через ноутбук при помощи WiFi-адаптера.

Этот способ позволяет управлять работой удаленно, но ноутбук должен находиться на расстоянии не более 3 – 4 метров от инструмента. При этом стационарные компьютеры должны быть расположены в непосредственной близости со станками.

Наиболее удачным решением проблемы является USB-адаптеры в виде платы, и варианты, созданные в виде шнура-переходника. Оба переходника являются достаточно дорогостоящими, но позволяют не только подключить рабочий инструмент, но и его периферию. Приборы оснащены плагинами, через которые передаются управляющие команды. Адаптеры имеют свои драйвера, благодаря которым команды передаются без перебоев.

Преимущество входов и выходов заключается в буферизации. Она обеспечивает защитную функцию, если один из драйверов перегружает процессор. Если имеется необходимость управлять устройством от сети, потребуется покупка контроллера. Благодаря его помощи и драйверу компьютер можно поставить на большом расстоянии от станочного оборудования. Но стоимость такого решения более высока.

Правильный запуск станка с ЧПУ

Существенный процент проблем возникает при неправильном запуске оборудования с ЧПУ. Если допустить ошибку, подключая прибор к LPT, велик риск того, что он не запустится, или же будет работать неисправно.

Запуск осуществляется пошагово:

  • к прибору подключается контроллер шаговых двигателей (следует обратить внимание на маркировку проводов и соответствие табличкам);
  • этот же контроллер подключается к компьютеру;
  • производится установка переходника (если требуется).

Перед запуском необходимо подготовить шпиндель и ПК. Подготовка шпинделя производится согласно инструкции, которая следует в упаковке с купленным станком, и способна ответить на базовые вопросы. Подготовка ПК является более сложной задачей, выполняя которую, необходимо учесть ряд факторов:

  • многоядерные процессоры Intel не подойдут для управления прибором через LPT (данная проблема связана с изменением частоты процессора, которая негативно влияет на рабочий инструмент на станке);
  • рекомендуется использовать одноядерные процессоры Intel и AMD;
  • на ПК должна быть установлена 32-разрядная операционная система Windows;
  • на ПК может быть установлена операционная система Linux;
  • переходник должен быть оснащен специальным драйвером;
  • на компьютере не должно быть установлено посторонних программ;
  • на компьютере не должно быть антивирусов;
  • компьютер не подойдет, если на нем: менее 1 гигабайта оперативной памяти, процессор с частотой менее 1 ГГЦ.

Первым делом на компьютере отключается антивирус и брандмауэр. Затем на него устанавливается программа для управления станочным прибором. При использовании переходника USB-LPT требуется установка драйвера и плагина. Программа запускается ярлыком на рабочем столе. Затем в самой программе выбирается станок с ЧПУ и источник управления. После установки и заготовки, программа запускается, и станки начинают обработку.

Если обработка не началась, или же она выполняется неправильно, в подготовке и подключении компьютера к агрегату была допущена ошибка. Следует пересмотреть действия, и выполнить их заново.

Способы решения проблем

Одной из основных проблем подключения ЧПУ станков через LPT является использование неподходящих программ. Если программное несовместимо с портом, то его нельзя будет использовать, даже если он обратится к драйверам.

В списке совместимых программ находятся:

  • K-cam;
  • Mach;
  • CNC Turbo.

В перечисленных программах управление рассчитано под интерфейс LPT.


Еще одна проблема заключается в работе схемы порта. Она функционирует через:

  • USB-разъем компьютера;
  • отдельный блок;
  • стабилизатора станка.

Если один из вариантов откажет, исправная эксплуатация схемы будет нарушена. Могут возникнуть перебои в работе, или же система перестанет функционировать. Чтобы правильно подключить инструмент к компьютерному устройству, следует руководствоваться стандартами RS-232. С их помощью можно произвести отдельную настройку коммуникационной программы и характеристик числового программного управления.

Система ЧПУ должна находиться в режиме передачи-приема команд. В противном случае оборудование может не работать, поскольку передача данных будет нарушена. На приборах заводского производства имеется инструкция по настройке агрегата.

Следующая проблема может возникать при сложной обработке. Сложная обработка предполагает большие объемы передачи управляющей программы, с которым память системы ЧПУ справиться не может. Для решения этой проблемы потребуется использование системы DNC. Она повышает технологические возможности устройства, и позволяет выполнять обработку заготовок с различными формами.

На современных агрегатах предусмотрено использование локальных сетей. Они являются более быстрым и удобным способом передачи необходимых данных. В этом случае для управления потребуется подключение к интернету.

Начало:

Все началось с того что я случайно наткнулся на необычный сетевой фильтр от братьев наших китайцев. Это был обычный сетевой фильтр, но с управлением каждой розеткой отдельно и через программную оболочку с ПК по LPT-порту.

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

Несколько слов об LPT- порте. Данный порт имеет множество выводов. Нас будут интересовать только регистры данных, ибо управление ими просто и можно задавать на их выходах лог. «1» или лог. «0». Которые легко преобразуются в другие формы сигналов.

Рисунок 1 – LPT - порт

Схема:

За исходную была взята одна из найденных схем имеющая следующий вид:

Рисунок 2 – Вид исходной схемы

Как видно из приведенной схемы для гальванической развязки порта используется оптопара типа 4N25 (DD1), она обеспечивает защиту порта ПК.

Посути можно было бы подключить и напрямую, но это было бы не безопасно для порта и самого ПК и любой бы скачек или пробой напряжения мог бы привести к непредсказуемым последствиям.

В качестве исполнительного устройства выбран транзистор типа КТ 815Г (VT 1), но можно использовать и аналогичные ему марки. На его выход можно подключить любое исполнительно устройство.

В имеющуюся схему был внесен ряд изменений для повышения надежности её работы и безопасности.

Во-первых между 1-ым пином оптопары 4N25 (DD1) и пином LPT-порта был добавлен резистор на 390 Ом (R1), так же добавлен светодиод КИПД 21 (HL 2) с токоограничивающим резистором на 100 Ом (R3), для индикации наличия сигнала на конкретном выводе порта. Также был добавлен диод защиты 1N4007 (VD1) от обратного импульса катушки реле. Катушка реле это индуктивность, а индуктивность старается сохранять постоянным протекающий через нее ток. Поэтому при отключении реле катушка разрядится обратным выбросом высокого напряжения, которое может доходить до нескольких сонет вольт, а в мощных реле - до киловольт. Транзисторы от таких импульсов могут сгореть, а еще могут сгореть другие устройства, подключенные к блоку питания (импульсы проникают в питание), а при особой неудачливости может пробить оптрон и тогда сгорит вообще все, включая порты ПК. Поэтому данный диод не будет лишним.

Так же был добавлен светодиод для индикации КИПД 21 (HL1) наличия напряжения питания схемы c резистором R2 (1к, подбирается эксперементально в зависимости от напряжения питания схемы).

Итоговый вариант доработанной схемы приведен ниже:

Рисунок 3 – Вид доработанной схемы прототипа

Устройство и Печатная плата:

Было решено сделать устройство для управления 4-мя нагрузками.

Хотя сам порт позволят реализовать и больше. По приведенному принципу можно было реализовать и 8-мь устройств, но пока решено было остановиться на 4-х.

Реализовывать печатную плату, по опыту и ввиду простоты и наглядности, было решено в sprint layout 5 (далее SL5).
Сам процесс создания я расписывать сильно не буду, ибо при желании разобраться можно.

Для удобства устройство было разделено на несколько блоков. В данной статье описан основной блок устройства (управляющий), остальные блоки сильного интереса не представляют, ибо они могут меняться в зависимости от поставленных конкретных задач.

Ниже приведена блок схема всего устройства:

Рисунок 4 – Блок схема устройства


где:
ПК – персональный компьютер;
УУ – управляющее устройство;
БП – блок питания;
ИУ – исполнительное устройство.

В качестве блока питания (БП) был использован стандартный (готовый) блок питания с выходным напряжением 12В 2А.

Параметры исполнительного блока могут быть различными.
В моем варианте это блок реле на 12В и с контактными парами способными коммутировать 220В.

Перейдем к печатной плате. Она была реализована в SL5. Плата была задумана с учетом подключения других блоков.

Рисунок 5 – Плата устройства в SL5

Плата и её описание приведена ниже на рисунке 6:

Рисунок 6 – Плата устройства в SL5

На плате видно, что присутствуют перемычки обозначенные красным цветом.
Вход с LPT-порта обозначен оранжевым с указанием нужных пинов.
Выход указан желтым цветом. На выходе четыре управляющих сигнала для реле или другого исполнительного устройства и общий для них провод.
Для Ввода питания был использован широко распространенный разъем, но можно использовать любой по необходимости.

Травление данной платы осуществлялось по так называемому «лазерно-утюжному» методу, который подробно описывать я не буду. При необходимости сведения о нем можно найти.

Управление:

Для управления данным устройством вначале использовали громоздкие системные программы, рассчитанные на тест LPT-порта. Потом было решено написать свой soft, простой и надежный, без ненужный функций, что в последствии и было сделано:

Рисунок 7 – Интерфейс ПО

Программа имеет удобный и информативный интерфейс. Есть индикация включенного устройства. А так же кнопка, отключающая все устройства.

Программа находится на страничке посвященной .

Программа надежна и проста и свои функции выполняет. На момент написания статьи были задумки сделать WEB-интерфейс для управления. Что было бы более актуально и удобно ибо если данное устройство ставить на сервер, не имеющий визуальной оболочки, то это было бы более актуально.

Эпилог:

В итоге было создано полностью готовое и функционально устройство способно коммутировать мощную нагрузку, мощность ограничивается только параметрами исполнительных элементов. Так же количество управляемых элементов тоже варьируется от 1 до 8 и по желанию можно сделать столько, сколько необходимо для выполнения конкретной задачи.

PS: все картинки кликабельные с зумом

Эта статья – подробная инструкция как запрограммировать AVR микроконтроллер при помощи LPT программатора и программы UniРrof.

Сначала обязательно прочитайте , многое станет понятней.
Скачайте программу UniРrof .
- Программатор для AVR. Смотрим avr.nikolaew.org

нажимаем «ОК» (в следующий раз устанавливать не придется – программа запомнит установки). Все — программатор «прописан».

2 Подключаем программатор к LPT порту.

3 Подключаем программатор к плате микроконтроллера, подаем питание на микроконтроллер.

4 Запускаем UniРrof (если уже не запущен), выбираем в поле LPT порт. Синим должно отобразиться . Для проверки надежности связи тыкаем несколько раз в . Если на каком либо этапе выпадает , то связь ненадежна – ставим галочку — и проверяем заново.

5 Нажимаем кнопку загрузить , выбираем нужный . В окошке появятся цифры – наша программа.


P.S. Нужно прошить кроме Flash еще и EEPROM?
Все просто! Сначала ставим галочку EEPROM — появится окошко EEPROM (Галочку «тормоз» нужно поставить до этого!). Далее открываем HEX-файл, автоматически программа найдет и загрузит EEP-файл (заполнятся данными оба окошка PROGRAM и EEPROM). Если юнипроф сам не определил EEP-файл откроется диалог выбора файла. Далее действуем как описано выше. При нажатии кнопки «Prog» программируется и Flash и EEPROM. Вот и все!

(Visited 22 098 times, 3 visits today)

Раздел: Метки: ,

Навигация по записям

027-UniProf-программируем AVR через LPT порт. : 47 комментариев

  1. alexandershahbazov

    Почему-то с миросхемой SN74HC244N не пошло, а с 5 проводками пошло.
    Пишет «МК не откликнулся …» . Только кнопка «Read» заработала. И очень долго шло.
    Правда отладочная плата моя на ATmega8 .
    С обеими программаторами у меня все идет без запинок на CodeVisionAVR и
    avrdude 5.8 .

    Повторюсь, что с 5 проводками работает.


  2. GetChiper Автор записи

    Пробовали ставить галочку «Тормоз»?
    Не нужно привязываться к UniProf. Программа имеет определенные недостатки. Основное ее достоинство — с ней легко начать работать, даже если до этого Вы никогда не прошивали контроллеры. Неизбежно Вы будете расти в профессиональном плане — поменяете программатор, поменяются и программы.
    Avrdude — очень хорошая альтернатива — пользуйтесь ею!

  3. alexandershahbazov

    «027-UniProf – программируем AVR через LPT порт» прочитал внимательно,
    галочку «Тормоз» ставил.
    avrdude 5.8 попробовал одновременно с UniProf и PonyProg v207c .
    Коммандная строка непривычна для меня, хотя свой самый первый светодиод зажег именно с помощью avrdude на Linux-e RHEL 4 AS .

  4. ec

    аха, с буфером не работает, по всей видимости, потому что юнипроф не дружит с STK, для котором на лпт-разъеме замыкаются 3-11 и 2-12 выводы.
    Зато у понипрог есть файл автоматизации — чудная вещь, если не хочется думать, какие куда ставить фьюзы и быстро прошить.


  5. GetChiper Автор записи

    Ну вот — еще плюс в копилку Юнипрофа. Но вот над помехоустойчивостью я бы, на месте автора программы, поработал. Хотя, если скорость не критична, режим «тормоз» решает все проблемы.

  6. ankar

    А мне он просто нравится тем, что не надо выбирать кристалл.Если не видит ищи косяк.В поньке записываешь, а только потом понимаешь, что потратил даром время. Не, если надо с кучей процов работать, то, конечно, берешь другой побыстрее. А если 1 или там 5 штук, то, для меня Унька (спасибо Николаеву) самое то. Кстати на своем аттлоне ХР3 2.2 гига ни разу не ставил «тормоз».LPT кабель длиной 1.5 метра. Безо всяких наворотов.

  7. Николай

    Успешно прошил ATmegu8 через LPT, но вот второй раз прошить не удаётся, программка пишит «МК неоткликнулся». Пожалуйста, подскажите, что нужно сделать чтоб прошить второй раз! кнопку рессет, на плату не вводил.


  8. GetChiper Автор записи

    А фьюзы шили?

  9. Николай

    Фьюзы шил, по инструкции. Везде понажимал Read, а затем Write. Сам галочки не менял. Контроллер работает, светодиод моргает по прошитому hex, но программа не находит его.

  10. Николай

    Проблема решена! Фьюзы в порядке. Проблема в некачественной пайке, оторвался MOSI на плате. Паяйте добротно и не спеша 🙂 !!!


  11. GetChiper Автор записи

    Слушайте Николая — дело говорит! 🙂

  12. NikAndrew

    А когда фиюзы прописываеш отмеченные галочной 0 или 1?

  13. NikAndrew

    все разобрался 0 нет галочки, 1 есть галочка)

  14. zhenya1995

    Здраствуйте, у меня программатор 5 проводков, также у меня не стандартный LPT порт я его докупал к компьютеру, и у этого порта другой адрес (С880) подскажите пожайлуста программу где можно задать именно этот адрес или еще способ какой, чтобы запрограммировать?


  15. GetChiper Автор записи

    Разве винда его не видит?

  16. ankar
  17. Greider

    А программа в конце прошивки должна выдать какое-то подтверждение, мол все успешно?
    И обязательно ли прошивать фьюзы, если достаточно их значений по-умолчанию?


  18. GetChiper Автор записи

Недавняя реализация простой на FreeBSD, дала почву для развития этой темы. По сути это ее продолжение но немного отделенное по смыслу.
В статье описан способ мониторинга наличия напряжения 220 вольт в электросети через LPT порт.

Статья будет полезна тем, у кого есть ПК с LPT портом, UPS без возможности управления с ПК, желающим корректного завершения работы ОС, вырубания соседних машин и уведомления при отсутствии электричества.

Дано:

UPS без возможности подключения к ПК.
Сервер FreeBSD с LPT портом
Простейшая безопасная схема для подключения 220 к LPT =).
Программа lptmon

Пример работы:

Гдето работает сервер, внезапно пропадает электричество. Cервер и его друзья: конвертер, маршрутизатор, серверы и пр. продолжают работать от UPS.
Cервер, почуяв неладное отправляет об этом смс админу, пишет лог, ждет минуту (вдруг это 5ти секундный сбой) и вырубает другие серверы. Все корректно завершено, данные не утеряны, админ в курсе.
Если электричество появилось, но минута не прошла и сервер не успел вырубиться, он отправляет смс админу что все впорядке и продолжает работать.
Если сервер успел вырубиться, и электричество появилось например через час, то при появлении 220 сервер врубается (через опцию в биосе), загружается, врубает другие сервера через Wake on LAN (прим: настройка Wake on LAN в статье не описывается) и отправляет смс админу о том что все ок.

Инструменты:

FreeBSD + mysql (второе не обязательно, только для лога)
LPT порт
Паяльник, припой, канифоль, провода
Cхема мониторинга 220 (блок питания и оптрон)
программа lptmon

Суть:

У LPT порта есть 5 ног чтения (они же пины) 10,11,12,13 и 15, заметьте 14й тут нет!. Они являются входами и используются принтерами как тумблеры, при событиях например:
кончилась бумага,
принтер занят,
ошибка печати, итд итп.

Они то нам и нужны, к ним можно подключить 5 разных устройств.

Распиновка LPT порта

Под FreeBSD работает программа lptmon которая мониторит эти пины.
Если взять кусок проволоки и замкнуть любой из вышеперечисленных
пинов на землю. (земля - любой с 18 по 25 пин этого же LPT порта) то программа
будет считать что пин включился. Каждый пин, через программу lptmon, может вызывать 3 события при которых можно выполнять комманды или запускать скрипты:
1. Пин включился
2. Пин работает (срабатывает каждую секунду пока пин замкнут)
3. Пин выключился

Собстно lptmon выполняя комманды при событиях от пинов запускает скрипты которые пишут в базу лог срабатывания, текущее состояние устройств подключенных к lpt порту, сохраняет скриншоты с камеры на винт, отправляют смс если нада итд.

План действий

1. Собрать схему, подключить ее к LPT
2. Настроить lptmon
3. Настроить скрипты.

1. Сборка и подключение схемы

Т.к мы будем подключать 220 к порту, необходимо позаботиться о его безопасности. Для этого нужно использовтаь небольшое напряжение, для чего берем блок питания (я нашел на 5в, 2.5А от конвертера) подключаем его к оптрону через резистор и потом уже к LPT.
Оптрон, грубо говоря, работает по принципу: если есть достаточное напряжение и сила тока на 1 и 2 ногах то он замыкает 5 и 4 ноги. Если силы и напряжения не достаточно (когда БП выключен) то он не замыкает 4 и 5 ноги. А если более чем достаточные (например бп переглючил и он стал давать 120вольт) то оптрон сгарает и это не влияет на 4 и 5 ноги (т.е на вторую цепь).
Поскольку оптрон (4n35) штука защитная, имеющая две цепи не связанные между собой, он еще и призван умирать при силе тока большей чем 60мА (это 0.06А, а у моего БП аж 2.5А). То есть, силы тока 2.5А более чем достаточно для того чтоб он испугался и умер. По этому, для того чтобы ограничить силу тока используем резистор. В моем случае это 500ом. Резистор подбирается индивидуально под блок питания. Вычислить резистор можно формулой R=U/I где U - напряжение дающее БП (вольты), I - нужная оптрону сила тока (Амперы) для работы. Сила тока нужная оптрону для замыкания второй цепи лежит в пределах от 0 до 60 мА, Допустим решили подавать ему 1мА для чего расчитаем резистор: R=5в/0.01А, R = 500 следовательно нам нужен резистор 500ом. Можно взять и меньше, 400, 300 ом главное чтоб сила тока не получилась больше 60мА.

Для подключения к LPT был разобран старый шнур от принтера. В корпусе от шнура собраны гнездо для подключения БП и оптрон.
Вот что получилось:

Готовый lpt разьем и черный кабель от БП.


Оптрон с резистором, они внутри разъема


2. Настройка lptmon

Создаем директорию /usr/local/etc/lptmon
качаем архив lptmon.tar.gz с программой lptmon и примерами скриптов и распаковываем:

#mkdir /usr/local/etc/lptmon #cd /usr/local/etc/lptmon #fetch http://zgbox.ru/files/notes/lptmon.tar.gz #tar -xzvf lptmon.tar.gz

Зеркало:

313 26.3kb 2011-06-29 lptmon, скрипты, исходники

В архиве лежит lptmon.c - это исходники программы, писал я ее сам, это моя первая программа на С++ под FreeBSD как и в прочем первая на C =) так что если есть примечения, дополнения - в студию.
Также там лежит сам уже откомпелированный файл lptmon, можно юзать его, установив chmod 777 lptmon если необходимо, а можно откомпелировать исходники коммандой

Теперь программа lptmon будет стартовать с системой, также ее можно стартовать вручную как просто запустив./lptmon так и выполнив rc.d скрипт /usr/local/etc/rc.d/lptmon start или stop
В запуске нет ничего особенного, просто запускается /usr/local/etc/lptmoon/lptmon а при stop убивается коммандой killall lptmon
Но пока не нужно ничего запускать, сначала нужно настроить конфиг, об этом чуть пожже.
Директория testlpt, в ней лежит программа pr22 и ее исходник для тестирования lpt порта. Работает просто: запускается, получает состояния с 10 по 15 пинов и если какойто пин замкнут на землю то выдает pin10 on
у меня в данный момент 10й пин замкнут на что программа отвечает

#./pr22 pin10 on

Можно смело использовать в своих скриптах
Итак собсно пробуем замнкть один или несколько из 10,11,12,13,15 пинов на землю (на любой с 18 по 25 пин) и запустить./pr22
Если программа показывает что замкнутые пин(ы) on значит все ок, если нет - то я хз почему не видит ваш lpt порт, ковыряйте исходники %)

Переходим к настройке самого lptmon.
Итак, исходя из того, что у нас будет подключена схема к 12 пину то сконфигурим так чтоб при событиях 12 пина при старте и запуске выполнялись скрипты 12_start, 12_end.

Ложим конфиг lptmon.config из расспакованного архива в /usr/local/etc/lptmon.config и редактируем любимым редактором, у меня это mcedit от mc.

#cp lptmon.config /usr/local/etc/lptmon.config #mcedit /usr/local/etc/lptmon.config

Это сокращенный, необходимый только для этой статьи конфиг, подробный в архиве.

#конфиг файл lptmon.config программы lptmon #должн лежать в /usr/local/etc/ #в параметрах допускаются табы и пробелы #ковычки не допустимы! #каждый пин может вызывать 3 события (выполнять комманды) при смене состояния: #1. при переходе из пассивного состояния в активное #2. при работе в цикле (срабатыват каждый раз при опросе если пин # в активном состоянии) #3. при переходе из активного состояния в пассивное pin12enable = yes pin12onstart = /usr/local/etc/lptmon/220v/12_start pin12oncycle = /usr/local/etc/lptmon/220v/12_cycle pin12onend = /usr/local/etc/lptmon/220v/12_end

3. Настройка скриптов

Листинг 12_start

#!/bin/sh #скрипт срабатывает когда дали электричество #или загрузился комп #двумя запросами пишем лог в базу и устанавливаем статус on для устройства 220v sql="use $db_name ; insert into objects_hist (obname,status ,dt) values \ ("$obname ","on",now());" #echo $sql /bin/echo $sql | /usr/local/bin/mysql -h$db_host -u$db_user -p$db_pass sql="use $db_name ; update objects set status ="on", dtstart=now() \ where obname="$obname ";" /bin/echo $sql | /usr/local/bin/mysql -h$db_host -u$db_user -p$db_pass #отправляем смс админу о том что 220 дали или серв включился /usr/local/etc/lptmon/sms "220v ON "`date +%m.%d-%H:%M:%S`

листинг 12_end

#!/bin/sh #срабатывает когда отключилось 220 db_host=localhost db_pass= db_user=root db_name=security obname=220v #пишем в базу логи и состояние off устройства 220v sql="use $db_name ; insert into objects_hist (obname,status ,dt) values \ ("$obname ","off",now());" #echo $sql sql="use $db_name ; update objects set status ="off", dtend=now() \ where obname="$obname ";" #/bin/echo $sql | /usr/local/bin/mysql -h$db_host -u$db_user -p$db_pass #отправляем смс о том что нет электричества и ставим таймер на 60 сек #по завершению которого скрипт 12_cycle вырубит компы /usr/local/etc/lptmon/sms "220v OFF "`date +%m.%d-%H:%M:%S` echo 60 > /usr/local/etc/lptmon/220v/timer

Эти скрипты выполняют по два Sql запроса к mysql. Запросы обновляют текущее состояие устройства с именем 220v в таблице objects и пишут лог в таблицу objects_hist. Дамп структуры таблиц dump_security.sql также лежит в архиве.
Помимо этого скрипты отправляют смс.
Скрипт 12_end записывает цифру 60 в файл /usr/local/etc/lptmon/220v/timer для того чтобы потом скрипт 12_cycle который будет срабатывай каждую секунду пока нет электричества, брал эту цифру и отнимал по единице. Когда станет 0 он запустит программу wudown которая вырубит по сети комп с windows (ip 192.168.97.52) и вырубит сервак коммандой shutdown -p now.
листинг 12_cycle

#!/bin/sh path=/usr/local/etc/lptmon/220v/timer timer=`cat $path ` timer=`expr $timer - 1`; if [ $timer -gt 0 ]; then echo $timer > $path echo $timer else echo "shuttdowning..." /usr/local/bin/wudown 192 .168 .97 .52 1209 shutdown shutdown -p now fi

размещено: 2011-06-29,
последнее обновление: 2011-08-21,

Один мой друг, увидев статью http://habrahabr.ru/blogs/DIY/92655/ захотел себе устройство для управления нагрузкой по LPT порту. Но управлять он хотел не одним устройством, а аш 8-мью!
По образу и подобию устройства в статье и была изготовлена данная железка, с небольшими отличиями, во-первых я подключил реле к каждому выходу LPT порта (8 шт.) , а во-вторых сделал человеческую печатную плату. Обо всём по порядку.
Описанное устройство позволяет управлять с компьютера через lpt порт любыми устройствами, такими как лампы освещения, вентилятор и многими другими, мощность которых при питании от сети 220В не должна превышать 1кВт. При написании соответствующего софта, и наличии интернет соединения можно управлять своими устройствами с любой точки земли.

Схема устройства для управления нагрузкой через LPT порту наипростейшая.


Программой с ПК можно управлять логическими уровнями на выходах D0..D7 LPT порта. Уровень логической единицы в LPT порте составляет 5В, что очень удобно для дальнейшего оперирования исполнительными устройствами. Так как тока с выхода LPT недостаточно для управления реле, используем усилитель на транзисторе VT1. Резистор R1 ограничивает ток в цепи базы транзистора. Транзистор коммутирует питание на обмотку реле, и та включает мощную нагрузку, которой вы хотите управлять, к примеру, лампочку, двигатель и другие. Плата разведена под реле HJR-3FF-S-Z (обмотка на 12В, коммутируемый контактами ток 5А при 230В переменного напряжения). Диод VD1 защищает транзистор VT1 от выброса обратного напряжения в момент выключения реле. На схеме показан один узел, для линии D0 LPT порта, но управление для остальных линий идентично.
Это наипростейшее устройство, собрать его сможет любой, даже начинающий радиолюбитель. Но если вы собираетесь с его помощью управлять устройствами с номинальным напряжением питания 220В, то перед включением особое внимание обратите на монтаж, особенно монтаж цепей 220В, чтобы не было связи данных цепей с низковольтными цепями, например из-за сопли или недотрава. Рекомендую перед включением всё тщательно прозвонить Омметром для обнаружения нежелательных связей. При неудачном монтаже вы рискуете не только угробить компьютер, но и подвергаете свою жизнь опасности!
Под данное устройство я разработал в программе Sprint Layout одностороннюю печатную плату.

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

Практически собранное устройство показано на следующей фотографии. Видно, что диоды я подпаял к плате со стороны дорожек прямо на выводы реле идущих к обмотке.

В статье первоисточника (ссылка начале статьи), есть программы для управления LPT портом и их описание.