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

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

  1. #1091

  2. #1092

    По умолчанию

    Спасибо Евгений, ОГРОМНОЕ!

  3. #1093

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    Попробуйте ее снять - я думаю, в этом случае регистры будут обнуляться спустя заданное время отсутствия запросов от мастера.
    Регистры не обнуляются. Галочка влияет только на возможность сброса регистров через Alt+F7 (если её не ставить, то изменять значения регистров можно только "снаружи" по модбасу). В самой программе у меня никакие переменные не изменяются - пока только изучаю связь.
    Получается, у вас штатная диагностика соединения по Ehternet интерфейсу вообще никак не проработана? Планируете ли это исправлять?

    И ещё подскажите, пожалуйста, по Modbus RTU.
    Я, например, записываю функцией "0F" значения TRUE в 5 и 6 битовые регисты ПЛК.
    Отсылаю команду: 01 0F 00 00 00 08 01 60 FE BD​
    Получаю ответ: 01 10 00 02 00 02 E0 08
    Биты при этом записываются, всё ок. Но почему функциональный код в ответе не "0F", а "10"? И что означают "00 02 00 02" ?

  4. #1094
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    12,171

    По умолчанию

    Цитата Сообщение от jtx Посмотреть сообщение
    Регистры не обнуляются. Галочка влияет только на возможность сброса регистров через Alt+F7 (если её не ставить, то изменять значения регистров можно только "снаружи" по модбасу). В самой программе у меня никакие переменные не изменяются - пока только изучаю связь.
    Получается, у вас штатная диагностика соединения по Ehternet интерфейсу вообще никак не проработана? Планируете ли это исправлять?

    И ещё подскажите, пожалуйста, по Modbus RTU.
    Я, например, записываю функцией "0F" значения TRUE в 5 и 6 битовые регисты ПЛК.
    Отсылаю команду: 01 0F 00 00 00 08 01 60 FE BD​
    Получаю ответ: 01 10 00 02 00 02 E0 08
    Биты при этом записываются, всё ок. Но почему функциональный код в ответе не "0F", а "10"? И что означают "00 02 00 02" ?
    Я подтверждаю, что в определенных версиях CODESYS есть проблемы с этим функционалом.
    В понедельник отпишусь подробнее, как заставить его работать.
    Тогда же отвечу на второй вопрос.

  5. #1095

    По умолчанию

    А вот что обнаружил, начав тестировать Modbus TCP с ПК.
    1. Форсированные (установленные в TRUE) биты не считываются, если им не присвоены переменные.
    2. См. картинку:

    Modbus TCP - 01.jpg

  6. #1096

    По умолчанию

    Цитата Сообщение от jtx Посмотреть сообщение
    А вот что обнаружил, начав тестировать Modbus TCP с ПК.
    1. Форсированные (установленные в TRUE) биты не считываются, если им не присвоены переменные.
    2. См. картинку:
    Это ещё не всё, при передаче бит, ещё и байты меняются местами в целочисленной переменной. То есть 0 бит попадает в 8, а 7 в 15 бит и наоборот.
    По крайней мере, подобное наблюдал в некоторых версиях Codesys 3.5.
    Последний раз редактировалось kondor3000; 23.07.2023 в 21:40.

  7. #1097
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    12,171

    По умолчанию

    Цитата Сообщение от jtx Посмотреть сообщение
    Регистры не обнуляются. Галочка влияет только на возможность сброса регистров через Alt+F7 (если её не ставить, то изменять значения регистров можно только "снаружи" по модбасу). В самой программе у меня никакие переменные не изменяются - пока только изучаю связь.
    Получается, у вас штатная диагностика соединения по Ehternet интерфейсу вообще никак не проработана? Планируете ли это исправлять?

    И ещё подскажите, пожалуйста, по Modbus RTU.
    Я, например, записываю функцией "0F" значения TRUE в 5 и 6 битовые регисты ПЛК.
    Отсылаю команду: 01 0F 00 00 00 08 01 60 FE BD​
    Получаю ответ: 01 10 00 02 00 02 E0 08
    Биты при этом записываются, всё ок. Но почему функциональный код в ответе не "0F", а "10"? И что означают "00 02 00 02" ?
    Проверил с Modbus Serial Device версии 3.5.17.0.
    Обе проблемы не воспроизводятся. См. видео:
    https://ftp.owen.ru/CoDeSys3/99_Foru...e_Watchdog.mp4
    https://ftp.owen.ru/CoDeSys3/99_Foru...WriteCoils.mp4

    Если у вас получается их повторять в этой версии слэйва - напишите, пожалуйста, мне на почту или в телеграм (в подписи) и организуйте доступ по AeroAdmin - посмотрим, что у вас происходит.

    А вот что обнаружил, начав тестировать Modbus TCP с ПК.
    Эту проблему подтверждаю. Используйте галочку Дискретные битовые области, как на втором видео - тогда она не проявится.

  8. #1098

  9. #1099

    По умолчанию

    Здравствуйте. Помогите разобраться с реализацией обмена по Modbus через OCL.UNM_TcpRequest. Нигде не могу найти информацию о том, как формировать запрос.
    Например, хочу считать из 1-го слейва 4-й командой два регистра, начиная с 8-го.
    OCL.MB_TcpRequest работает. Через Modbus Poll тоже получаю нужный ответ, при этом посылаются запросы вида "00 05 00 00 00 06 01 04 00 08 00 02" (где первые 00 05 - номер пакета).
    Из примеров реализации нашёл только работу со строковыми данными (

  10. #1100
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    12,171

    По умолчанию

    Цитата Сообщение от jtx Посмотреть сообщение
    Здравствуйте. Помогите разобраться с реализацией обмена по Modbus через OCL.UNM_TcpRequest. Нигде не могу найти информацию о том, как формировать запрос.
    Например, хочу считать из 1-го слейва 4-й командой два регистра, начиная с 8-го.
    OCL.MB_TcpRequest работает. Через Modbus Poll тоже получаю нужный ответ, при этом посылаются запросы вида "00 05 00 00 00 06 01 04 00 08 00 02" (где первые 00 05 - номер пакета).
    Из примеров реализации нашёл только работу со строковыми данными (
    Добрый день.
    Вас интересует принцип формирования запросов и разбора ответов?
    Он приведен в спецификации Modbus:
    https://www.modbus.org/docs/Modbus_A...col_V1_1b3.pdf
    https://www.modbus.org/docs/Modbus_M...uide_V1_0b.pdf

Страница 110 из 131 ПерваяПервая ... 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, 14:38

Ваши права

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