PDA

Просмотр полной версии : про Modbus



Новичек
25.10.2007, 17:01
Здравствуйте!
Есть задача поддрежки функции 24 (0х18) Read FIFO Queue протокола Modbus (мастером и слейвом). Есть ли у кого-нибудь есть информация о том, как реализуется поддрержка этой функции в конкретных девайсах? Поделитесь, пожалуйста :)

Филоненко Владислав
25.10.2007, 19:06
Все очень просто - реализуется в соответствии с протоколом. Или вас интересует функционирование кольцевых буферов в устройстве?

Новичек
25.10.2007, 21:02
Все очень просто - реализуется в соответствии с протоколом. Или вас интересует функционирование кольцевых буферов в устройстве?
Спецификация протокола не дает однозначного представления о том, как должна реализовываться функция. Например, в ней указано, что функция читает очередь ФИФО, но не очищает ее. Тем не менее, там же сказано, что если число регистров в очереди превысит 31, то слейв вернет код исключения, т.е. для корректной работы очередь все же должна очищаться. Тогда кем, по команде мастера или слейвом? Свобода творчества! Вот только она грозит тем, что слейв от другого производителя не будет корректно работать с моим мастером.

Филоненко Владислав
26.10.2007, 11:11
Я так понимаю, акт чтения и есть акт очищения.

Новичек
26.10.2007, 19:24
Я так понимаю, акт чтения и есть акт очищения.
В том-то и дело, что не все так просто :)

Филоненко Владислав
26.10.2007, 19:40
А как иначе? Вы предполагаете мультимастерную сеть? На ModBus?
Есть проблема с потерей ответа от slave, но её, ИМХО, должен решать протокол более высокого уровня.