Как реле подключить к компьютеру через com порт

Обновлено: 06.07.2024

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

Видимо, что просто так не получится. В компьютерах на разъём RS-232 идёт инвертированный сигнал +- 12 Вольт через микросхемы вроде GD75232. Для управления реле надо будет делать усилительный каскад на транзисторе и подводить дополнительно питание.

А как-то по простому нельзя обойтись ? 12В то наверно нормально.
Из видеоплеера нельзя что готовое взять ?

subo: Из видеоплеера нельзя что готовое взять ?
Что ты имеешь ввиду, под плеером?
Со звук. карты чтоль?
12в можно и с БП взять.
Реле с разными токами срабатывыния существуют, 12в (Скажем РЭС-49 -22мА.)
А с порта (или) нужно получить "0" или "1" , поставить ключ, ( хоть на 315м или..или..), и 0-1 на базу, для управления Ключ - Реле.
(Какие напрячжения + токи, имеются в портах, с каких котактов просто не интересовало, но достаточно для управления ключом)

Только реле нужно? Какой-нибудь симистор с оптопарой не пойдет?

Решил спросить У Инета, И, нашлось (Неск фич по СОМ. )>

Управление через СОМ порт компьютера внешними устройствами программой на VB.

Часто в конференциях от радиолюбителей можно услышать вопрос:"Я сделал (хочу сделать) какое-то внешнее устройство и имею желание подключить его к компьютеру по СОМ порту, чтобы им как-то управлять, но не знаю как". СОМ порт более предпочтителен для таких экспериментов, так как у него выше, чем у LPT нагрузочная способность, и поэтому меньше шансов спалить порт.

Имеются и Фичи для Модинга
*3. Вывод даты-времени на 4-разрядный LED-индикатор*

Конечно СОМ порт проигрывает LPT по скорости обмена, но часто больших скоростей и не требуется. Но чтобы у вас не сложилось впечатление, что это уж слишком "тормознутый" порт, предлагаю посмотреть, как можно вывести системные дату-время на 4-разрядный LED-индикатор. Причём с динамической индикацией- и без всяких микроконтроллеров! При этом частота регенерации составила около 70Гц и мерцания вообще не видно.

Cherema: Что ты имеешь ввиду, под плеером? видеоплеер, специально взял на предмет расковырять на органы.

chav1961: Только реле нужно? Какой-нибудь симистор с оптопарой не пойдет?
может да, я в схематехнике совсем не разбираюсь, надо автоматом заставлять срабатывать резак, думаю там контакт на замыкание, но сколько В и А не знаю.

ЛСД это отдельная песня. Статья интересная, но у меня будет дос и подключение реле или оптопары там нет. Я в радиодеталях плаваю, мне проще взять одно готовое устройство типа реле и тупо закомутировать вывод 2 - пин порта 3, вывод 3- земля, . .

subo: желательно управлять из командной строки.
Вот убейте, не соображу- зачем чтоб включить реле, надо набирать целую командную строку? Это какую же скорость набора текста надо иметь, чтобы оперативно без задержек что-то включать-выключать?
Cherema: Управление через СОМ порт компьютера внешними устройствами программой на VB. Спасибо за пиар моей статейки

Интересно, вообще-то >
subo: Надо управлять станком-резаком, там стоит гашетка, напряжение не знаю, да и как точно работает , скорее на замыкание. Как подключить реле к компорту

Того не знаю, этого не знаю. Но надо подключить
И зачем именно к компьютеру (ком) ?
Станок ЧПУ что ли.. И как эта гашетка .. Ногой, рукой, головой нажимается ??
Раскрыл бы полную карину, тады народ и озадачился более конкретно.
Может сгодится и простое проводное ДУ, без всякого компа..
(Типа > Выдержка по времени между нажатием (замыкание конт), с определённым интервалом. и т.п.)

Форум про радио — сайт, посвященный обсуждению электроники, компьютеров и смежных тем.

