Вопрос по взаимодействию ПК с внешним миром
6996
35
Доброго времени суток, уважаемые форумчане! Кто знает, подскажите, как настроить следующие программно-аппаратные события...
Имеется ПК с ОС Windows (Xp/vista/7) и коммутационное устройство (выключатель концевой/обычный выключатель/реле/контактор/индуктивный датчик)
Необходимо при срабатывании коммутационного устройства или получать значение 1 (true) в Visual Studio, дабы писать программынй код на С++, используя эту единичку или выполнять какой-либо действие с приложенями (свернуть аську/закрыть браузер).
И обратная задача: По нажатию кнопки (например, в приложении, написанном на С/С++) или по нажатию на заданную комбинацию клавиш необходимо подать на внешнее устройство 24 Вольта или замкнуть какие-нибудь два контакта.
Каким образом с минимальными финансовыми затратами можно решить данные задачи? Вариант ПЛК+Scada-система хороший, но слишком дорого
Инженер_электрик
Освоить работу с COM/LPT портом невариант ?
Вам это "для дома для семьи" или для производства?

Если "для тома-для семьи" - видимо что-то такое можно купить
http://www.masterkit.ru/main/set.php?code_id=573112
это первое что попалось, у них много подобной фигни продается готовой. Наверняка что-то подобное есть в магазинах "Радиотехника", надо только спросить.
Mozepiy
Освоить работу с COM/LPT портом невариант ?
А зачем? Сейчас есть куча контроллеров с поддержкой usb и отдельных контроллеров шины
Сибиряк
Они денех стоют .) Ну и ненадежные эти контроллеры, незряж досихпор в промышленных девайсях используют RS-232/422/485.
Mozepiy
Там просто весь софт из прошлого века:улыб:
Сибиряк
А вы современные системы диспетчеризации видили ? .)
Mozepiy
Даже не представляю что это такое:улыб:
Спасибо за совет - обязательно поищу информацию по работе с ними. Что лучше почитать по этому поводу?
Что лучше почитать по этому поводу?
Гугль.

"Как подключить светодиод к LPT порту"
"Как прочитать данные с LPT порт"
ну и т.п.
KSergey
Только если немного думать в будущее- в компе, а тем более в ноутбуке не будет(да и теперь уже нет в 70%-80%) ни кома ни эльпэтэ. Так что сразу копать в сторону USB.
Ф-1
Только если немного думать в будущее- в компе, а тем более в ноутбуке не будет(да и теперь уже нет в 70%-80%) ни кома ни эльпэтэ. Так что сразу копать в сторону USB.
USB to UART
USB to COM
USB to LPT
kirill-82
Вы сами посудите, зачем лишний посредник?
USB - (COM,LPT) - устройство
Когда проще и дешевле и надёжнее:
USB - устройство.
kirill-82
Лишние контроллеры, дрова разной степени кривости. Ну их нафиг, я считаю, если уж делать самому, так сразу под USB.
Ф-1
Вы сами посудите, зачем лишний посредник?
USB - (COM,LPT) - устройство
Все верно, достаточно поставить плату в комп.

Когда проще и дешевле и надёжнее:
Не проще, не дешевле и уж тем более ненадежно.
Сибиряк
А в самом деле, кто-нибудь использует что-то подобное? может назовете готовые какие-то устройства, подключаемые по USB? интересуют TTL-уровни на выходе, гальваническая развязка с компом (или хотя бы развязка сигнальных линий) - было бы вовсе хорошо.
Mozepiy
Все верно, достаточно поставить плату в комп.
А в ноутбук?
Не проще, не дешевле и уж тем более ненадежно.
То есть, USB-переходник-устройство это проще, дешевле и надёжней чем просто USB-Устройство?
KSergey
А в самом деле, кто-нибудь использует что-то подобное? может назовете готовые какие-то устройства, подключаемые по USB? интересуют TTL-уровни на выходе, гальваническая развязка с компом (или хотя бы развязка сигнальных линий) - было бы вовсе хорошо.
Как вариант. Драйверы там же
Ф-1
А в ноутбук?
А в планшет, а в телефон ?

