Драйвер ИВТМ на Raspberry

Помечено: 

Просмотр 15 сообщений - с 1 по 15 (из 50 всего)
  • Автор
    Сообщения
  • #16383
    qweqweqwe
    Участник

    Всем добрый день!
    Кто нибудь пробовал опрашивать приборы ИВТМ-7-М3 через Scada на linux?
    Пробовал на преобразователе UART>RS485 и на USB>RS485, результат один и тот же, данные принимаются некорректно.
    В журнале коммуникатора это:

    2020-06-09 13:54:28 Communication session with the Device 53 «ivtm-7-1», type: KpIvtm7M, address: 3
    Запрос текущих данных
    Send: $0003RR000008B3
    Receive: 6E50F4233
    Error: invalid checksum!
    Запрос текущих данных
    Send: $0003RR000008B3
    Receive: 33
    Error: incorrect response length!
    Запрос текущих данных
    Send: $0003RR000008B3
    Receive: 1C0DA0F4225
    Error: invalid checksum!

    Каждый раз от датчика приходят разные ответы. Сам датчик исправен, через родной софт и scada на windows работает через USB>RS485.

    #16385
    Mikhail
    Модератор

    Добрый день!
    Скорее всего проблема в преобразователе USB-RS485. Если у Вас есть сетевая Moxa NPort, попробуйте опросить прибор через неё.

    #16389
    manjey73
    Участник

    Странно, обычно USB-RS485 ведут себя гораздо корректнее чем Ethernet-RS485

    #16391
    Vasily777
    Участник

    А что за протокол обмена у этого прибора? Что то в описании нет.

    #16392
    qweqweqwe
    Участник

    Через Nport настроенный TCP сервером всё работает.
    Тот же USB>RS485 адаптер подключил к компьютеру на Win10 со Scada, всё работает корректно. При этом проблема на Raspberry через последовательный порт только с приборами ИВТМ, с приборами ПВТ-100 обмен проходит нормально.
    Может это быть проблема с драйвером KpIvtm7M.dll? Как отловить причину глюка?

    #16394
    qweqweqwe
    Участник

    А что за протокол обмена у этого прибора? Что то в описании нет.

    https://www.eksis.ru/technical-support/exchange-protocol/
    Протокол открытый в плане опроса показаний. Но писали его наркоманы, видимо из за жадности, иначе был бы более привычный Modbus.

    #16395
    Mikhail
    Модератор

    Драйвер не реализует соединение. В нём только логика. Коммуникатор использует стандартный класс .NET SerialPort.

    Увеличьте таймаут и паузу запросов.

    А Вы можете определить, какие именно данные искажаются? То есть какой должен быть корректный ответ прибора?

    #16396
    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>
    
    #16397
    qweqweqwe
    Участник

    Налицо некорректная работа с последовательным портом при работе с протоколом Эксис, сообщения приходят обрывками. При этом modbus отрабаывает.
    В какую сторону искать проблему?
    На всякий случай записал Raspbian на другую флешку, установил Scada и создал новый проект. Результата ноль(((

    #16398
    manjey73
    Участник

    А что в Timeout и delay в настройках Опрос КП ?
    Хотя у вас какая-то странность, прилетает хвост и обрезается начало, а не наоборот…

    #16399
    qweqweqwe
    Участник

    А что в Timeout и delay в настройках Опрос КП ?
    Хотя у вас какая-то странность, прилетает хвост и обрезается начало, а не наоборот…

    Таймауты огромные:

    
    timeout="5000" delay="5000" time="00:00:00" period="00:00:05"
    
    #16400
    manjey73
    Участник

    У вас получается задержка (delay) стоит 5 секунд и период опроса линии стоит 5 сек.
    Может у вас происходит повторный опрос раньше, чем вам прибор ответит.

    По этому и получается, что вы теряете именно начало ответа, так как прибор вам присылает часть ответа еще на прошлый запрос ?

    Уменьшите timeout и delay, сделайте 1500 и 300 например

    Если я правильно понимаю организацию драйвера, то timeout будет выполняться весь, если в протоколе нельзя узнать длину ответа заранее или нет возможности выполнить остановку по каким-то критериям ответа (байт, массив байт)

    • Этот ответ был изменен 3 года, 10 месяцев назад от manjey73.
    #16402
    qweqweqwe
    Участник

    Уменьшите timeout и delay, сделайте 1500 и 300 например

    Уменьшил, но это не помогло.

    #16403
    manjey73
    Участник

    а логи запрос-ответ ?

    #16406
    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
    !0004RRD2B1B341C9262B420A
    
Просмотр 15 сообщений - с 1 по 15 (из 50 всего)
  • Вы должны авторизироваться для ответа в этой теме.