Hotfix release available: 2026-07-14c "Mort".
upgrade now! [57.3] (what's this?)
javalikecalc
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revision | |||
| javalikecalc [2026/08/28 11:36] – Добавлен ещё один скрипт walhi | javalikecalc [2026/08/28 12:03] (current) – fix 95.129.139.197 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | На данной странице собраны решения некоторых задач на встроенном в OpenSCADA языке JavaLikeCalc. | ||
| + | ---- | ||
| + | |||
| + | **Копирование** контроллеров/ | ||
| + | <code java> | ||
| + | src = SYS.DAQ.ModBus.Test; | ||
| + | target = SYS.DAQ.ModBus; | ||
| + | targetName = " | ||
| + | req = SYS.XMLNode(" | ||
| + | req.setAttr(" | ||
| + | req.setAttr(" | ||
| + | if (typeof(src) == " | ||
| + | pref = " | ||
| + | } else { | ||
| + | pref = " | ||
| + | } | ||
| + | req.setAttr(" | ||
| + | SYS.cntrReq(req); | ||
| + | </ | ||
| + | ---- | ||
| + | |||
| + | **Разворачивание** стандартного параметра на несколько логических. Развитие скрипта выше. Была у меня задача по модернизации опроса. Был параметр с опросом N штук сигнализаций (биты '' | ||
| + | |||
| + | |||
| + | <code java> | ||
| + | function setConfig(node, | ||
| + | req = SYS.XMLNode(" | ||
| + | SYS.cntrReq(req); | ||
| + | } | ||
| + | |||
| + | |||
| + | src = SYS.DAQ.ModBus.PLC1.prm_Alarm.prm_template; | ||
| + | target = SYS.DAQ.ModBus.PLC1.prm_Alarm; | ||
| + | |||
| + | // Получаем список атрибутов, | ||
| + | list = target.cfg(" | ||
| + | |||
| + | out = ""; | ||
| + | for (var i = 0; i < list.length; | ||
| + | c = list[i].split(":" | ||
| + | // Пропуск комментариев и пустышек | ||
| + | if (c[0].indexOf("#" | ||
| + | if (c.length < 4) continue; | ||
| + | | ||
| + | // " | ||
| + | id = c[3]; | ||
| + | name = (c.length < 5)? | ||
| + | regType = c[0]; | ||
| + | regNum = c[1]; | ||
| + | regPerm = c[2]; | ||
| + | | ||
| + | // Копирование элемента | ||
| + | req = SYS.XMLNode(" | ||
| + | req.setAttr(" | ||
| + | req.setAttr(" | ||
| + | req.setAttr(" | ||
| + | SYS.cntrReq(req); | ||
| + | | ||
| + | // Прописываем конфигурацию в созданный параметр | ||
| + | newParam = target.nodeAt(" | ||
| + | newParam.cfgSet(" | ||
| + | setConfig(newParam, | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | |||
| + | Что это за константа ''/ | ||
javalikecalc.txt · Last modified: by 95.129.139.197
