Подключаем наши девайсы к компьютеру. Обсуждаются: порты, протоколы, драйвера, языки программирования и т.д.
Ответить

Мегаометр + RS232

Вт апр 09, 2024 13:00:35

Доброго дня!

Прошу Вашей помощи и совета.
Сразу оговорюсь, что опыта работы с 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) Скачиваний: 15
11_13.PNG
(5.32 KiB) Скачиваний: 13

Re: Мегаометр + RS232

Ср апр 10, 2024 14:24:41

iikiikiik
А какой контроллер?
Вообще то довольно странно. В протоколе связи по RS232 есть сигналы квитирования (RTS-CTS, DTR-DSR). Протокол XON/XOFF был введен для простейшей трехпроводной линии связи, и если приемник не успевал обработать буфер, то для предотвращения потерь данных он посылал передатчику XOFF, в ответ на что передатчик должен прекратить передачу до получения XON.
Но в мануале на мегаомметр на стр. 33 приведены распиновки кабелей для связи, и в обоих задействованы DSR-DTR и CTS, что предполагает "железячное" квитирование.
Ваш USB-RS232 преобразователь (FTDI) поддерживает такое квитирование?
Минимальный нуль-модем кабель это GND, RX и TX (перекрестно) и на обоих сторонах DSR соединен с DTR, а RTS с CTS. В вашем случае:
Код:
Мегаомметр             Контроллер
Сигнал вывод          вывод сигнал
GND      5      ------   5        GND
RXD      2      ------   3        TXD
TXD      3      ------   2        RXD
DSR      6 -+         +-4        DTR
            |         |
DTR      4 -+         +-6        DSR
RTS      7 -+         +-8        CTS
            |         |
CTS      8 -+         +-7        RTS

То есть приемник всегда готов.
В контроллере должен быть включен XON/XOFF, если это предусмотрено.

Re: Мегаометр + RS232

Пт апр 12, 2024 08:21:02

Спасибо, что отозвались!

Контроллер Delta AS320P c функциональной платой AS-F232. У самой платы, если посмотреть его даташит, написано, что у него только 2,3 и 5 пин. Ну и я,прозвонив его пины, убедился, что там только эти три пина.

У переходника FTDI полноценный COM порт, и задействованы все пины.

Минимальный кабель, который оказался необходим, как я писал ранее:
2-2
3-3
4-6
5-5

Я пробовал брать на 6 пин питание с переходника FTDI (с его 4 пина подавал питание на 6ой пин мегаометра и объединял GND (5 пин)) и, подключаясь указанным выше кабелем, пытался связаться с помощью ПЛК. Успехом не увенчалось. Проблемы те же. Подозреваю из-за отсутствия программного контроля xon/xoff.


Вообщем, работу с мегаометром пишу на C# используя переходник FTDI. Включил там DTR и XON/XOFF, и всё прекрасно работает.
Ответить