Страница 110 из 149 ПерваяПервая ... 1060100108109110111112120 ... ПоследняяПоследняя
Показано с 1,091 по 1,100 из 1642

Тема: CODESYS V3.5. Настройка обмена с другими устройствами (Modbus, ОВЕН, OPC и др.)

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию

    Цитата Сообщение от Юрий_66 Посмотреть сообщение
    Я правильно понял, что OPC Server работает не по протоколу?

    Можно ли в таком случае заставить его передавать запрос с CRC младшим байтом вперёд?
    ОРС сервер работает по протоколу, но при передаче по Модбас, не важно куда, байты и регистры могут поменяться местами, для этого и существует перестановка регистров и байт
    ( как правило этим занимается Мастер сети), а программист настраивает ( программирует) как ему надо.
    Последний раз редактировалось kondor3000; 08.01.2024 в 14:02.

  2. #2

    По умолчанию

    Вот скрин "OPC Server". изображение_2024-01-08_113344340.png На нём видно что CRC передаётся старшим байтом вперёд =24А0=, а нужно =А024=.

    Вот скрин прослушивания линии "Terminal V1.9", изображение_2024-01-08_114011482.png Здесь видим тоже самое.

  3. #3
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    12,986

    По умолчанию

    еще раз, в калькулятор и запрос и ответ и вы поймете, что в документации ошибка. ошибка в данных CRC
    а потом правильные посылки в парсер Modbus и увидите, что запрос вполне адекватный протоколу.

  4. #4

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение
    еще раз, в калькулятор и запрос и ответ и вы поймете, что в документации ошибка. ошибка в данных CRC
    а потом правильные посылки в парсер Modbus и увидите, что запрос вполне адекватный протоколу.
    В ответе так же CRC идёт младшим байтом вперёд. изображение_2024-01-08_134413328.png

    Предполагаю что это не ошибка, а протокол от "SIEMENS". И для работы с LMV+AZL его надо выполнять.
    Изображения Изображения
    Последний раз редактировалось Юрий_66; 08.01.2024 в 13:43.

  5. #5

    По умолчанию

    Цитата Сообщение от Юрий_66 Посмотреть сообщение
    В ответе так же CRC идёт младшим байтом вперёд. изображение_2024-01-08_134413328.png

    Предполагаю что это не ошибка, а протокол от "SIEMENS". И для работы с LMV+AZL его надо выполнять.
    Если не получается как с модбас работать, то придётся писать общение самостоятельно как работу через сокет и прочее. Если просто считывать данные, то там проблем нет, а хотите полноценное общение со всеми плюсами... То придётся руками всё описывать в программе.

    Я при общении с нестандартными протоколами жёстко прописываю посылку с требуемой CRC, а при получении ответа не проверяю на правильность. Иначе это затянется на............

  6. #6

    По умолчанию

    Цитата Сообщение от МихаилГл Посмотреть сообщение
    Если не получается как с модбас работать, то придётся писать общение самостоятельно как работу через сокет и прочее. Если просто считывать данные, то там проблем нет, а хотите полноценное общение со всеми плюсами... То придётся руками всё описывать в программе.

    Я при общении с нестандартными протоколами жёстко прописываю посылку с требуемой CRC, а при получении ответа не проверяю на правильность. Иначе это затянется на............
    Добрый день.
    По вашему совету, жёстко прописал посылку и ...
    Не могу добиться ответа от LMV5.. (Причём с другими устройствами, ОВЕН КТР-121. Частотники AD800 и VM1000, всё работает. )

    Отправляю запрос точно по инструкции:
    CRC младшим байтом вперёд - нет ответа,
    CRC старшим байтом вперёд - нет ответа,
    все байты младшим битом вперёд - нет ответа,
    все байты старшим битом вперёд - нет ответа.

    Вопрос - что я делаю не так?

  7. #7

    По умолчанию

    Цитата Сообщение от Юрий_66 Посмотреть сообщение
    Добрый день.
    По вашему совету, жёстко прописал посылку и ...
    Не могу добиться ответа от LMV5.. (Причём с другими устройствами, ОВЕН КТР-121. Частотники AD800 и VM1000, всё работает. )

    Отправляю запрос точно по инструкции:
    CRC младшим байтом вперёд - нет ответа,
    CRC старшим байтом вперёд - нет ответа,
    все байты младшим битом вперёд - нет ответа,
    все байты старшим битом вперёд - нет ответа.

    Вопрос - что я делаю не так?
    Попробуйте ваш запрос послать сторонней утилитой, Геркулесом, например. Там и увидите, посылает ли устройство ответ, или вы ошиблись в подсчёте контрольной суммы.

  8. #8
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    12,986

    По умолчанию

    Юрий_66 вас не удивляет, что в ответе CRC в правильной последовательности, а в запросе в неправильной ПРИ ОДИНАКОВОМ КОДЕ РАСЧЕТА?

    я про документацию, которую составляли люди... Адрес устройства у вас 11, что вы мучаете OPC сервер и все остальное?
    Последний раз редактировалось melky; 08.01.2024 в 14:14.

  9. #9

    По умолчанию

    Теоретически - понятно. А практически пока не получается реализовать.
    С КТР-121 всё получилось нормально стандартными средствами. КТР опрашивается и на СПК выводятся данные.
    Всем спасибо за ответы. Буду разбираться.

  10. #10

    По умолчанию

    Цитата Сообщение от Юрий_66 Посмотреть сообщение
    Теоретически - понятно. А практически пока не получается реализовать.
    С КТР-121 всё получилось нормально стандартными средствами. КТР опрашивается и на СПК выводятся данные.
    Всем спасибо за ответы. Буду разбираться.
    Пример функции перестановки байт в регистре, точно так же можно например, переставить регистры (байты) в переменной FLOAT (только тип переменных поменять)
    Код:
    FUNCTION Sw_Byte : WORD   //выход функции с переставленными Byte 
    VAR_INPUT
    	wIn : WORD ;       //входная переменная типа Word
    END_VAR
    VAR
            pInput   : POINTER TO ARRAY[0..1] OF BYTE;     // вспомогательные переменные
    	pOutput  : POINTER TO ARRAY[0..1] OF BYTE;
    END_VAR
    ____________________________________________________________________________
    
    pInput :=ADR(wIn);
    pOutput := ADR( Sw_Byte);                      
    
    pOutput^[ 0 ] := pInput^[ 1 ];       // Перестановка  BYTE местами
    pOutput^[ 1 ] := pInput^[ 0 ];
    Последний раз редактировалось kondor3000; 08.01.2024 в 16:49.

Страница 110 из 149 ПерваяПервая ... 1060100108109110111112120 ... ПоследняяПоследняя

Похожие темы

  1. Настройка ПР200, управление 3-мя устройствами через RS-485
    от Orbes в разделе Среда программирования OWEN Logic
    Ответов: 20
    Последнее сообщение: 15.05.2017, 16:45
  2. СП3ХХ Пример настройка обмена с ПЛК на CODESYS 2.3
    от Denis_Kay в разделе Панели оператора (HMI)
    Ответов: 6
    Последнее сообщение: 02.03.2017, 15:12
  3. Ответов: 43
    Последнее сообщение: 13.04.2015, 14:05
  4. Универсальная функция для обмена с устройствами OwenIO и всеми любимый LabView.
    от Алексей Крагель в разделе Помощь Разработчикам
    Ответов: 0
    Последнее сообщение: 30.05.2014, 13:38

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •