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

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

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

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

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

10. Нажимая А поочередно выбираем порты (если используется кабель-переходник из USB в COM то выбрать /dev/ttyUSB0)
11. Отключить аппаратное управление потоком, нажав «F»
12. Выйти из настроек нажав «Enter»
13. Сохранить настройки по умолчанию «Сохранить настройки как dfl»
14. Выйти из minicom
15. Запустить minicom выполнив команду:
minicom
16. Нажать на любую клавишу на клавиатуре

В случае, если символы не вводятся с клавиатуры, необходимо вернуться к пункту 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 – оский провод со всеми сигнальными линиями:

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


Т.е. находите провода под номерами 2 и 3 и запаиваете их вместе. Затем находите провода под номерами 7 и 8 и запаиваете их . Наконец находите 4 провода под номерами 1, 4, 6 и 9 и запаиваете их вместе.
Суть этой заглушки в том, что передающие сигналы соединены с соответствующими принимающими. Затем с помощью программы CheckIt подаются входные сигналы, а потом проверяются выходные. Если выходные сигналы отсутствуют, то это говорит о неисправности com – порта.
Проверку нужно проводить в dos режиме. Для этого нужно создать загрузочную дискетку с программой CheckIt:
1. Вставляете пустую дискету в дисковод.
2. Заходите в «Мой компьютер» (Windows XP), щелкаете правой кнопкой «мыши» на ярлыке Диск 3,5 (А) выбираете «форматировать». Ставите галочку на «Создание загрузочного диска MS-DOS».

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

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

5. Ставите в BIOSe загрузку с floppy дисковода. Вставляете в дисковод дискету с CheckIt.
6. Пойдет процесс загрузки. После вводите: a:\checkit.exe.
7. Появиться окошко:

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

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

10. Если в конце появятся ошибки, то значит 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.