Vipa 313 cs - Modbus RTU

Автоматизация технологических процессов, системы управления, АСУ ТП, АСКУЭ, программирование ПЛК, человеко-машинный интерфейс, сетевое оборудование, протоколы
Аватара пользователя
Автоматизатор
Профессионал
Сообщения: 993
Зарегистрирован: 09 окт 2012, 05:18

Re: Vipa 313 cs - Modbus RTU

Сообщение Автоматизатор »

Если с ModbusTester все нормально - это отлично. Следующий шаг - получить от контроллера требуемый запрос. Надо к контроллеру подключить вместо слейва программу для мониторинга порта и посмотреть реальную посылку, которая отправляется в сеть.

Под ХР я использовал ComPortToolKit. Ссылку не проверял, но описание правильное.
http://www.compt.ru/ru/download.php

Под W7 пока не нашел аналог.

Аватара пользователя
Автоматизатор
Профессионал
Сообщения: 993
Зарегистрирован: 09 окт 2012, 05:18

Re: Vipa 313 cs - Modbus RTU

Сообщение Автоматизатор »

Автоматизатор писал(а):Ссылку не проверял, но описание правильное.
http://www.compt.ru/ru/download.php
Проверил. Программа установилась и запустилась.

Аватара пользователя
Seregas
Любитель
Сообщения: 39
Зарегистрирован: 07 сен 2013, 19:10

Re: Vipa 313 cs - Modbus RTU

Сообщение Seregas »

Автоматизатор писал(а):Может надо писать несколько регистров, пару скажем? Вроде у меня было как, что если 1 регистр писать, то надо использовать другую команду (06 - write single registr).
К сожалению так тоже не выходит.
Да и руководство ОВНА подсказывает на то, что запись в ТРМ212 происходит только с помощью функции 10.

Аватара пользователя
Seregas
Любитель
Сообщения: 39
Зарегистрирован: 07 сен 2013, 19:10

Re: Vipa 313 cs - Modbus RTU

Сообщение Seregas »

Под ХР я использовал ComPortToolKit. Ссылку не проверял, но описание правильное.
http://www.compt.ru/ru/download.php
Спасибо, прямо сейчас будем пробовать. Отпишемся.

Аватара пользователя
Автоматизатор
Профессионал
Сообщения: 993
Зарегистрирован: 09 окт 2012, 05:18

Re: Vipa 313 cs - Modbus RTU

Сообщение Автоматизатор »

Seregas писал(а):К сожалению так тоже не выходит.
Писать 2 регистра?
Seregas писал(а):Да и руководство ОВНА подсказывает на то, что запись в ТРМ212 происходит только с помощью функции 10.
Тоже с преобразователями частоты. Поэтому использую функцию 10, но шлю 2 регистра, хотя мне достаточно одного.

Аватара пользователя
Seregas
Любитель
Сообщения: 39
Зарегистрирован: 07 сен 2013, 19:10

Re: Vipa 313 cs - Modbus RTU

Сообщение Seregas »

И так, мы окончательно запутались.
Установили ComPortToolKit, посылаем данные из Vipa и получаем следующее:
modbos_tool.jpg
Получается, что мы отправляем из Vipa [03] [10] [0004] [00] [01] [02] [00]
А в ComPortToolKit получаем вот такое: [03] [10] [0004] [00] [01] [41] [EA]

Выходит, что мы указываем не верное количество записываемых байт?
Не понимаем, из за чего это происходит.
У вас нет необходимых прав для просмотра вложений в этом сообщении.

Аватара пользователя
Автоматизатор
Профессионал
Сообщения: 993
Зарегистрирован: 09 окт 2012, 05:18

Re: Vipa 313 cs - Modbus RTU

Сообщение Автоматизатор »

Надо отключить от мастера слейв, чтобы он не мешал. Тогда мастер будет слать посылки и достаточно долго ждать ответа. Сразу будет видно, что он шлет. Когда мастер будет слать правильный запрос, то можно подключить слейв и подглядеть обмен полностью.
Seregas писал(а):Получается, что мы отправляем из Vipa [03] [10] [0004] [00] [01] [02] [00]
А в ComPortToolKit получаем вот такое: [03] [10] [0004] [00] [01] [41] [EA]
Что вы формируете - то и получаете. Просто ComPortToolKit позволяет просмотреть отправленные данные!

