ГОСТ Р МЭК 61131-3—2016
6.6.1.7 Перегрузка
6.6.1.7.1 Общие положения
Говорят, что элемент языка перегруженный, когда он может оперировать с элементами входных
данных различных типов в пределах родового типа данных, например ANY_NUM. ANYJNT.
Следующие стандартные элементы языка, предоставляемые изготовителем, могут иметь родо
вую перегрузку как специальное свойство:
- стандартные функции
Это — перегруженные стандартные функции (например. ADD, MUL) и перегруженные стандарт
ные функции преобразования (например, TO_REAL. TOJNT):
- стандартные методы
Настоящий стандарт не определяет стандартные методы в пределах стандартных классов и ти
пов функциональных блоков. Однако они могут быть предоставлены разработчиком;
- функциональные блоки
Настоящий стандарт но определяет стандартные функциональные блоки, за исключением неко
торых простых блоков, таких как счетчики.
Однако они могут быть определены другими частями МЭК 61131. и могут предоставляться раз
работчиком.
- стандартные классы
Настоящий стандарт не определяет стандартных классов. Однако они могут быть определены в
других частях МЭК 61131, и могут предоставляться разработчиком;
- операции
Это, например. «+» и «*» в языке ST; ADD, MUL в языке IL.
6.6.1.7.2 Преобразование типов данных
Когда система программированного контроллера поддерживает перегруженные элементы языка,
данный элемент языка применяется ко всем подходящим типам данных этого родового типа, которые
поддерживаются системой.
Подходящие типы данных для каждого элемента языка определены в соответствующих таблицах
свойств. Следующие примеры иллюстрируют детали;
Пример 1
Настоящий стандарт определяет для функции ADD родовой тип данных ANY_NUM для многих
входных переменных одного вида и одного выходного результата.
Разработчик определяет для этого родовой тип данныхANY_NUMдля связанных элементарных
типов данных REAL и INT системы PLC.
Пример 2
Настоящий стандарт определяет функцию битового сдвига LEFT для родового типа данных
ANY_BIT для одной входной переменной и выходного результата и родового типа данныхANYJNT для
другой входной переменной.
Разработчик определяет следующие два родовых типа данных для системы PLC:
ANY_BIT представляет, например, элементарные типы данных BYTEи WORD;
ANYJNTпредставляет, например, элементарные типы данных INT и UNT.
Перегруженный элемент языка оперирует с определенными элементарными типами данных в со
ответствии со следующими правилами:
- типы данных входных переменных и результата имеют одинаковый тип. это применимо к вход
ным переменным и результату одинакового вида.
«Одинаковый вид» означает, что параметры, операнды и результат одинаково используются при
сложении и умножении.
Более сложные комбинации определяются разработчиком.
- если типы данных входных и выходных данных одинакового вида имеют разный тип, то преоб
разование типов в элементе языка определяется разработчиком:
- неявное преобразование типов выражения и присваивания следует за последовательностью
вычисления выражения. См. примеры ниже;
- тип данных переменной для хранения результата перегруженной функции не влияет на тип дан
ных результата функции или результата.
56