Показано с 1 по 10 из 13

Тема: Modbus master

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

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

    По умолчанию

    Как это реализовать я знаю, у меня в другом проблема.
    Мне необходимо с контроллера прочитать 2015 регистр, это не составляет проблемы.
    А мастер телемеханики должен забрать значение этого регистра из другого регистра, например 3028. Карта адресов телемеханики определена заранее и нам необходимо под неё подстроится.
    Как в slave положить значение именно в этот регистр.
    И что означает Идент. узла или Node id в параметре элементов modbus slave.

  2. #2

    По умолчанию

    Цитата Сообщение от Klik Посмотреть сообщение
    Как это реализовать я знаю, у меня в другом проблема.
    Мне необходимо с контроллера прочитать 2015 регистр, это не составляет проблемы.
    А мастер телемеханики должен забрать значение этого регистра из другого регистра, например 3028. Карта адресов телемеханики определена заранее и нам необходимо под неё подстроится.
    Как в slave положить значение именно в этот регистр.
    И что означает Идент. узла или Node id в параметре элементов modbus slave.
    гм, боюсь в этом случае, вам придется в слэйве создать 3028 переменных 2 byte, тк нумерация адресов регистров в слэйве идет автоматически начиная с 0. Другого механизма не организовано. Либо можно по данному порту читать посылки от мастера, обрабатывать и отвечать на них с помощью библиотеки unm.lib, т.е. поддержать часть (одну две функции) протокола модбас непосредственно в программе контроллера.
    Идент. узла - внутренняя информация таргет файла, на пользовательском уровне она не используется.

  3. #3

    По умолчанию

    Тогда у меня еще вопрос.
    Собираетесь ли вы распространять библиотеку Codesys по реализации Modbus вместе со своей продукцией.
    И планируется ли в будущем дорабатывать свой модуль Modbus slave.

  4. #4

    По умолчанию

    Библиотека ModBus от CoDeSys и так доступна всем.
    Но распространять мы её не можем, так как она платная. А купить её можно, я так думаю в компании Пролог - www.codesys.ru

    Сейчас мы делаем свою библиотеку обмена по ModBus. Уже в ней можно будет добавить свой блочек, которй будет получая данные\запрос для определенного регистра переадресовывать его в нужный.
    А вообще над данным вопросом мы задумались, но пока законченного решения не принято. А задание случайного адреса в контроллере противоречит особенностям работы с распределением памяти в системе программирования.

  5. #5
    Пользователь
    Регистрация
    18.03.2007
    Адрес
    г. Краснодар
    Сообщений
    233

    По умолчанию

    Цитата Сообщение от Николаев Андрей Посмотреть сообщение
    Библиотека ModBus от CoDeSys и так доступна всем.
    Но распространять мы её не можем, так как она платная. А купить её можно, я так думаю в компании Пролог - www.codesys.ru

    Сейчас мы делаем свою библиотеку обмена по ModBus. Уже в ней можно будет добавить свой блочек, которй будет получая данные\запрос для определенного регистра переадресовывать его в нужный.
    А вообще над данным вопросом мы задумались, но пока законченного решения не принято. А задание случайного адреса в контроллере противоречит особенностям работы с распределением памяти в системе программирования.
    Давно пользуюсь Slave режимом и мучаюсь считая какой это регистр.
    В одних мастерах начало с 0 в других с 1. А когда расставишь несколько разных типов, то можно и запутаться.

    А теперь у человека проблема. Можно бы использовать ПЛК с буквой L, а надо купить с М.
    Потому я у диллеров покупаю только с М - а L почти не кому не нужна.

  6. #6

    По умолчанию

    В чем сложность у вас не понятно.
    Пришлось писать самим, через день работы уже поддерживается 03 READ HOLDING REGISTERS функция.
    Работаем через указатели, создав свою карту адресов.

  7. #7

    По умолчанию

    Хотелось бы поднять тему. Как решить аналогичную задачу использовав ПЛК для переконвертации регистров, получаемых от мастера и передавать по другому адрему для слейва? Например, принимаем от частотного преобразователя данные с регистра 2104, а по другому порту его необходимо транслировать с адресом 256? Может кто-нибудь на пальцах рассказать реализацию?

Ваши права

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