|
UniSet @VERSION@
|
JScript предоставляет полноценную среду выполнения JavaScript (QuickJS) с интеграцией в систему UniSet. Работает циклически по принципу PLC: опрос входов → шаг алгоритма → выставление выходов.
JScript автоматически создаёт глобальные переменные для работы с датчиками:
Если хочется, чтобы переменная в коде отличалась от реального названия датчика, можно указать реальное название через поле sensor: "real_sensor_name" — тогда name будет использован в коде, а привязка будет осуществлена по названию, указанному в sensor.
Также создаются переменные с именем датчика, содержащие ID датчика:
JScript предоставляет набор callback-функций для реакции на системные события:
Модуль uniset2-timers.js предоставляет расширенные возможности работы с таймерами:
Модуль uniset2-log.js предоставляет логирование в стиле UniSet:
JScript предоставляет глобальный объект ui для прямого взаимодействия с системой UniSet:
В качестве
sensorможно использовать идентификатор или имя датчика.
Доступные константы для команды подписки:
UIONotify — получать все значенияUIODontNotify — не получать значения (отписка)UIONotifyChange — получать значения только при измененииUIONotifyFirstNotNull — получать только первое ненулевое значениеПоддерживается загрузка модулей через функцию load() с поиском по указанным путям:
Доступные UniSet-модули:
uniset2-timers.js — таймерыuniset2-log.js — логированиеuniset2-delaytimer.js — аналог uniset::DelayTimeruniset2-passivetimer.js — аналог uniset::PassiveTimeruniset2-iec61131.js — стандартные функциональные блоки IEC 61131-3uniset2-iec61131-codesys.js — функциональные блоки Codesys Util (BLINK, PID, HYSTERESIS, ...)uniset2-debug.js — отладчик-визуализатор (см. DEBUG.md)Модуль uniset2-debug.js предоставляет веб-отладчик для мониторинга работающего JScript-процесса через браузер:
Возможности: live-мониторинг переменных и FB, схема программы, графики трендов, принудительная установка значений (force override).
Работает с любым JS-скриптом без генерации кода. С флагом st2js --debug дополнительно доступны метаданные программы для схемы и улучшенного отображения.
Полная документация: DEBUG.md
Модуль uniset2-iec61131.js реализует стандартные функциональные блоки по IEC 61131-3:2013, Edition 3 (Tables 36–45).
| Блок | Тип | Таблица IEC | Описание |
|---|---|---|---|
| RS | Бистабильный | Table 36 | Триггер с доминантным сбросом |
| SR | Бистабильный | Table 37 | Триггер с доминантной установкой |
| R_TRIG | Детектор фронта | Table 38 | Нарастающий фронт |
| F_TRIG | Детектор фронта | Table 39 | Спадающий фронт |
| CTU | Счётчик | Table 40 | Счётчик вверх |
| CTD | Счётчик | Table 41 | Счётчик вниз |
| CTUD | Счётчик | Table 42 | Реверсивный счётчик |
| TON | Таймер | Table 43 | Задержка включения |
| TOF | Таймер | Table 44 | Задержка выключения |
| TP | Таймер | Table 45 | Формирователь импульса |
Подробное описание каждого блока с примерами, таблицами истинности и временными диаграммами: IEC61131.md
| Параметр | Описание |
|---|---|
--js-name <name> | Имя UniSet-объекта процесса |
--js-confnode <name> | Имя XML-узла с настройками JSProxy (по умолчанию равно --js-name) |
--js-file <file> | Запускаемый JS-скрипт |
--js-logfile <file> | Файл для сохранения логов |
--js-sleep-msec <msec> | Пауза между вызовами uniset_on_step (по умолчанию 150 мс) |
--js-loopCount <num> | Количество JS-событий, обрабатываемых за один цикл (по умолчанию 5) |