Тема / Topic: Получение данных от разных COM-портов
Гусев Александр Петрович
Active Forum Member / Активный участник форума
Участник № / Member № 2148
отправлено / posted
Возможно ли динамически менять привязку точки ввода-вывода к конкретному порту или номер самого порта? Необходимо сделать "резервирование" линий связи. При сбое на линии подключенной к одному порту система должна будет перейти на получение данных по резевной линии подключенной к другому порту.
Сообщения / Posts 84 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
Да, возможно. Для этого необходимо: 1. Задать резервный COM-порт в проекте. 2. Атрибут (93, IA_C0, МРВ – C0) C0 – значение первого (младшего) байта удаленного адреса. Это номер COM-порта. 3. Для выполнения группового переключения рекомендуем использовать каналы CALL с типом вызова Move.
Сообщения / Posts 17345 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Гусев Александр Петрович
Active Forum Member / Активный участник форума
Участник № / Member № 2148
отправлено / posted
1. поясните что означает задать резервный порт? у меня в проекте создано два порта со своими настройками: COM1 и COM2. точка ввода-вывода по умолчанию подключена к COM1. требуется использование в качестве резервного COM2 либо динамическое изменение номера порта для COM1. 2. - у точки ввода-вывода есть атрибут 93 (PORT) - его судя по всему изменить нельзя т. к. я не вижу его в просмотре компонентов в режиме исполнения и не вижу через монитор порта результатов от изменения программой атрибута PORT - пакеты не уходят в порт COM2. - у порта есть атрибут 128 (COM_NUM) - но его изменение тоже ни к чему не приводит т. к. порт опять же не является объектом доступным во время исполнения. - у канала есть атрибут 93 (IA_C0) - его изменение увы так же ни к чему не приводит.
Сообщения / Posts 84 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
1. Необходимо выполнить инициализацию порта, что Вы и сделали. 2. Только что проверил. При изменении атрибута (93,C0) с "0" на "1" получил переключение порта с COM1 на COM2.
Сообщения / Posts 17345 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Гусев Александр Петрович
Active Forum Member / Активный участник форума
Участник № / Member № 2148
отправлено / posted
спасибо! заработало. меняю атрибут канала 93 (IA_C0). попутно обнаружил необычное поведение ТМ - в проекте на котором я тестирую возможность резервирования всего 1 канал и 1 точка ввода-вывода (REMICONT-131h, все значения по умолчанию). к портам ничего не подключено. вижу что пакеты уходят, потом таймаут, потом повторный запрос и так далее. имитация вполне "штатной" ситуации - нет связи с оборудованием. однако я немогу остановить профайлер! при попытке остановить его он зависает! в мониторе вижу что пакеты прекратили отсылаться, буфер TX был очищен и все незавершенные операции заверешны, но проект висит. думал - может дело в мониторе. без монитора - та же ситуация. что бы это могло быть?
Сообщения / Posts 84 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Гусев Александр Петрович
Active Forum Member / Активный участник форума
Участник № / Member № 2148
отправлено / posted
Проект получил. Данная ситуация с большим временем завершения работы монитора связана с ожиданием МРВ остановки данного потока (в данном случае по RS), завершение которого выполняет ОС.
Сообщения / Posts 17345 | Из / From: Россия
| IP / IP: IP адрес / IP address |