ГОСТ Р МЭК 61131-3—2016
Выполненные методы подчиняются правилам для методов класса идополнительно следующим
правилам:
3 Все методы имеют доступ для чтения-записи к статическим переменным, объявленным в функ
циональном блоке: Входные переменные (кроме тех. которые имеют тип данных BOOL R_EDGE или
BOOL F_EDGE). входные, статические и внешние переменные.
4 Метод не имеет доступа к временным переменным VAR_TEMP и входным-выходным перемен
ным VAR_IN_OUT функционального блока.
5 Переменные метода недоступны в теле (алгоритме) функционального блока.
6.67.2.4 Представление вызова метода
Методы могут вызываться так же, как определенодля классов в текстовых и графических языках.
6.67.2.5 Спецификаторы доступа (PROTECTED, PUBLIC. PRIVATE. INTERNAL) к методу
Для каждого метода должно быть определено, откуда он может вызываться.
6.67.2.6 Спецификаторы доступа к переменным (PROTECTED. PUBLIC. PRIVATE. INTERNAL)
Для секции VAR должно быть определено, откуда разрешен доступ к переменным этой секции.
Доступ к входным и выходным переменным неявно является общим (PUBLIC), поэтому в секциях
входных и выходных переменных отсутствует спецификатор доступа. Входные-выходные переменные
могут использоваться только в теле функционального блока и в операторе вызова. Доступ к перемен
ным секции VAR_EXTERNALвсегда неявно является защищенным (PROTECTED); поэтому объявление
этих переменных не использует спецификатора доступа.
6.67.2.7 Наследование функционального блока (EXTENDS, SUPER. OVERRIDE, FINAL)
6.67.2.8 Общие положения
Наследование функционального блока похоже на наследование классов. На основе существую
щего класса или типа функционального блока можно породить один или более функциональных бло
ков. Данный процесс может повторяться многократно.
6.67.2.9 SUPER() в теле порожденного функционального блока
Порожденные функциональные блоки и их базовый функциональный блок могут иметь тело функ
ционального блока. Тело функционального блока не наследуется автоматически из базового функци
онального блока. По умолчанию, оно пустое. Затем его можно вызвать, используя функцию SUPER().
В этом случае, применяются приведенные выше правила для EXTENDS функционального блока
и. дополнительно, следующие правила:
1Тело (если имеется) порожденного функционального блока будет вычисляться при вызове функ
ционального блока.
2 Для того чтобы дополнительно выполнить тело базового функционального блока (если оно име
ется) в порожденном функциональном блоке, используется вызов SUPER(). Вызов SUPERQ не имеет
параметров.
Вызов SUPER() осуществляется только один раз в теле функционального блока и не используется
в цикле.
3 Имена переменных в базовом и порожденном функциональных блоках должны быть уникаль
ными.
4 Вызов функционального блока связывается динамически.
a) Тип порожденного функционального блока может использоваться везде, где может использо
ваться тип базового функционального блока.
b
)Тип порожденного функционального блока может использоваться везде, где может использо
ваться тип базового функционального блока.
5 SUPERQ может вызываться в теле функционального блока, но не в методе функционального
блока.
На рисунке 21 показаны примеры использования SUPERQ:
139