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

Тема: Openhab-Телемеханника-Modbus

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

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    13,406

    По умолчанию

    Сергей Сисейкин это какой-то треш, ну уже признали бы, что формат IEEE754 в сети вы не поддерживаете в ТЛ. А то выглядит все вышесказанное как отмазка.

  2. #2
    Сергей Сисейкин
    Гость

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение
    Сергей Сисейкин это какой-то треш, ну уже признали бы, что формат IEEE754 в сети вы не поддерживаете в ТЛ. А то выглядит все вышесказанное как отмазка.
    Карта адресов в ПЛК:
    карта в плк.png
    адреса переменных 2, 4 и 6. Будем в них записывать значения и читать.
    в opc сервере Owen добавляем 6 тэгов, три для чтения, три для записи.

    Начну с записи Float:
    опс запись.png
    использовать нужно настройки как на скриншоте.

    для чтения Float нужно умножать адрес переменной на "2". (отрыл старую доку, в конце приложу описание)
    настройка чтения в OPC.png

    запись и чтение Float работает
    опрос в ОПС.png

    Modbus TCP slave в исполнительной системе EnLogic.

    Протокол MODBUS TCP обеспечивает обмен между устройствами в сети Ethernet, используя модель клиент-сервер (master-slave) со стеком протоколов TCP/IP, где ИС EnLogic выступает в роли сервера (EnLogic также может быть и клиентом, но этот вопрос не рассматривается в данном документе).

    В ИС EnLogic поддержаны три функции Modbus TCP slave:
    0x03 - Read Holding Registers
    Внутри ИС каждый параметр EnLogic имеет размер 4 байта (2 регистра Modbus). При подготовке ответа на запрос мастера значение параметра "ужимается" до одного регистра (2 байта), т.е. вполне может произойти переполнение. В этом случае вместо значения передаётся 0xFFFF. Полноразмерное значение параметра можно получить, используя функцию 0x04.
    Все значения в ответе передаются как short int (от -32767 до 32767), параметры типа Integer передаются без изменений, параметры типа Float умножаются на заданный множитель и обрезаются до целого числа, параметры типа Boolean передаются как 1 (true) или 0 (false). В регистрах, соответствующих несуществующим в конфигурации контроллера параметрам (а также параметрам вне разрешённого диапазона) и в регистрах, соответствующих недостоверным параметрам (с плохим качеством), передаются 0xFFFF.
    В данном запросе адреса Modbus соответствуют МЭК-адресам параметров в конфигурации ИС EnLogic.
    Если адреса запрошенных параметров не попадают в допустимый диапазон, то возвращается исключение Modbus с кодом 2.
    0x04 - Read Input Registers
    В ответ на этот запрос отправляются значения параметров «как есть», без дополнительной обработки, при этом каждый параметр передаётся в двух регистрах Modbus. Адреса Modbus в данном запросе должны представлять собой МЭК-адреса параметров в конфигурации EnLogic, умноженные на 2. Например, для запроса трёх параметров, начиная с МЭК-адреса 21, запрос должен быть на шесть регистров, начиная с адреса 42.
    В ответ в регистрах, соответствующих несуществующим в конфигурации контроллера параметрам (а также параметрам вне разрешённого диапазона) и в регистрах, соответствующих недостоверным параметрам (с плохим качеством), передаются 0xFFFFFFFF. Целочисленные параметры передаются как INT32, параметры с плавающей запятой – как FLOAT32, дискретные значения передаются следующим образом: TRUE - как 0x00000001, FALSE – как 0x00000000.
    Если адреса запрошенных параметров не попадают в допустимый диапазон, то возвращается исключение Modbus с кодом 2.
    0x06 - Write Single Register
    В данном запросе адрес Modbus должен соответствовать МЭК-адресу параметра в конфигурации ИС EnLogic, а само значение параметра должно быть передано в формате short int (от -32767 до 32767), при этом для записи параметров типа Float его значение должно быть умножено на заданный множитель и обрезано до целого числа.
    Если адрес выходит за пределы разрешённого диапазона или отсутствует в конфигурации EnLogic, то возвращается исключение Modbus с кодом 2.

    Настройки задачи Modbus TCP slave
    Настройки задачи Modbus TCP slave и её текущее состояние отображаются в ФБ ModbusTcpSlave:
    123.png
    Настройки по-умолчанию следующие: Порт = 502, Максимум соединений = 5, Начальный адрес = 1, Конечный адрес = 32767, Множитель = 100.

Похожие темы

  1. Ответов: 26
    Последнее сообщение: 31.01.2023, 17:42
  2. Не передаётся Float32 c ПР200 в Телемеханника Лайт
    от Вадим2881 в разделе Телемеханика ЛАЙТ
    Ответов: 6
    Последнее сообщение: 27.08.2020, 08:38
  3. Ответов: 2
    Последнее сообщение: 04.06.2019, 16:55
  4. Ответов: 10
    Последнее сообщение: 10.06.2018, 16:36
  5. Ответов: 5
    Последнее сообщение: 14.10.2010, 13:42

Ваши права

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