Показано с 1 по 7 из 7

Тема: СПК1хх ModBus RTU slave не работает часть регистров.

  1. #1

    Question СПК1хх ModBus RTU slave не работает часть регистров.

    Добрый день.
    Проблема есть при работе СПК1хх М01 с ModBus RTU (slave).
    Панели подключаем к нашим контролерам по в ModBus режиме slave.
    Пишем и читаем с СПК функции 0х06 и 0х03. От 30 до 80 регистров.
    Из 30 регистров обычно один совсем не записывается не читается.

    Пара регистров периобически сбоят. То ли пакеты ломаные то ли

    нет ответа (сказать не могу). После перепрошивки неисправность

    переходит на другой регистр. Неисправный регистр просто не

    использовал. Но на последнем объекте неответы стали перемещатся

    с одного регистра на другой. Изменение таймаута в обмене ничего

    не меняет.
    Как с этим боротся?
    Какой TASK отвечает за работу ModBus?
    Стоит библиотека ModBus-slave 3.5.4.2.

    Вот код программы из примера.


    stComSettings.sPort := 1;
    stComSettings.byStopBits := 1;
    stComSettings.byParity := 0;
    stComSettings.ulBaudrate := 38400;

    stComSettingsEx.byByteSize := 8;

    bySlaveID:= 80;
    bSlaveEnable:= TRUE;

    fbComService
    (
    Enable:= TRUE ,
    Settings:= stComSettings,
    sets_ex:= stComSetting****
    Task:= ComSerice.COM_TSK.OPEN_TSK,
    Ready=> ,
    handle=>
    );

    IF bSlaveEnable AND fbComService.Ready THEN

    fbModbus_Slave
    (
    ComHandle:= fbComService.handle,
    DevAddr:= bySlaveID,
    pBuffer:= ADR(awSlaveBuffer),
    BufSize:= SIZEOF(awSlaveBuffer),
    NewData=> ,
    Error=>
    );

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

    По умолчанию

    Добрый день.

    Какой TASK отвечает за работу ModBus?
    Тот, в котором вызывается приведенный вами код.

    Чтобы разобраться с проблемой - подключите контроллер к ПК, опросите его с OPC и посмотрите логи обмена - в них будет информация о возникших ошибках (если они действительно возникнут).

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

    По умолчанию

    приведенный код отличается от того что описано в документации в разделе 5.9.2, может поробовать начать с него, там даже на 149 странице пример доступен для скачивания, чтоб было что за основу взять

    80 слов за раз скачивать это достаточно много, может период опроса увеличить стоит
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  4. #4

    По умолчанию

    У меня было нечто похожее в связке СПК107 и ОВЕН OPC-сервер: по логам чтение/запись происходили успешно, а по факту все регистры с номерами выше 40-го читались нулями. С тех пор для надёжности не считываю больше 30 регистров в одном запросе и всё ОК.

  5. #5

    По умолчанию

    Спасибо. Попробую.

  6. #6
    Пользователь
    Регистрация
    09.09.2011
    Адрес
    Ростовская обл.
    Сообщений
    138

    По умолчанию

    Чтоб не плодить темы попробую тут пожаловаться на не работу СПК107 М01 ModBus Master с конфигуратором.
    Не считывает значения регистров из ТРМ201 (2 прибора попробывал одинаково), но показывает в конфигураторе что связь с ТРМом есть, т.е у Slave зелёный кружок. Всё перепробывал, перепрошил и т.д. ничего не помогает... а раньше в Кодесис 3.5.5 всё это же получалось. Пробовал и с Rs485-1 и RS485-2 ... подскажите что не так- перепробывал всё.
    Итак CS v3.5.sp11.p5.hf4 установил target 3.5.11.5014 (а показывает в кодесис 3.5.11.57) прошивка 1.1.0611.1056 ну вроде всё по рекомендациям
    ModBus_COM 3.5.11.20 ModBus_Master 3.5.11.20 ModBus_Slave 3.5.10,30 (пробовал и на старые переходить- не помогает)

    Сам нашёл причину: В "Установки ПЛК" включил "Всегда обновлять переменные", почему это пришлось мне делать руками, а не было включено по-умолчанию?
    Вложения Вложения
    Последний раз редактировалось RomAl; 13.03.2020 в 16:00.

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

    По умолчанию

    почему это пришлось мне делать руками, а не было включено по-умолчанию?
    Это вопрос к разработчикам к CODESYS.
    В каждом нашем примере упоминается необходимость изменения этой настройки.

Похожие темы

  1. Адресация регистров Modbus-RTU, ПЛК(Slave)
    от Лёша в разделе ПЛК1хх
    Ответов: 15
    Последнее сообщение: 03.07.2019, 08:02
  2. ПЛК63, modbus slave, адреса регистров
    от monteg в разделе ПЛК63/73
    Ответов: 43
    Последнее сообщение: 19.06.2017, 08:46
  3. Ответов: 69
    Последнее сообщение: 16.06.2017, 16:36
  4. Проблема с созданием регистров ModBus(Slave) ПЛК 150
    от SDSE92 в разделе Помощь Разработчикам
    Ответов: 4
    Последнее сообщение: 08.06.2016, 13:37
  5. ПЛК323 - не работает групповое чтение регистров modbus
    от Артур Юрьевич в разделе ПЛК3хх
    Ответов: 0
    Последнее сообщение: 12.04.2015, 15:53

Ваши права

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