ГОСТ Р МЭК 61131-3—2016
Программные компоненты и методы могут поставляться разработчиком или программироваться
пользователем.
Ранее объявленный программный компонент может использоваться в объявлении других про
граммных компонентов, как показано на рисунке 3.
Рекурсивные выходы программных компонентов и методы определяются разработчиком.
Максимальное число программных компонентов, методов и экземпляров для данного ресурса
определяется разработчиком.
6.6.1.2 Присваивание и выражение
6.6.1.2.1 Общие положения
Языковые конструкции присваивания и выражения используются в текстовых и (частично) графи
ческих языках.
6.6.1.2.2 Присваивание
Присваивание используется для записи значения литерала, константы или выражения (см. ниже)
другой переменной. Данная переменная может быть переменной любого вида, например, входной или
выходной переменной функции, метода, функционального бока и т.д.
Переменные одного типа всегда могут присваиваться. Дополнительно применяются следующие
правила:
- переменная или константа типа STRING или WSTRING может быть присвоена другой перемен
ной типа STRING или WSTRING. соответственно. Если исходная строка длиннее, чем целевая строка,
результат определяется реализатором:
- переменная типа-диапазона может использоваться везде, где может использоваться перемен
ная базового типа. Если значение типа-диапазона выходит за пределы указанных значений, возникает
ошибка;
- переменная производного типа может использоваться везде, где может использоваться пере
менная ее базового типа.
Дополнительные правила для массивов могут быть определены разработчиком.
Для адаптации типа данных источника к типу данных адресата может использоваться неявное
или явное преобразование типа:
а) в текстовой форме (частично применимой и к графическим языкам) оператор присваивания
может быть следующим:
«:= » который означает, что значение выражения в правой стороне оператора записывается в
переменную в левой стороне оператора; или
« => » который означает, что значение в левой стороне оператора записывается в переменную
в правой стороне оператора.
Оператор «=>» используется только для списка параметров вызова функций, методов, функци
ональных блоков ит.п.и только для передачи параметра VAR_OUTPUT назад вызывающему объекту.
Пример —
А:= В + С/2;
Func (in1:=A, out2 =>х); A_struct1:= B_Struct1;
Примечание — Присваивание определенных пользователем типовданных (STUCTURE. ARRAY)рас
сматривается в таблице 72;
Ь) в графической форме:
присваивание изображается как линия соединения от источника к адресату, в основном, слева
направо. Например, от выхода функционального блока к входу функционального блока, или от графи
ческого «расположения» переменной (константы) к входу функции, или от выхода функции к графиче
скому «расположению» переменной.
Стандартная функция MOVE является одним из графических представлений присваивания.
6.6.1.2.3 Выражение
Выражение — это языковая конструкция, которая состоит из определенной конфигурации опе
рандов (таких как литералы, переменные, вызовы функций) и операторов, (таких как +.-,*,/) и которая
производит одно значение, которое может быть многозначным.
Для адаптации типов данных операции в выражении может использоваться неявное или явное
преобразование типа:
45