Форум 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 » Драйверы / Device Drivers » Связь с контроллером по Modbus TCP

   
Автор / Author Тема / Topic: Связь с контроллером по Modbus TCP
Yurchik1
Forum Professor / Завсегдатай форума
Участник № / Member № 8907


Icon 1 отправлено / posted      Профиль для / Profile for Yurchik1           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Здравствуйте. Появилась проблема при связи с контроллером. Когда делаю групповой запрос, значения получаю, но появляется такой баг, что через некоторое количество изменения значений все значения обнуляются. Подскажите в чем может быть проблема и как ее исправить?
Сообщения / Posts 162 | Из / 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) какое значение у атрибута 4,I Достоверность?
Проблема с одним контроллером или несколькими?

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


Icon 1 отправлено / posted      Профиль для / Profile for Yurchik1           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Обнуление наблюдаю в панеле МРВ. При обнулении у канала CALL значение атрибута _Т (достоверен).Проблема с одним контроллером.
Сообщения / Posts 162 | Из / 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 (в развернутом атрибуте 124, ARGSIZE), то нулевые значения считываются с самого контроллера.

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


Icon 1 отправлено / posted      Профиль для / Profile for Yurchik1           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Если бы это было дело в контроллере, тогда без группового запроса был бы тот же самый баг. Но если делать каждую переменную в разных компонентах, то все считывается нормально (данные не обнуляются)
Сообщения / Posts 162 | Из / 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 
Сделайте диагностику, чтобы убедиться, что обмен идет корректно. Установите в *.cnf файл ключи:

DEBUGON=F0000400
DBG_INFO_TCP=ON
END_OF_CNF
<пустая_строка>

В окно Системные сообщения и профайлерный протокол будет писаться расшифровка кадров протокола Modbus TCP. Сделайте тест для группового запроса и для одиночного.

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


Icon 1 отправлено / posted      Профиль для / Profile for Yurchik1           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Снова здравствуйте. Почему в информации о проекте стоит ложное количество источников приемников? В проекте на данный момент существует 59 источников. Но скада показывает что их 180. В чем может быть проблема?
Сообщения / Posts 162 | Из / 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 
Инструментальная система лицензируется по числу "Источников/Приемников" в проекте. Поэтому она не может показывать "ложное" количество. То, что показано, то и истина.

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

Так же нам интересно узнать результат диагностики по вопросу "обнуления".

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


Icon 1 отправлено / posted      Профиль для / Profile for Yurchik1           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
В итоге диагностики в системных сообщениях никакой информации не выводилось. Решила проблему привязав аргументы канала Call не к реальному значению (как делала это раньше), а к входному. В итоге обнуление больше не наблюдалось.
Вчера источников/приемников было 180. Сегодня не изменяя проект посмотрела информацию, их стало 79.

Сообщения / Posts 162 | Из / 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.

Если аргумент канала Call имеет привязку, в том числе к числовому каналу, то необходимо учитывать это.

У каналов есть ряд атрибутов.
Атрибуты каналов, описаны в Справочной Системе - Каналы и системные переменные - Общие атрибуты каналов - Атрибуты каналов, отображаемые профайлером.

Принцип обработки каналов описан в разделе Справочной Системы - Каналы и системные переменные - Числовые каналы - Канал класса <интересующий Вас класс канала>.

Если вкратце, то атрибут 0,R Реальное значение является "выходом" (результатом анализа и встроенной обработки) для каналов с направлением INPUT. "Входом" является атрибут 2,In Входное значение. Формально Вы значение, считанное с устройства каналом Call записывали в "выход" числового канала, а канал его перезаписывал на правильное (в атрибуте Входное значение записан "ноль").

По вопросу об источниках/приемниках. Указанная Вами ситуация исключена. Количество источников, используемых в проекте считается точно. Если в проекте не было изменений, то и количество источников/приемников не изменится.

Если у Вас возникли проблемы с конкретным проектом, то Вы можете его нам прислать с описанием вопросов.

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


Icon 1 отправлено / posted      Профиль для / Profile for Yurchik1           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Когда сохраняю проект для МРВ, то становится больше тегов. Почему так? Насколько я поняла, у меня не работает групповой запрос. То есть при сохранении для МРВ каждый аргумент канала CALL считается за отдельную точку ввода вывода. В чем причина?
Сообщения / Posts 162 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Yurchik1
Forum Professor / Завсегдатай форума
Участник № / Member № 8907


Icon 1 отправлено / posted      Профиль для / Profile for Yurchik1           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Помогите разобраться в подтипах 9 и 100 для протокола ModBus.
У меня есть переменная, которую я передаю контроллеру. Переменная целочисленная (integer). Что мне для этого использовать? Rout_Bite(1) или W_Byte(15) или что-то другое?
Что мне использовать для передачи в контроллер переменных используя групповой запрос? Что использовать для считывания слов памяти из контроллера (при помощи группового запроса)? Для передачи контроллеру и считывания с контроллера переменных типа REAL?

