|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
22.09.2009, 13:05 | #1 |
Пользователь
Регистрация: 13.09.2009
Сообщений: 53
|
здравствуйте уважаемые программисты.
Есть электродвигатель, который иногда включаеться и выключаеться.
Хочу поставить между фазами реле напряжения, которое будет фиксировать моменты включения//отключения, посылая сигнал +5 в на дискретный вход (LPT порт) который на сервере. На это же сервере есть excel файл, в который нужно будет вносить время появления сигнала. Короче нужно создать регистратор события - регистрация на LPT порте сигналов 5 , 0 , вольт. Прогу для регистрации хочу написать на c++. Подскажите, может писать ничего не надо ? уже есть подобные провренные проги ? если нет, то укажите пожалуйста примерно направление, в котором нужно развивать мысль, для получения результата. Последний раз редактировалось Joslen_bomon; 22.09.2009 в 16:22. |
22.09.2009, 16:49 | #2 |
Старожил
Регистрация: 06.08.2009
Сообщений: 2,992
|
Главная проблема - что в LPT проще передавать данные (на высоком уровне), чем задавать или принимать постоянное состояние. Некоторое время назада я написал в VC программу с удобным интерфейсом для установки и визуализации каждого бита. Если дадите адрес, могу послать программу с исходниками. Писал по статьям pcports.ru, с использованием драйвера от автора сайта. Единственная проблема - писал программу давно, а потом она вдруг пересатала компилироваться (хотя старый .exe работает нормально). Надо будет покопаться.
|
22.09.2009, 17:29 | #3 |
Пользователь
Регистрация: 13.09.2009
Сообщений: 53
|
а для реализации этого проэкта, какой порт лучше всего подойдет. ?
сервер еще не куплен, что было бы само то на нем ? |
23.09.2009, 10:26 | #4 |
Старожил
Регистрация: 06.08.2009
Сообщений: 2,992
|
Не могу сказать, сам только с COM начал разбираться, а с USB не приходилось (кстати, у меня сейчас USB с эмулятором COM порта, но это передача данных, а не регистрация состояния). Тут вопрос - на всех ли компах есть LPT и COM?
Другие варианты: PS/2, аудиовход, MIDI-порт... :) Есть еще нюанс - самый быстрый таймер в Windows XP - 65 Гц, поэтому, если частота отсчетов должа быть выше, нужно либо использовать multimedia-таймер или делать счетчик импульсов аппаратно. P. S. Задавайте темам на форуме нормальные названия, а то я в этих "здравствуйте уважаемые программисты." скоро начну путаться. :) http://programmersforum.ru/rules.php Последний раз редактировалось ds.Dante; 23.09.2009 в 11:17. |
23.09.2009, 12:53 | #5 |
Пользователь
Регистрация: 13.09.2009
Сообщений: 53
|
частота включения // отключения, где то 1 раз в 1.5 часа, так что 65 герц хватит ))
LPT порт, вроде есть везде. можно конечно использовать вход от звуквой карты, ведь мне нужно всего два варианта, +5в и 0в . Хотелось бы узнать, если будет реализована "железная" часть этого проэкта, т.е. "двигатель - реле напряжения между фазами - вторичная цепь - вход звуковой карты" , то как примерно будет выглядеть код программы в С++ для ведения хронологии наличия (отсуствия) сигнала на входе, с занесением соотвествуюещей информации в excel ? Нету у меня опыта програмирования приема сигнала от внешних устройств Последний раз редактировалось Joslen_bomon; 23.09.2009 в 12:58. |
23.09.2009, 13:14 | #6 |
Старожил
Регистрация: 06.08.2009
Сообщений: 2,992
|
С аудиовходом подсказать тоже не могу. Я бы делал с LPT. Кстати, информация на этот порт подается замыканием 2-х проводов, а не подачей напряжения. Тогда с реле должно быть еще проще. Вот принесу из дома ту свою прогу - там, думаю, разобраться не очень сложно. Ну и почитайте pcports.ru в любом случае.
|
28.09.2009, 12:42 | #7 | |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
Цитата:
Поставил бы сервер на компе типа Pentium2, установил Excel, написал бы простейший макрос, который бы анализировал нажатие клавиш клавиатуры. В качестве датчика использовал бы клавиатуру (возможно, дополнительную, благо стоят клавиатуры нынче 100 руб./ведро) Реле замыкает контакты одной из клавиш (например, клавиши Shift), макрос отслеживает нажатие Shift-a, и пишет в файл лог, не забывая регулярно его сохранять. Если не обязательно использовать файл Excel (подойдёт и текстовый файл), то можно легко найти готовую программу. Один нюанс, который следует обдумать - как нейтрализовать дребезг контактов, характерный всем реле. Я бы не использовал реле - взял бы дешёвый китайский блок питания (импульсный) на 5 вольт, и использовал бы его в качестве датчика. |
|
28.09.2009, 15:35 | #8 |
Старожил
Регистрация: 06.08.2009
Сообщений: 2,992
|
Решение настоящего хакера. :) Только, я боюсь, заказчик (а такие вещи обычно делаются не для себя) не выдержит такого зрелища: клавиатура с выдернутыми клавишами, и торчащими из глазниц проводами, и все это сопровождается зловещим потрескиванием реле. :)
Программа для непосредственного управления выводами LPT (с исходниками) вот здесь. |
04.10.2009, 10:36 | #9 |
Пользователь
Регистрация: 13.09.2009
Сообщений: 53
|
дребезг контактов
Подача импульса будет происходить один раз в 1.5-2 часа. Может возможно программно устранить дребезг контактов, т.е. поставить что то вроде ограничителя времени, что бы сигнал регистрировался на чаще чем 1 раз в N минут.
Если я не ошибаюсь , то в случае подключения в к контактам кнопки низкой стороны от реле, получиться что контакты кнопки всегда замкнуты, а ведь кнопка срабатывает когда происходит замыкание контактов, а не тогда когда на нее подают импульс. я прав ? Последний раз редактировалось Joslen_bomon; 04.10.2009 в 12:49. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Уважаемые программисты помогите пожалуйста | Paul_AG | Общие вопросы C/C++ | 10 | 28.03.2009 21:56 |
Уважаемые программисты, помогите... | ЕлЕнОчкА | Паскаль, Turbo Pascal, PascalABC.NET | 16 | 04.12.2008 20:34 |
Уважаемые программисты! | Дашусик | Помощь студентам | 8 | 31.05.2008 19:29 |
Уважаемые программисты, помогите плз) | весел | Свободное общение | 3 | 03.03.2008 10:14 |