(язык - visual basic 6.0)
1. Суть метода
Часто в конференциях от радиолюбителей можно услышать вопрос:"Я сделал (хочу сделать) какое-то внешнее устройство и имею желание подключить его к компьютеру по СОМ порту, чтобы им как-то управлять, но не знаю как". СОМ порт более предпочтителен для таких экспериментов, так как у него выше, чем у LPT нагрузочная способность, и поэтому меньше шансов спалить порт.

Если у вас установлен Visual Basic и есть какие-то навыки программирования на нём, то наиболее простой, по-моему, путь- использовать компонент управления (контрол) MSComm Control, который вызывается Project->Components->и поставить галочку на MSComm Control. Далее необходимо поместить этот контрол на форме и написать код программы для него.

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

В качестве примера такого внешнего устройства можно привести популярный программатор PonyProg (правда он написан не на VB, но принцип одинаковый). Если внимательно посмотреть на его схему, то видно, что в некоторых случаях (например, при программировании микросхем 24хх), главные информационные сигналы СОМ порта Rx (2) и Tx (3) не используются вообще. Весь обмен идет через вспомогательные выводы CTS(8), DSR (6), DTR (4), RTS (7) (хотя кое-где используется 3-й вывод Tx, об этом мы тоже поговорим).

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

Итак, три вывода СОМ порта - CD, CTS, DSR можно опросить. Команда, которая позволяет считать состояние например вывода CTS (8), выглядит примерно так:

То есть этой командой мы опрашиваем 0 или 1 присутствует на выводе CTS.

На два вывода СОМ порта - DTR и RTS можно вывести (+12В) или (-12В), и тем самым зажечь светодиод, включить реле или какой-то другой исполнительный механизм. Например, для вывода RTS, это команды:

На основе этих команд (1)-(4) можно организовать как простой обмен данными с компьютером, так и довольно сложные протоколы, например I2C, SPI, MiсroWire и т.д. В качестве примера можете посмотреть DS1621 pc thermometer, и как, используя эти команды, Альберто Риччи организовал I2C протокол обмена с микросхемой термометра DS1621.

Рис.1. Схема для проверки

