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

Тема: Программно считать параметры модуля Modbus (slave)

  1. #1

    По умолчанию Программно считать параметры модуля Modbus (slave)

    Здравствуйте!
    Имеется ПЛК150. Можно ли в Codesys 2 программно считать параметр Address модуля Modbus (slave) из конфигуратора?
    Спасибо.

  2. #2

    По умолчанию

    Можно ли в Codesys 2 программно считать параметр Address модуля Modbus (slave) из конфигуратора?
    ээээээ так Мастер как бы и читает параметр Адрес модуля слейва и если не получает ответ на свой запрос по этому адресу, то выдаёт ошибку. Ну это грубо говоря.
    если же вы хотите "обратным ходом" вычислить адрес слейва, то хотелось бы, чтобы вы поняли - для конфигурации ПЛК нет слейва как "хардварного" компонента, который он конфигурирует. Есть Мастер, который вы настраиваете на опрос определённых регистров по определённым адресам. К конфигурированию слейва как такового - адрес, скорость и прочее - Мастер не имеет никакого отношения
    А для такого считывания как вы хотите, в КДС должен быть встроен механизм "широковещательного" опроса по всему диапазону адресов по всему диапазону скоростей (скорость же тоже важный параметр Модбас, да?)
    Есть в КДС такой механизм опроса? посмотрите документацию

  3. #3

    По умолчанию

    Уточню: Есть программа на Codesys, в ней в "Конфигурации ПЛК" добавлем модуль "Modbus (slave):". У него на вкладке "Параметры" есть параметр "Address", заданый при конфигурировании вручную. Мне из это же программы нужно считать значение параметра "Address". Все внутри одной программы одного ПЛК.

  4. #4
    Пользователь Аватар для A.Simonov
    Регистрация
    11.07.2017
    Адрес
    Москва
    Сообщений
    623

    По умолчанию

    Цитата Сообщение от Ovtia Посмотреть сообщение
    Уточню: Есть программа на Codesys, в ней в "Конфигурации ПЛК" добавлем модуль "Modbus (slave):". У него на вкладке "Параметры" есть параметр "Address", заданый при конфигурировании вручную. Мне из это же программы нужно считать значение параметра "Address". Все внутри одной программы одного ПЛК.
    Добрый день.

    Очень экзотический запрос.
    Можете описать реальный кейс, как вы планируете это использовать?

    По существу вопроса. Считать из программы ПЛК адрес слейв устройства, добавленного в конфигурацию ПЛК - не получится.
    Однако, опрос можно проводить и через библиотеки, напрямую из кода ПЛК, в этом случае адрес можно задавать с помощью переменной.

    Александр Андреевич Симонов
    Инженер по продуктам «ПЛК, модули и OwenCloud»

    Не работаю в ОВЕН с 01.07.22
    По всем вопросам обращайтесь на почту: support@owen.ru

  5. #5

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    есть еще третий вариант и его как раз спрашивают в названии темы
    постою послушаю.
    Третий вариант для чего? когда есть прибор, настройки которого ты не знаешь и не можешь изменить, но тебе надо его опросить? я понял условия задачи так.
    он же, видимо, собирается какую-то логику привязывать к номеру адреса слейва

  6. #6

    По умолчанию

    Для чего мне это нужно: система состоит из нескольких однотипных, но не идентичных объектов, опрашиваемых по шине одним мастером. Мне бы хотелось иметь общую "базу кода" для этих объектов, т.к. различие в их поведении можно определить в паре ключевых мест в программе, остальные 95% кода идентичны для всех слейвов. Сделав предположение, что программно изменять конфигурацию нельзя, т.к. скорее всего конфигурация применяется один раз после старта ПЛК, я скромно надеялся на возможность хотя бы считать значение параметра Address слейвов. Адрес modbus - это то, что точно будет отличать эти объекты друг от друга и по его значению можно было бы определять логику в этих ключевых местах.
    Конечно можно без проблем определить для этого специальную константу, но это уже нужно не забыть изменять и ее тоже.
    Последний раз редактировалось Ovtia; 16.02.2022 в 04:42.

  7. #7

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    можно ведь просто отвести специально регистр, который будет отвечать что же за слейв используется, его можно и в программе использовать
    Не совсем понял. То есть если у меня 4 ПЛК, то мне в конфигураторе объявить 4 Modbus (slave) одинаковых ветки, а потом по этому специальному регистру определять по какому слейву конкретный ПЛК отвечает? Можно поподробнее или пример?

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

    По умолчанию

    Цитата Сообщение от Ovtia Посмотреть сообщение
    определять по какому слейву конкретный ПЛК отвечает
    это Вас уже стало сложно понять, так кому нужна информация о номере слейва мастеру теперь что ли?

    Если для Вас сложно перейти на библиотеки а в конфигураторе нельзя взять заданный адрес, то мастеру остается писать в конкретный слейв, адрес(UnitID) этого слейва в специально созданный регистр, чтобы его можно использовать в подчиненном контроллере
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

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

  9. #9
    Пользователь Аватар для A.Simonov
    Регистрация
    11.07.2017
    Адрес
    Москва
    Сообщений
    623

    По умолчанию

    Цитата Сообщение от Ovtia Посмотреть сообщение
    Для чего мне это нужно: система состоит из нескольких однотипных, но не идентичных объектов, опрашиваемых по шине одним мастером. Мне бы хотелось иметь общую "базу кода" для этих объектов, т.к. различие в их поведении можно определить в паре ключевых мест в программе, остальные 95% кода идентичны для всех слейвов. Сделав предположение, что программно изменять конфигурацию нельзя, т.к. скорее всего конфигурация применяется один раз после старта ПЛК, я скромно надеялся на возможность хотя бы считать значение параметра Address слейвов. Адрес modbus - это то, что точно будет отличать эти объекты друг от друга и по его значению можно было бы определять логику в этих ключевых местах.
    Конечно можно без проблем определить для этого специальную константу, но это уже нужно не забыть изменять и ее тоже.
    Если я правильно понял, то вы хотите сделать универсальную конфигурацию для разных слейвов.
    Так делать однозначно не стоит.
    Так как ПЛК (Мастер) будет пытаться опрашивать все устройства и регистры, не зависимо от того есть ли они в сети.

    Если вам нужно чтобы мастер "прощупал" сеть слейвов, и на этом основании как-то поменял свою логику, то тут только через библиотеки писать сетевой обмен.

    Александр Андреевич Симонов
    Инженер по продуктам «ПЛК, модули и OwenCloud»

    Не работаю в ОВЕН с 01.07.22
    По всем вопросам обращайтесь на почту: support@owen.ru

  10. #10

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    это Вас уже стало сложно понять, так кому нужна информация о номере слейва мастеру теперь что ли?
    Нет нужно мне вот это:

    Уточню: Есть программа на Codesys, в ней в "Конфигурации ПЛК" добавлем модуль "Modbus (slave):". У него на вкладке "Параметры" есть параметр "Address", заданый при конфигурировании вручную. Мне из это же программы нужно считать значение параметра "Address". Все внутри одной программы одного ПЛК.
    Цитата Сообщение от capzap
    Если для Вас сложно перейти на библиотеки а в конфигураторе нельзя взять заданный адрес, то мастеру остается писать в конкретный слейв, адрес(UnitID) этого слейва в специально созданный регистр, чтобы его можно использовать в подчиненном контроллере
    Теперь идею понял, к сожалению, такой вариант не подходит, потому, что подчиненный ПЛК должен работать и без мастера.

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

Похожие темы

  1. Ответов: 6
    Последнее сообщение: 09.10.2015, 05:06
  2. Ответов: 11
    Последнее сообщение: 04.03.2015, 12:23
  3. Как считать состояние выхода МУ110-16Р modbus
    от acronis в разделе Эксплуатация
    Ответов: 11
    Последнее сообщение: 04.03.2015, 12:23
  4. Modbus RTU считать поток данных
    от Alex_Nev в разделе ПЛК1хх
    Ответов: 9
    Последнее сообщение: 04.08.2013, 21:29
  5. Ответов: 1
    Последнее сообщение: 27.07.2012, 16:04

Ваши права

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