ГОСТ Р МЭК 61131-3—2016
6.6.5.4 Методы класса
6.6.5.4.1 Общие положения
Применительно к задачам языков программируемых контроллеров, концепция методов, хорошо
известных в объектно-ориентированном программировании, принимается как набор факультативных
элементов языка, используемых при определении класса.
Методы могут применяться для определения операций с данными экземпляров класса.
6.6.5.4.2 Сигнатура
В целях данного стандарта, термин сигнатура определен в раздело 3 как набор информации,
однозначно определяющий идентичность параметров МЕТОДА.
Сигнатура включает:
- имя метода,
- тип результата;
- имена переменных, типы данных и порядок всех параметров.то есть входных, выходных и вход-
ных-выходных переменных.
Локальные переменные не являются частью сигнатуры. Переменные, объявленные в секции
VAR_EXTERNAL и постоянные переменные не существенны для сигнатуры.
Спецификаторы доступа, такие как PUBLIC или PRIVATE не существенны для сигнатуры.
6.6.5.4.3 Объявление и выполнение метода
Класс может иметь набор методов.
Объявление метода должно подчиняться следующим правилам:
1 Методы объявляются в области действия класса.
2 Метод может объявляться на любом из языков, указанных в этом стандарте.
3 В текстовом объявлении методы перечисляются после объявления переменных класса.
4 Метод может объявлять свои собственные VARJNPUT. внутренние временные переменные
VAR и VAR_TEMP, VAR_OUTPUT. VAR_IN_OUT и результат метода.
Ключевые слова VAR_TEMP и VAR имеют то же самое значение и оба являются разрешенными
для внутренних переменных.
(Ключевое слово VAR используется в функциях).
5 Объявление метода содержит один из следующих спецификаторов доступа. PUBLIC, PRIVATE,
INTERNAL или PROTECTED. Если спецификатор доступа на задан, метод будет PROTECTED по умол
чанию.
6 Объявление метода может содержать дополнительные ключевые слова OVERRIDE или
ABSTRACT.
Примечание 1— Перегрузка методовне входит в задачу настоящего стандарта.
Объявление метода должно подчиняться следующим правилам:
7 Во время выполнения метод может читать свои входные переменные и вычисляет выходные
переменные и результат, используя временные переменные.
8 Результат метода присваивается его имени.
9 Все переменные метода и его результат являются временными (как переменные функции), то
есть переменные не сохраняются от одного вычисления метода до другого.
Поэтому, вычисление выходных переменных метода возможно только в непосредственном кон
тексте вызова метода.
10 Имена переменных каждого метода класса должны быть различными (уникальными). Имена
локальных переменных различных методов могут быть одинаковыми.
11 Все методы класса имеют доступ для чтения/записи к статическим и внешним переменным,
объявленным в классе.
12 Все переменные и результаты могут быть многозначными, например, массив или структура.
Как это объявлено для функций, результат метода может использоваться как операнд в выражении.
13 Во время выполнения метод может использовать другие методы, определенные в этом классе.
Методы экземпляра данного класса вызываются, используя ключевое слово THIS.
Следующий пример иллюстрирует упрощенное объявление класса с двумя методами и вызов
метода.
115