На форуме обязательно:
  1. Заполнить свой профиль НА РУССКОМ ЯЗЫКЕ КИРИЛЛИЦЕЙ. См. Правила, п.2.d.
  2. Не писать свой вопрос в первую попавшуюся тему, а вместо этого создать свою. См. Правила, п.3.a.

Рекламу мы не размещаем ни на каких условиях.

Адреса регистров и устройств Modbus Serial

Ответить

Автор темы
franzferdinand
здесь недавно
здесь недавно
Сообщения: 33
Зарегистрирован: 23 дек 2016, 12:45
Имя: Антон
Благодарил (а): 5 раз
Поблагодарили: 2 раза

Адреса регистров и устройств Modbus Serial

Сообщение franzferdinand » 27 июн 2018, 15:20

Здравствуйте. Для общего развития изучаю коммуникационные возможности контроллера М340. Передать данные от 1 ПЛК до 2-ого с помощью Modbus TCP с горем пополам получилось.
Теперь для обучения соединил вышеназванный ПЛК с регулятором ОВЕН ТРМ210. Порт настроил и там, и там - Modbus ASC.
К мануалам прошу не отсылать - описание блока READ_VAR и познавательную статью Александра Пупены прочитал. Но есть конкретные вопросы.
1) Как правильно на входе блока в Юнити написать адрес ТРМ-ки (адрес - 2)? исходя из манула пишу ADDM ('0.0.0') - вроде какой-то обмен идет. но почему не ADDM ('0.0.0.2.MBS')? вообще непонятно как правильно написать адрес короче.
2) С адресацией регистров вообще весело. В общем мой опыт работы с модбас ограничивается 2 тренировочными проектами - по Мodbus TCP я связал два М340 и другой - могу связать М340 и комп со скадой Intouch. В этих вопросах я как-то разобрался, как сопоставлять адрес данных в ПЛК и адреса регистров. С новым для себя устройством - ОВЕН ТРМ не разберусь. Действую по такой логике - например в описании на регулятор скзаано, что в регистре 0х0002 лежит уставка, я на вход NUM пишу 2, на вход NB - 4. к RECP цепляю массив из 4 переменных INT. но я не вижу в этих переменных своей уставки. И вообще если я пишу в NUM значение больше 4, то ничего не получается.
3) собственно как я понимаю, получается что-то или нет. смотрю массив на вход GEST, в первом его слове все время меняется значение, потом два нулевых слова, и потом число 8. я так понимаю это показатель того, что обмен данными успешно идет. правильно это или нет?

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

hell_boy
почётный участник форума
почётный участник форума
Сообщения: 1490
Зарегистрирован: 18 янв 2009, 12:25
Имя: Дмитрий
Благодарил (а): 6 раз
Поблагодарили: 80 раз

Адреса регистров и устройств Modbus Serial

Сообщение hell_boy » 28 июн 2018, 09:43

franzferdinand писал(а):
27 июн 2018, 15:20
1) Как правильно на входе блока в Юнити написать адрес ТРМ-ки (адрес - 2)? исходя из манула пишу ADDM ('0.0.0') - вроде какой-то обмен идет. но почему не ADDM ('0.0.0.2.MBS')? вообще непонятно как правильно написать адрес короче.
ADDM (IN := '0.0.1.2')
0 - корзина, 0 - номер модуля в корзине (0 - процессор), 1 - номер канала в модуле, 2 - адрес SLAVE (ОВЕН)
franzferdinand писал(а):
27 июн 2018, 15:20
2) С адресацией регистров вообще весело. В общем мой опыт работы с модбас ограничивается 2 тренировочными проектами - по Мodbus TCP я связал два М340 и другой - могу связать М340 и комп со скадой Intouch. В этих вопросах я как-то разобрался, как сопоставлять адрес данных в ПЛК и адреса регистров. С новым для себя устройством - ОВЕН ТРМ не разберусь. Действую по такой логике - например в описании на регулятор скзаано, что в регистре 0х0002 лежит уставка, я на вход NUM пишу 2, на вход NB - 4. к RECP цепляю массив из 4 переменных INT. но я не вижу в этих переменных своей уставки. И вообще если я пишу в NUM значение больше 4, то ничего не получается.
OBJ := '%MW', (* Тип объектов %MW - INT*)
NUM := 16#2, (* Начальный адрес 0х0002 *)
NB := 4 (* Количество регистров 4*)
"Умные люди обсуждают идеи, средние - события, а глупые - людей" Л.Н. Толстой


Автор темы
franzferdinand
здесь недавно
здесь недавно
Сообщения: 33
Зарегистрирован: 23 дек 2016, 12:45
Имя: Антон
Благодарил (а): 5 раз
Поблагодарили: 2 раза

Адреса регистров и устройств Modbus Serial

Сообщение franzferdinand » 28 июн 2018, 12:09

hell_boy писал(а):
28 июн 2018, 09:43
ADDM (IN := '0.0.1.2')
может тогда ('0.0.0.2')? номер канала Modbus, если смотреть конфигурацию процессора в Юнити - ноль.
если поставить 0012, то в GEST во второе слово, приходит ответ "7". число принятых байтов - 0.
если поставить 0002, то в GEST во второе слово, приходит ответ "0".число принятых байтов - 0.

на вход с адресом первого регистра нужно писать все-таки в десятичной или 16ричной форме?

Отправлено спустя 2 часа 53 минуты 45 секунд:
Разобрался. Во-первых, кабель надо правильно подключать :-P
Во-вторых, адресовать регистры и в десятичной и 16ричной форме можно.
И самая главная ошибка (наверное), не надо читать "лишние" регистры. Я так понимаю проблема в том, что в ТРМке (в частности) регистры с какими-то номерами тупо не описаны, и если я пытаюсь считать например 4 регистра, из которых полезную информацию содержит только один, то не считается ничего.

Ответить

Вернуться в «ПЛК»