Тема / Topic: Сбор дискретов в протоколе Modbus TCP
Alex von Bumb
Junior Member / Новичок
Участник № / Member № 6253
отправлено / posted
Добрый день. Не могу разобраться со сбором дискретов по протоколу Modbus TCP в Trace Mode. Во всех примерах описан сбор аналогов. Опрашиваю эмулятор Modbus-Slave. Адрес подчиненного устройства: 1. Диапазоны адресов: от 0 до 53 для дискретных значений и от 0 до 49 для регистров хранения. Регистры дискрентных входов 1XXXX, регистры хранения 4XXXXX, регистры флагов 0XXXX Для аналогов создаю компоненты Rin_Word(4), указываю ip адрес эмулятора, параметры: Адрес 1, канал от 0 до 49. Аналоги считываю без проблем. С дискретами хуже.Создаю компоненты Rin_Byte(2). указываю ip адрес эмулятора, параметры: Адрес 1, канал от 0 до 53. Значения почему то приходят в непонятном виде (FFFF) Не могли бы вы объяснить, как настроить сбор дискретных значений или выслать простой пример.
Сообщения / Posts 30 | Из / From: РФ
| IP / IP: IP адрес / IP address |
отправлено / posted
Функция Rin_Byte(2) по умолчанию считывает сразу 8 последовательных дискретных входов в один канал HEX16. Для считывания 54 входов Вам надо создать 7 источников Rin_Byte(2) с настройками "Канал" равными соответственно 0x0, 0x8, 0x10, 0x18, 0x20, 0x28, 0x30. К каждому из источников привязать свой канал HEX16 и получить в них значения всех 54 входов.
При обработке и отображении полученных данных надо учитывать, что значимыми в каждом канале будут только первые 8 битов. Старшие биты можно не учитывать или при необходимости маскировать.
Сообщения / Posts 17316 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Alex von Bumb
Junior Member / Новичок
Участник № / Member № 6253
отправлено / posted
И еще такое чувство, что 8 передаваемых дискретов Trace Mode собирает в 1. К примеру я передаю 8 дискретов: 1 0 0 0 0 0 0 0 получаю: 1 0 0 0 0 0 0 0 Передаю 1 1 0 0 0 0 0 0 Получаю 3 1 0 0 0 0 0 0 Передаю 0 1 1 1 1 0 0 0 Получаю 1E F 7 3 1 0 0 0
Сообщения / Posts 30 | Из / From: РФ
| IP / IP: IP адрес / IP address |
Alex von Bumb
Junior Member / Новичок
Участник № / Member № 6253
Alex von Bumb
Junior Member / Новичок
Участник № / Member № 6253
отправлено / posted
А подскажите еще, каким образом из канала HEX16 вытащить значения каждого из 8 передаваемых в нем дискретов и передать на схему.
Сообщения / Posts 30 | Из / From: РФ
| IP / IP: IP адрес / IP address |
Alex von Bumb
Junior Member / Новичок
Участник № / Member № 6253