Профиль должен быть заполнен на русском языке кириллицей. Заполнение профиля заведомо ложными или некорректными данными - причина возможного отказа в регистрации на форуме.

Помогите разобраться (адресация Modbus RTU Slave)

RS-485, ProfiBUS, 4-20 mA, Wi-Fi, GSM и так далее
Аватара пользователя

Автор темы
archisp
здесь недавно
здесь недавно
Сообщения: 71
Зарегистрирован: 29 июн 2011, 20:18
Ф.И.О.: А.В.К.

Помогите разобраться (адресация Modbus RTU Slave)

Сообщение archisp » 08 июл 2014, 18:59

Здравствуйте, уважаемые коллеги! Помогите разобраться..

Есть необходимость считать данные с прибора ВЗА-200-28,5. В документации к прибору написано, что это возможно, используя протокол Modbus RTU Slave. Сразу хотелось бы сказать, что в нем я не силен, поэтому и имею затруднения. Далее в инструкции указано, что используется функция modbus 03h (только чтение) из регистров Holding Registers. А сами данные прибора лежат по адресам, например, адрес 1 - это выходное напряджение (аналоговая величина).

Суть проблемы в том, что я не могу правильно составить адрес обращения по адресу в приборе. Для связи использую Kepware OPC-сервер, пробовал также и InSat, настраиваю соединение, создаю тег, а вот в поле адрес у меня проблема. Указываю для Holding Registers адрес 400001, тип данных float, статус канала получаю ОК, но значение приходит странное, вида 3,23767E-34A, как-то так)) Извините, за мое возможное корявое описание, не силен. Подскажите, если это возможно. Заранее благодарен!


VaBo
осмотрелся
осмотрелся
Сообщения: 191
Зарегистрирован: 21 июл 2013, 18:32
Ф.И.О.: Вадим
Благодарил (а): 6 раз
Поблагодарили: 2 раза

Re: Помогите разобраться (адресация Modbus RTU Slave)

Сообщение VaBo » 08 июл 2014, 19:52

тип данных float не описывается протоколом, поэтому разработчики приборов резвятся вовсю.
У вас есть возможность менять очередность байтов в двойном слове, которым передается float32?

Аватара пользователя

Автор темы
archisp
здесь недавно
здесь недавно
Сообщения: 71
Зарегистрирован: 29 июн 2011, 20:18
Ф.И.О.: А.В.К.

Re: Помогите разобраться (адресация Modbus RTU Slave)

Сообщение archisp » 09 июл 2014, 07:05

В настройках opc-сервера такая возможность есть, правда я не уверен, что это точно float. В адресах прибора есть только дискретные величины и аналоговые. С дискретными понятно, но вот как с аналоговыми быть, как написать адрес..


slepowl
здесь недавно
здесь недавно
Сообщения: 10
Зарегистрирован: 24 янв 2014, 12:47
Ф.И.О.: Олег О.

Re: Помогите разобраться (адресация Modbus RTU Slave)

Сообщение slepowl » 09 июл 2014, 10:02

Попробуйте поменять очередность, о чем вам намекали выше. А вообще в документации должно быть указание типа данных.

Аватара пользователя

Автор темы
archisp
здесь недавно
здесь недавно
Сообщения: 71
Зарегистрирован: 29 июн 2011, 20:18
Ф.И.О.: А.В.К.

Re: Помогите разобраться (адресация Modbus RTU Slave)

Сообщение archisp » 09 июл 2014, 10:07

Хорошо, я попробую. Просто такой документации я еще не встречал)) всего две строчки.. Сам адрес я указываю корректно, если обращаюсь в holding registers по адресу 1 в приборе? Запись булет такая 400001?

Аватара пользователя

and909
частый гость
частый гость
Сообщения: 444
Зарегистрирован: 27 июн 2013, 11:20
Ф.И.О.: Андрей Шавшуков
Благодарил (а): 2 раза
Поблагодарили: 5 раз

Re: Помогите разобраться (адресация Modbus RTU Slave)

Сообщение and909 » 09 июл 2014, 12:12

В настройках ОРС ищите что-то типа этого:


Изображение
Я ленивый: делаю быстро, чтобы отстали и качественно, чтобы не переделывать.

Аватара пользователя

