ГОСТ Р МЭК 61131-3—2016
Таблица 39 — Функции подтверждения
Но
мер
Функция
Графическая форма
Пример
1
IS.VALID
INI
+
+
--------------------
+
| IS VALID |
ANY_REAL— |
------------------------- +
--BOOL
Подтверждение значения типа REAL
VAR R: REAL: END_VAR
IF IS_VALID(R)THEN ...
2
IS_VALID_
BCD
+------------------------- +
| IS_VALID_BCD |
-ANY_BIT-- | IN "*~|— BOOL
+------------------------- +
Тест подтверждения слова BCD
VARW: WORD: END_VAR
IF IS_VALID_BCD(W)THEN ...
6.6.3 Функциональные блоки
6.6.3.1 Общие положения
Функциональный блок — это программный компонент, который представляет хорошо определен
ную часть программы для обеспечения модульности и структуризации.
Концепция функционального блока реализуется типом функционального блока и экземпляром
функционального блока:
- тип функционального блока состоит из следующих частей:
- определение структуры данных, разделенной на входные, выходные и внутренние перемен
ные:
- набор операций, выполняемых с элементами структуры данных при вызове экземпляра типа
функционального блока;
- экземпляр функционального блока:
- это многократное, именованное применение (экземпляры) типа функционального блока;
- каждый экземпляр имеет связанный идентификатор (имя экземпляра), и структуру данных,
содержащую статические входные, выходные и внутренние переменные.
Статические переменные сохраняют свое значение от одного выполнения экземпляра функци
онального блока до следующего. Поэтому, вызов экземпляра функционального блока с одинаковыми
входными параметрами не всегда выдает одинаковые выходные значения.
Если не оговорено иное, к функциональным блокам применяются общие свойства программных
компонентов;
- объектно-ориентированный функциональный блок.
Функциональный блок может быть расширен набором объектно-ориентированных свойств.
Объектно-ориентированный функциональный блок является также расширенным множеством
классов.
6.6.3.2 Объявление типа функционального блока
Тип функционального блока объявляется таким же образом, как и функции.
Свойства объявления типа функционального блока определены в таблице 40:
1) ключевое слово FUNCTION_BLOCK. за которым следует имя объявляемого функционального
блока:
2) множество операций, составляющее тело функционального блока.
3) завершающее ключевое слово END_FUNCTION_BLOCK после тела функционального блока;
4) конструкции VARJNPUT. VAR_OUTPUT и VAR_IN_OUT. при необходимости, определяющие
имена и типы переменных:
5) значения переменных, которые объявляются через конструкцию VAR_EXTERNAL. могут изме
няться из функционального блока:
6) значения констант, которые объявляются через конструкцию VAR_EXTERNAL CONSTANT и не
могут изменяться из функционального блока;
7) массивы переменной длины могут использоваться как VAR_IN_OUT;
8) выходные и статические переменные могут инициализироваться;
9) переменные EN и ENO объявляются так же. как и входные и выходные переменные. Имеются
специфические свойства функциональных блоков (отличные от свойств функций):
89