Инструменты пользователя

Инструменты сайта


script

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

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