Если в качестве практики вы не поленитесь за 10 мин собрать схему рис.1 (можно прямо навесным монтажом на разъёме DB9), и запустить программу Com_device, то сможете увидеть как реагирует программка на замыкание кнопки и включает-выключает светодиод (кнопкой LED) с помощью именно тех команд, о которых я говорил выше (на кнопку ''Ввод" пока не обращайте внимания).

Если же вашему устройству требуется импульсный сигнал, то и его несложно получить. Правда для этого всё же придётся познакомится с временной диаграммой протокола RS-232 (рис.2).

Рис.2. Временная диаграмма RS-232

Как видно, первым идёт старт-бит, затем биты данных, затем стоп-бит (обратите внимание, что 0- это +12В, 1- это -12В) . Предположим, мы посылаем старт-бит, затем сразу же за ним какое-то число нулей, например, в битах 0-1-2-3. Получим такой импульс

Рис.3. Формирование импульса

Меняя число импульсов вслед за стартовым, мы сможем менять длительность импульса (правда с шагом в длительность бита). Для этого на порт необходимо посылать одно из следующих чисел: FF, FE, FC, F8, F0, E0, C0, 80, 00. Причём при FF длительность импульса будет минимальная, при 00- максимальная. На рис.3 код импульса - F0.

Чтобы компьютер выдал на COM порт такой сигнал нужно всего-то выполнить команду

Этой командой на порт выдается ASCII код символа. А как нам послать на порт, например, число F0 (240 в десятичном виде)? Вот таким нехитрым способом:

То есть мы сперва преобразуем число 240 в какой-то символ (я даже не знаю какой, можете посмотреть по таблице ASCII кодов) и этот символ отправляем на выход порта.

Теперь пришло время нажать кнопку "Ввод" в программе Com_device. Вы увидите окно ввода чисел. Если вы введёте одно из десятичных числел 255, 254, 252, 248, 240, 224, 192, 128, 0 , то вы получите гладкий импульс на 3(Tx) выводе DB9. Если же у вас нет осциллографа, подключите вольтметр постоянного тока между 5(GND) и 3(Tx) выводами и посмотрите, как меняется напряжение. У меня получилась такая зависимость:

Как видно, довольно линейная картинка.

Посмотрите, как изменится сигнал при изменении свойства Interval таймера Timer2, а также попробуйте в строке MSComm1.Settings = "1200,N,8,1" изменять скорость обмена (параметр baud rate- в этой строке= 1200).

Если 8 уровней вам не хватает, можете посылать подряд 2 байта:

Получится уже 16 уровневый формирователь. С помощью его уже можно организовать 4-разрядный ЦАП, а если его дополнить внешним компаратором, выход которого опрашивать с помощью команд (1),(2) одним из выводов CD, CTS, DSR; то можно и получить 4-разрядный АЦП, например последовательного приближения.

Com_device.rar(5,2 Kb) - архив с исходным текстом программы на VB.

Схема ниже показывает как можно управлять скоростью вращения вентилятора с помощью ШИМ сигнала, сформированного из Тх-сигнала СОМ-порта. Вентилятор можно использовать от блока питания компьютера.

Заметьте, что выводы 2 и 3 разъёма DB9 в ней объединены.

Ехе-файл программы FunControl находится в архиве Exe.rar.

2. Расширяем число линий вывода
Всё бы хорошо, но в большинстве случаев два вывода СОМ порта - DTR и RTS - это катострофически мало. Выход из этой ситуации давно известен и очень прост. Он очень часто используется разработчиками устройств на микроконтроллерах при дефиците выводов (ну например, даже в моём проекте Цифровой термометр . Суть его заключается в использовании регистров сдвига. На схеме (рис.6) IC1- широко распространённый регистр сдвига 74НС595. Транзисторы- ну например КТ3102, R1..R3-10kOm, R20. R22-1kOm, R12. R19 -100 Om.

Сигналы с СОМ-порта компьютера через разъём DB9 подаются на схемы сопряжения (транзисторы Q1. Q3). Вместо них можно использовать какой-нибудь МАХ232.

RTC выступает в качестве входа последовательных данных (serial data input), Тх- в качестве сигнала сдвига (shift register clock input), DTR - в качестве сигнала записи (защёлки) (storage register clock input) - в скобках обозначения по даташиту, который я советую скачать.

На рис.7 показано окно программы. Скачайте исходник на VB6 ехе-файл (52кБ) .

Число линий вывода можно увеличивать наращиванием числа сдвиговых регистров, при этом вывод 9 надо соединить со входом 14 последующего (как, например на схеме ниже).

JLCPCB, всего $2 за прототип печатной платы! Цвет - любой!

3. Вывод даты-времени на 4-разрядный LED-индикатор

Конечно СОМ порт проигрывает LPT по скорости обмена, но часто больших скоростей и не требуется. Но чтобы у вас не сложилось впечатление, что это уж слишком "тормознутый" порт, предлагаю посмотреть, как можно вывести системные дату-время на 4-разрядный LED-индикатор. Причём с динамической индикацией- и без всяких микроконтроллеров! При этом частота регенерации составила около 70Гц и мерцания вообще не видно.

IC1,IC3 - регистры сдвига 74HC595, индикаторы- от старых AT-корпусов компьютеров.

На регистр IC1 выводится код цифры, на IC3- позиция включаемого знака.

При нажатии кнопкок "Время" и "Дата" выводится соответственно системное время и дата.

VBclock.rar - ехе-файл программы VBclock.

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет


Рис10.

Нажав кнопку «Символ», можно вывести одиночный символ, кнопка «Строка» выводит бегущую строку произвольной длины, которую вы можете ввести в окне ввода строки. Все буквы любого набранного вами текста будут переведены в верхний регистр. В окне программы RunString (рис.11) есть поле 7х7 мнемонических индикаторов, которые дублируют вывод на светодиодную матрицу.


Рис.11.

Ехе-файл программы RunString находится в архиве Exe.rar

5. Создание "мультфильма"

Следующая программа Film выводит на светодиодную матрицу (схема осталась прежней, рис.10) запрограммированные вами анимированные картинки размером 7х7 элементов изображения..

Нажимая на кружки нарисуйте картинку- это будет кадром. Сохраните его, нажав на одну из кнопок «>» или «|>» (рис.12). Иногда картинку удобнее рисовать «с чистого листа», а иногда следующая картинка - лишь незначительное изменение предыдущей. Кнопка «>» сохраняет предыдущий кадр и переходит к чистому следующему (все светодиоды погашены), кнопка «|>» также сохраняет предыдущий кадр, но следующий кадр будет повторением предыдущего, который вы сможете изменять по своему желанию. Кнопка «<» возвращает предыдущий кадр.


Рис.12.

После того, как все кадры созданы, нажмите кнопку «Пуск» - все ваши кадры будут последовательно воспроизведены как в окне программы, так и на светодиодном поле. Причём фильм будет прокручиваться до кадра, отображённого в окне «№ кадра». В окне «Ткадра,мс» выберите время показа одного кадра, в миллисекундах. Максимальное число кадров ограничено программой до1000.

Ехе-файл программы Film находится в архиве Exe.rar.

Приглашаем всех желающих 25/11/2021 г. принять участие в вебинаре, посвященном антеннам Molex. Готовые к использованию антенны Molex являются компактными, высокопроизводительными и доступны в различных форм-факторах для всех стандартных антенных протоколов и частот. На вебинаре будет проведен обзор готовых решений и перспектив развития продуктовой линейки. Разработчики смогут получить рекомендации по выбору антенны, работе с документацией и поддержкой, заказу образцов.

Приглашаем 30 ноября всех желающих посетить вебинар о литиевых источниках тока Fanso (EVE). Вы узнаете об особенностях использования литиевых источников питания и о том, как на них влияют режим работы и условия эксплуатации. Мы расскажем, какие параметры важно учитывать при выборе литиевого ХИТ, рассмотрим «подводные камни», с которыми можно столкнуться при неправильном выборе, разберем, как правильно проводить тесты, чтобы убедиться в надежности конечного решения. Вы сможете задать вопросы представителям производителя, которые будут участвовать в вебинаре

Мои вопросы:
1.) Если администрация разрешит, то я выложу ссылки на исходники программ.
2.) Не работает схема для проверки, позднее опишу ход своих действий, надеюсь вы поможете мне.

