1. Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
  2. Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
  3. Не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему.
  4. За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения.
  5. Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
  6. Перед тем как что-то написать - читать здесь и здесь, а студентам - обязательно здесь.
  7. Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.

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

Unity Pro (Control Expert), Quantum, Premium, M340, M580, Hybrid DCS, Process Expert, Zelio, Twido, M17*, M2**, SCADAPACK, SoMachine, MachineExpert, ZelioSoft, TwidoSoft, TwidoSuite, TelePace

Модератор: Специалисты SE

Ответить

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

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

Сообщение franzferdinand »

Здравствуйте. Для общего развития изучаю коммуникационные возможности контроллера М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
почётный участник форума
почётный участник форума
Сообщения: 1746
Зарегистрирован: 18 янв 2009, 12:25
Имя: Дмитрий
Страна: Россия
город/регион: Москва
Благодарил (а): 6 раз
Поблагодарили: 132 раза

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

Сообщение hell_boy »

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
здесь недавно
здесь недавно
Сообщения: 47
Зарегистрирован: 23 дек 2016, 12:45
Имя: Антон
Страна: Россия
город/регион: Воронеж
Благодарил (а): 5 раз
Поблагодарили: 2 раза

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

Сообщение franzferdinand »

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 регистра, из которых полезную информацию содержит только один, то не считается ничего.
Ответить

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