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 пока не нашел аналог.
Под ХР я использовал 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
Re: Vipa 313 cs - Modbus RTU
К сожалению так тоже не выходит.Автоматизатор писал(а):Может надо писать несколько регистров, пару скажем? Вроде у меня было как, что если 1 регистр писать, то надо использовать другую команду (06 - write single registr).
Да и руководство ОВНА подсказывает на то, что запись в ТРМ212 происходит только с помощью функции 10.
Re: Vipa 313 cs - Modbus RTU
Спасибо, прямо сейчас будем пробовать. Отпишемся.Под ХР я использовал ComPortToolKit. Ссылку не проверял, но описание правильное.
http://www.compt.ru/ru/download.php
- Автоматизатор
- Профессионал
- Сообщения: 993
- Зарегистрирован: 09 окт 2012, 05:18
Re: Vipa 313 cs - Modbus RTU
Писать 2 регистра?Seregas писал(а):К сожалению так тоже не выходит.
Тоже с преобразователями частоты. Поэтому использую функцию 10, но шлю 2 регистра, хотя мне достаточно одного.Seregas писал(а):Да и руководство ОВНА подсказывает на то, что запись в ТРМ212 происходит только с помощью функции 10.
Re: Vipa 313 cs - Modbus RTU
И так, мы окончательно запутались.
Установили ComPortToolKit, посылаем данные из Vipa и получаем следующее: Получается, что мы отправляем из Vipa [03] [10] [0004] [00] [01] [02] [00]
А в ComPortToolKit получаем вот такое: [03] [10] [0004] [00] [01] [41] [EA]
Выходит, что мы указываем не верное количество записываемых байт?
Не понимаем, из за чего это происходит.
Установили ComPortToolKit, посылаем данные из Vipa и получаем следующее: Получается, что мы отправляем из 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
Надо отключить от мастера слейв, чтобы он не мешал. Тогда мастер будет слать посылки и достаточно долго ждать ответа. Сразу будет видно, что он шлет. Когда мастер будет слать правильный запрос, то можно подключить слейв и подглядеть обмен полностью.
У вас в буфере для отправки лежит посылка 03 10 00 04 00 01 к которой автоматически дописывается контрольная сумма 41 EA
В интернете можно найти отдельные утилиты для расчета контрольной суммы Modbus.
Проверьте:
- что лежит у вас в буфере для отправки (DB1),
- количество отправляемых данных (см. вызов SFC217 в указателе DataPtr := P#DB1.DBX0.0 BYTE 9)
Что вы формируете - то и получаете. Просто ComPortToolKit позволяет просмотреть отправленные данные!Seregas писал(а):Получается, что мы отправляем из Vipa [03] [10] [0004] [00] [01] [02] [00]
А в ComPortToolKit получаем вот такое: [03] [10] [0004] [00] [01] [41] [EA]
У вас в буфере для отправки лежит посылка 03 10 00 04 00 01 к которой автоматически дописывается контрольная сумма 41 EA
В интернете можно найти отдельные утилиты для расчета контрольной суммы Modbus.
Не записываемое, а отправляемое!!Seregas писал(а):Выходит, что мы указываем не верное количество записываемых байт?
Проверьте:
- что лежит у вас в буфере для отправки (DB1),
- количество отправляемых данных (см. вызов SFC217 в указателе DataPtr := P#DB1.DBX0.0 BYTE 9)
Re: Vipa 313 cs - Modbus RTU
Автоматизатор, ОГРОМНОЕ ВАМ СПАСИБО!)
Все получилось!
Увеличили размер буфера указав (DataPtr := P#DB1.DBX0.0 BYTE 9)
До этого у нас там было вот так (DataPtr := P#DB1.DBX0.0 BYTE 6), получается, что буфер был мал, для записи данных?
Вопрос как правильно рассчитать размер DataPtr?
Все получилось!
Увеличили размер буфера указав (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 байта
Re: Vipa 313 cs - Modbus RTU
Спасибо, теперь все ясно!
Завтра постараемся выложить на форум свои выводы и наработки, что бы подытожить данную тему.
Может пригодится кому нибудь в будущем.
Автоматизатор, огромное Вам спасибо, без Вашей помощи мы бы еще долго разбирались!
Завтра постараемся выложить на форум свои выводы и наработки, что бы подытожить данную тему.
Может пригодится кому нибудь в будущем.
Автоматизатор, огромное Вам спасибо, без Вашей помощи мы бы еще долго разбирались!
Re: Vipa 313 cs - Modbus RTU
Подводим итоги.
При построении связи между Vipa 313cs и ОВЕН ТРМ 212, по протоколу Modbus RTU, мы сталкивались со следующими проблемами:
1) Нужно ли конфигурировать HW коммуникационным процессором? Как выяснилось, специальная конфигурация HW в step7 - не нужна.
2) При подключении к ТРМ 212 к интерфейс PTP обнаружилось, что линию А нужно подключать к линии В, а не так как указанно в мануале vipa.
3) Для чтения и записи необходимо формировать телеграмму определенной структуры.
Для тестирования удобно использовать программы Modbus Tester и ComPortToolKit.
Прикрепляем архив в котором еще один проект в котором реализован данный протокол, может кому пригодится. Еще раз выражаем свою благодарность Автоматизатору! Спасибо Вам за помощь.
При построении связи между Vipa 313cs и ОВЕН ТРМ 212, по протоколу Modbus RTU, мы сталкивались со следующими проблемами:
1) Нужно ли конфигурировать HW коммуникационным процессором? Как выяснилось, специальная конфигурация HW в step7 - не нужна.
2) При подключении к ТРМ 212 к интерфейс PTP обнаружилось, что линию А нужно подключать к линии В, а не так как указанно в мануале vipa.
3) Для чтения и записи необходимо формировать телеграмму определенной структуры.
Для тестирования удобно использовать программы Modbus Tester и ComPortToolKit.
Прикрепляем архив в котором еще один проект в котором реализован данный протокол, может кому пригодится. Еще раз выражаем свою благодарность Автоматизатору! Спасибо Вам за помощь.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Re: Vipa 313 cs - Modbus RTU
есть несколько вопросов:
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 нужен только лишь для подтверждения отправленной телеграммы?
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 нужен только лишь для подтверждения отправленной телеграммы?
Re: Vipa 313 cs - Modbus RTU
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?
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?
Re: Vipa 313 cs - Modbus RTU
и еще в программе не понятно, почему SFC217 вызывается в FC6 и FC202?
- Автоматизатор
- Профессионал
- Сообщения: 993
- Зарегистрирован: 09 окт 2012, 05:18
Re: Vipa 313 cs - Modbus RTU
Что то я не пойму про что речь. В какой программе?service писал(а):и еще в программе не понятно, почему SFC217 вызывается в FC6 и FC202?
Re: Vipa 313 cs - Modbus RTU
вот эта программаSeregas писал(а):Подводим итоги.
При построении связи между Vipa 313cs и ОВЕН ТРМ 212, по протоколу Modbus RTU, мы сталкивались со следующими проблемами:
1) Нужно ли конфигурировать HW коммуникационным процессором? Как выяснилось, специальная конфигурация HW в step7 - не нужна.
2) При подключении к ТРМ 212 к интерфейс PTP обнаружилось, что линию А нужно подключать к линии В, а не так как указанно в мануале vipa.
3) Для чтения и записи необходимо формировать телеграмму определенной структуры.
Для тестирования удобно использовать программы Modbus Tester и ComPortToolKit.
Прикрепляем архив в котором еще один проект в котором реализован данный протокол, может кому пригодится. Еще раз выражаем свою благодарность Автоматизатору! Спасибо Вам за помощь.
Re: Vipa 313 cs - Modbus RTU
чуть выше на этой странице
- Автоматизатор
- Профессионал
- Сообщения: 993
- Зарегистрирован: 09 окт 2012, 05:18
Re: Vipa 313 cs - Modbus RTU
Были такие подозрения. Но в скаченном архиве две программы "11x_mo_1 кушков\" и "Modbus_R\". Ни в одной нет ни FC6 ни FC202!!service писал(а):project.rar
Re: Vipa 313 cs - Modbus RTU
могу в WinPLC скинуть