Прошу Вашей помощи и совета. Сразу оговорюсь, что опыта работы с 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" в свой порт.
Ну и вопрос номер четыре - приму любой совет и буду благодарен за него!
Спасибо за внимание!
Вложения:
Комментарий к файлу: Пример успешного ответа в COM Port Toolkit ОК.PNG [11.36 KiB]
Скачиваний: 15
iikiikiik А какой контроллер? Вообще то довольно странно. В протоколе связи по RS232 есть сигналы квитирования (RTS-CTS, DTR-DSR). Протокол XON/XOFF был введен для простейшей трехпроводной линии связи, и если приемник не успевал обработать буфер, то для предотвращения потерь данных он посылал передатчику XOFF, в ответ на что передатчик должен прекратить передачу до получения XON. Но в мануале на мегаомметр на стр. 33 приведены распиновки кабелей для связи, и в обоих задействованы DSR-DTR и CTS, что предполагает "железячное" квитирование. Ваш USB-RS232 преобразователь (FTDI) поддерживает такое квитирование? Минимальный нуль-модем кабель это GND, RX и TX (перекрестно) и на обоих сторонах DSR соединен с DTR, а RTS с CTS. В вашем случае:
Контроллер 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, и всё прекрасно работает.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 13
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения