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

Как обозначить в протоколе Modbus id с другой последовательностью байт?


Author Message
Written on: 20. 03. 2017 [12:38]
Godzilla
Арсен Закоян
Contributor
Topic creator
registered since: 12.02.2013
Posts: 123
Столкнулся с такой проблемой, в модуле ModBUS в подсистеме Транспортные Протоколы не могу в коде обозначить id параметра с обратной последовательностью байт в регистре. То есть например
JAVASCRIPT
r36=R0x36w;
все нормально работает.
а если написать
JAVASCRIPT
r01=R_f0x01,0x00w;
то получим "Ошибка компиляции: Переменная R_f0x01 не определена но использована...."
Каким образом можно это обойти?

[This article was edited 1 times, at last 20.03.2017 at 12:48.]
Attachment

1.jpg (File type: image/jpeg, Size: 172.68 kilobytes) — 1607 downloads
Written on: 20. 03. 2017 [13:00]
roman
Roman Savochenko
Moderator
Contributor
Developer
registered since: 12.12.2007
Posts: 3750
Чтением документации:
Поскольку в указателе расширенных типов регистров может использоваться недопустимый символ ',' то доступ к нему из процедуры можно осуществить только альтернативным способом, через объект "arguments":
arguments["R_s10,5w"] = "9876543210";


Learn, learn and learn better than work, work and work.
Written on: 22. 03. 2017 [12:23]
Godzilla
Арсен Закоян
Contributor
Topic creator
registered since: 12.02.2013
Posts: 123
Спасибо, Роман, помогло. Но есть еще одна проблемка, нужно в коде модуля ModBUS из Транспортных Протоколов прописать следующее
JAVASCRIPT
arguments["R_f0x01,0x00"]=EVAL_REAL
arguments["R0x37w"]=EVAL_INT

и в колонке Значения будут значится <EVAL>, но когда в сборе данных создаешь контроллер и перечень параметров, например
JAVASCRIPT
R_f:0x01,0x00:r:hex0:параметр с вещественным
R:0x37:r:hex37: параметр с целым числом

то видим следующее Атрибутах
параметр с вещественным:<EVAL>
параметр с целым числом:1
Почему параметр с целым числом равен единице? Разве так должно быть?

[This article was edited 1 times, at last 22.03.2017 at 12:25.]
Attachment

3.png (File type: image/png, Size: 208.91 kilobytes) — 1520 downloads
Written on: 22. 03. 2017 [14:25]
roman
Roman Savochenko
Moderator
Contributor
Developer
registered since: 12.12.2007
Posts: 3750
"Godzilla" wrote:

Почему параметр с целым числом равен единице? Разве так должно быть?

Может и такое быть, поскольку через ModBus регистры внутренний EVAL_INT OpenSCADA, размером 64 разряда, очевидно неизменным не дойдёт, не говря уже о том, что прочитающий в принципе про всякие EVAL знать ничего не может.

EVAL это внутреннее зарезервированное значение OpenSCADA!

Learn, learn and learn better than work, work and work.
Written on: 22. 03. 2017 [15:47]
Godzilla
Арсен Закоян
Contributor
Topic creator
registered since: 12.02.2013
Posts: 123
А это можно как нибудь исправить, ведь чтение EVAL_REAL происходит без проблем?
Written on: 22. 03. 2017 [16:00]
roman
Roman Savochenko
Moderator
Contributor
Developer
registered since: 12.12.2007
Posts: 3750
"Godzilla" wrote:

А это можно как нибудь исправить, ведь чтение EVAL_REAL происходит без проблем?

Это не ошибка!

Learn, learn and learn better than work, work and work.



7636