This is topic Сбор дискретов в протоколе Modbus TCP in forum TRACE MODE 6 бесплатная Базовая версия / TRACE MODE 6 free Base version at Форум TRACE MODE: техническая поддержка.
Добрый день. Не могу разобраться со сбором дискретов по протоколу 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) Не могли бы вы объяснить, как настроить сбор дискретных значений или выслать простой пример.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Функция Rin_Byte(2) по умолчанию считывает сразу 8 последовательных дискретных входов в один канал HEX16. Для считывания 54 входов Вам надо создать 7 источников Rin_Byte(2) с настройками "Канал" равными соответственно 0x0, 0x8, 0x10, 0x18, 0x20, 0x28, 0x30. К каждому из источников привязать свой канал HEX16 и получить в них значения всех 54 входов.
При обработке и отображении полученных данных надо учитывать, что значимыми в каждом канале будут только первые 8 битов. Старшие биты можно не учитывать или при необходимости маскировать.
Posted by JGbGwv95 (Участник № / Member № 6253) on :
И еще такое чувство, что 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
Posted by JGbGwv95 (Участник № / Member № 6253) on :
Пока писал комментарий добавили ответ ) . Спасибо, сейчас попробую.
Posted by JGbGwv95 (Участник № / Member № 6253) on :
А подскажите еще, каким образом из канала HEX16 вытащить значения каждого из 8 передаваемых в нем дискретов и передать на схему.
Posted by JGbGwv95 (Участник № / Member № 6253) on :