Доброго дня!
Прошу Вашей помощи и совета.
Сразу оговорюсь, что опыта работы с RS232 у меня нет, так что если буду говорить глупости - исправляйте.
Имеется:
1) Контроллер с портом RS232 на борту. Но задействованы у него только 2(Tx), 3(Rx), 5(GND) пины.
2) Мегаометр Chauvin Arnoux CA6549 с портом RS232 на борту (
далее "прибор").
3) Кабель со следующей схемой -
2-3
3-2
4-6
5-5
6-4
7-8
8-7
4) Преобразователь USB-RS232 (чип FTDI).
Необходимо связать ПЛК и прибор (протокол связи известен).
С связке с кабелем из пункта 3 и преобразователем из пункта 4 ПК успешно связывается с прибором с помощью своего заводского ПО.
Попытки связать контроллер с прибором с помощью кабеля 2-2, 3-3, 5-5 успехом не увенчались.
Кабель 2-3, 3-2, 5-5 в связке с преобразователем USB-RS232 для связи с заводским ПО тоже не работает. И я начал искать необходимые прибору контакты помимо 2,3 и 5.
Оказалось, что кабеля 2-3, 3-2, 5-5 и 4-6 (пин6 со стороны прибор ) + преобразователь USB - RS232 достаточно, чтобы ПК связывался с прибором с помощью заводского ПО.
Начитался в интернетах про кабель-обманку. Перемкнул пины 4 и 6 со стороны прибора - не помогло. Замерил напряжение между пин5 и пин4 - ноль вольт, именно ноль.
Вопрос номер один - это мертвый порт у прибор или необязательно на пине4 (DTR) должно быть всегда напряжение, если прибор включен?
Если кабелем из пункта 3 либо кабелем 2-3, 3-2, 5-5 и 4-6 и преобразователем USB-RS232 подключиться к прибору через COM Port Toolkit, то можно увидеть, как прибор шлет в свой порт сообщения "11 13".
Это, как я выяснил, символы программного управления XON/XOFF.
Вопрос номер два - разве прибор должен их слать постоянно? Это нормальное поведение прибора?
Написана программа на контроллер, которая отправляет прибору команды и принимает ответы. Пример команды "RnCRLF" - это команда перехода прибора в режим REMOTE (удаленного управления). В случае успешного выполнения команды прибор отвечает "ОК".
Когда отправляю команду контроллером с помощью контроллера и кабеля 2-2, 3-3, 4-6, 5-5 наблюдаются следующие проблемы и обстоятельства:
1) Чтобы прибор выполнил команду, необходимо послать несколько команд (до 10 штук, всегда по разному) и отправлять их очень быстро (выставлять таймаут между повторными отправками не более 500 мс).
2) Даже если прибор выполняет команду (это слышно по щёлканью прибора и индикации "REMOTE" на дисплее), в ответ посылки "ОК" нет, то есть прибор просто молчит.
Проблем в программе контроллера не должно быть, потому что этот же код, если ему заменить команду и подключить другой прибор (миллиометр другого производителя), успешно справляется связью.
Вопрос номер три - думаю, что проблемы со связью с контроллером связаны с тем, что пин4 у контроллера просто не задействован в самом порту. Какие есть варианты?
Примечательно, что если отправить команду "RnCRLF" через COM Port Toolkit, то в случае успешного выполнения прибор отвечает "ОК" и перестает слать "11 13" в свой порт.
Ну и
вопрос номер четыре - приму любой совет и буду благодарен за него!
Спасибо за внимание!
- Вложения
-
- ОК.PNG
- Пример успешного ответа в COM Port Toolkit
- (11.36 KiB) Скачиваний: 16
-
- 11_13.PNG
- (5.32 KiB) Скачиваний: 14