У вас в буфере для отправки лежит посылка 03 10 00 04 00 01 к которой автоматически дописывается контрольная сумма 41 EA
В интернете можно найти отдельные утилиты для расчета контрольной суммы Modbus.
Seregas писал(а):Выходит, что мы указываем не верное количество записываемых байт?
Не записываемое, а отправляемое!!

Проверьте:
- что лежит у вас в буфере для отправки (DB1),
- количество отправляемых данных (см. вызов SFC217 в указателе DataPtr := P#DB1.DBX0.0 BYTE 9)

Аватара пользователя
Seregas
Любитель
Сообщения: 39
Зарегистрирован: 07 сен 2013, 19:10

Re: Vipa 313 cs - Modbus RTU

Сообщение Seregas »

Автоматизатор, ОГРОМНОЕ ВАМ СПАСИБО!)
Все получилось!
Увеличили размер буфера указав (DataPtr := P#DB1.DBX0.0 BYTE 9)
До этого у нас там было вот так (DataPtr := P#DB1.DBX0.0 BYTE 6), получается, что буфер был мал, для записи данных?

Вопрос как правильно рассчитать размер DataPtr?

Аватара пользователя
Автоматизатор
Профессионал
Сообщения: 993
Зарегистрирован: 09 окт 2012, 05:18

Re: Vipa 313 cs - Modbus RTU

Сообщение Автоматизатор »

Seregas писал(а):Вопрос как правильно рассчитать размер DataPtr?
Очень просто: считается служебная информация отправляемая в сообщении (адрес слейва, код команды, начальный адрес, количество регистров, количество байт) + пересылаемые данные

служебная информация
[03] - адрес слейва
[10] - функция для записи
[00] [04] - номер регистра
[00] [01] - количество записываемых регистров
[02] - количество записываемых байт
итого 7 байт

данные
[00] [76] - сами данные
итого 2 байта

Аватара пользователя
Seregas
Любитель
Сообщения: 39
Зарегистрирован: 07 сен 2013, 19:10

Re: Vipa 313 cs - Modbus RTU

Сообщение Seregas »

Спасибо, теперь все ясно!
Завтра постараемся выложить на форум свои выводы и наработки, что бы подытожить данную тему.
Может пригодится кому нибудь в будущем.

Автоматизатор, огромное Вам спасибо, без Вашей помощи мы бы еще долго разбирались!

Аватара пользователя
Seregas
Любитель
Сообщения: 39
Зарегистрирован: 07 сен 2013, 19:10

Re: Vipa 313 cs - Modbus RTU

Сообщение Seregas »

Подводим итоги.
При построении связи между Vipa 313cs и ОВЕН ТРМ 212, по протоколу Modbus RTU, мы сталкивались со следующими проблемами:
1) Нужно ли конфигурировать HW коммуникационным процессором? Как выяснилось, специальная конфигурация HW в step7 - не нужна.
2) При подключении к ТРМ 212 к интерфейс PTP обнаружилось, что линию А нужно подключать к линии В, а не так как указанно в мануале vipa.
3) Для чтения и записи необходимо формировать телеграмму определенной структуры.
Для тестирования удобно использовать программы Modbus Tester и ComPortToolKit.

Прикрепляем архив в котором еще один проект в котором реализован данный протокол, может кому пригодится.
project.rar
Еще раз выражаем свою благодарность Автоматизатору! Спасибо Вам за помощь.
У вас нет необходимых прав для просмотра вложений в этом сообщении.

service
Специалист
Сообщения: 254
Зарегистрирован: 16 ноя 2012, 10:23

Re: Vipa 313 cs - Modbus RTU

Сообщение service »

есть несколько вопросов:
1)алгоритм для работы с несколькими ведомыми устройствами может быть такой, как на рисунке?
2)SFC_217 Data_Ptr - это буфер. для 1-го устройства назначаю, например P#DB1.DBX 0.0 BYTE 8, для 2-го, например, P#DB2.DBX 0.0 BYTE 8, для 3-го P#DB3.DBX 0.0 BYTE 8?
3)с помощью SFC_217 можем отправлять как команды на чтение из ведомого устройства, так и на запись? в зависимости от кода телеграммы
4)SFC_218 нужен только лишь для подтверждения отправленной телеграммы?
У вас нет необходимых прав для просмотра вложений в этом сообщении.

