Форум TRACE MODE: техническая поддержка Послать новую тему / Post New Topic  Послать ответ / Post A Reply
мой профиль / my profile авторизация / login | регистрация / register | поиск / search | часто задаваемые вопросы / faq | начало / forum home

  Следующая старая тема / next oldest topic   Следующая новая тема / next newest topic
» Форум TRACE MODE: техническая поддержка » ТЕХНИЧЕСКАЯ ПОДДЕРЖКА / TECHNICAL SUPPORT TRACE MODE 6 » TRACE MODE 6 бесплатная Базовая версия / TRACE MODE 6 free Base version » Чтение множественных регистров (FC 0x03) по ModBus TCP/IP

   
Автор / Author Тема / Topic: Чтение множественных регистров (FC 0x03) по ModBus TCP/IP
Vjam
Forum Haunter / Завсегдатай форума
Участник № / Member № 2261


Icon 1 отправлено / posted      Профиль для / Profile for Vjam           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Добрый день!
Пытаемся считывать данные с контроллера по ModBus TCP/IP:

1. создали MODBUS-группу;
2. в группе создал и настроил три Rout_Word;
3. привязали источники к соотв. трем каналам типа Input.

TraceMode данные читает но запросы посылает только для одного регистра (считывает каждый по очереди). Как сделать так чтобы отправлялся запрос на групповое чтение сразу всех (трех) регистров. В памяти PLC они идут друг за другом. Спасибо [Улыбка / Smile]

Сообщения / Posts 136 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Vjam
Forum Haunter / Завсегдатай форума
Участник № / Member № 2261


Icon 1 отправлено / posted      Профиль для / Profile for Vjam           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Вопрос снят. Все работает как надо )
Сообщения / Posts 136 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Vjam
Forum Haunter / Завсегдатай форума
Участник № / Member № 2261


Icon 1 отправлено / posted      Профиль для / Profile for Vjam           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Хм... Поторопился... [Улыбка / Smile]
На радостях начал читать еще 13 переменных.
Добавил Rout_Word'ы и каналы. Теперь чтение происходит в два запроса. Первым читает первые 4 слова а вторым остальные 12ть. Все таки, как правильно организовывать связь по ModBus TCP/IP чтобы все читалось одним запросом? Спасибо [Улыбка / Smile]

Сообщения / Posts 136 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Самый простой вариант - использовать канал CALL.ChGroupReq, подключенный к источнику Modbus (см.описание канала CALL.ChGroupReq).
Сообщения / Posts 17114 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Nico
Forum Professor / Завсегдатай форума
Участник № / Member № 5342


Icon 1 отправлено / posted      Профиль для / Profile for Nico           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
В памяти PLC они идут друг за другом и ID каналов
тоже должны идти друг за другом
мл ID -> мл PLC addr

Сообщения / Posts 808 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Vjam
Forum Haunter / Завсегдатай форума
Участник № / Member № 2261


Icon 1 отправлено / posted      Профиль для / Profile for Vjam           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Действительно с помощью CALL.ChGroupReq все читается в один запрос. Как теперь более грамотно организовать обмен с PLC? Нужно отправлять несколько запросов на групповое чтение по разным адресам и несколько групповых запросов на запись так же по разным адресам (ip и порт тот же). Воодушевленный успехом начал ваять но появилось ряд вопросов. [Улыбка / Smile]
1. Нужно ли для каждого запроса создавать отдельную группу MODBUS c одним Rout_Word'ом внутри или достаточно одной группы с разными Rout_Word'ами?
2. Насколько я понял каналы CALL.ChGroupReq должны иметь тип output и включаться поочередно?
Спасибо )

Сообщения / Posts 136 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Для каждого канала ChGroupReq надо создавать 1 компонент с начальным адресом группы и соответствующей функцией: для записи - W_Word(16), для чтения - Rout_Word(3).

Каналы для чтения должнs быть INPUT и работать каждый со своим циклом независимо.
Каналы для записи должны быть OUT и должны включаться на отрабатку при изменении любого из их аргументов.

Сообщения / Posts 17114 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Vjam
Forum Haunter / Завсегдатай форума
Участник № / Member № 2261


Icon 1 отправлено / posted      Профиль для / Profile for Vjam           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
С чтением вроде бы разобрался. Запросы отправляются, единственное, что значит "работать каждый со своим циклом"? С записью, вопросы остаются. Каналы output включатся сами при изменении аргументов или ими нужно управлять (отслеживать это самому и включать)?
Сообщения / Posts 136 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
В настоящее время - каналы OUT надо "отслеживать и включать" - одновременно с изменением любого его аргумента взводить в "1" атрибут EXEC (39).

Каналы запросов будут запрашивать с теми периодами, которые Вы задали в штатных настройках каналов.

Сообщения / Posts 17114 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Vjam
Forum Haunter / Завсегдатай форума
Участник № / Member № 2261


Icon 1 отправлено / posted      Профиль для / Profile for Vjam           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Благодарю за поддержку!
Сделал все каналы CALL.ChGroupReq с типом output и включаю их с нужной очередностью остылая "1" в атрибут EXEC (39). Все заработало как надо. )

Сообщения / Posts 136 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Vjam
Forum Haunter / Завсегдатай форума
Участник № / Member № 2261


Icon 1 отправлено / posted      Профиль для / Profile for Vjam           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Добрый день!
Еще один вопрос по данной теме. Как узнать что связь по ModBus TCP/IP разорвана или есть ошибки. Читаю раздел справки "Управление и диагностика обмена по встроенным протоколам":
Параметры управления и диагностики:
статус:
0 – нет соединения с устройством;
1 – состояние подключения;
2, 3 – соединение установлено;
итд... Где этот статус искать и как к нему привязаться? Спасибо [Улыбка / Smile]

Сообщения / Posts 136 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
В том же разделе документации указано, что у канала ChGroupReq должны быть созданы аргументы в количестве, соответствующем количеству контролируемых этим каналом устройств.
В этих аргументах можно видеть результаты диагностики и выводить их на экран и/или в программу.

Сообщения / Posts 17114 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
   

Quick Reply
Сообщение / Message:

HTML код не разрешен. / HTML is not enabled.
UBB код разрешен. / UBB Code is enabled.

Значки Graemlins / Instant Graemlins
   


Послать новую тему / Post New Topic  Послать ответ / Post A Reply Закрыть тему / Close Topic   Feature Topic   Переместить топик / Move Topic   Удалить топик / Delete Topic Следующая старая тема / next oldest topic   Следующая новая тема / next newest topic
 - Printer-friendly view of this topic
Перейти к / Hop To


Новости АСУ ТП / News | SCADA / HMI | Обучение / Trainings | Свяжитесь с нами / Contact Us



Powered by Infopop Corporation
UBB.classic™ 6.7.2