|
|
  |
Подскажите, где взять порт MODBUS для STM32F4 |
|
|
|
Jun 6 2015, 06:47
|
Гуру
     
Группа: Свой
Сообщений: 2 360
Регистрация: 6-03-06
Из: Кишинев
Пользователь №: 15 025

|
Цитата(mantech @ Jun 5 2015, 11:59)  Мастер или ведомый нужен - это раз, и второе - если уарт подняли в режиме контроля четности, то любая библиотека подойдет, если нужны стандартные режимы до 16го, а если расширенные - то только ручками... Только будьте готовы, что многие производители оборудования с RTU используют просто 8N1. Иногда расщедриваются на 8N2, и я лично не видел честного RTU с включенной четностью. Это я к тому, что нужно быть готовым к использованию различных конфигураций. Если библиотека этого не может, то ее придется допиливать. У меня самая частая конфигурация- когда я принимаю 8N1 (то есть корректно приму и 8N2), а передаю 8N2.
|
|
|
|
|
Jun 6 2015, 07:39
|
Знающий
   
Группа: Свой
Сообщений: 583
Регистрация: 7-06-06
Из: Таганрог
Пользователь №: 17 840

|
Цитата(Ruslan1 @ Jun 6 2015, 10:47)  Только будьте готовы, что многие производители оборудования с RTU используют просто 8N1. Иногда расщедриваются на 8N2, и я лично не видел честного RTU с включенной четностью. Это я к тому, что нужно быть готовым к использованию различных конфигураций. Если библиотека этого не может, то ее придется допиливать. У меня самая частая конфигурация- когда я принимаю 8N1 (то есть корректно приму и 8N2), а передаю 8N2. Стандарт MODBUS как раз указывает 8N2, и никак иначе. Остально бангалор, имхо. К сожалению, это частенько встречается.
|
|
|
|
|
Jun 6 2015, 09:20
|
Профессионал
    
Группа: Свой
Сообщений: 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.
|
|
|
|
|
Jun 6 2015, 09:20
|
Группа: Участник
Сообщений: 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.
|
|
|
|
|
Jun 6 2015, 17:07
|
Гуру
     
Группа: Свой
Сообщений: 2 360
Регистрация: 6-03-06
Из: Кишинев
Пользователь №: 15 025

|
Ну да, я тоже был когда-то молодой и зеленый, думал что все разработчики неукоснительно делают все что записано в требованиях к протоколу. Реальность сильно хуже, ни брендовость ни цена ничего не гарантируют. Нужно читать техописание прибора, а не стандарт. Будьте готовы к тому, что может попасться 8N1. И можете хоть много раз тыкать в заказчика спецификацией MODBUS, но если у того установлен прибор "MODBUS RTU" умеющий только 8N1 - придется принимать посылки 8N1.
Но, извините, я увел в сторону от заданного вопроса. Собственно просто хотел отметить, что при использовании чужих библиотек нужно быть готовым менять эту конфигурацию порта.
|
|
|
|
|
Jun 8 2015, 04:33
|
Частый гость
 
Группа: Свой
Сообщений: 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)
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|