Как сьемулировать простой сигнал COM порта (и взять его в VB.NET)?
Задача такова - есть станок (станком управляет PLC нормальный доступ к системе управления которой закрыт). Есть компьютер установленный на станке, на котором отображается спецификация продукции и электронный чеклист для оператора станка. Компьютер и станок являются автономными друг от друга и никак не связаны на данный момент.
Появилась задача взять определенный сигнал (да/нет) с PLC станка и передать его в программу компьютера. Так как доступ к PLC закрыт, то электрик предложил взять контакт с реле управления и вывести его на контакт COM порта (на компьтере есть COM порт, LPT нет). Было предложено просто взять сигнал есть ток/нет тока на один из контактов COM разьема.
Перед выводом сигнала было решено протестировать программу на виртуальном COM порте.
Итак внимание вопрос - каким способом можно создать виртуальный COM порт на компьютере и сьемулировать с помощью него однобитный сигнал да/нет на одном из пинов порта?
Galaher: т.е. если вы с помощью реле подадите на RX постоянное высокое(5В) - получите как-бы непрекращающийся поток "111111111111111111111111111111". Если нужно отловить именно 1 бит - релюхой надо щелкнуть с частотой, на которой будете слушать порт. если мне не изменяет память - минимум что-то около 300Гц. Я бы в разрыв поставил какой-нибудь микроконтроллер. Который уже будет отслеживать состояние контакта - и отдавать статус по сериал компьютеру.
Galaher: сорри, с uart перепутал. У RS232 немного по-другому https://ru.wikipedia.org/wiki/RS-232.
"Логическому «0» соответствует положительное напряжение (от +5 до +15 В для передатчика), а логической «1» — отрицательное (от −5 до −15 В для передатчика)."
Galaher: ИМХО. предположим, что уровень на RX "по умолчанию" 0(лучше подтянуть к земле, дабы не "шумело"). От -5 до +5 - ничего. не 0 и не 1. Релеха сработала, подала на RX -5В. Стало "1". Дальше вопрос в "скорости" порта. Скажем, при скорости в 300 бод и времени работы реле до отключения 1/10 секунды, в порту вы должны получить 30 "1".
Если RX подтяните к -5В, а через реле будете подавать +15В то момент срабатывания будет действительно "111111111111100000111111111".
но я все-же еще раз посоветовал бы взять микроконтроллер и обрабатывать реле им. А в ПК отдавать уже обработанный сигнал.