Собственный протокол по RS485

Инженерное программное обеспечение
Ответить
santi90
Дилетант
Сообщения: 10
Зарегистрирован: 01 фев 2017, 16:58

Собственный протокол по RS485

Сообщение santi90 »

Добрый день!
Обычно для связи с различного рода частотниками использовал стандартные modbus, однако появилась задача через модуль CM1241 RS485 связываться с частотником по его собственному модбасоподобному протоколу.
Какие блоки использовать для этого? можно ли где то в сети найти примеры?
Спасибо

santi90
Дилетант
Сообщения: 10
Зарегистрирован: 01 фев 2017, 16:58

Re: Собственный протокол по RS485

Сообщение santi90 »

Можно ли для этого использовать блоки Point To Point?

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

Re: Собственный протокол по RS485

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

Какой контроллер?
Какая среда программирования?
Какая версия?

Михайло
Администратор
Сообщения: 4094
Зарегистрирован: 19 сен 2012, 19:16

Re: Собственный протокол по RS485

Сообщение Михайло »

В ТИА Портале блоки Modbus RTU используют функции Point-to-point, так что дерзайте.
Автоматизатор писал(а):Какой контроллер?
Какая среда программирования?
CM1241 - это модуль 1200-го.

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

Re: Собственный протокол по RS485

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

Михайло писал(а):В ТИА Портале блоки Modbus RTU используют функции Point-to-point
Наоборот. Для Modbus RTU - блоки Modbus RTU, а для нестандартного протокола - Point-to-point. Все правильно.

santi90
Дилетант
Сообщения: 10
Зарегистрирован: 01 фев 2017, 16:58

Re: Собственный протокол по RS485

Сообщение santi90 »

Да, TIA portal 13 sp1 и плк s7-1200.
спасибо

santi90
Дилетант
Сообщения: 10
Зарегистрирован: 01 фев 2017, 16:58

Re: Собственный протокол по RS485

Сообщение santi90 »

Автоматизатор писал(а):
Михайло писал(а):В ТИА Портале блоки Modbus RTU используют функции Point-to-point
Наоборот. Для Modbus RTU - блоки Modbus RTU, а для нестандартного протокола - Point-to-point. Все правильно.
В данный момент тестирую блоки PtP на протоколе Modbus rtu, так как пока нужного оборудования нет в наличие.
Не могу понять, почему то не приходит ответ от прибора....

Коннект проходит и судя по статусу без ошибок, модуль все время посылает запрос в прибор, но ничего не получает обратно.... статус Send_Ptp = 16#7000, что расшифровывается блок в ожидании
Прилагаю скрины, что может быть не так? нужен свежий взгляд со стороны, спасибо!

Пытаюсь взять функцией 04 с адреса 518 один регистр, хорошие попытки отправки идут.... но на получение ничего
У вас нет необходимых прав для просмотра вложений в этом сообщении.

Михайло
Администратор
Сообщения: 4094
Зарегистрирован: 19 сен 2012, 19:16

Re: Собственный протокол по RS485

Сообщение Михайло »

PORT_CFG надо удерживать включенным до тех пор, пока не будет получен ответ DONE. Убери контакт со входа EN. В принципе для подобных блоков (коммуникационных) следует применять такое правило - "вход EN всегда включен, даже если блок не используется". Особенно при первой отладке связи. :)

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

Re: Собственный протокол по RS485

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

Для отладки надо подключиться к линии программой "Com Port Toolkit" или аналогичной. Смотреть (по отдельности и совместно):
- что контроллер шлет в сеть,
- что отвечает слейв.

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

Re: Собственный протокол по RS485

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

santi90 писал(а):В данный момент тестирую блоки PtP на протоколе Modbus rtu...Пытаюсь взять функцией 04 с адреса 518 один регистр
Меня смущает функция "Send_PtP".
Если делать самодельный Модбас драйвер, то надо формировать самому полную команду модбас, с контрольной суммой.
Что за 7 байт шлется? В DB110 восемь байт

Изображение

и контрольная сумма у меня другая
[07][04][02][06][00][01][D0][15]

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

Re: Собственный протокол по RS485

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

Автоматизатор писал(а):[07][04][02][06][00][01][D0][15]
Это из программы "Modbus Tester" - можно легко сформировать произвольный запрос и опрашивать слейвы. Проверять правильность монтажа и формирования запросов.

santi90
Дилетант
Сообщения: 10
Зарегистрирован: 01 фев 2017, 16:58

Re: Собственный протокол по RS485

Сообщение santi90 »

Автоматизатор писал(а):
Автоматизатор писал(а):[07][04][02][06][00][01][D0][15]
Это из программы "Modbus Tester" - можно легко сформировать произвольный запрос и опрашивать слейвы. Проверять правильность монтажа и формирования запросов.
последние два байта 7 и 8 содержат в себе контрольную сумму, которую как раз я и сформировал с помощью modbus тестера...
странно

07 04 02 06 00 01 10 19...

santi90
Дилетант
Сообщения: 10
Зарегистрирован: 01 фев 2017, 16:58

Re: Собственный протокол по RS485

Сообщение santi90 »

Михайло писал(а):PORT_CFG надо удерживать включенным до тех пор, пока не будет получен ответ DONE. Убери контакт со входа EN. В принципе для подобных блоков (коммуникационных) следует применять такое правило - "вход EN всегда включен, даже если блок не используется". Особенно при первой отладке связи. :)
да забавный момент, надо убрать, спасибо
но ведь он хотя бы один раз что то считал?

santi90
Дилетант
Сообщения: 10
Зарегистрирован: 01 фев 2017, 16:58

Re: Собственный протокол по RS485

Сообщение santi90 »

Что то совсем перестал работать счетчик хороших посылок от Send блока...
при этом лампочка на модуле моргает

santi90
Дилетант
Сообщения: 10
Зарегистрирован: 01 фев 2017, 16:58

Re: Собственный протокол по RS485

Сообщение santi90 »

отлично! Все получилось.Дело было в блоке SEND, в свойстве LENGTH необходимо указать 0, а не число байтов пакета как я думал до этого, ноль означает забрать целиком пакет....
хотя конечно странно все это, должно работать и с цифрой, но возможно я не правильно указывал эти цифры

santi90
Дилетант
Сообщения: 10
Зарегистрирован: 01 фев 2017, 16:58

Re: Собственный протокол по RS485

Сообщение santi90 »

Автоматизатор писал(а):
Автоматизатор писал(а):[07][04][02][06][00][01][D0][15]
Это из программы "Modbus Tester" - можно легко сформировать произвольный запрос и опрашивать слейвы. Проверять правильность монтажа и формирования запросов.
и да, моя сумма была не верна, я изначально ее получил из неправильной посылки [07][04][02][06][00][10], а потом нашел ошибку, исправил ее, но сумму забыл)

Ответить