Различия
Здесь показаны различия между двумя версиями данной страницы.
Следующая версия | Предыдущая версия | ||
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'' - имя своего тега (данного модуля) | + | |
- | + | ||
- | + | ||
- | + | ||