Форум 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 » Modbus TCP IP + Delta

   
Автор / Author Тема / Topic: Modbus TCP IP + Delta
Demus
Junior Member / Новичок
Участник № / Member № 3560


Icon 1 отправлено / posted      Профиль для / Profile for Demus           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Здравствуйте.
По проекту необходимо обеспечить связь ПЛК производства Delta Electronics (DVP28SV) и TraceMode по Ethernet. Также используется модуль DVPEN01-SL. ОС Win Vista Home
Попробовали создать простой проект в ТМ6, предварительно изучив Пример работы с ModbusTCP из темы Тестовые примеры. Считывать и записывать параметры не получается.
Возникли следующие вопросы:
1) Из встроенной Справки не понятно, что означают поля Номер порта, Адрес, Канал в редакторе компонентов источников-приемников.
Порт по идее 502 используется. Но число 0x1f6 никак не вписывается в поле Номер порта (это поле 1байтное).
У поля Адрес максимальное значение тоже 0xff. А в контроллере адреса достигают 0xFFFF. Как использовать это поле?
Для чего предназначено поле Канал?
2) Нужно ли специально редактировать файл ip_modbus? Или достаточно задать параметры в редакторе компонентов источников-приемников.

Заранее спасибо.

Сообщения / Posts 10 | Из / 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) В поле Номер порта задается номер COM порта (используется только для обмена по Mddbus RTU)

2) Поле Адрес задает сетевой адрес устройства (это не ip адрес)

3) Поле Канал задает адрес регистра в контроллере. Также Вам нужно использовать соответсвующую функцию чтения.

4) файл ip_modbus нужно редактировать только в том случае, когда Вам необходимо задать специальные параметры обмена.

Сообщения / Posts 17117 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Demus
Junior Member / Новичок
Участник № / Member № 3560


Icon 1 отправлено / posted      Профиль для / Profile for Demus           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 

Сообщения / Posts 10 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Demus
Junior Member / Новичок
Участник № / Member № 3560


Icon 1 отправлено / posted      Профиль для / Profile for Demus           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 

Сообщения / Posts 10 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Demus
Junior Member / Новичок
Участник № / Member № 3560


Icon 5 отправлено / posted      Профиль для / Profile for Demus           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Спасибо за ответ. Связь установить удалось. Теперь необходимо считывать состояния внутренних реле (0 или 1). Для установки или сброса использую W_SingleCoil(5).
А вот для чтения состояния реле ничего из списка подтипов 9 и 100 не подходит.
Подскажите есть ли такая возможность без каких-либо дополнительных ухищрений (считывание подряд байта состояний реле с помощью Rin_Byte(2) и дальнейшая программмная обработка например)?

Сообщения / Posts 10 | Из / 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 17117 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
TT
Active Forum Member / Активный участник форума
Участник № / Member № 4177


Icon 1 отправлено / posted      Профиль для / Profile for TT           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Добрый день. А по подробнее нельзя описать как организовать процесс считывания, используя функцию Rin_Byte(2), или если можно вышлите пример с прогрпммной обработкой на почтовый ящик.Заранее спасибо.
Сообщения / Posts 66 | Из / 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 
Функция Rin_Byte(2) считывает дискретные входы - от 1 до 8 входов.
Адрес первого входа задается в HEX-формате в поле "Канал" соответствующего компонента слоя "Источники/Приемники".
Количество считываемых входов (меньше 8) задается в разрядности канала HEX, связанного с этим источником. По умолчанию считывается 8 входов.

Сообщения / Posts 17117 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Michael R
Junior Member / Новичок
Участник № / Member № 4315


Icon 1 отправлено / posted      Профиль для / Profile for Michael R           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Здравствуйте!
Можно ли читать с контроллера по протоколу ModbusTCP данные, имеющие формат 4х байтового целого числа?
Не понятно, можно ли составить из двух 16 битных слов прочитанных через modbus, одну переменную 32х разрядную целую, не прибегая к программированию на технологических языках?

Сообщения / Posts 5 | Из / From: Russia  |  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.ChGroupRq с привязкой MODBUS.R_FIFO_Queue
Сообщения / Posts 17117 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Michael R
Junior Member / Новичок
Участник № / Member № 4315


Icon 1 отправлено / posted      Профиль для / Profile for Michael R           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Но дело в том, что компонент R_FIFO_Queue
реализует функцию 24 modbus (Read FIFO Queue).

А требуется читать данные с помощью функций 3 (Read Holding Registers) либо 4 (Read Input Registers).
Ведь данные типа float нормально прочитываются, как чтение пары соседних регистров и преобразование в 32х битное float. Нужно то же самое, только с преобразованием в 32х битное целое.
Т.е. это сделать штатными средствами не получится?

Сообщения / Posts 5 | Из / From: Russia  |  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.ChGroupRq с привязкой MODBUS.R_FIFO_Queue прежде, чем делать выводы.

Параметр=1

Канал посылает в контроллер команду MODBUS, сформированную по следующим правилам:

номер функции соответствует аргументу arg0

Сообщения / Posts 17117 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Michael R
Junior Member / Новичок
Участник № / Member № 4315


Icon 1 отправлено / posted      Профиль для / Profile for Michael R           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Ага, понятно. спасибо!
Сообщения / Posts 5 | Из / From: Russia  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Michael R
Junior Member / Новичок
Участник № / Member № 4315


Icon 1 отправлено / posted      Профиль для / Profile for Michael R           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
А порядок следования байт при записи в аргумент DINT можно менять?
Сообщения / Posts 5 | Из / From: Russia  |  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 17117 | Из / 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