Written on: 20. 03. 2017 [12:38]
|
Godzilla
Арсен Закоян
Contributor
Topic creator
registered since: 12.02.2013
Posts: 123
|
Столкнулся с такой проблемой, в модуле ModBUS в подсистеме Транспортные Протоколы не могу в коде обозначить id параметра с обратной последовательностью байт в регистре. То есть например
все нормально работает.
а если написать
то получим "Ошибка компиляции: Переменная 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 из Транспортных Протоколов прописать следующее
arguments["R_f0x01,0x00"]=EVAL_REAL
arguments["R0x37w"]=EVAL_INT
и в колонке Значения будут значится <EVAL>, но когда в сборе данных создаешь контроллер и перечень параметров, например
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.
|