Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
|
script [2025/09/18 07:19] root [Пример вызова функции скрипта ПЛК из скрипта интерфейса] |
script [2025/09/18 12:38] (текущий) root [Пример вызова функции скрипта ПЛК из скрипта интерфейса] |
||
|---|---|---|---|
| Строка 173: | Строка 173: | ||
| {{ :: | {{ :: | ||
| + | |||
| <wrap ks> | <wrap ks> | ||
| - | Далее создадим на экране две кнопки для включения и отключения статуса отображения сообщения со скриптами следующего содержания: | + | Далее создадим на экране две кнопки для включения и отключения статуса отображения сообщения |
| </ | </ | ||
| Строка 193: | Строка 194: | ||
| </ | </ | ||
| - | |||
| - | ====== Дальше все херня, переделываю... ====== | ||
| - | ====== Раздел проекта " | ||
| <wrap ks> | <wrap ks> | ||
| - | Все скрипты | + | Запустим проект |
| </ | </ | ||
| - | <wrap ks> | ||
| - | При создании нового скрипта автоматически создается шаблон кода функции инициализации скрипта: | ||
| - | </ | ||
| - | <code javascript> | ||
| - | export async function init() { | ||
| - | | ||
| - | } | ||
| - | </ | ||
| - | Эта функция вызывается ядром системы при каждом старте среды исполнения. Если скрипту не требуется инициализация при старте, | ||
| - | Экспортируемые элементы скриптов можно в дальнейшем использовать в других скриптах. К примеру создадим скрипт с именем //script1// и содержимым: | ||
| - | \\ | ||
| - | **script1** | ||
| - | <code javascript> | ||
| - | export function f1() { | ||
| - | alert(' | ||
| - | } | ||
| - | function f2() { | + | {{ ::script13.png? |
| - | alert(' | + | |
| - | } | + | |
| - | </ | + | |
| - | Здесь функция f1 будет доступной из сторонних скриптов, | + | |
| - | \\ | + | |
| - | **script2** | + | |
| - | <code javascript> | + | |
| - | export async function init() | + | |
| - | dsScript.script1.f1(); | + | |
| - | } | + | |
| - | </ | + | |
| - | При запуске проекта на исполнение мы увидим сообщение:\\ | + | |
| - | {{ :script1.png? | + | |
| - | Если мы попытаемся вызвать функцию //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]] - установить значение свойства графического элемента.\\ | ||