Автор темы
archisp
здесь недавно
здесь недавно
Сообщения: 71
Зарегистрирован: 29 июн 2011, 20:18
Ф.И.О.: А.В.К.

Re: Помогите разобраться (адресация Modbus RTU Slave)

Сообщение archisp » 09 июл 2014, 12:31

Спасибо, попробую.. Такое точно есть

Аватара пользователя

Автор темы
archisp
здесь недавно
здесь недавно
Сообщения: 71
Зарегистрирован: 29 июн 2011, 20:18
Ф.И.О.: А.В.К.

Re: Помогите разобраться (адресация Modbus RTU Slave)

Сообщение archisp » 09 июл 2014, 16:35

Перестановка байтов в значении не меняет ситуацию, но методом тыка в настройках OPC-сервера нашел галочку, которая поправила ситуацию и по некоторым адресам значения получил. По одному адресу значения идут в виде битовых масок. Так указано в инструкции к прибору. Что это значит? подскажите, пожалуйста..


Makovkin
здесь недавно
здесь недавно
Сообщения: 43
Зарегистрирован: 05 мар 2014, 05:24
Ф.И.О.: Маковкин

Re: Помогите разобраться (адресация Modbus RTU Slave)

Сообщение Makovkin » 09 июл 2014, 17:02

archisp писал(а):По одному адресу значения идут в виде битовых масок. Так указано в инструкции к прибору. Что это значит? подскажите, пожалуйста..


Упаковывают отдельные биты в слово, а потом осуществляют побитное логическое И для выделения нужных битов

Аватара пользователя

and909
частый гость
частый гость
Сообщения: 444
Зарегистрирован: 27 июн 2013, 11:20
Ф.И.О.: Андрей Шавшуков
Благодарил (а): 2 раза
Поблагодарили: 5 раз

Re: Помогите разобраться (адресация Modbus RTU Slave)

Сообщение and909 » 09 июл 2014, 17:07

Изображение
Я ленивый: делаю быстро, чтобы отстали и качественно, чтобы не переделывать.

Аватара пользователя

Автор темы
archisp
здесь недавно
здесь недавно
Сообщения: 71
Зарегистрирован: 29 июн 2011, 20:18
Ф.И.О.: А.В.К.

Re: Помогите разобраться (адресация Modbus RTU Slave)

Сообщение archisp » 09 июл 2014, 20:12

Написано, что маска, например, 0х0002 - "нарушение изоляции".. не пойму, я должен получить это самое значение (0х0002) в теге? или не правильно понимаю? никогда не сталкивался с этим просто, сложно для понимания, если честно


VaBo
осмотрелся
осмотрелся
Сообщения: 191
Зарегистрирован: 21 июл 2013, 18:32
Ф.И.О.: Вадим
Благодарил (а): 6 раз
Поблагодарили: 2 раза

Re: Помогите разобраться (адресация Modbus RTU Slave)

Сообщение VaBo » 09 июл 2014, 21:28

archisp писал(а):Написано, что маска, например, 0х0002 - "нарушение изоляции".. не пойму, я должен получить это самое значение (0х0002) в теге? или не правильно понимаю? никогда не сталкивался с этим просто, сложно для понимания, если честно


if (полученное слово & 0х0002 == true)
then "изоляция нарушена";
Последний раз редактировалось VaBo 09 июл 2014, 22:56, всего редактировалось 1 раз.

Аватара пользователя

Автор темы
archisp
здесь недавно
здесь недавно
Сообщения: 71
Зарегистрирован: 29 июн 2011, 20:18
Ф.И.О.: А.В.К.

Re: Помогите разобраться (адресация Modbus RTU Slave)

Сообщение archisp » 09 июл 2014, 22:21

То есть если я правильно понял, выполнение скрипта должно выполняться уже не на стороне opc-сервера, а в самой скаде? По указанному адресу получаю 0, а в скаде создаю скрипт с вышеуказанным условием?


Ryzhij
почётный участник форума
почётный участник форума
Сообщения: 2568
Зарегистрирован: 07 окт 2011, 08:12
Ф.И.О.: Гаско Вячеслав Эриевич
Откуда: Рязань, Россия
Благодарил (а): 43 раза
Поблагодарили: 71 раз

Re: Помогите разобраться (адресация Modbus RTU Slave)

Сообщение Ryzhij » 10 июл 2014, 05:01