Схема устройства с деталями

Необходимые детали для создания устройства
  1. COM порт — 1 шт
  2. коннектор питания — 1 шт
  3. светодиод зелёный — 4 шт
  4. оптопара 4n25 — 4 шт
  5. посадочное место под оптопару (у меня было только на 8 ног) — 4 шт
  6. резистор 390 Ом — 4 шт
  7. резистор 4,7 кОм — 4 шт
  8. транзистор КТ815Г — 4 шт
  9. реле HJR-3FF-S-Z — 4 шт
  10. зажимы на 3 контакта — 4 шт
  11. фольгированный текстолит

Подготовка схемы печатной платы

  1. COM порт (тот что был не совпал с моим, по отверстиям крепления)
  2. гнездо питания
  3. зажим на три контакта
  4. реле HJR-3FF-S-Z

Финальный вид платы

После добавления необходимых деталей началось само проектирование печатной платы. Проходило оно в несколько попыток, было их около пяти. Каждый вариант платы печатался на картоне прокалывались отверстия и в них вставлялись детали. Собственно так и было выяснено, что мой COM порт не совпадает с тем который был в SL5. Так же всплыла небольшая ошибка в схеме реле — реально корпус реле был сдвинут на 2-3 мм. Естественно все ошибки были исправлены.
На первом печатном варианте выяснилось еще и не правильное подключение транзистора, были перепутаны два контакта.
После всех исправлений и подгонок получилось плата следующего вида:

Фотовид платы с прозрачностью