Аватара пользователя
Автоматизатор
Профессионал
Сообщения: 993
Зарегистрирован: 09 окт 2012, 05:18

Re: Vipa 313 cs - Modbus RTU

Сообщение Автоматизатор »

service писал(а):1)алгоритм для работы с несколькими ведомыми устройствами может быть такой, как на рисунке?
2)SFC_217 Data_Ptr - это буфер. для 1-го устройства назначаю, например P#DB1.DBX 0.0 BYTE 8, для 2-го, например, P#DB2.DBX 0.0 BYTE 8, для 3-го P#DB3.DBX 0.0 BYTE 8?
3)с помощью SFC_217 можем отправлять как команды на чтение из ведомого устройства, так и на запись? в зависимости от кода телеграммы
на все вопросы ДА
service писал(а):4)SFC_218 нужен только лишь для подтверждения отправленной телеграммы?
Точнее, получение ответа от слейва. Если была команда на запись, то сообщает удачно или ошибка. Если была команда считать данные, то шлет запрошенные данные.

service
Специалист
Сообщения: 254
Зарегистрирован: 16 ноя 2012, 10:23

Re: Vipa 313 cs - Modbus RTU

Сообщение service »

L 1 //Slave address
T DB2.DATEN[0]
L 16 //Код функции 16 Запись n слов
T DB2.DATEN[1]
L 256 //адрес первого записываемого регистра
T DB2.DBW2
L 3 //количество регистров для записи
T DB2.DBW4
L 6 //количество байт с данными
T DB2.DATEN[6]
L 56
T DB2.DBW 7
L 3
T DB2.DBW 9
L 10258
T DB2.DBW 11

это из программы. в DB2.DBW7 записываем собственно передаваемые данные, а что пишется в DB2.DBW9 и DB2.DBW11?

service
Специалист
Сообщения: 254
Зарегистрирован: 16 ноя 2012, 10:23

Re: Vipa 313 cs - Modbus RTU

Сообщение service »

и еще в программе не понятно, почему SFC217 вызывается в FC6 и FC202?

Аватара пользователя
Автоматизатор
Профессионал
Сообщения: 993
Зарегистрирован: 09 окт 2012, 05:18

Re: Vipa 313 cs - Modbus RTU

Сообщение Автоматизатор »

service писал(а):и еще в программе не понятно, почему SFC217 вызывается в FC6 и FC202?
Что то я не пойму про что речь. В какой программе?

service
Специалист
Сообщения: 254
Зарегистрирован: 16 ноя 2012, 10:23

Re: Vipa 313 cs - Modbus RTU

Сообщение service »

Seregas писал(а):Подводим итоги.
При построении связи между Vipa 313cs и ОВЕН ТРМ 212, по протоколу Modbus RTU, мы сталкивались со следующими проблемами:
1) Нужно ли конфигурировать HW коммуникационным процессором? Как выяснилось, специальная конфигурация HW в step7 - не нужна.
2) При подключении к ТРМ 212 к интерфейс PTP обнаружилось, что линию А нужно подключать к линии В, а не так как указанно в мануале vipa.
3) Для чтения и записи необходимо формировать телеграмму определенной структуры.
Для тестирования удобно использовать программы Modbus Tester и ComPortToolKit.

Прикрепляем архив в котором еще один проект в котором реализован данный протокол, может кому пригодится.
project.rar
Еще раз выражаем свою благодарность Автоматизатору! Спасибо Вам за помощь.
вот эта программа

service
Специалист
Сообщения: 254
Зарегистрирован: 16 ноя 2012, 10:23

Re: Vipa 313 cs - Modbus RTU

Сообщение service »

чуть выше на этой странице

Аватара пользователя
Автоматизатор
Профессионал
Сообщения: 993
Зарегистрирован: 09 окт 2012, 05:18

Re: Vipa 313 cs - Modbus RTU

Сообщение Автоматизатор »

service писал(а):project.rar
Были такие подозрения. Но в скаченном архиве две программы "11x_mo_1 кушков\" и "Modbus_R\". Ни в одной нет ни FC6 ни FC202!!

service
Специалист
Сообщения: 254
Зарегистрирован: 16 ноя 2012, 10:23

Re: Vipa 313 cs - Modbus RTU

Сообщение service »

могу в WinPLC скинуть

Ответить