600007 г. Владимир, ул. 16 лет Октября, д. 68А, литер "Ф", этаж 2, помещение 12
+7 (4922) 53-10-31
info@skb-proton.ru

Что такое программные организационные единицы (POUS) в программировании ПЛК?

Преобразователи частоты

Программная модель для ПЛК, как определено в IEC 61131-3 стандарт, Программируемые контроллеры – Часть 3: Языки программирования, состоит из, на верхнем уровне, конфигурации. Конфигурация определяет аппаратную структуру и логику системы ПЛК и содержит ресурсы (например, ПЛК или PAC), которые способны выполнять программы. Эти ресурсы управляются задачами, которые вызывают выполнение программных блоков, составляющих проект ПЛК. Эти программные блоки называются программными организационными единицами.

IEC 61131-3 определяет три типа программных организационных единиц (POUS) — программы, функциональные блоки, и функции.

Программы

Программы являются программными организационными единицами самого высокого уровня и могут быть написаны на любом из языков программирования стандарта IEC 61131-3. Каждая программа представляет собой сеть функций и функциональных блоков (см. ниже), которая управляет машиной или процессом. Следовательно, в любом проекте требуется по крайней мере одна программа.

Программы могут считывать и записывать данные в другие входные или выходные переменные и могут взаимодействовать с другими программами. И они являются единственными POU, которые могут объявлять глобальные переменные, которые становятся доступными по всему проекту, и пути доступа, которые позволяют обмениваться данными между конфигурациями

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

Функциональные блоки

Наиболее распространенный тип POU, функциональные блоки — это сегменты повторно используемого кода, которые имеют внутреннюю память и могут возвращать разные выходные данные, даже если используются одни и те же входные данные. Другими словами, результаты функционального блока зависят от предыдущего вывода функционального блока или текущего состояния процесса или действия. Примером функционального блока является контур ПИД-регулирования.

Функциональные блоки могут вызываться программами или другими функциональными блоками, а в некоторых реализациях стандарта IEC 61131-3 они могут вызываться задачами. Память, которая будет захватывать и сохранять выходные данные, должна быть выделена для каждого уникального экземпляра функционального блока — процесс, иногда называемый созданием экземпляра, поскольку он создает “экземпляр” функционального блока.

Функции

Функцию можно рассматривать как подпрограмму (часто уравнение), у которой нет внутренней памяти, поэтому она возвращает значение, а не выходные данные. Это означает, что при каждом вызове (выполнении) функции, если используются одни и те же входные данные, будет возвращено одно и то же значение, независимо от того, сколько раз функция использовалась. Распространенными примерами функций являются ADD и SQRT (квадратный корень).

Модель программного обеспечения IEC 61131-3 — с программами, функциональными блоками и функциями для создания проектов ПЛК — обеспечивает эффективное программирование, позволяя копировать и повторно использовать программные блоки, которые уже были внедрены и протестированы в других местах, или идентифицировать и деактивировать их для устранения неполадок.