Форум 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

   
Автор / Author Тема / Topic: MODBUS
Polag
Junior Member / Новичок
Участник № / Member № 4573


Icon 1 отправлено / posted      Профиль для / Profile for Polag           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Добрый день.
Пытаемся добится связи между Trace Mode 6.06 и преобразователем ДВ2ТСМ-А фирмы Микрофор. Проблема в том что преобразователь не поддерживает стандартные функции чтения-записи Modbus. В техподдержке Микрофор нам сказали что необходимо использовать 25 либо 19 функцию чтения-записи Modbus'a, которых нет в Trace Mode.
Подскажите пожайлуста возможные пути решения данной проблемы.

Сообщения / Posts 12 | Из / From: Russian federation  |  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, функции с 1 по 64 относятся к категории публичных функций. Часть из них определена в стандарте, остальные зарезервированы и не должны применяться пользователями стандарта для реализации своих функций.
Штатной поддержки этих функций в Trace Mode 6 нет.

Используя функцию 25 в качестве пользовательской, производители этого преобразователя нарушили стандарт.
Пользовательские функции в стандарте Modbus могут быть с кодами от 65 до 72 и от 100 до 110.

В Trace Mode 6 существует возможность формирования пользовательских функций Modbus с помощью каналов CALL.ChGroupReq, привязанных к переменной R_FIFO_Queue (см.документацию).

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


Icon 1 отправлено / posted      Профиль для / Profile for Polag           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Добрый день.
Воспользовался вашим советом. Создал канал CALL.ChGroupReq, выставил параметр 1, в аргументе канала ARG0 выставил значения по умолчанию 19(номер функции ModBus, котроый мне нобходимо использвать).
Привязал CALL.ChGroupReq к MODBUS.R_FIFO_Queue.
В MODBUS.R_FIFO_Queue выставил следующие значения:
Номер порта - 0x0(com1)
Адрес - 0x1
Канал - 0x200
Направление - input
формат - дискрет
Произвожу мониторинг порта, никаких посылок в порт не идет.
Подскажите пожайлуста может я что-нибудь не правильно делаю?

Сообщения / Posts 12 | Из / From: Russian federation  |  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 
Вы в узле COM1 с соответствующими настройками создали?

Перепроверил именно в Ваших настройках, обращения в порт осуществляются в соответствии с документацией (хотя непонятно, в какие аргументы Вы будете принимать ответ).

Пришлите, пожалуйста, проект - файл *.prj.

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


Icon 1 отправлено / posted      Профиль для / Profile for Polag           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Спасибо за ответ. Создал COM порт, посылки пошли.
Нам необходима комаанда на чтение одного регистра т.е.
01 19 20 00 D1 7F
где
01 адрес порта
19 номер команды
20
00 адрес регитра
D1 и 7F crc
Настраивая канал MODBUS.R_FIFO_Queueмы получаем посылку слдующего содержания
01 19 20 00 00 00 D1 7F
две дополнительных пары нулей в посылке это кол-во считываемых регистров.
Подскажите можно ли настройками из посылки убрать эти пары нулей?

Сообщения / Posts 12 | Из / From: Russian federation  |  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-Slave.
1. Задайте каналу CALL.ChGroupReq ПАРАМЕТР=130.
2. Задайте в CALL.ChGroupReq 4 INPUT-аргумента типа USINT с начальными значениями 0x01, 0x19, 0x20, 0x00.
3. Далее создайте необходимое для приема ответа количество аргументов типа OUT нужного формата.

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