В SL5 есть функция «Фотовид» для просмотра платы, вот как она выглядит в нем:

Фотовид платы без прозрачности

На финальном варианте платы будут еще немного подправлены дорожки, а в остальном она выглядит так же.

В SL5 так же есть удобный вариант печати платы, можно скрывать не нужные слои и выбирать цвет печати каждого слоя, что очень пригодилось.

Подготовка печатной платы

Плату решено было делать методом ЛУТ (лазерно-утюговая технология). Далее весь процесс в фото.

Подготовка текстолита

Вырезаем необходимого размера кусок текстолита.

Зачищеная поверхность

Берем самую мелкую наждачку и аккуратно зачищаем медную поверхность.

Печатная заготовка для ЛУТ

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

Плата после нанесения рисунка

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

Раствор хлорного железа

Далее необходимо подготовить раствор для травления. Я использовал для этого хлорное железо. На банке с хлорным железом написано, что раствор необходимо делать 1 к 3. Я немного отступил от этого и сделал 60 г хлорного железа на 240 г воды, т.е. получилось 1 к 4, не смотря на это травление платы происходило нормально, только немного медленнее. Обратите внимание на то, что процесс растворения сухого хлорного железа в воде идёт с выделением тепла, поэтому всыпать его в воду необходимо небольшими порциями и размешивать. Естественно для травления необходимо использовать не металлическую посуду, в моем случае это была пластиковая ёмкость (вроде от селёдки). У меня получился вот такой раствор:

Плата после 10-15 минут травления

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

Плата после 38 минут травления

Плата после травления и промывки (на просвет)

Весь процесс травления у меня занял 45 минут, хватило бы и 40 минут, но я был просто занят ещё одним делом.
После травления промываем плату с мылом отрываем скотч с леской и получаем:

Плата после травления и промывки

Плата после удаления тонера

Внимание! Не выливайте раствор хлорного железа в раковину (канализацию) — это может повредить металлические детали раковины, да и вообще раствор может ещё пригодиться.
Далее нам необходимо смыть тонер, это успешно делается тем же растворителем 646, который использовался для обезжиривания (долгий контакт растворителя с кожей может её повредить).

Подготовка к сверлению

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

Первый девайс подошел

Первое устройство подошло

А на этом все на сегодня

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

Плата полностью просверлённая, на просвет

На следующий день я купил пять свёрл. И их как раз хватило, так как если они не ломаются (кстати из пятёрки сломал только одно), то тупятся, а при сверлении тупыми — портятся дорожки, медь начинает отслаиваться. После полного сверления платы получаем:

Плата полностью просверлённая, сторона деталей

Процесс лужения

После сверления необходимо провести лужение платы. Для этого я использовал старый способ — паяльник, флюс ТАГС и олово. Хотелось попробовать с использованием сплава Розе, но его не найти у нас в городе.

Плата после лужения, вид 1

После лужения получаем следующий результат:

Плата после лужения, вид 2

Далее необходимо промыть плату для удаления остатков флюса, так как ТАГС водоотмывной, то делать это можно или водой или спиртом. Я сделал что-то среднее — отмывал старой водкой и протирал ватными палочками. После всех этих действий наша плата готова.

Монтаж деталей

Плата с одним рядом деталей

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

  • 2 пин DB25 к 1 пину DB9
  • 3 пин DB25 к 2 пину DB9
  • 4 пин DB25 к 3 пину DB9
  • 5 пин DB25 к 4 пину DB9
  • 6 пин DB25 к 5 пину DB9
  • 7 пин DB25 к 6 пину DB9
  • 8 пин DB25 к 7 пину DB9
  • 21 пин DB25 (можно любой с 18 по 25) к 9 пину DB9

Устройство успешно работает

А вот уже устройство работает:

На этом закончился ещё один вечер и монтаж остальных деталей был оставлен на следующий день.

Полностью укомплектованная плата - дорожки

А вот и уже полностью собранное устройство:

Полностью укомплектованная плата - детали

