Различия
Здесь показаны различия между двумя версиями данной страницы.
| Следующая версия | Предыдущая версия | ||
|
doc:jroboplc:modules:system [2016/03/22 08:54] denis создано |
doc:jroboplc:modules:system [2020/12/21 18:37] (текущий) denis |
||
|---|---|---|---|
| Строка 3: | Строка 3: | ||
| Добавляет возможность выполнения платформенно-зависимых операций. | Добавляет возможность выполнения платформенно-зависимых операций. | ||
| - | Данный модуль требует включения в задачу. | + | **GPIO использовать с осторожностью!** Данный модуль использует нативные библиотеки, код которых может угрожать стабильности всей системы. |
| + | |||
| + | При работе с ''shutdown'' данный модуль требует включения в задачу. | ||
| Строка 28: | Строка 30: | ||
| value: 1 | value: 1 | ||
| delay_s: 300 | delay_s: 300 | ||
| + | | ||
| + | syscommands: | ||
| + | - cmdline: "sensors" | ||
| + | tags: | ||
| + | - name: temp1 | ||
| + | regex: "temp1:\\s*([-+]+\\d+)" | ||
| + | - name: temp.core0 | ||
| + | regex: "Core 0:\\s*([-+]+\\d+\\.\\d)" | ||
| + | type: double | ||
| + | - name: temp.core2 | ||
| + | regex: "Core 2:\\s*([-+]+\\d+\\.\\d)" | ||
| + | type: double | ||
| + | |||
| + | - cmdline: "uname -a" | ||
| + | tags: | ||
| + | - name: uname | ||
| + | type: string | ||
| + | |||
| + | - cmdline: "ping -c 1 yahoo.com" | ||
| + | tags: | ||
| + | - name: ping | ||
| + | type: double | ||
| + | regex: time=(.*) ms | ||
| + | |||
| + | | ||
| </code> | </code> | ||
| + | ^Параметр ^По умолчанию ^Описание ^ | ||
| |**gpio** | - |карта портов ввода/вывода в формате: ''tagname: ioport/bit'' | | |**gpio** | - |карта портов ввода/вывода в формате: ''tagname: ioport/bit'' | | ||
| |:::|:::|**tagname** - имя создаваемого тега | | |:::|:::|**tagname** - имя создаваемого тега | | ||
| Строка 35: | Строка 62: | ||
| |:::|:::|**bit** - номер бита, от 0 до 7 | | |:::|:::|**bit** - номер бита, от 0 до 7 | | ||
| |**shutdown** | - |параметры отключения системы по событию | | |**shutdown** | - |параметры отключения системы по событию | | ||
| - | + | |**syscommands** | - |список команд операционной системы | | |
| - | ===== shutdown ===== | + | ^ shutdown ^^^ |
| |**tag** | - |отслеживаемый тег для определения наступления события | | |**tag** | - |отслеживаемый тег для определения наступления события | | ||
| |**value** | ''1'' |необходимое значение тега для определения наступления события | | |**value** | ''1'' |необходимое значение тега для определения наступления события | | ||
| - | |**delay_s** | ''60'' |задержка отключения после наступления события | | + | |**delay_s** | ''60'' |задержка отключения после наступления события в циклах задачи (не секунды) | |
| - | |**cmd.linux** | ''shutdown -h now'' |системная команда отключения для linux | | + | |**cmd.linux** |<code>shutdown -h now</code>|системная команда отключения для linux | |
| - | |**cmd.windows** | ''shutdown.exe -s -t 0'' |системная команда отключения для windows | | + | |**cmd.windows** |<code>shutdown.exe -s -t 0</code>|системная команда отключения для windows | |
| - | + | ^ syscommands ^^^ | |
| - | + | |**cmdline** | - |текст комадны | | |
| - | ===== copy ===== | + | |**tags** | - |список тегов для получения результата выполнения команды | |
| - | |**id** | - |Имя действия (опционально) | | + | ^ syscommands.tags ^^^ |
| - | |**src** | - |Имя тега-источника в формате [[#ссылка_на_тег|ссылки]] | | + | |**name** | - |Имя тега | |
| - | |**dst** | - |Имя тега-приемника в формате [[#ссылка_на_тег|ссылки]] | | + | |**type** | ''int'' |Тип тега: ''int, double, boolean, string'' | |
| - | |**delay_s** | ''0'' |Задержка копирования с секундах. Значение источника после изменения копируется в приемник только, если значение источника не вернулось в прежнее состояние в течение времени задержки | | + | |**regex** | ''(.*)'' |Регулярное выражение для извлечения значения тега из вывода команды. В выражение обязательно должна быть одна группу, значение которой и присваивается тегу | |
| - | |**delay_ms** | ''0'' |Задержка копирования в миллисекундах | | + | ===== Теги ===== |
| - | + | |**shutdown.enable** |Разрешение отключения системы. Тег предназначен для записи из вне. По умолчанию - off | | |
| - | ===== calc ===== | + | |**shutdown.cnt** |Обратный счетчик до отключения системы | |
| - | |**id** | - |Имя действия (опционально) | | + | |**shutdown.state** |Индикатор состояния отключения: | |
| - | |**expr** | - |Арифметическое выражение (см. [[doc:jroboplc:modules:tagscript:calcfunctions]]) | | + | |:::|''0'' - ожидание события | |
| - | |**result** | - |Имя тег результата вычисления. Тип тега ''double''. | | + | |:::|''1'' - идет задержка отключения | |
| - | |**<arg1>** | - |Имя тега-аргумента в формате [[#ссылка_на_тег|ссылки]]. Количество аргументов может быть любым | | + | |:::|''2'' - отключение отменено до наступления нового события | |
| - | |**<argN>** |:::|:::| | + | |:::|''3'' - выполняется отключение | |
| - | |**delay_s** | ''0'' |Задержка копирования значения в тег результата. Изменившееся вычисленное значение копируется в тег результата только, если вычисленное значение не вернулось в прежнее состояние в течение времени задержки | | + | |
| - | |**delay_ms** | ''0'' |Та же задержка в миллисекундах | | + | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | ===== java ===== | + | |
| - | ^java^^^ | + | |
| - | |**id** | - |Имя действия (обязательный параметр) | | + | |
| - | |**class** | - |Имя класса скрипта | | + | |
| - | |**<arg1>** | - |Аргументы для передачи значений в скрипт. Количество аргументов может быть любым | | + | |
| - | |**<argN>** |:::|:::| | + | |
| - | + | ||
| - | Скрипт - это java класс, наследуемый от класса с интерфейсом [[doc:jroboplc:modules:tagscript:scriptjavaapi]]. Для написания скрипта требуется перекрыть методы ''load'' и ''execute''. Файл исходного кода состоит только из методов и полей. Заголовок класса, пакета, импорт пакетов и прочее указывать не нужно ([[doc:jroboplc:modules:tagscript:javaexample]]). | + | |
| - | + | ||
| - | В целях ограничения области действия скрипта текст исходного кода не может содержать слово ''promauto''. | + | |
| - | + | ||
| - | Файлы исходного кода скриптов помещаются в каталог ''java.src''. Один файл может содержать один класс. Файлы могут находится во вложенных подкаталогах, при этом имя подкаталога(ов) включается в имя класса через точку. Например, ''subdir1.subdir2.MyScript''. | + | |
| - | + | ||
| - | После создания или изменения скрипта при загрузке системы происходит компиляция, и если успешно, то каталог ''java.bin'' будет содержать байткод скрипта и хеш-файл. Если во время компиляции возникла ошибка, то в этом же каталоге можно будет найти сформированный полный исходный код класса, и используя сообщение об ошибке компилятора, проанализировать код и найти ошибку. | + | |
| - | + | ||
| - | + | ||
| - | ===== Ссылка на тег ===== | + | |
| - | Ссылки на тег могут быть записаны двумя способами: | + | |
| - | - ''modname:tagname'' - имя любого модуля проекта и его тег | + | |
| - | - ''tagname'' - имя своего тега (данного модуля) | + | |
| - | + | ||
| - | + | ||
| - | + | ||