Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 16

Тема: Modbus Master (By command) - требуется пояснение

  1. #1

    По умолчанию Modbus Master (By command) - требуется пояснение

    Если в проекте организовывать Modbus Master в дереве конфигурации ПЛК, то в каждом Universal Modbus device (далее UMD) в дереве присутствует переменная "Command (0xff - Start)", которая, согласно документу https://owen.ru/uploads/467/rp_plk1h...75044-1.34.pdf отвечает за включение/исключение из опроса соответствующего UMD. Выглядит так, что это не работает как описано.

    По факту манипуляция этой переменной для подмодулей Register input module не оказывает влияния как в режиме Work mode = "By poll time", так и в режиме "By command". В режиме "By poll time" команды чтения посылаются всегда, не зависимо от состояния переменной Command, а в режиме "By command" не отправляются никогда.

    Также существует подмодуль типа Register input module State в котором присутствует своя собственная переменная Command, так вот она работает так, как как описано в документации. В таком случае встает вопрос: какой смысл в переменной Command в UMD?

    Прикладываю два тестовых проекта. В обоих заведено по два UMD, в первом добавлен канал Register input module State, во втором Register input module. В проекте MBMTest_poll опрос ведется в режиме "By poll time", в проекте MBMTest_command - в режиме "By command". Управление UMD пытаюсь осуществлять переменными программы PLC_PRG: mbm01_Start, mbm01_Stop, mbm02_Start и mbm02_Stop.

    Тестовые проекты написаны для ПЛК160[М2], потому что он у меня есть под рукой. А вообще стоит задача, изменить проект для ПЛК150, чтобы отключать опрос некоторых UMD при некотором событии. Там заведено 18 UMD c подмодулями Register input module с количеством каналов от 1 до 16 в каждом. Правильно ли рассуждать, что на ПЛК150 это работает (не работает?) также как и на ПЛК160[М2]?
    Вложения Вложения
    Последний раз редактировалось Ovtia; 10.03.2025 в 09:17. Причина: опечатки

  2. #2

    По умолчанию

    Там в переменную Command пишутся значения 255, 254 и 0. Это пояснение для тех кто будет смотреть/запускать приложенный код. В обоих проектах UMD с Register input module State работают как ожидалось, а с Register input module не работают.

  3. #3

    По умолчанию

    Cмысл в переменной Command в UMD в том, что если эту переменную не трогать по умолчанию (значение 0), то блок в работе и мастер его опрашивается. Если 0 изменить на 254, то блок не опрашивается мастером,
    а чтобы его опять ввести в работу записываем в переменную 255.

  4. #4

    По умолчанию

    Цитата Сообщение от Nikoly@ Посмотреть сообщение
    Cмысл в переменной Command в UMD в том, что если эту переменную не трогать по умолчанию (значение 0), то блок в работе и мастер его опрашивается. Если 0 изменить на 254, то блок не опрашивается мастером,
    а чтобы его опять ввести в работу записываем в переменную 255.
    Так и написано в документации. В том то и дело что на моем ПЛК160[М2] это так не работает.

  5. #5

    По умолчанию

    Печально, что молчат сотрудники Овена, ведь на форуме они часто бывают. Хоть бы ответили: правильно ли я рассуждаю насчет логики работы мастера и командной переменной. А уж разок запустить приложенный код и отписаться работает у них или нет было бы пределом мечтаний. Если не работает, то ошибка в рассуждениях/программе, а если работает, то что-то с ПЛК.

  6. #6

    По умолчанию

    Цитата Сообщение от Ovtia Посмотреть сообщение
    Печально, что молчат сотрудники Овена, ведь на форуме они часто бывают. Хоть бы ответили: правильно ли я рассуждаю насчет логики работы мастера и командной переменной. А уж разок запустить приложенный код и отписаться работает у них или нет было бы пределом мечтаний. Если не работает, то ошибка в рассуждениях/программе, а если работает, то что-то с ПЛК.
    А зачем вы КАЖДЫЙ цикл меняете значение команды с 00 на FF?

  7. #7

    По умолчанию

    Цитата Сообщение от 1exan Посмотреть сообщение
    А зачем вы КАЖДЫЙ цикл меняете значение команды с 00 на FF?
    Это в примере MBMTest_command? Потому, что это работает в случае с Register input module State, да и в этом посте у человека так работает.

  8. #8

    По умолчанию

    Под рукой есть только ПЛК110[M02]. Переменной reg15.0 вкл/выкл опрос датчика. Если reg15.0 = true, то через триггер R_opros_DU в командный канал записываю 255, чтобы мастер опрашивал данный адрес.
    Если reg15.0 = false, то в командный канал записываю однократно 254 по последнему опросу этого адреса (16).
    adr_modbus2 - переменная показывающая, какой адрес мастер сейчас опрашивает. Opros.pngКонфиг.png

  9. #9

    По умолчанию

    Nikoly@, спасибо, что поделились решением! К сожалению Ваш код также как и мой не влияет на опрос на моем ПЛК160[М02]. По всей видимости это ошибка именно в ПЛК160!

    test.png

  10. #10

    По умолчанию

    А покажите PLCInfo PLCInfo_1.2.42.jpg

Страница 1 из 2 12 ПоследняяПоследняя

Похожие темы

  1. Управление ModBus By command
    от Shurick в разделе ПЛК1хх
    Ответов: 0
    Последнее сообщение: 26.10.2021, 19:24
  2. Требуется MODBUS-RTU
    от GazovikYa в разделе ПЛК1хх
    Ответов: 10
    Последнее сообщение: 25.04.2013, 17:33
  3. МПР51 - требуется пояснение...
    от Апрель в разделе Эксплуатация
    Ответов: 1
    Последнее сообщение: 10.01.2012, 07:42
  4. мпр51 - требуется пояснение...
    от Апрель в разделе Сервисное ПО
    Ответов: 2
    Последнее сообщение: 18.11.2009, 21:56
  5. ошибка в DCON (Master) при Work Mode = By Command
    от Generator в разделе ПЛК1хх
    Ответов: 12
    Последнее сообщение: 28.03.2007, 14:06

Ваши права

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