EnglishУкраїнськаmRussian
Login/New
Topic with no new replies

Транспортный протокол ModBus. Биты в регистре на чтение и запись


Author Message
Written on: 29. 01. 2015 [10:07]
Vandrizm
Игорь М
Topic creator
registered since: 31.07.2010
Posts: 55
Есть ли возможность в данных узла протокола ModBus объявить бит регистра для записи/чтения?
В документации не нашел.
Пробывал в виде R_b1:1w, но записать не получилась. Возвращает ошибку.

Если такой возможности нет, то как посоветуете реализовать доступ к битам регистра для чтения и для записи?
Written on: 29. 01. 2015 [10:47]
roman
Roman Savochenko
Moderator
Contributor
Developer
registered since: 12.12.2007
Posts: 3742
"Vandrizm" wrote:

Есть ли возможность в данных узла протокола ModBus объявить бит регистра для записи/чтения?
В документации не нашел.
Пробывал в виде R_b1:1w, но записать не получилась. Возвращает ошибку.

Естественно, поскольку согласно документации это не корректно.
Читайте документацию внимательно, хоть-бы участок:
"R_b10:25:r" — получить бит 10 из регистра 25;


Learn, learn and learn better than work, work and work.
Written on: 29. 01. 2015 [11:12]
Vandrizm
Игорь М
Topic creator
registered since: 31.07.2010
Posts: 55
"roman" wrote:

"Vandrizm" wrote:

Есть ли возможность в данных узла протокола ModBus объявить бит регистра для записи/чтения?
В документации не нашел.
Пробывал в виде R_b1:1w, но записать не получилась. Возвращает ошибку.

Естественно, поскольку согласно документации это не корректно.
Читайте документацию внимательно, хоть-бы участок:
"R_b10:25:r" — получить бит 10 из регистра 25;



Пример, который вы привели, относится к модулю сбора данных. С ним проблем нет.
Меня же интересует обслуживание запросов по протоколу МодБас
Written on: 29. 01. 2015 [11:24]
roman
Roman Savochenko
Moderator
Contributor
Developer
registered since: 12.12.2007
Posts: 3742
"Vandrizm" wrote:

Меня же интересует обслуживание запросов по протоколу МодБас

Входящие запросы в смысле. Так там отдельно для битов регистра и не нужно, поскольку минимальная единица обслуживания для доступа и иного это регистр, т.е. просто доступ на запись всего регистра, а как там биты будут разложены это уже как сами соберёте их и будете обрабатывать.

Learn, learn and learn better than work, work and work.
Written on: 29. 01. 2015 [12:01]
Vandrizm
Игорь М
Topic creator
registered since: 31.07.2010
Posts: 55
"roman" wrote:

Входящие запросы в смысле. Так там отдельно для битов регистра и не нужно, поскольку минимальная единица обслуживания для доступа и иного это регистр, т.е. просто доступ на запись всего регистра, а как там биты будут разложены это уже как сами соберёте их и будете обрабатывать.


В данном случае нужно будет из скрипта отслеживать что изменилось: мною разложенные биты(параметры с типом "логический") или значение регистра, из которого беруться биты. И соответственно определять направление записи, то ли из регистра (слова) в биты раскладывать, то ли биты в слово собирать и записывать в регистр. Если регистров около 200, а узлов ModBus несколько, то производительность может хорошо просесть, не говоря уже об удобстве.



1643