Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.09.2009, 13:05   #1
Joslen_bomon
Пользователь
 
Регистрация: 13.09.2009
Сообщений: 53
По умолчанию здравствуйте уважаемые программисты.

Есть электродвигатель, который иногда включаеться и выключаеться.
Хочу поставить между фазами реле напряжения, которое будет фиксировать моменты включения//отключения, посылая сигнал +5 в на дискретный вход (LPT порт) который на сервере. На это же сервере есть excel файл, в который нужно будет вносить время появления сигнала. Короче нужно создать регистратор события - регистрация на LPT порте сигналов 5 , 0 , вольт.

Прогу для регистрации хочу написать на c++.

Подскажите, может писать ничего не надо ? уже есть подобные провренные проги ?

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

Последний раз редактировалось Joslen_bomon; 22.09.2009 в 16:22.
Joslen_bomon вне форума Ответить с цитированием
Старый 22.09.2009, 16:49   #2
ds.Dante
Старожил
 
Аватар для ds.Dante
 
Регистрация: 06.08.2009
Сообщений: 2,992
По умолчанию

Главная проблема - что в LPT проще передавать данные (на высоком уровне), чем задавать или принимать постоянное состояние. Некоторое время назада я написал в VC программу с удобным интерфейсом для установки и визуализации каждого бита. Если дадите адрес, могу послать программу с исходниками. Писал по статьям pcports.ru, с использованием драйвера от автора сайта. Единственная проблема - писал программу давно, а потом она вдруг пересатала компилироваться (хотя старый .exe работает нормально). Надо будет покопаться.
ds.Dante вне форума Ответить с цитированием
Старый 22.09.2009, 17:29   #3
Joslen_bomon
Пользователь
 
Регистрация: 13.09.2009
Сообщений: 53
По умолчанию

а для реализации этого проэкта, какой порт лучше всего подойдет. ?

сервер еще не куплен, что было бы само то на нем ?
Joslen_bomon вне форума Ответить с цитированием
Старый 23.09.2009, 10:26   #4
ds.Dante
Старожил
 
Аватар для ds.Dante
 
Регистрация: 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.
ds.Dante вне форума Ответить с цитированием
Старый 23.09.2009, 12:53   #5
Joslen_bomon
Пользователь
 
Регистрация: 13.09.2009
Сообщений: 53
По умолчанию

частота включения // отключения, где то 1 раз в 1.5 часа, так что 65 герц хватит ))

LPT порт, вроде есть везде.

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

Хотелось бы узнать, если будет реализована "железная" часть этого проэкта, т.е. "двигатель - реле напряжения между фазами - вторичная цепь - вход звуковой карты" , то как примерно будет выглядеть код программы в С++ для ведения хронологии наличия (отсуствия) сигнала на входе, с занесением соотвествуюещей информации в excel ?

Нету у меня опыта програмирования приема сигнала от внешних устройств

Последний раз редактировалось Joslen_bomon; 23.09.2009 в 12:58.
Joslen_bomon вне форума Ответить с цитированием
Старый 23.09.2009, 13:14   #6
ds.Dante
Старожил
 
Аватар для ds.Dante
 
Регистрация: 06.08.2009
Сообщений: 2,992
По умолчанию

С аудиовходом подсказать тоже не могу. Я бы делал с LPT. Кстати, информация на этот порт подается замыканием 2-х проводов, а не подачей напряжения. Тогда с реле должно быть еще проще. Вот принесу из дома ту свою прогу - там, думаю, разобраться не очень сложно. Ну и почитайте pcports.ru в любом случае.
ds.Dante вне форума Ответить с цитированием
Старый 28.09.2009, 12:42   #7
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
На это же сервере есть excel файл, в который нужно будет вносить время появления сигнала. Короче нужно создать регистратор события
Я бы не стал возиться с портами.
Поставил бы сервер на компе типа Pentium2, установил Excel, написал бы простейший макрос, который бы анализировал нажатие клавиш клавиатуры.

В качестве датчика использовал бы клавиатуру (возможно, дополнительную, благо стоят клавиатуры нынче 100 руб./ведро)
Реле замыкает контакты одной из клавиш (например, клавиши Shift), макрос отслеживает нажатие Shift-a, и пишет в файл лог, не забывая регулярно его сохранять.

Если не обязательно использовать файл Excel (подойдёт и текстовый файл), то можно легко найти готовую программу.

Один нюанс, который следует обдумать - как нейтрализовать дребезг контактов, характерный всем реле.

Я бы не использовал реле - взял бы дешёвый китайский блок питания (импульсный) на 5 вольт, и использовал бы его в качестве датчика.
EducatedFool вне форума Ответить с цитированием
Старый 28.09.2009, 15:35   #8
ds.Dante
Старожил
 
Аватар для ds.Dante
 
Регистрация: 06.08.2009
Сообщений: 2,992
По умолчанию

Решение настоящего хакера. :) Только, я боюсь, заказчик (а такие вещи обычно делаются не для себя) не выдержит такого зрелища: клавиатура с выдернутыми клавишами, и торчащими из глазниц проводами, и все это сопровождается зловещим потрескиванием реле. :)

Программа для непосредственного управления выводами LPT (с исходниками) вот здесь.
ds.Dante вне форума Ответить с цитированием
Старый 04.10.2009, 10:36   #9
Joslen_bomon
Пользователь
 
Регистрация: 13.09.2009
Сообщений: 53
По умолчанию дребезг контактов

Подача импульса будет происходить один раз в 1.5-2 часа. Может возможно программно устранить дребезг контактов, т.е. поставить что то вроде ограничителя времени, что бы сигнал регистрировался на чаще чем 1 раз в N минут.

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

Последний раз редактировалось Joslen_bomon; 04.10.2009 в 12:49.
Joslen_bomon вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Уважаемые программисты помогите пожалуйста 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