Сообщения / Posts 162 | Из / 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 
В TRACE MODE принято обозначение точек в/в, а не тэгов. Точкой ввода-вывода называется любой источник или приемник внешних данных, будь то сигнал контроллера, OPC-тэг или канал DDE и т.п. Описано в http://www.adastra.ru/products/overview/licence/ .
Чтобы определить правильно ли осуществляется обмен, необходима диагностика. Рекомендуем установить диагностику, см. сообщение в этом топике выше. Мы Вам направили письмо электронной почтой, чтобы детально разобраться с проблемой.


Подтипы 9 и 100 описаны в справке в разделе: Приложения - Подтипы каналов - Подтип 9 и 10. Там даны описания дополнений подтипов, в скобках указаны номера функции согласно протоколу Modbus. спецификация протокола дается на сайте https://modbus.org/specs.php , также есть неплохое описание с примерами: https://ipc2u.ru/articles/prostye-resheniya/modbus-rtu/ .
Какую функцию использовать зависит от поддержки той или иной функции Modbus сервером. Надо обратиться или к документации Modbus-устройства или к его настройкам (если он настраиваемый). Там же см. описание формата переменных.

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


Icon 1 отправлено / posted      Профиль для / Profile for Yurchik1           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Здравствуйте. Возможно ли через групповой запрос (канал CALL.ChGroupReq) передавать данные в контроллер? Или групповым запросом можно только читать?
Сообщения / Posts 162 | Из / 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 - Канал CALL.ChGroupReq. Разница в направлении источника и канала.
Сообщения / Posts 17083 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Yurchik1
Forum Professor / Завсегдатай форума
Участник № / Member № 8907


Icon 1 отправлено / posted      Профиль для / Profile for Yurchik1           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Здравствуйте. Не понимаю какой компонент в группе Modbus использовать и для чтения и для записи значений. Требуется не только читать но и передавать значения в контроллер. Пыталась использовать Rout Float (3). Поняла что его можно использовать либо для чтения, либо для записи, но не одновременно. W_Float (16), насколько я понимаю, только передает в контроллер значения.
Сообщения / Posts 162 | Из / 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 
Здравствуйте.
В описании на устройство (так называемой "карте сигналов") должно быть указано какой modbus-функцией можно обратиться к определенному регистру.

Trace Mode работает согласно протоколу ModBus.
В протоколе ModBus нет функции, которая позволяет читать и писать в один регистр.

По этому используйте два отдельных источника ModBus - один для чтения, другой для записи.
Не стоит пренебрегать групповыми запросами (Справочная Система - Каналы и Системные переменные - Канал класса Call - Канал Call.ChGroupReq - Привязка источника ModBus)

Коротко о ModBus:
ModBus RTU (https://ipc2u.ru/articles/prostye-resheniya/modbus-rtu/)

ModBus TCP (https://ipc2u.ru/articles/prostye-resheniya/modbus-tcp/)


Полная информация:
https://modbus.org/

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


Icon 1 отправлено / posted      Профиль для / Profile for Yurchik1           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Если использовать групповой запрос, то какой нужен подтип? W_Word (16) или Rout_Word (3)?
Подключала и тот и тот, все равно либо читает либо пишет. Вывод в том, что единственный вариант это использовать 2 источника?

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


Icon 1 отправлено / posted      Профиль для / Profile for Yurchik1           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Возникла проблема при использовании 2-х источников. Используем для температуры 2 источника разных типов (чтения и записи). Имеется 38 датчиков температуры. И для каждого датчика в переменную Sensor записывается свой Индекс. В зависимости от значения переменной Sensor изменяется значение одной переменной (один источник для всех датчиков). На графическом экране используется для переключения между датчиками ГЭ Группа кнопок. Для значения температуры используется ГЭ Текст. С помощью данного ГЭ передаем значение в канал типа Output, после чего значение передается в канал типа Input. Но проблема в том, что при переключении между датчиками, изменяя Индекс, канал типа Input меняется относительно значения Индекса, а канал типа Output остается прежним.
Сообщения / Posts 162 | Из / 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 
quote:
Отправитель / Originally posted by Yurchik1:
Если использовать групповой запрос, то какой нужен подтип? W_Word (16) или Rout_Word (3)?
Подключала и тот и тот, все равно либо читает либо пишет. Вывод в том, что единственный вариант это использовать 2 источника?

Ответ на оба вопроса дан в прошлом сообщении.

Используйте ту функцию, которая указана в "карте сигналов".

Согласно протоколу ModBus одной функцией нельзя и читать, и писать. Значит, если необходимо один регистр читать и писать, то используйте два источника - один для чтения, другой для записи.


По вопросу использования двух источников.
Из описания не совсем понятно что и как Вы реализуете. Пожалуйста, пришлите на электронную почту Службы технической поддержки Ваш проект (можно тестовый, в котором воспроизводится возникшая ситуация) с описанием. Наши специалисты изучат проект и мы дадим Вам предметные рекомендации.

Сообщения / Posts 17083 | Из / 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