То есть, USB-переходник-устройство это проще, дешевле и надёжней чем просто USB-Устройство?
Для определенного круга задачь, да.
Mozepiy
При чём тут телефон? Вам просто пытаются донести, что незачем использовать устаревшие стандарты интерфейсов, когда даже в обычных настольных компах от них уже отказались.
Ф-1
Вы это поизводителям систем диспетчеризации, СКУД и прочих страшных слов доносите, а я посмеюсь.
Сибиряк
Как вариант. Драйверы там же
Н-да, недешевое нынче радиолюбительство )
Я надеялся баксов в 10..20 уложиться, если честно.
Mozepiy
Да япон-батон, человеку нужно пару контактов замкнуть/посмотреть в бытовом уровне как модно проще. Ему уже посоветовали маленькую штучку и готовое по.
А по поводу ваших страшных слов - ни одна, ни одна промышленная система не работает по стандартным писюковым RS-232 и IEEE 1284! Ибо они нифига не помехозащищённые, нифига не отказоустойчивые и нифига не рассчитанные на более менее серьёзные протоколы обмена.
Они могут быть использованы максимум для связи ПК с контроллером, который разворачивает дальше одну из промышленных сетей, самое простое RS-485.
Что используется в промышленности кратко указано тут .
Ф-1
Да япон-батон, человеку нужно пару контактов замкнуть/посмотреть в бытовом уровне как модно проще.
Повашему проще купить набор, запрограммить его, изучить API драйвера и всунуть в свой софт ? Ну-ну.

А по поводу ваших страшных слов
А я выше писал, что в промышленных девайсях используют RS-232/422/485.
Mozepiy
Повашему проще купить набор, запрограммить его, изучить API драйвера и всунуть в свой софт ? Ну-ну.
Проще в том смысле, что один раз сделав это, избавить себя от гиммороя в будущем. Гиммороя, связанного с поиском различных плат/переходников под устаревшие стандарты.

А я выше писал, что в промышленных девайсях используют RS-232/422/485.
Опа-опа! Но в РС ТОЛЬКО RS-232! Который никакой уважающий себя разработчик не будет напрямую использовать в более менее сложной системе, а только с переходниками RS-232 - RS-485 например.
Да и то, уже стало признаком хорошего тона использовать только USB. Например: USB - RS-485.
Ф-1
Товарищи!
Хватит меряться умными циферками.

По делу может чего подскажете? ну например модель готового устройства для сопряжения, недорогого.
Ф-1
Опа-опа! Но в РС ТОЛЬКО RS-232! Который никакой уважающий себя разработчик не будет напрямую использовать в более менее сложной системе
Дану, возьмем например TAC Xenta, везде RS-232 для обслуживания, а используется он в весьма агрессивных местах.

Да и то, уже стало признаком хорошего тона использовать только USB. Например: USB - RS-485.
Точно такойже костыль как и USB - RS-232.
Mozepiy
например TAC Xenta, везде RS-232 для обслуживания, а используется он в весьма агрессивных местах.
Ну так во именно для обслуживания. Для программирования, просмотра параметров. то есть, для сервисных функций. Для которых не нужно надёжности и больших расстояний. А собственно сеть там(цитата из PDFа):
"Контроллеры TAC Xenta подключены друг к другу через сетевую
платформу LonWorks ® 78 кбит/с.".

Ну не используется RS-232 сейчас именно для надёжного управления процессами в реальном времени и всё тут.

Точно такойже костыль как и USB - RS-232.
Ну, этот костыль именно для устаревшей аппаратуры, которую ещё используют из экономических или каких ещё соображений, которая ничего кроме RS-232 не умеет.
KSergey
Наберите в яндексе что нибудь типа "простое подключение к ПК". Думаю, что-нибудь найдёте. Сам я не подскажу, так как используем только USB и собственные контроллеры.
Ф-1
Наберите в яндексе что нибудь типа "простое подключение к ПК". Думаю, что-нибудь найдёте. Сам я не подскажу, так как используем только USB и собственные контроллеры.
А собственные контроллеры - сами производите? или серийные какие-то используете?
KSergey
Используем микросхемы со встроенным USB.
Ф-1
Используем микросхемы со встроенным USB.
"Имя, сестра, имя!"

PS
Мне тут вот подсказали еще для примера
http://freeduino.ru/arduino/sample_PhysicalPixel.html
KSergey
Да наш вариант, скорее всего, слишком сложен для бытового применения. Ну, чисто для примера, допустим AT91SAM3S.
Если в наличии комп с СOM портом, если нужна какая-нибудь бытовая штукенция, и не требуется переносимости на свежее железо, то проще всего именно COM|LPT.
Ну, или купить такой простенький контроллер для USB. Тогда всё проще с переносом.
Ф-1
Когда проще и дешевле и надёжнее:
USB - устройство.
Это USB-устройство должно относиться к какому-то классу. Так? Почему бы ни к CDC? Получаем виртуальный COM-порт и работаем абсолютно также, как с реальным. На начальном этапе освоения темы можно мониторить CTS, DSR, управлять DTR, RTS линиями реального COM-порта, при отсутствии - переходник, ну и на микроконтроллере с USB виртуальный COM-порт поднять не сложно. Писать свои драйвера под нестандартное USB-устройство будет однозначно сложнее, а при желании как-то его распространить придется покупать VID, PID. С тем же CDC таких проблем не будет - Вы их получите либо вместе с переходником, либо, как правило, можете использовать VID и PID производителя микроконтроллера.