Ну и небольшое видео о том как это работает (качество не очень, не было чем снять нормально)

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

Программная часть

В последствии программа была доработана так, что бы передавая ей параметры командной строки можно было указывать с каким устройством и что сделать.
Вывод «sw --help»:
Программа для управления реле через LPT порт.
У программы может быть один или два параметра.
Формат параметров: sw [номер устройства] [действие]
номер устройства - от 1 до 8
действие - "on", "off", "st" - включение, выключение, статус
Пример: "sw 2 on" для включения второго устройства или "sw --help" для вывода помощи

PS если кому понадобится, то потом могу где-нибудь выложить файл схемы платы в sl5 и исходник программки управления.


Жила-была простенькая ферма для майнинга. И случалось так, что висла она намертво. И спасти её мог только сброс по питанию, но доставлять себя в другой город ради этого ой как не хотелось.
И было куплено USB реле.

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


Обозреваемая модель построена на реле SRD-05VDC от фирмы SONGLE.
Управляется оно напряжением 5V и может коммутировать до 10А 30V DC и 10A 250V AC.
Надо отметить, что реле — это только синий квадратик, т.е. тут мы имеем целую плату в сборе, построенную на двух реле.
Я с электроникой на вы, поэтому объясню как смогу, извиняйте. Внутри реле находится три контакта.

Контакт 2 подпружинен, и при отсутствии тока он замнут с контактом 3. Когда подаем ток, сердечник внутри реле сдвигает контакт 2, замыкая его с контактом 1. Вот вроде и вся хитрость.


При подключении платы к компьютеру установка драйверов не потребовалась(win7-64):

Однако USB кабеля в комплекте нет, это стоит учесть.
Диск с софтом тоже не поставляется. Я искал программу в интернете.


Внешний вид программы:

Алгоритм действий простой:
— выбираем нужное устройство из списка;
— ждем «open device»;
— управляем реле кнопками «open» и «close»;

Чем больше реле на плате, тем больше будет активных кнопок.


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

Тестирование реле провел на мультиметре:

Вроде все работает. Всем доволен. Рекомендую к покупке. Спасибо за внимание.

Рассматриваем вопросы диагностики COM порта со стороны компьютера.

Начнем с самого простого, найдем на компьютере COM порт визуально.

Рис. 1. Пример расположения COM порта на задней планке материнской платы.

Однако на привычном месте может не оказаться разъема COM порта, это не беда. Заходим в диспетчер устройств, и смотрим в нем наличие COM порта.


Рис.2 Проверяем наличие COM порта на компьютере при помощи диспетчера устройств.

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

Итак COM порт обнаружен программно, а физически его не видно, он расположен на материнской плате и для его физической реализации нужна планка (посмотреть), которую придется либо сделать самостоятельно, либо купить в магазине.



Рис. 3 Вид разъемов COM порта для реализации под планку. На фото, материнская плата с двумя COM портами.

После подключения планки COM порта остается только проверить работоспособность COM порта.

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

Рис. 4 Внешний планок для работы на разных материнских платах.

Планки не взаимонезаменяемые, чаще всего встречался вариант I.



Рис. 5 Вариант I распайки кабеля планки COM порта Рис.6 Вариант II распайки кабеля планки COM порта

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

Для большинства современных устройств требуется только три провода для нормальной работы. Это RxD, TxD и земля. На разъемах DE9 и DB25 RxD, TxD всегда находятся на 2 и 3 контакте. Но если для компьютера все однозначно, на DE9 2-RxD 3-TxD, то для устройств подключаемых к компьютеру такой однозначности нет, но как правило это все те же контакты 2 и 3. А вот что однозначно, так это тот факт, что RxD компьютера должен прийти на TxD устройства и наоборот RxD устройства должен соединиться с с TxD компьютера. В принципе если перепутать контакты и подать неправильно сигналы - то ничего страшного не произойдет, COM порты не сгорят, просто устройство не будет общаться с компьютером.

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

Что бы исключить лишние факторы удостоверимся, что COM порт на компьютере рабочий.

