Ответы в темах
-
АвторЗаписи
-
qweqweqwe
Участниквыключили console или выключили и в том числе работу портов ?
Выключил консоль, включил поддержку UART, в config.txt, cmdline.txt
enable_uart=1 dtoverlay=uart5console=tty1 root=PARTUUID=14a49b91-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwaitqweqweqwe
Участниквыключите поддержку порта как описано выше
Выключил при первоначальной настройке.
qweqweqwe
УчастникКогда вы даете команду cat и получаете чистый ответ из порта говорит о том, что какие-то механизмы в Linux для чтения порта запущены. Весь вопрос в том, какие ?
С портом всё в порядке, это точно. Без вариантов. Обмен с датчиками по протоколу Modbus работает без нареканий. Проблема при обмене через текстовый протокол именно через RapidScada. При отправке команд и получении ответа через терминал ошибок нет.
qweqweqwe
УчастникПопробовали поставить костыль в SerialConnection.cs :
string line; /*try { line = SerialPort.ReadLine().Trim(); } catch (TimeoutException) { line = ""; }*/ char[] char_line = new char[1024]; SerialPort.Read(char_line, 0, 1024); line = char_line.ToString().Trim();Не помогло, в логах Timeout.
qweqweqwe
УчастникНа Raspberry
-------------------------------------------------------------------------------- 2020-06-15 08:09:04 Initialize communication line 3 "USB>RS485" 2020-06-15 08:09:04 Start communication line 3 "USB>RS485" 2020-06-15 08:09:04 Open serial port /dev/ttyUSB0 2020-06-15 08:09:04 Communication session with the Device 6 "TestKP", type: KpTest Send: test 0 Write duration: 0.004 Receive: no data Read duration: 1.003 2020-06-15 08:09:11 Communication session with the Device 6 "TestKP", type: KpTest Send: test 0 Write duration: 0.000 Receive: no data Read duration: 1.009 2020-06-15 08:09:17 Communication session with the Device 6 "TestKP", type: KpTest Send: test 0 Write duration: 0.000 Receive: no data Read duration: 1.001На Windows
2020-06-15 10:10:07 Сеанс связи с КП 2 "TEST", тип: KpTest Отправка (7): test 0<0D> Write duration: 0.000 Приём: test 0 Read duration: 1.020 2020-06-15 10:10:14 Сеанс связи с КП 2 "TEST", тип: KpTest Отправка (7): test 0<0D> Write duration: 0.000 Приём: test 0 Read duration: 1.017 2020-06-15 10:10:20 Сеанс связи с КП 2 "TEST", тип: KpTest Отправка (7): test 0<0D> Write duration: 0.000 Приём: test 0 Read duration: 1.011 2020-06-15 10:10:26 Сеанс связи с КП 2 "TEST", тип: KpTest Отправка (7): test 0<0D> Write duration: 0.000 Приём: test 0 Read duration: 1.025 2020-06-15 10:10:33 Завершение работы линии связи 2 "MOXA>RS485" --------------------------------------------------------------------------------qweqweqwe
УчастникСобрал драйвер, загрузил, работает. Какие дальнейшие действия?
qweqweqwe
УчастникВы можете вместо ИВТМ подключить Moxa и с компьютера отправлять строки на Raspberry, чтобы более точно определить, что и как обрезается?
Да, конечно могу. В понедельник продолжу.
qweqweqwe
УчастникВ настройках самого датчика есть возможность что либо корректировать ? пауза перед ответом например ?
В настройках прибора можно изменить только адрес и скорость обмена. в описании протокола:
Время ожидания ответа не более 300 мсУвеличьте период опроса с 5 сек до 20 сек или больше.
уменьшите timeout до разумных пределов, чтобы весь ответ мог поместиться. delay уменьшите до минимума насколько возможно.2020-06-11 08:50:07 Stop communication line 3 "USB>RS485" -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- 2020-06-11 08:50:23 Initialize communication line 3 "USB>RS485" 2020-06-11 08:50:24 Start communication line 3 "USB>RS485" 2020-06-11 08:50:24 Open serial port /dev/ttyUSB0 2020-06-11 08:50:24 Communication session with the Device 4 "IVTM-3", type: KpIvtm7M, address: 4 Запрос текущих данных Send: $0004RR000008B4 Receive: 1A2EC1C4225 Error: invalid checksum! 2020-06-11 08:50:30 Communication session with the Device 4 "IVTM-3", type: KpIvtm7M, address: 4 Запрос текущих данных Send: $0004RR000008B4 Receive: 15DCD1C4209 Error: invalid checksum! 2020-06-11 08:50:40 Communication session with the Device 4 "IVTM-3", type: KpIvtm7M, address: 4 Запрос текущих данных Send: $0004RR000008B4 Receive: 19AA61C420C Error: invalid checksum! 2020-06-11 08:50:50 Communication session with the Device 4 "IVTM-3", type: KpIvtm7M, address: 4 Запрос текущих данных Send: $0004RR000008B4 Receive: 41A2631C42FC Error: invalid checksum! 2020-06-11 08:51:00 Communication session with the Device 4 "IVTM-3", type: KpIvtm7M, address: 4 Запрос текущих данных Send: $0004RR000008B4 Receive: 4104581C42EF Error: invalid checksum! 2020-06-11 08:51:10 Communication session with the Device 4 "IVTM-3", type: KpIvtm7M, address: 4 Запрос текущих данных Send: $0004RR000008B4 Receive: FC Error: incorrect response length! 2020-06-11 08:51:20 Communication session with the Device 4 "IVTM-3", type: KpIvtm7M, address: 4 Запрос текущих данных Send: $0004RR000008B4 Receive: FA Error: incorrect response length! 2020-06-11 08:51:30 Communication session with the Device 4 "IVTM-3", type: KpIvtm7M, address: 4 Запрос текущих данных Send: $0004RR000008B4 Receive: 34 Error: incorrect response length! 2020-06-11 08:51:40 Communication session with the Device 4 "IVTM-3", type: KpIvtm7M, address: 4 Запрос текущих данных Send: $0004RR000008B4 Receive: 3D Error: incorrect response length! 2020-06-11 08:51:50 Communication session with the Device 4 "IVTM-3", type: KpIvtm7M, address: 4 Запрос текущих данных Send: $0004RR000008B4 Receive: 21B4203 Error: incorrect response length! 2020-06-11 08:52:00 Communication session with the Device 4 "IVTM-3", type: KpIvtm7M, address: 4 Запрос текущих данных Send: $0004RR000008B4 Receive: 51B420E Error: incorrect response length! 2020-06-11 08:52:10 Communication session with the Device 4 "IVTM-3", type: KpIvtm7M, address: 4 Запрос текущих данных Send: $0004RR000008B4 Receive: B1A4245 Error: incorrect response length! 2020-06-11 08:52:20 Communication session with the Device 4 "IVTM-3", type: KpIvtm7M, address: 4 Запрос текущих данных Send: $0004RR000008B4 Receive: E1A4218 Error: incorrect response length! 2020-06-11 08:52:30 Communication session with the Device 4 "IVTM-3", type: KpIvtm7M, address: 4 Запрос текущих данных Send: $0004RR000008B4 Receive: 41364A1B4205 Error: invalid checksum! 2020-06-11 08:52:40 Communication session with the Device 4 "IVTM-3", type: KpIvtm7M, address: 4 Запрос текущих данных Send: $0004RR000008B4 Receive: 4172F81A421B Error: invalid checksum! 2020-06-11 08:52:50 Communication session with the Device 4 "IVTM-3", type: KpIvtm7M, address: 4 Запрос текущих данных Send: $0004RR000008B4 Receive: 141A25E1A4218 Error: invalid checksum! 2020-06-11 08:52:58 Close serial port /dev/ttyUSB0 2020-06-11 08:52:58 Stop communication line 3 "USB>RS485" --------------------------------------------------------------------------------$0004RR000008B4 !0004RRB55BB241A2EC1C4225 $0004RR000008B4 !0004RR0841B2415DCD1C4209 $0004RR000008B4 !0004RR293AB2419AA61C420C $0004RR000008B4 !0004RR962CB241A2631C42FC $0004RR000008B4 !0004RR851DB24104581C42EF $0004RR000008B4 !0004RR8310B2413F5F1C42FC $0004RR000008B4 !0004RR7F07B241044B1C42FA $0004RR000008B4 !0004RRDA03B241AEFE1B4234 $0004RR000008B4 !0004RR5FFBB141D7DA1B423D $0004RR000008B4 !0004RR37F6B141E6621B4203 $0004RR000008B4 !0004RR45F5B141CF251B420E $0004RR000008B4 !0004RRADF2B141CDFB1A4245 $0004RR000008B4 !0004RR19F1B141A2FE1A4218 $0004RR000008B4 !0004RR4CF0B141364A1B4205 $0004RR000008B4 !0004RR97EFB14172F81A421B $0004RR000008B4 !0004RR61EFB141A25E1A4218з.ы. вообще ощущение, что в Linux не успевает порт переключиться на прием как вариант. Что у вас за Raspberrry ? Что на ней крутится вообще ?
Raspberry 4b, чистый образ Raspbian без gui, установлена только Scada.
И такая ситуация проявляется как на аппаратном порту платы через MAX13487E, так и через USB преобразователь.В аппаратном обеспечении проблем не наблюдается, данные приходят:
pi@raspberrypi:~ $ cat /dev/ttyUSB0 !0004RRBEB9AF41F604154223qweqweqwe
УчастникВопрос к разработчикам:
Размер кольцевого буфера принимаемых данных устанавливается файлом драйвера КП или вычисляется динамически?qweqweqwe
Участника логи запрос-ответ ?
Та же ситуация, приходит часть строки.
Запросы-ответы Scada:2020-06-11 06:59:28 Start communication line 3 "USB>RS485" 2020-06-11 06:59:28 Open serial port /dev/ttyUSB0 2020-06-11 06:59:28 Communication session with the Device 4 "IVTM-3", type: KpIvtm7M, address: 4 Запрос текущих данных Send: $0004RR000008B4 Receive: 05 Error: incorrect response length! 2020-06-11 06:59:29 Communication session with the Device 4 "IVTM-3", type: KpIvtm7M, address: 4 Запрос текущих данных Send: $0004RR000008B4 Receive: 4192412B42FB Error: invalid checksum! 2020-06-11 06:59:30 Communication session with the Device 4 "IVTM-3", type: KpIvtm7M, address: 4 Запрос текущих данных Send: $0004RR000008B4 Receive: A2B4223 Error: incorrect response length! 2020-06-11 06:59:31 Communication session with the Device 4 "IVTM-3", type: KpIvtm7M, address: 4 Запрос текущих данных Send: $0004RR000008B4 Receive: 23 Error: incorrect response length! 2020-06-11 06:59:32 Communication session with the Device 4 "IVTM-3", type: KpIvtm7M, address: 4 Запрос текущих данных Send: $0004RR000008B4 Receive: 341D73F2B4240 Error: invalid checksum! 2020-06-11 06:59:33 Communication session with the Device 4 "IVTM-3", type: KpIvtm7M, address: 4 Запрос текущих данных Send: $0004RR000008B4 Receive: 452B4210 Error: incorrect response length! 2020-06-11 06:59:34 Communication session with the Device 4 "IVTM-3", type: KpIvtm7M, address: 4 Запрос текущих данных Send: $0004RR000008B4 Receive: 20D Error: incorrect response length! 2020-06-11 06:59:35 Communication session with the Device 4 "IVTM-3", type: KpIvtm7M, address: 4 Запрос текущих данных Send: $0004RR000008B4 Receive: 3414C432B42FE Error: invalid checksum! 2020-06-11 06:59:36 Communication session with the Device 4 "IVTM-3", type: KpIvtm7M, address: 4 Запрос текущих данных Send: $0004RR000008B4 Receive: 3B2B4225 Error: incorrect response length! 2020-06-11 06:59:36 Communication session with the Device 4 "IVTM-3", type: KpIvtm7M, address: 4 Запрос текущих данных Send: $0004RR000008B4 Receive: 218 Error: incorrect response length! 2020-06-11 06:59:37 Communication session with the Device 4 "IVTM-3", type: KpIvtm7M, address: 4 Запрос текущих данных Send: $0004RR000008B4 Receive: 341632D2B421D Error: invalid checksum! 2020-06-11 06:59:38 Communication session with the Device 4 "IVTM-3", type: KpIvtm7M, address: 4 Запрос текущих данных Send: $0004RR000008B4 Receive: 1C9262B420A Error: invalid checksum! 2020-06-11 06:59:39 Communication session with the Device 4 "IVTM-3", type: KpIvtm7M, address: 4 Запрос текущих данных Send: $0004RR000008B4 Receive: 420A Error: incorrect response length! 2020-06-11 06:59:40 Communication session with the Device 4 "IVTM-3", type: KpIvtm7M, address: 4 2020-06-11 06:59:40 Close serial port /dev/ttyUSB0 2020-06-11 06:59:40 Stop communication line 3 "USB>RS485" --------------------------------------------------------------------------------Запрос-ответ терминал:
$0004RR000008B4 !0004RRE1D8B34190492B4205 $0004RR000008B4 !0004RR4ED1B34192412B42FB $0004RR000008B4 !0004RRCCCFB341033A2B4223 $0004RR000008B4 !0004RRCCCFB341033A2B4223 $0004RR000008B4 !0004RRCCCFB341D73F2B4240 $0004RR000008B4 !0004RR5CCEB34164452B4210 $0004RR000008B4 !0004RR47C7B341A33D2B420D $0004RR000008B4 !0004RR07C9B3414C432B42FE $0004RR000008B4 !0004RRE8C7B3419C3B2B4225 $0004RR000008B4 !0004RRFCC3B3414A342B4218 $0004RR000008B4 !0004RRBFB7B341632D2B421D $0004RR000008B4 !0004RRD2B1B341C9262B420A $0004RR000008B4 !0004RRD2B1B341C9262B420Aqweqweqwe
УчастникУменьшите timeout и delay, сделайте 1500 и 300 например
Уменьшил, но это не помогло.
qweqweqwe
УчастникА что в Timeout и delay в настройках Опрос КП ?
Хотя у вас какая-то странность, прилетает хвост и обрезается начало, а не наоборот…Таймауты огромные:
timeout="5000" delay="5000" time="00:00:00" period="00:00:05"qweqweqwe
УчастникНалицо некорректная работа с последовательным портом при работе с протоколом Эксис, сообщения приходят обрывками. При этом modbus отрабаывает.
В какую сторону искать проблему?
На всякий случай записал Raspbian на другую флешку, установил Scada и создал новый проект. Результата ноль(((qweqweqwe
УчастникДрайвер не реализует соединение. В нём только логика. Коммуникатор использует стандартный класс .NET SerialPort.
Увеличьте таймаут и паузу запросов.
А Вы можете определить, какие именно данные искажаются? То есть какой должен быть корректный ответ прибора?
Подключил к линии USB>Rs485—ИВТМ преобразователь MOXA, открыл окно терминала и наблюдаю следующее:
Запрос-ответ Scada:2020-06-10 14:03:29 Communication session with the Device 4 "IVTM-3", type: KpIvtm7M, address: 4 Запрос текущих данных Send: $0004RR000008B4 Receive: DD1F4230 Error: incorrect response length!Запрос-ответ в терминале:
$0004RR000008B4 !0004RR5426AD41EBDD1F4230Подключил ту же схему к ПК, Win10, Scada:
Запрос-ответ Scada:2020-06-10 16:15:14 Сеанс связи с КП 1 "IVTM-1", тип: KpIvtm7M, адрес: 4 Запрос текущих данных Отправка: $0004RR000008B4 Приём: !0004RR5EF2B34191053842F5 OK!Запрос-ответ в терминале:
$0004RR000008B4 !0004RR5EF2B34191053842F5Настройки линии:
<!--Линия 3--> <CommLine active="true" bind="true" number="3" name="USB>RS485"> <CommChannel type="Serial"> <Param name="BaudRate" value="9600" /> <Param name="Behavior" value="Master" /> <Param name="DataBits" value="8" /> <Param name="DtrEnable" value="False" /> <Param name="Parity" value="None" /> <Param name="PortName" value="/dev/ttyUSB0" /> <Param name="RtsEnable" value="False" /> <Param name="StopBits" value="One" /> </CommChannel> <LineParams> <Param name="ReqTriesCnt" value="1" descr="Количество попыток перезапрос а КП при ошибке" /> <Param name="CycleDelay" value="1000" descr="Задержка после цикла опроса , мс" /> <Param name="CmdEnabled" value="true" descr="Команды ТУ разрешены" /> <Param name="ReqAfterCmd" value="false" descr="Опрос КП после команды ТУ " /> <Param name="DetailedLog" value="true" descr="Записывать в журнал подроб ную информацию" /> </LineParams> <CustomParams /> <ReqSequence> <KP active="true" bind="true" number="4" name="IVTM-3" dll="KpIvtm7M.dll " address="4" callNum="" timeout="5000" delay="5000" time="00:00:00" period="00: 00:05" cmdLine="" /> </ReqSequence> </CommLine> </CommLines>qweqweqwe
УчастникА что за протокол обмена у этого прибора? Что то в описании нет.
https://www.eksis.ru/technical-support/exchange-protocol/
Протокол открытый в плане опроса показаний. Но писали его наркоманы, видимо из за жадности, иначе был бы более привычный Modbus. -
АвторЗаписи