Доктор Кен Райан – Уголок кодера: Стандарты архитектуры PLCopen и ввод данных
        Автор: Доктор Кен Райан, Технический колледж Александрии
        Перевод: М.В. Савчук
        Источник: https://www.automation.com

            Уголок кодера: Стандарты архитектуры PLCopen и ввод данных

        Доктор Кен Райан является членом правления PLCopen и инструктором
    Центра Автоматики и Управления Движением в Техническом Колледже Александрии.
    Он является основателем и директором Лаборатории Автоматизации Производства и
    руководит программой Интеграции Систем Автоматизации в центре.
        Это первая статья из серии, посвященной написанию кода с использованием
    стандарта программирования IEC 61131–3. В первых нескольких статьях основное
    внимание будет уделено ориентации на архитектуру стандарта и правилам ввода
    данных. После изучения, в конце этой серии, будут рассмотрено написание кода
    для различных областей применения.
 Рисунок 1
                                                                        Рисунок 1

        Стандарт IEC 61131–3 имеет иерархический подход к структуре программирования.
    Модель программного обеспечения на рисунке 1 изображает блок–схему этой структуры.
    Разложим эту структуру сверху вниз.

        Конфигурация:

        На верхнем уровне структуры программного обеспечения для любого управляющего
    приложения есть конфигурация. Эта «конфигурация» – управляющая архитектура
    программного обеспечения, определяющего функцию конкретного ПЛК в конкретном
    приложении. ПЛК может иметь много процессоров и может быть одним из нескольких
    используемых в общем приложении, таком как обрабатывающая установка. Обычно мы
    обсуждаем одну конфигурацию использующую только один ПЛК, но с управлением на
    базе ПК конфигурация может быть расширена, чтобы включить один ПК, который может
    иметь возможность нескольких ПЛК. Конфигурация может потребоваться для связи с
    другими конфигурациями в общем процессе с использованием определенных интерфейсов,
    которые обеспечивают пути доступа для функций связи. Они должны быть формально
    определены с использованием стандартных языковых элементов.

        Ресурс:

        Под каждой конфигурацией находятся один или несколько ресурсов. Ресурс
    обеспечивает поддержку выполнения программы. Это определяется стандартом как:

    «Ресурс соответствует «функции обработки сигнала» и его функциям
    «человеко–машинного интерфейса» и «интерфейса датчика и исполнительного
    механизма» (если есть), как определено в МЭК 61131–3.»

        Программа IEC не может выполняться, если она не загружена на ресурс. Ресурс
    может быть исполняемым приложением, существующим в контроллере, который может
    существовать в ПЛК или на ПК. Фактически, во многих интегрированных средах
    разработки сегодня среда выполнения может использоваться для имитации выполнения
    управляющей программы для целей разработки и отладки. В большинстве случаев одна
    конфигурация будет содержать один ресурс, но стандарт предоставляет несколько
    ресурсов в одной конфигурации. На рисунке 1 показаны 2 ресурса в одной конфигурации.

        Задача:

        Задачи – это механизм контроля выполнения ресурса. Может быть задана
    неопределенная задача или несколько задач, определенных для любого заданного
    ресурса. Если никакая задача не объявлена, программное обеспечение должно иметь
    определенную программу, которую он распознает для выполнения по умолчанию. Как
    видно из рис. 1, задачи могут вызывать программы и функциональные блоки. Однако
    некоторые реализации стандартов IEC 61131–3 ограничивают задачи только вызывающими
    программами, а не функциональными блоками. Задачи имеют 3 атрибута:
        1. Название
        2. Тип – Непрерывный, Циклический или Событийный
        3. Приоритет – 0 = Наивысший приоритет

        Программные подразделения:

        Нижние три уровня модели программного обеспечения совместно именуются в
    программе организации единиц (Pous).
        • Программы
        • Функциональные блоки
        • Функции

        Программы:

        Программа, при использовании в качестве существительного, относится к
    программному объекту, который может включать или «ссылаться» рядом функциональных
    блоков или функций для выполнения обработки сигнала, необходимой для достижения
    частичного или полного контроля над машиной или процесс с помощью программируемого
    контроллера системы, Это обычно делается путем увязывания нескольких функциональных
    блоков и обмена данных через соединение программного обеспечения, созданного с
    помощью переменных. Экземпляры (копии программы) могут быть созданы только на
    уровне ресурсов. Программы могут считывать и записывать данные ввода–вывода с
    использованием глобальных и непосредственно представленных переменных. Программы
    могут вызывать и обмениваться данными с другими программами с использованием
    глобальных переменных на уровне ресурсов. Программы могут обмениваться данными с
    программами в других конфигурациях с использованием функциональных блоков связи
    и через пути доступа.

        Функции:

        «Самый низкий» уровень организации программы – это функция. Функция
    представляет собой программный объект, который при вызове и снабжении уникальным
    набором входных переменных возвращает одно значение с тем же именем и с тем же
    типом данных, что и функция. Непеременной функцией называется функция, которая
    возвращает одно и то же значение в любое время, когда поставляются одни и те же
    входные значения. Лучшим примером функции является функция ADD. Каждый раз, когда
    я подаю 2 и 2 на входные функции ADD, я получаю 4 в качестве возвращаемого
    значения. Поскольку нет другого решения для 2 + 2, тогда нет необходимости хранить
    информацию о предыдущем вызове функции ADD (без создания экземпляра) и,
    следовательно, нет необходимости в внутренней памяти.

        Пути доступа:

        Путь доступа – метод, обеспечивающий обмен данными между различными
    конфигурациями. Пути доступа снабжают именованную переменную, через которую
    конфигурация может передавать значения данных в / из других удаленных конфигураций.
    Стандарт не определяет протокол нижнего уровня, который будет использоваться для
    этой передачи, а скорее определяет создание конструкции («контейнера»), в которой
    данные могут перемещаться.

        Глобальная переменная:

        Наконец, мы приходим к переменным, которые объявляются «видимыми» для всех
    членов определенного уровня иерархии. Если глобальная переменная объявляется на
    программном уровне, все программы, функциональные блоки и функции, входящие в эту
    программу, имеют доступ к этим данным. Мы говорим, что данные находятся в пределах
    их объема. Аналогично, глобальная переменная, объявленная на уровне ресурсов,
    будет доступна для ВСЕХ программ, расположенных на этом ресурсе.

        Вывод:

        Программная модель IEC 61131–3 является модульной и иерархической. Мы изложили
    основные компоненты первого учебника. В следующий раз мы рассмотрим детали
    механизма задачи. В последующих учебниках основное внимание будет уделено
    особенностям ПМ с акцентом на различиях между программами, функциональными блоками
    и функциями. Пути доступа будут в центре внимания другого учебника наряду с
    концепциями ввода данных.

        Если у вас есть идеи или вопросы о приложениях, отправьте их:
    доктору Кену Райану – Советы управления PLCopen – kenr@LearnMechatronics.org.