Как проверить com порт
Перейти к содержимому

Как проверить com порт

  • автор:

Определение номера подключенного COM порта

Для правильного подключения оборудования, необходимо определить номер COM порта.

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

Windows

Для определения номера COM порта на ОС Windows необходимо:

  1. Убедиться в том, что многожильный кабель подключен к COM-порту
  2. Перейти в «Диспетчер устройств», расположенный в: Панель управления\Оборудование и звук\Диспетчер устройств (необходимы права администратора)
  3. Раскрыть дерево «Порты (COM и LPT)»
  4. Отсоединить многожильный кабель
  5. Запомнить изменения в дереве устройств «Порты (COM и LPT)»
  6. Присоединить многожильный кабель обратно к COM-порту
  7. Найти новый порт в дереве устройств «Порты (COM и LPT)»

ComP 1.png

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

ComP 2.png

Linux

Для определения номера COM порта на ОС Linux необходимо:

  1. Обладать правами Root либо пользователь должен входить в группу dialout
  2. Убедиться в том, что многожильный кабель подключен к COM-порту
  3. Проверить наличие COM портов в системе, введя в командную строку следующую команду:
ls -l /dev/ttyS* /dev/ttyUSB*

4. После выполнения команды отобразится список всех доступных COM-портов

ComP 3.png

dev/ttyS0 — первый COM порт

/dev/ttyS1 — второй COM порт

/dev/ttyUSB0 — специальный кабель-переходник из USB в COM (Gembird UAS111)

5. Установить программу minicom. Для этого вводим следующую команду:

apt-get install minicom

6. Найти многожильный кабель в оплётке длиной 4-6 см.

7. Соединить 2 и 3 выводы COM порта перемычкой из кусочка многожильного провода. Оплётка будет удерживать провод на контактах, а металлические жилы внутри будут проводниками.

8. Настроить программу minicom. Для этого вводим следующую команду:

minicom -s

ComP 5.png

9. Выбрать «Настройка последовательного порта»

ComP 6.png

10. Нажимая А поочередно выбираем порты (если используется кабель-переходник из USB в COM то выбрать /dev/ttyUSB0)

11. Отключить аппаратное управление потоком, нажав «F»

12. Выйти из настроек нажав «Enter»

13. Сохранить настройки по умолчанию «Сохранить настройки как dfl»

14. Выйти из minicom

15. Запустить minicom выполнив команду:

minicom

16. Нажать на любую клавишу на клавиатуре

ComP 7.png

В случае, если символы не вводятся с клавиатуры, необходимо вернуться к пункту 10, и выбрать другой COM-порт

Если вводимые символы отображаются — значит COM-порт определен верно

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

Проверка наличия COM порта

Как проверить подключён COM-порт или нет? Например, пользователь выбрал COM 3, но во время работы этот порт был отключён. Как грамотно выполнить проверку присутствует ли COM-порт и возможно ли его открыть? На данный момент делаю вот так(пример):

SerialPort port = new SerialPort("COM 8"); string[] allport = SerialPort.GetPortNames(); bool stat = false; for (int i = 0; i < allport.Length; i++) < if (allport[i] == port.PortName) < stat = true; break; >> if (stat) port.Open(); else Console.WriteLine(" отключен.", port.PortName); 

Но уверен, что данною операцию можно реализовать грамотней.
Отслеживать
14k 13 13 золотых знаков 38 38 серебряных знаков 63 63 бронзовых знака
задан 14 дек 2017 в 12:24
UporotayaPanda UporotayaPanda
754 6 6 серебряных знаков 22 22 бронзовых знака
CreateFile вернет невалидный хэндл, если порта нет
14 дек 2017 в 12:25

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

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

Проверять можно через

using System.IO.Ports; var port = new SerialPort("COM99"); port.Open(); // бросает исключение, если порта нет 
SerialPort.GetPortNames().Contains("COM99") 

(как делаете это вы).

Но отлова исключений всё равно не избежать, т. к. порт может появиться или исчезнуть сразу после проверки.

Отслеживать
4,306 14 14 золотых знаков 42 42 серебряных знака 93 93 бронзовых знака
ответ дан 14 дек 2017 в 12:40
207k 28 28 золотых знаков 293 293 серебряных знака 526 526 бронзовых знаков
а обработку делать стандартно через try/catch?
14 дек 2017 в 12:42

@UporotayaPanda: Ага. Любое действие с внешним устройством может вызвать исключение, так что имеет смысл вынести try/catch на более внешний уровень.