Самое простое, это использовать программу Сommtest (скачать) и заглушку для проверки.


Рис.7 Заглушка для проверки COM порта, сигналов Rx-Tx.

Заглушка представляет собой разъем DE9F, у которого контакты 2 и 3 соединены перемычкой. Суть теста заключается в том, что все отправленные данные должны вернутся обратно. При такой проверке не важно на какой скорости проходит тестирование, данные все равно будут приниматься на такой же скорости. Несомотря на то, что такой способ имеет серьезный недостаток - проверяется только канал Rx-Tx, все же есть и плюсы. Такой заглушкой можно лекго определить номер COM порта не разбирая системный блок, в случае если таких портов несколько.

Рассмотрим, как это делается.

Запускаем программу Сommtest (скачать)


Рис. 8 Рабочее окно программы Commtest


Рис. 9 Настройка программы Commtest

  1. Выбираем COM порт.
  2. Нажимаем клавишу Open для активизации клавиши Put.
  3. Выбираем байт для отправки. Желательно отправлять цифры, в нашем примере байт для отправки цифра "5" (Byte 53DEC или 35 HEX) во всех кодовых таблицах цифры читаются однозначно. Буквы и управляющие символы отправлять нежелательно.
  4. Выбираем количество байт для отправки. В нашем примере 1000, что означает, что при нажатии клавишу Put в порт будет отправлено 1000 байт, в нашем случае 1000 штук цифер "5".

Рис. 10 Программа Commtest готова к использованию.



Рис. 11 Программа Commtest обнаружила технологическую перемычку на COM порту. Рис. 12 Программа Commtest не обнаружила технологическую перемычку на COM порту. Порт COM1 неисправен, либо заглушка установлена на другом порту

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

Внимание! Данная проверка проверяет только канал Rx-Tx и не является 100% гарантией того, что порт исправен, однако хотелось бы обратить внимание что 90% устройств работают именно только по этим проводам.
Внимание! Проверка на другом компьютере связь есть, проверка на проверяемом компьютере связи нет. Не является гарантией того, что COM порт неисправен. Пример кабель от ККМ Fprint-03К

Комплексная проверка COM порта на стороне компьютера.

Принцип такой проверки очень похож на рассмотренную выше проверку по каналу Rx-Tx, суть та же, с передатчика сигнал должен прийти в приемник, если сигнал прошел, то можно считать, что пара исправна. Из оставшихся 7 контактов,1 контакт это земля его мы не проверяем.
Остается 6 контактов, из них два передатчики (DTR, RTS) и четыре приемники (DCD, DSR, CTS, RI). Правило тут простое - передатчик должен прийти на приемник, логично предположить, что на один передатчик следует нагрузить по два приемника. Хотя можно и на один передатчик повесить три приемника, а на второй предатчик посадить только один приемник, как делать дело Ваше . Самое удобное, в плане изготовления это 4->1,9 и 7->6,8 проводов получается по минимуму.

На рисунке для удобства синим цветом выделены передатчики.

Все в той же программе CommTest, но уже в другой части окна взводим флажок передатчика DTR и(или) RTS и смотрим, как изменяются соответствующие флажки приемника.

При изменении флажка DTR - должны взвестись флажки DCD и Ring, при сбросе флажка DTR – должны сбросится флажки DCD и Ring.

Рис. 15 Флажок DTR сброшен Рис. 16 Флажок DTR взведен, в примере не смотря на перемычку флажок Ring не взвелся, можно судить о не исправности приемника Ring

При изменении флажка RTS - должны взвестись флажки DSR и CTS, при сбросе флажка RTS – должны сбросится флажки DSR и CTS.

Рис. 17 Флажок DSR сброшен Рис. 18 Флажок DSR взведен
Рис. 19 Флажок DSR и DTR взведен

Как проверить передатчик – приемник Tx-Rx рассмотрено немного ранее.

Если данные события происходят можно считать, что COM порт стандарта RS232 со стороны компьютера полностью исправен.

Читайте также: