УкраїнськаEnglishmRussian
Вхід/Новий
У темі немає нових постів

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


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

[Повідомлення редагувалось 1 раз(ів), останній раз 20.03.2017 в 12:48.]
Вкладений файл

1.jpg (Тип файлу: image/jpeg, Розмір: 172.68 кілобайтів) — 1604 завантажень
Повідомлення створено: 20. 03. 2017 [13:00]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зареєстрован(а) с: 12.12.2007
Повідомлення: 3750
Чтением документации:
Поскольку в указателе расширенных типов регистров может использоваться недопустимый символ ',' то доступ к нему из процедуры можно осуществить только альтернативным способом, через объект "arguments":
arguments["R_s10,5w"] = "9876543210";


Learn, learn and learn better than work, work and work.
Повідомлення створено: 22. 03. 2017 [12:23]
Godzilla
Арсен Закоян
Contributor
Автор теми
Зареєстрован(а) с: 12.02.2013
Повідомлення: 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
Почему параметр с целым числом равен единице? Разве так должно быть?

[Повідомлення редагувалось 1 раз(ів), останній раз 22.03.2017 в 12:25.]
Вкладений файл

3.png (Тип файлу: image/png, Розмір: 208.91 кілобайтів) — 1518 завантажень
Повідомлення створено: 22. 03. 2017 [14:25]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зареєстрован(а) с: 12.12.2007
Повідомлення: 3750
"Godzilla" wrote:

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

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

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

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

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

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

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



2567