14 дек 2017 в 12:44
благодарю за помощь и оперативность.
14 дек 2017 в 12:48
@UporotayaPanda: Пожалуйста! Рад, что помогло.
14 дек 2017 в 13:11

Ваш код можно немного изменить используя метод Any(. ) . Можно создать вот такой метод, который принимает имя порта, проверяет, содержится ли это имя в списке имен последовательных портов текущего компьютера, а затем уже попытаемся открыть порт:

static void OpenPort(string portName) < if (SerialPort.GetPortNames().Any(x =>x == portName)) < // если такой порт есть, то попробуем открыть его и сделать что-то еще. var port = new SerialPort(portName); try < port.Open(); // здесь может быть код еще. >catch (Exception ex) < // что-то пошло не так и упало исключение. Выведем сообщение исключения Console.WriteLine(string.Format("Port:'' Error:''", portName, ex.Message)); > > > 

А затем просто вызывать этот метод, передавая туда имя интересующего вас порта.

Метод SerialPort.GetPortNames() — возвращает массив имен последовательных портов для текущего компьютера.

Как проверить COM — порт (DB9) компьютера.

1. проверка с помощью com – оской мышки. Такая проверка является не полной (проверяется лишь 4 сигнальные линии из 8). Подсоединяете мышь, если она работает, то частично можно скачать что com – порт рабочий.

2. проверка с помощью com – оской заглушки и программы CheckIt.

Для начала нужна тестовая заглушка. Её можно купить в магазине или сделать самому. Если будите делать сами, то Вам потребуется com – оский провод со всеми сигнальными линиями:

com порт db9

Запаяйте сигнальные линии, как показано на рисунке:

расположение проводов по номерам

заглушка

Т.е. находите провода под номерами 2 и 3 и запаиваете их вместе. Затем находите провода под номерами 7 и 8 и запаиваете их . Наконец находите 4 провода под номерами 1, 4, 6 и 9 и запаиваете их вместе.

Суть этой заглушки в том, что передающие сигналы соединены с соответствующими принимающими. Затем с помощью программы CheckIt подаются входные сигналы, а потом проверяются выходные. Если выходные сигналы отсутствуют, то это говорит о неисправности com – порта.

Проверку нужно проводить в dos режиме. Для этого нужно создать загрузочную дискетку с программой CheckIt:

1. Вставляете пустую дискету в дисковод.

2. Заходите в «Мой компьютер» (Windows XP), щелкаете правой кнопкой «мыши» на ярлыке Диск 3,5 (А) выбираете «форматировать». Ставите галочку на «Создание загрузочного диска MS-DOS».

создание загрузочного диска

3. Затем копируете в эту дискету программу CheckIt:

копирование программы checkit на дискету

4. Подключите тестовую заглушку к com – порту, который хотите проверить:

подключение заглушки к компьютеру

5. Ставите в BIOSe загрузку с floppy дисковода. Вставляете в дисковод дискету с CheckIt.

6. Пойдет процесс загрузки. После вводите: a:\checkit.exe.

7. Появиться окошко:

программа checkit

8. ажимаете 2 раза enter. Выбираете вкладочку Tests -> Serial Ports и номер com – порта, куда подсоединена заглушка.

выбор com - порта

9. Подтверждаете, что у Вас подключена тестовая заглушка. После этого начнется процесс проверки.

выпрос о подсоединненой заглушке

10. Если в конце появятся ошибки, то значит com – порт неисправен:

ошибки com порта

11. Если все тесты завершены успешно, то com – порт исправен:

ошибок нет

Статьи по ремонту:
  • Ремонт блока питания
  • Ремонт видеокарты
  • Ремонт ОЗУ
  • Ремонт жесткого диска (HDD)
  • Ремонт материнской платы
  • Ремонт «мышки»
  • Как проверить COM — порт
  • Как поменять термопасту

Форум русскоязычного сообщества Ubuntu

Страница сгенерирована за 0.073 секунд. Запросов: 26.

  • Сайт
  • Об Ubuntu
  • Скачать Ubuntu
  • Семейство Ubuntu
  • Новости
  • Форум
  • Помощь
  • Правила
  • Документация
  • Пользовательская документация
  • Официальная документация
  • Семейство Ubuntu
  • Материалы для загрузки
  • Совместимость с оборудованием
  • RSS лента
  • Сообщество
  • Наши проекты
  • Местные сообщества
  • Перевод Ubuntu
  • Тестирование
  • RSS лента

© 2012 Ubuntu-ru — Русскоязычное сообщество Ubuntu Linux.
© 2012 Canonical Ltd. Ubuntu и Canonical являются зарегистрированными торговыми знаками Canonical Ltd.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *