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

Тема: Modbus master

  1. #1

    По умолчанию Modbus master

    Modbus master может работать и как slave в случае если master не отправляет запросы (из док. "Универсальное устройство Modbus имеет канал Start/Stop. Если в него записывается значение 0x00FF, то происходит старт работы данного устройства Modbus, если же в канал записано значение 0x00FE, то происходит его остановка и прекращение всех посылок в сеть.)
    Ситуация следующая, ПЛК100 необходимо использовать для приема данных от другого контроллера по определенным адресам, преобразование данных и их передача, через другой порт, по другим адресам (для SCADA).
    Возник еще вопрос, как установить адрес ПЛК для работы в режиме master/slave, или адрес устанавливается на конкретный порт.

  2. #2

    По умолчанию

    Цитата Сообщение от Klik Посмотреть сообщение
    Modbus master может работать и как slave в случае если master не отправляет запросы (из док. "Универсальное устройство Modbus имеет канал Start/Stop. Если в него записывается значение 0x00FF, то происходит старт работы данного устройства Modbus, если же в канал записано значение 0x00FE, то происходит его остановка и прекращение всех посылок в сеть.)
    Ситуация следующая, ПЛК100 необходимо использовать для приема данных от другого контроллера по определенным адресам, преобразование данных и их передача, через другой порт, по другим адресам (для SCADA).
    Возник еще вопрос, как установить адрес ПЛК для работы в режиме master/slave, или адрес устанавливается на конкретный порт.
    Не совсем ясна задача: если вы получаете данные по одному порту (485, например) и отправляете через другой, то зачем вам управлять работой мастера и слэйва? поставьте на один порт мастера, на другой слэйва и не морочьте себе голову.
    Если же на одном интерфейсе у вас получаются 2 мастера, тогда вам необходимо отключать как один (организованный на ПЛК), так и другой (организованный где-то еще).
    Опишите, пожалуйста, яснее, что к чему и как вы хотите подключить.

  3. #3

    По умолчанию

    В Modbus slave нет возможности положить данные по определенному адресу, например по адресу 32221. А в Modbus master такая возможность есть. Или я ошибаюсь?
    Задача следующая. На отправленных установках установлены контроллеры с определенной картой адресов, но для телемеханики требуется другая карта адресов. Для этого необходимо переделывать ПО написанное на Паскале и С++, что трудоёмко, но есть и проблема ограничения по максим. адресу (10000).
    Идея состоит в следующем. С помощью ПЛК100 считываем данные с заданных адресов, преобразуем и раскладваем по необходимым адресам для телемеханики.

  4. #4

    По умолчанию

    Цитата Сообщение от Klik Посмотреть сообщение
    В Modbus slave нет возможности положить данные по определенному адресу, например по адресу 32221. А в Modbus master такая возможность есть. Или я ошибаюсь?
    Задача следующая. На отправленных установках установлены контроллеры с определенной картой адресов, но для телемеханики требуется другая карта адресов. Для этого необходимо переделывать ПО написанное на Паскале и С++, что трудоёмко, но есть и проблема ограничения по максим. адресу (10000).
    Идея состоит в следующем. С помощью ПЛК100 считываем данные с заданных адресов, преобразуем и раскладваем по необходимым адресам для телемеханики.
    яснее не стало.
    телемеханика реализована на том же контроллере, где ПО на паскале и си?
    у этого контроллера только один доступный интерфейс связи или несколько?
    И если интерфейс только один, в "ПО на паскале и си" предусмотрен перевод работы этого контроллера с телемеханикой по данному интерфейсу на работу как в режим мастера, так и в режим слэйва? для ПЛК такой перевод реализуем, но если ПЛК мастер - атот другой контроллер тоже мастер - тогда работать это не будет.

    или же все-таки телемеханика и контроллер - это две разные части системы, которые не работают по одному едиственно возможному интерфейсу?

  5. #5

    По умолчанию

    Телемеханика и контроллер - это две разные части системы.
    Контроллер является реализацией нижнего уровня, телемеханика - верхнего, для вывода данных на диспетчерский пункт. К контроллеру мы цепляемся по RS-485, а к телемеханике по RS-232.

  6. #6

    По умолчанию

    Цитата Сообщение от Klik Посмотреть сообщение
    Телемеханика и контроллер - это две разные части системы.
    Контроллер является реализацией нижнего уровня, телемеханика - верхнего, для вывода данных на диспетчерский пункт. К контроллеру мы цепляемся по RS-485, а к телемеханике по RS-232.
    Ага, ну тогда все не сложно. По разным интерфейсам ПЛК может быть одновременно мастером и слэйвом.

    Посмотрите простой пример. Там на одном интерфейсе ПЛК мастер - на другом подчингенный. А в программе данные, считанные с одного интерфейса, присваиваются переменным на другом.

    mst_slv.zip

  7. #7

    По умолчанию

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

  8. #8

    По умолчанию

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

  9. #9

    По умолчанию

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

  10. #10

    По умолчанию

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

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

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

Ваши права

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