Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
|
script [2025/09/18 07:27] root [Пример вызова функции скрипта ПЛК из скрипта интерфейса] |
script [2025/09/18 12:38] (текущий) root [Пример вызова функции скрипта ПЛК из скрипта интерфейса] |
||
|---|---|---|---|
| Строка 175: | Строка 175: | ||
| <wrap ks> | <wrap ks> | ||
| - | Далее создадим на экране две кнопки для включения и отключения статуса отображения сообщения посредством вызова функции | + | Далее создадим на экране две кнопки для включения и отключения статуса отображения сообщения посредством вызова функции |
| </ | </ | ||
| Строка 198: | Строка 198: | ||
| </ | </ | ||
| - | {{ :: | + | {{ :: |
| - | |||
| - | ====== Дальше все херня, переделываю... ====== | ||
| - | ====== Раздел проекта " | ||
| - | <wrap ks> | ||
| - | Все скрипты проекта запускаются на исполнение при запуске среды исполнения. Сами по себе скрипты подключаются к проекту в виде JavaScript модулей, | ||
| - | </ | ||
| - | <wrap ks> | ||
| - | При создании нового скрипта автоматически создается шаблон кода функции инициализации скрипта: | ||
| - | </ | ||
| - | <code javascript> | ||
| - | export async function init() { | ||
| - | | ||
| - | } | ||
| - | </ | ||
| - | Эта функция вызывается ядром системы при каждом старте среды исполнения. Если скрипту не требуется инициализация при старте, | ||
| - | Экспортируемые элементы скриптов можно в дальнейшем использовать в других скриптах. К примеру создадим скрипт с именем //script1// и содержимым: | ||
| - | \\ | ||
| - | **script1** | ||
| - | <code javascript> | ||
| - | export function f1() { | ||
| - | alert(' | ||
| - | } | ||
| - | |||
| - | function f2() { | ||
| - | alert(' | ||
| - | } | ||
| - | </ | ||
| - | Здесь функция f1 будет доступной из сторонних скриптов, | ||
| - | \\ | ||
| - | **script2** | ||
| - | <code javascript> | ||
| - | export async function init() { | ||
| - | dsScript.script1.f1(); | ||
| - | } | ||
| - | </ | ||
| - | При запуске проекта на исполнение мы увидим сообщение: | ||
| - | {{ : | ||
| - | Если мы попытаемся вызвать функцию //f2//, мы получим ошибку, | ||
| - | \\ | ||
| - | **script2** | ||
| - | <code javascript> | ||
| - | export async function init() { | ||
| - | dsScript.script1.f2(); | ||
| - | } | ||
| - | </ | ||
| - | {{ :: | ||
| - | При этом функцию //f2// мы без проблем можем использовать внутри первого скрипта: | ||
| - | \\ | ||
| - | **script1** | ||
| - | <code javascript> | ||
| - | export function f1() { | ||
| - | f2(); | ||
| - | } | ||
| - | |||
| - | function f2() { | ||
| - | alert(' | ||
| - | } | ||
| - | </ | ||
| - | \\ | ||
| - | **script2** | ||
| - | <code javascript> | ||
| - | export async function init() { | ||
| - | dsScript.script1.f1(); | ||
| - | } | ||
| - | </ | ||
| - | {{ :: | ||
| - | |||
| - | ====== Скрипты элементов визуализации ====== | ||
| - | Скрипты так же можно использовать как действие на событие элементов визуализации (на данный момент доступно только событие " | ||
| - | \\ | ||
| - | **script1** | ||
| - | <code javascript> | ||
| - | export function f1() { | ||
| - | alert(' | ||
| - | } | ||
| - | </ | ||
| - | Чтобы использовать код скрипта проекта в своем коде, его необходимо подключить функцией // | ||
| - | Далее добавляем на экран кнопку, | ||
| - | {{ :: | ||
| - | Пропишем следующий код скрипта: | ||
| - | <code javascript> | ||
| - | const script1 = ds.include(' | ||
| - | script1.f1(); | ||
| - | </ | ||
| - | Теперь при запуске проекта и нажатии кнопки будет вызываться функция скрипта: | ||
| - | {{ :: | ||
| - | |||
| - | ====== Глобальные переменные ====== | ||
| - | В любых скриптах из любого места доступен объект // | ||
| - | Для примера создадим две кнопки, | ||
| - | {{ :: | ||
| - | После чего пропишем следующий код:\\ | ||
| - | \\ | ||
| - | **Кнопка " | ||
| - | <code javascript> | ||
| - | ds.global.x = Date(); | ||
| - | </ | ||
| - | \\ | ||
| - | **Кнопка " | ||
| - | <code javascript> | ||
| - | alert(ds.global.x); | ||
| - | </ | ||
| - | При нажатии кнопки " | ||
| - | |||
| - | ====== Функции ядра ====== | ||
| - | Скада система помимо стандартных функций языка JavaScript предоставляет дополнительные инструменты для работы с ядром системы. Системные функции находятся в объекте //ds//, доступном из всех скриптов. Большинство функций являются асинхронными, | ||
| - | На данный момент доступны следующие функции: | ||
| - | \\ | ||
| - | [[ds.sleep|sleep]] - задержка выполнения кода на указанное количество миллисекунд; | ||
| - | [[ds.goto|goto]] - переход на указанный экран; | ||
| - | [[ds.getDev |getDev]] - получить значение переменной устройства; | ||
| - | [[ds.setDev |setDev]] - записать значение переменной устройства; | ||
| - | [[ds.getProp |getProp]] - получить значение свойства графического элемента; | ||
| - | [[ds.setProp |setProp]] - установить значение свойства графического элемента.\\ | ||