Written on: 14. 12. 2011 [07:49]
|
punk
Василий Петров
Topic creator
registered since: 09.05.2011
Posts: 57
|
Есть задачка - отобразить несколько десятков целых параметров. Насколько я понял, DAQ.Siemens с объектами работать на может. Из-за этого приходится делать так:
1. Внешним скриптом генерируется что-то типа
INSERT INTO "xxlib_xx_io" VALUES('PARM','val1','val1','',1,144,'DB|0','',10);
INSERT INTO "xxlib_xx_io" VALUES('PARM','val2','val2','',1,144,'DB|2','',11);
INSERT INTO "xxlib_xx_io" VALUES('PARM','val3','val3','',1,144,'DB|4','',12);
и.т.д, это дело скармливается sqlite3, и попадает в библиотеку шаблонов openscada
2. Этот шаблон используется в качестве шаблона параметра (по сути это все аналог тупого забивания ручками)
3. Там, где нужно прочитать параметр из JavaLikeCalk, вставляются строки (опять же, сгенерированные внешним скриптом)
ValArr[1]=Siemens.cntr.prm.val1;
ValArr[2]=Siemens.cntr.prm.val2;
ValArr[3]=Siemens.cntr.prm.val3;
после чего можно наконец-то что-то прочитать по индексу.
Собственно вопросы:
- есть ли функции для обращения к значению параметра, что-то типа
n=5;
parname="Siemens.cntr.prm.val"+n;
val=_getva_l("parname");
- можно ли сгенерировать список опроса для DAQ не из библиотеки, а динамически из JavaLikeCalk
- или, может быть, есть более прямое решение для такого рода задач
|
Written on: 14. 12. 2011 [08:03]
|
Vandrizm
Игорь М
registered since: 31.07.2010
Posts: 55
|
"punk" wrote:
- есть ли функции для обращения к значению параметра, что-то типа
n=5;
parname="Siemens.cntr.prm.val"+n;
val=_getva_l("parname");
Чтение и запись значений атрибутов подсистемы "Сбор данных" функцией
|
Written on: 14. 12. 2011 [08:44]
|
roman
Roman Savochenko
Moderator Contributor Developer
registered since: 12.12.2007
Posts: 3750
|
"punk" wrote:
Есть задачка - отобразить несколько десятков целых параметров. Насколько я понял, DAQ.Siemens с объектами работать на может. Из-за этого приходится делать так:
Если строку воспринимать ка свёрнутое выражение объекта-массива то может.
"punk" wrote:
1. Внешним скриптом генерируется что-то типа
INSERT INTO "xxlib_xx_io" VALUES('PARM','val1','val1','',1,144,'DB|0','',10);
INSERT INTO "xxlib_xx_io" VALUES('PARM','val2','val2','',1,144,'DB|2','',11);
INSERT INTO "xxlib_xx_io" VALUES('PARM','val3','val3','',1,144,'DB|4','',12);
и.т.д, это дело скармливается sqlite3, и попадает в библиотеку шаблонов openscada
2. Этот шаблон используется в качестве шаблона параметра (по сути это все аналог тупого забивания ручками)
3. Там, где нужно прочитать параметр из JavaLikeCalk, вставляются строки (опять же, сгенерированные внешним скриптом)
ValArr[1]=Siemens.cntr.prm.val1;
ValArr[2]=Siemens.cntr.prm.val2;
ValArr[3]=Siemens.cntr.prm.val3;
Жуть всё это! Цепляйте строку на структуру в блоке данных Сименса, а затем из этой строки просто выбирайте элементы.
"punk" wrote:
- есть ли функции для обращения к значению параметра, что-то типа
Есть.
"punk" wrote:
- можно ли сгенерировать список опроса для DAQ не из библиотеки, а динамически из JavaLikeCalk
Можно, но не нужно. Почему - выше.
"punk" wrote:
- или, может быть, есть более прямое решение для такого рода задач
Есть
Learn, learn and learn better than work, work and work.
|