archisp писал(а):То есть если я правильно понял, выполнение скрипта должно выполняться уже не на стороне opc-сервера, а в самой скаде? По указанному адресу получаю 0, а в скаде создаю скрипт с вышеуказанным условием?
Ну почему же, можете и в KeepWareOPC создать вычисляемый AdvancedTag соответствующего типа.
---------------------------------------------------
«У человека в душе дыра размером с Бога, и каждый заполняет её как может». Жан-Поль Сартр


Alexander
БАН
БАН
Сообщения: 642
Зарегистрирован: 03 июн 2010, 11:26
Ф.И.О.: Козин Александр Елисеевич
Благодарил (а): 2 раза
Поблагодарили: 5 раз
Забанен: Бессрочно

Re: Помогите разобраться (адресация Modbus RTU Slave)

Сообщение Alexander » 10 июл 2014, 08:22

archisp писал(а):То есть если я правильно понял, выполнение скрипта должно выполняться уже не на стороне opc-сервера, а в самой скаде? По указанному адресу получаю 0, а в скаде создаю скрипт с вышеуказанным условием?


Не создаете скрипт с вышеуказанным условием, а анализируете состояние битов в принятом слове. Слово может быть, например, 0х0006. Это точно также будет означать ту же самую ошибку - нарушение изоляции + еще что-то (что - не знаю).

Аватара пользователя

Автор темы
archisp
здесь недавно
здесь недавно
Сообщения: 71
Зарегистрирован: 29 июн 2011, 20:18
Ф.И.О.: А.В.К.

Re: Помогите разобраться (адресация Modbus RTU Slave)

Сообщение archisp » 10 июл 2014, 09:33

Спасибо! Попробую разобраться с созданием advanced тега.. Он создается, как обычный?


Ryzhij
почётный участник форума
почётный участник форума
Сообщения: 2568
Зарегистрирован: 07 окт 2011, 08:12
Ф.И.О.: Гаско Вячеслав Эриевич
Откуда: Рязань, Россия
Благодарил (а): 43 раза
Поблагодарили: 71 раз

Re: Помогите разобраться (адресация Modbus RTU Slave)

Сообщение Ryzhij » 10 июл 2014, 20:35

Да, на закладке Advanced, ежели у Вас установлен этот компонент.
Detcon_11_12.opf.zip
У вас нет необходимых прав для просмотра вложений в этом сообщении.
---------------------------------------------------
«У человека в душе дыра размером с Бога, и каждый заполняет её как может». Жан-Поль Сартр

Аватара пользователя

Автор темы
archisp
здесь недавно
здесь недавно
Сообщения: 71
Зарегистрирован: 29 июн 2011, 20:18
Ф.И.О.: А.В.К.

Re: Помогите разобраться (адресация Modbus RTU Slave)

Сообщение archisp » 11 июл 2014, 07:17

Благодарю! Посмотрел внимательно, думается, что возможность создания advanced тегов есть только в kepware 5, а у нас используется 4ая версия и только на нее лицензия.. Приплыл получается?))


Ryzhij
почётный участник форума
почётный участник форума
Сообщения: 2568
Зарегистрирован: 07 окт 2011, 08:12
Ф.И.О.: Гаско Вячеслав Эриевич
Откуда: Рязань, Россия
Благодарил (а): 43 раза
Поблагодарили: 71 раз

Re: Помогите разобраться (адресация Modbus RTU Slave)

Сообщение Ryzhij » 11 июл 2014, 07:46

У меня широко шагнувшая в массы программа KEPServerEx v4.500.465, именно в нём и была создана опубликованная конфигурация.
---------------------------------------------------
«У человека в душе дыра размером с Бога, и каждый заполняет её как может». Жан-Поль Сартр

Аватара пользователя

Автор темы
archisp
здесь недавно
здесь недавно
Сообщения: 71
Зарегистрирован: 29 июн 2011, 20:18
Ф.И.О.: А.В.К.

Re: Помогите разобраться (адресация Modbus RTU Slave)

Сообщение archisp » 11 июл 2014, 09:32

У меня v4.2, здесь такого нет.. Нашел для тестов v.5, работает правда в демо режиме, но возможность работы с тегами advanced есть.. Создаю тег с типом derived, в поле expression указываю условие вида: "tagname" and 0002, единица не приходит.. Может неправильно пишу маску 0х0002? Если писать именно маску 0х0002, ругается на некорректность записи..


