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

Тема: Библиотека Modbus Slave для ПЛК110

  1. #1

    По умолчанию Библиотека Modbus Slave для ПЛК110

    Здравствуйте! Подскажите, пожалуйста, существует ли в CodeSys 2.3 аналог библиотеки Modbus Slave (CodeSys 3.5) для организации работы ПЛК110 как Slave устройства?

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

    По умолчанию

    http://www.kipshop.ru/CoDeSys/steps/...figuration.pdf страница 38, раздел 3.1, чем не подходит?
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

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

  3. #3

    По умолчанию

    То есть специальной библиотеки нет, как в CodeSys 3.5? Просто мне необходимо передавать на верх порядка 1000 регистров и я думаю, что библиотекой это сделать легче, чем конфигуратором.

  4. #4
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    2,318

    По умолчанию

    ПЛК замечательные слейвы через конфигуратор, но в каких то кривых прошивках есть косяки с размером слейва - с 1000 будут проблемы.

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

    По умолчанию

    Цитата Сообщение от Maria Посмотреть сообщение
    мне необходимо передавать на верх порядка 1000 регистров
    Столкнулся с той же проблемой. Неужели для этого нужно тупо вставлять в конфигураторе по одному (или по два через 4 byte) 1000 регистров? File зачем то вставить можно, а область памяти или массив регистров нельзя


    Нашёл в документации ответ, как решить поставленную задачу:
    1. Добавить в Modbus Slave подэлемент Modbus Master
    2. Добавить в Modbus Master Universal Modbus Device
    3. Добавить в Universal Modbus Device переменную String Output Module State нужной длины.
    4. Разместить массив регистров, который нужно выводить, по адресу String Output Module State
    5. Определить экспериментально начальный адрес String Output Module State.

    Интересно, кто нибудь пользуется таким костылём?
    Последний раз редактировалось rwg; 20.08.2016 в 10:10.

  6. #6
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,825

    По умолчанию

    Цитата Сообщение от rwg Посмотреть сообщение
    Столкнулся с той же проблемой. Неужели для этого нужно тупо вставлять в конфигураторе по одному (или по два через 4 byte) 1000 регистров? File зачем то вставить можно, а область памяти или массив регистров нельзя


    Нашёл в документации ответ, как решить поставленную задачу:
    1. Добавить в Modbus Slave подэлемент Modbus Master
    2. Добавить в Modbus Master Universal Modbus Device
    3. Добавить в Universal Modbus Device переменную String Output Module State нужной длины.
    4. Разместить массив регистров, который нужно выводить, по адресу String Output Module State
    5. Определить экспериментально начальный адрес String Output Module State.

    Интересно, кто нибудь пользуется таким костылём?
    С мастером встроенным в слейв есть однако проблемы http://www.owen.ru/forum/showthread....l=1#post147040
    Хотя со String Output Module State наверно работать будет.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  7. #7

    По умолчанию

    Возможно, кому-нибудь пригодится мой костыль: я экспортировал из CoDeSys конфигурацию ПЛК с несколькими переменными, обработал её как текстовый файл скриптом (увеличивая номера переменных и входов) и импортировал в проект обратно. Всё работает.

  8. #8
    Пользователь
    Регистрация
    20.02.2008
    Адрес
    Тверь
    Сообщений
    501

    По умолчанию

    Поделюсь методом, который НЕ работает. Чтобы желающие поэкспериментировать не теряли время. В конфигурации Master Slave ПЛК создал одну переменную 2 байта, а в глобальных переменных расположил по адресу этой переменной переменную типа ARRAY[1..1000] OF WORD. Логика была такая - если программа глупая, то она будет по Модбасу передавать содержимое ячеек памяти в соответствии с запросом. Если программа умная, то она догадается, что нужно расширить область памяти до размеров массива и тоже будет работать. Компилятор ошибок не показал. Программа оказалась не глупой, не умной, а себе на уме - она выдавала мастеру ошибку, если он запрашивал содержимое регистров, не добавленных в конфигурацию Master Slave ПЛК в явном виде. В общем, хочешь через SLAVE передавать 1000 регистров - добавь в конфигурацию 1000 пар байтов или 500 двойных регистров.

Похожие темы

  1. Modbus (Master) не отображается в память Modbus (Slave)
    от ghoch в разделе Помощь Разработчикам
    Ответов: 3
    Последнее сообщение: 07.05.2018, 09:40
  2. Ответов: 15
    Последнее сообщение: 13.10.2016, 16:27
  3. ПЛК160: Modbus TCP Master и Modbus TCP Slave одновременно.
    от Антон Костюченко в разделе ПЛК1хх
    Ответов: 10
    Последнее сообщение: 18.07.2016, 10:36
  4. Библиотека ModBus Slave
    от Леонид в разделе ПЛК1хх
    Ответов: 57
    Последнее сообщение: 10.11.2015, 13:13
  5. Ответов: 5
    Последнее сообщение: 14.10.2010, 14:42

Ваши права

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