реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Подскажите, где взять порт MODBUS для STM32F4
TolikG
сообщение Jun 5 2015, 07:58
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 86
Регистрация: 19-03-10
Пользователь №: 56 071



У меня Eval Board stm32f439. Нужен порт MODBUS RTU. Ha FreeModbus подходящего не нашел. Буду признателен за любую информацию.
Go to the top of the page
 
+Quote Post
mantech
сообщение Jun 5 2015, 08:59
Сообщение #2


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(TolikG @ Jun 5 2015, 10:58) *
У меня Eval Board stm32f439. Нужен порт MODBUS RTU. Ha FreeModbus подходящего не нашел. Буду признателен за любую информацию.


Мастер или ведомый нужен - это раз,
и второе - если уарт подняли в режиме контроля четности, то любая библиотека подойдет, если нужны стандартные режимы до 16го, а если расширенные - то только ручками...
Go to the top of the page
 
+Quote Post
x83
сообщение Jun 6 2015, 03:51
Сообщение #3


Участник
*

Группа: Свой
Сообщений: 67
Регистрация: 11-07-07
Из: Екб
Пользователь №: 29 052



Использую библиотеку FreeModbus (freemodbus.org) взял за основу для LPC214x. Развития проекта нет уже с 2010 года, но то как она сделана и как работает меня устраивает.
Go to the top of the page
 
+Quote Post
Ruslan1
сообщение Jun 6 2015, 06:47
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 360
Регистрация: 6-03-06
Из: Кишинев
Пользователь №: 15 025



Цитата(mantech @ Jun 5 2015, 11:59) *
Мастер или ведомый нужен - это раз,
и второе - если уарт подняли в режиме контроля четности, то любая библиотека подойдет, если нужны стандартные режимы до 16го, а если расширенные - то только ручками...

Только будьте готовы, что многие производители оборудования с RTU используют просто 8N1. Иногда расщедриваются на 8N2, и я лично не видел честного RTU с включенной четностью.
Это я к тому, что нужно быть готовым к использованию различных конфигураций. Если библиотека этого не может, то ее придется допиливать.
У меня самая частая конфигурация- когда я принимаю 8N1 (то есть корректно приму и 8N2), а передаю 8N2.
Go to the top of the page
 
+Quote Post
DmitryM
сообщение Jun 6 2015, 07:39
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 583
Регистрация: 7-06-06
Из: Таганрог
Пользователь №: 17 840



Цитата(Ruslan1 @ Jun 6 2015, 10:47) *
Только будьте готовы, что многие производители оборудования с RTU используют просто 8N1. Иногда расщедриваются на 8N2, и я лично не видел честного RTU с включенной четностью.
Это я к тому, что нужно быть готовым к использованию различных конфигураций. Если библиотека этого не может, то ее придется допиливать.
У меня самая частая конфигурация- когда я принимаю 8N1 (то есть корректно приму и 8N2), а передаю 8N2.


Стандарт MODBUS как раз указывает 8N2, и никак иначе. Остально бангалор, имхо. К сожалению, это частенько встречается.
Go to the top of the page
 
+Quote Post
SSerge
сообщение Jun 6 2015, 09:20
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 719
Регистрация: 13-09-05
Из: Novosibirsk
Пользователь №: 8 528



Цитата(DmitryM @ Jun 6 2015, 14:39) *
Стандарт MODBUS как раз указывает 8N2, и никак иначе. Остально бангалор, имхо. К сожалению, это частенько встречается.

Цитата(Modbus_over_serial_line_Specification and Implementation Guide_V1.02 @ Dec 20, 2006)
Even parity is required, other modes ( odd parity, no parity ) may also be used. In order to ensure a maximum compatibility with
other products, it is recommended to support also No parity mode. The default parity mode must be even parity.
Remark : the use of no parity requires 2 stop bits.

Это для RTU.
Т.е. все должны уметь 8E1, желательно (но не обязательно) поддерживать также 8N2, и другие варианты при взаимном непротивлении сторон.
Для ASCII режима обязательным является 7E1, аналогично рекомендуется поддерживать 7N2.



--------------------
Russia est omnis divisa in partes octo.
Go to the top of the page
 
+Quote Post
Tash
сообщение Jun 6 2015, 09:20
Сообщение #7





Группа: Участник
Сообщений: 6
Регистрация: 26-10-07
Пользователь №: 31 772



Цитата(DmitryM @ Jun 6 2015, 10:39) *
Стандарт MODBUS как раз указывает 8N2, и никак иначе. Остально бангалор, имхо. К сожалению, это частенько встречается.


Цитата из Modbus Serial Line Protocol and Implementation Guide V1.02 с Modbus.org. Стандартней некуда.

The format
( 11 bits )
for each byte in RTU mode is
:
Coding System:
8–bit binary
Bits per Byte:
1 start bit
8 data bits, least significant bit sent first
1 bit for parity completion
1 stop bit
Even parity is required, other modes ( odd parity, no parity ) may also be used. In order to ensure a maximum compatibility with
other products, it is recommended to support also No parity mode. The default parity mode must be even parity.
Remark : the use of no parity requires 2 stop bits.
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Jun 6 2015, 09:48
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



а в том стандарте что у меня был когда я реализовывал модбас, там дефолтный был 8N2... может меняется со временем...
Go to the top of the page
 
+Quote Post
Ruslan1
сообщение Jun 6 2015, 17:07
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 2 360
Регистрация: 6-03-06
Из: Кишинев
Пользователь №: 15 025



Ну да, я тоже был когда-то молодой и зеленый, думал что все разработчики неукоснительно делают все что записано в требованиях к протоколу.
Реальность сильно хуже, ни брендовость ни цена ничего не гарантируют. Нужно читать техописание прибора, а не стандарт.
Будьте готовы к тому, что может попасться 8N1. И можете хоть много раз тыкать в заказчика спецификацией MODBUS, но если у того установлен прибор "MODBUS RTU" умеющий только 8N1 - придется принимать посылки 8N1.

Но, извините, я увел в сторону от заданного вопроса. Собственно просто хотел отметить, что при использовании чужих библиотек нужно быть готовым менять эту конфигурацию порта.
Go to the top of the page
 
+Quote Post
TolikG
сообщение Jun 8 2015, 04:33
Сообщение #10


Частый гость
**

Группа: Свой
Сообщений: 86
Регистрация: 19-03-10
Пользователь №: 56 071



Цитата(Ruslan1 @ Jun 6 2015, 20:07) *
Ну да, я тоже был когда-то молодой и зеленый, думал что все разработчики неукоснительно делают все что записано в требованиях к протоколу.
Реальность сильно хуже, ни брендовость ни цена ничего не гарантируют. Нужно читать техописание прибора, а не стандарт.
Будьте готовы к тому, что может попасться 8N1. И можете хоть много раз тыкать в заказчика спецификацией MODBUS, но если у того установлен прибор "MODBUS RTU" умеющий только 8N1 - придется принимать посылки 8N1.

Но, извините, я увел в сторону от заданного вопроса. Собственно просто хотел отметить, что при использовании чужих библиотек нужно быть готовым менять эту конфигурацию порта.

Спасибо за советы. У меня будет ведомое устройство. Попытаюсь использовать статью http://we.easyelectronics.ru/Yanichar/port...mere-stm8l.html (Портируем FreeModbus rtu на примере STM8L)
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 06:44
Рейтинг@Mail.ru


Страница сгенерированна за 0.01681 секунд с 7
ELECTRONIX ©2004-2016