Ryzhij
почётный участник форума
почётный участник форума
Сообщения: 2568
Зарегистрирован: 07 окт 2011, 08:12
Ф.И.О.: Гаско Вячеслав Эриевич
Откуда: Рязань, Россия
Благодарил (а): 43 раза
Поблагодарили: 71 раз

Re: Помогите разобраться (адресация Modbus RTU Slave)

Сообщение Ryzhij » 11 июл 2014, 09:39

Тип вычисляемого (порождаемого) тега булевый? Во втором бите исходного тега типа word единица (число чётное и не меньше двух)?
---------------------------------------------------
«У человека в душе дыра размером с Бога, и каждый заполняет её как может». Жан-Поль Сартр

Аватара пользователя

Автор темы
archisp
здесь недавно
здесь недавно
Сообщения: 71
Зарегистрирован: 29 июн 2011, 20:18
Ф.И.О.: А.В.К.

Re: Помогите разобраться (адресация Modbus RTU Slave)

Сообщение archisp » 11 июл 2014, 10:15

Тип вычисляемого тега булиевый. А вот во втором бите 0. Собственно поэтому через AND и получаю ноль.. А запись вышеуказанного вида корректная?


Ryzhij
почётный участник форума
почётный участник форума
Сообщения: 2568
Зарегистрирован: 07 окт 2011, 08:12
Ф.И.О.: Гаско Вячеслав Эриевич
Откуда: Рязань, Россия
Благодарил (а): 43 раза
Поблагодарили: 71 раз

Re: Помогите разобраться (адресация Modbus RTU Slave)

Сообщение Ryzhij » 11 июл 2014, 14:40

У меня это выглядит так:
TAG (tagname) and 2
---------------------------------------------------
«У человека в душе дыра размером с Бога, и каждый заполняет её как может». Жан-Поль Сартр

Аватара пользователя

Автор темы
archisp
здесь недавно
здесь недавно
Сообщения: 71
Зарегистрирован: 29 июн 2011, 20:18
Ф.И.О.: А.В.К.

Re: Помогите разобраться (адресация Modbus RTU Slave)

Сообщение archisp » 11 июл 2014, 17:20

Получилось настроить связь по всем каналам, если просто обращаюсь по адресу в холдинг регистер, например 400001. По всем каналам получаю значения, которые мне необходимы, на одном из них хоть целое слово целиком читать, хоть напрямую обращаться побитно (400005.1 и тип булевый), хоть используя Advanced Tags с вышеуказанным способом ввода - получаю по этому адресу 0, в битах тоже 0-ли. Такое впечатление, что просто прибор ничего не дает по этому адресу, в нем пусто, хотя в инструкции сказано, что там есть значения. Пробовал сделать ошибку, чтобы на панели самого прибора загорелась индикация и соответсвенно в адресе была бы единица, но там все равно 0. Странно все это.... может просто потому, что прибор русский))


Ryzhij
почётный участник форума
почётный участник форума
Сообщения: 2568
Зарегистрирован: 07 окт 2011, 08:12
Ф.И.О.: Гаско Вячеслав Эриевич
Откуда: Рязань, Россия
Благодарил (а): 43 раза
Поблагодарили: 71 раз

Re: Помогите разобраться (адресация Modbus RTU Slave)

Сообщение Ryzhij » 11 июл 2014, 20:07

archisp писал(а):Получилось настроить связь по всем каналам, если просто обращаюсь по адресу в холдинг регистер, например 400001.
Я-таки дико извиняюсь, но регистр по адресу 400001 это входной регистр, а вовсе не регистр хранения, не "холдинг", как Вы изящно выразились.
Адресация в протоколе Modbus - вещь стандартная, что на Украине, что в России, что в Африке, так что "национальность" прибора тут ни при чём.
Может быть у Вас проблема как раз в том, что вместо того, чтобы обращаться к регистру хранения 300001 через функцию 04, Вы пытаете входной регистр 400001 функцией 03? ;)
---------------------------------------------------
«У человека в душе дыра размером с Бога, и каждый заполняет её как может». Жан-Поль Сартр


Вернуться в «Интерфейсы, протоколы, связь»



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей