Форум 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 
Здравствуйте.
Стоит задача передача значений давления по протоколу ModBus TCP в контроллер. Не могу понять, как передать несколько значений давления (аварийные границы, смещение, значение при имитации и т д.) с помощью только одного компонента? У каждого значения имеется свой адрес.

Сообщения / 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 
Использовать групповую запись. В этом случае используется 1 компонент Источников/приемников на несколько параметров подряд. На нашем сайте есть видеоуроки по работе с протоколом Modbus, в т.ч. по групповым запросам:

http://www.adastra.ru/products/drivers/modbus/

Сообщения / Posts 17335 | Из / 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 
Спасибо, подскажите еще как работать в TM6 со словами памяти %MW?
Сообщения / 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, то стандартно как к любому другому регистру в зависимости от поддерживаемой функции. Обратитесь к документации на устройство, где должна быть карта соответствия адресов данных слов с номерами регистров Modbus.
Сообщения / Posts 17335 | Из / 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 
Если адреса разные и в промежуток между ними нельзя писать, то остается работать с одиночным запросами, один адрес - один источник - один канал.
Сообщения / Posts 17335 | Из / 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 
В каналах класса HEX в атрибутах 10..25 уже есть значения отдельных битов. См. справку: каналы и системные переменные TRACE MODE - Числовые каналы - канал класса HEX.

Можно выполнить распаковку с помощью программы. Например в языке FBD встроены блоки для распаковки слов/байтов/битов в разделе Побитовые.

Сообщения / Posts 17335 | Из / 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 
То есть, если я запишу значение в атрибут к примеру бит 4, то при передачи в контроллер слова памяти (16 бит) значение запишется именно в 4 бит данного слова?
Сообщения / 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 17335 | Из / 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 
Каналы типа Float разбить на биты можно только программно? Как в таких каналах данные передаются в контроллер?
Сообщения / 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 
Уточните какую задачу Вы планируете решить.

Если есть необходимость работать с битами, то удобнее использовать канал Hex16.

Сообщения / Posts 17335 | Из / 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 
у менять есть переменные типа bool, int, dint, real.
Работаю с протоколом Modbus TCP. Для экономии точек ввода/вывода нужно использовать одну точку на несколько переменных, если это возможно. С типом bool я так поняла можно использовать атрибуты канала HEX16 для распаковки слова на биты, и использовать 16 бит на 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, под разные типы регистров заложены разные modbus-функции (команды опроса/записи). Принципиально нельзя регистр с данными типа bool и регистр с типом данных real считывать одной функцией.

Для экономии точек ввода/вывода можете использовать групповые запросы
Пример групповых запросов по 3 и 4 функциям https://youtu.be/_2jF515uuPQ

Сообщения / Posts 17335 | Из / 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 
То есть, у меня стоит задача выводить значения переменных разных типов. У каждой переменной свой адрес (к примеру %MW101). И если у каждой переменной, свой адрес, то я не могу использовать групповой запрос. Следовательно, у каждой переменной должен быть свой тег. И экономить теги не получится?
Помогите понять как читать и передавать значения переменных по адресам слов %MW? Нигде не могу найти информацию или примеры.

Сообщения / 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 
Если адреса разнесены и групповой запрос исключен, используйте одиночные запросы. Если не хватает мощности Инструментальной среды обратитесь в отдел продаж за апгрейдом, контакты: http://www.adastra.ru/about/howtofind/

Найдите соответствие адреса этих слов функциям и адресам Modbus TCP для данного устройства. У нас есть видеоурок по настройке контроллера ПЛК 160, где есть описание настройки контроллера как Modbus Slave устройства с упоминанием внутренней адресации: https://youtu.be/cmUQDohX_ms

Сообщения / Posts 17335 | Из / 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 
Не получается читать биты из контроллера. Создаю компонент, ввожу адрес, канал, тип вызова, IP контроллера. Переношу группу Modbus в узел RTM.
Аргумент экрана привязываю к биту канала. Но значение не считывается. В чем ошибка?

Сообщения / 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 
Канал при это достоверен? В реальном его значении появились данные, если смотреть в дереве проекта в Панеле МРВ? Если недостоверен, что в его 240 атрибуте?
Сообщения / Posts 17335 | Из / 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 
240 атрибут же для канала Call. У меня канал HEX16. В атрибуте 4 (достоверность) пишет _Т, значит достоверен. В реальном значении данных нет
Сообщения / 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 
Если атрибут Достоверность _T, то канал достоверен и нет ошибок обмена.

Скорее всего Вы считываете не тот регистр.

Пришлите на электронный адрес технической поддержки (адрес указан в Личном Кабинете в разделе "Получить техническую поддержку") проект, папку проекта и описание какой регистр Вы пытаетесь считать.

Сообщения / Posts 17335 | Из / 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 
Поняла в чем проблема. Но теперь не понимаю другое. У меня переменная типа bool изменяет значение каждую секунду на 0 и 1. В профайлере меняется значение и 1 бита (атрибут 10) и 1 байта (атрибут 100) и 0-3 битов (атрибут 104) тоже. Как это понять?
Сообщения / 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 
помогите разобраться. не могу передать значение канала в контроллер. Создаю компонент W_Word. Задаю значения адреса, канала, типа, ip контроллера. Привязываю канал к данному компоненту. Но ничего не происходит. Значение в профайлере меняется, а значение в контроллере нет
Сообщения / 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 
Данные атрибуты специфические для каналов HEX и содержат значения соответствующих битов/групп битов Реального значения канала.
В справке описано в разделе Каналы и системные переменные - Числовые каналы - Канал класса HEX.

Источник/приемник и канал должны быть направления OUT, после записи значения в канал анализируйте его достоверность. Если недостоверен, то стандартно отлаживать обмен.

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