Tag Archives: программирование PLC

Компоненты проекта CoDeSys

Проект

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

POU (Program Organization Unit)

К программным компонентам (POU) относятся функциональные блоки, функции и программы. Отдельные POU могут включать действия (подпрограммы). Каждый программный компонент состоит из раздела объявлений и кода. Для написания всего кода POU используется только один из МЭК языков программирования (IL, ST, FBD, SFC, LD или CFC). CoDeSys поддерживает все описанные стандартом МЭК компоненты. Для их использования достаточно включить в свой проект библиотеку standard.lib. POU могут вызывать другие POU, но рекурсии недопустимы.

Функция

Функция – это POU, который возвращает только единственное значение (которое может состоять из нескольких элементов, если это битовое поле или структура). В текстовых языках функция вызывается как оператор и может входить в выражения.При объявлении функции необходимо указать тип возвращаемого значения. Для этого после имени функции нужно написать двоеточие и тип.

Имя функции используется как выходная переменная, которой присваивается результат вычислений.

Объявление функции должно начинаться с ключевого слова FUNCTION и заканчиваться ключевым словом END_FUNCTION.

В языке ST вызов функции может присутствовать в выражениях как операнд.

В SFC функция вызывается только из шага или перехода.

Функция не имеет внутренней памяти. Это означает, что функция с одними и теми же значениями входных переменных всегда возвращает одно и то же значение.

 

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

Функциональный блок — это POU, который принимает и возвращает произвольное число значений. В отличие от функции функциональный блок не формирует возвращаемое значение. Объявление функционального блока начинается с ключевого слова FUNCTION_BLOCK и заканчивается ключевым словом END_FUNCTION_BLOCK.

Ниже приведен пример функционального блока, написанного на IL, который имеет две входных и две выходных переменных. Значение выходной переменной MULERG равно произведению значений двух входных переменных, а значение VERGL определяется в результате сравнения значений входных переменных.

Экземпляры функционального блока

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

Вызов экземпляра функциональный блока происходит с помощью его имени. Входные и выходные переменные доступны вне функционального блока, а внутренние переменные доступны только в самом блоке.

Экземпляры функционального блока могут быть объявлены в другом функциональном блоке или в программе. Объявлять экземпляр функционального блока в теле функции нельзя. Экземпляры функционального блока доступны в том POU, в котором они объявлены, если они не объявлены глобально.

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

 

Вызов функционального блока

Для обращения к входным и выходным переменным функционального блока извне необходимо указать имя экземпляра функционального блока, следующей за ней точкой и именем переменной:

<Имя экземпляра>.<Имя переменной >

Присваивание параметров при вызове:

В текстовых языках (IL, ST) задать актуальные параметры и считать значения выходов можно непосредственно при вызове экземпляра функционального блока. Для входных переменных применяется присваивание «:=», выходы считываются при помощи «=>». Этот процесс упрощается, если использовать ассистент ввода (<F2>) с включенной опцией вставки с аргументами (With arguments).

 

Программа

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

Если вызвать программу, которая изменит значения своих переменных, то при следующем вызове ее переменные будут иметь те же значения, даже если она вызвана из другого POU.

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

Объявление программы начинается ключевым словом PROGRAM и заканчивается ключевым словом END_PROGRAM.

Так же, как и для экземпляров функциональных блоков, в текстовых языках (IL, ST) задать актуальные параметры и считать значения выходов можно непосредственно при вызове программы. Для входных переменных применяется присваивание «:=», выходы считываются при помощи «=>».

 

PLC_PRG

Программа PLC_PRG – это специальный POU, который должен быть в каждом проекте. Эта программа вызывается один раз за цикл управления.

При создании нового проекта автоматически открывается диалог «Project» «Object Add», предлагающий создать новый POU — программу с именем PLC_PRG.

Не следует менять предложенные установки. Если определить последовательность выполнения задач в Task Configuration, то проект может не содержать PLC_PRG.

Действие

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

Вызов действия:

Действие вызывается с помощью идентификатора:

<Имя_программы>.<Имя_действия> или <Имя_экземпляра>.<Имя_действия >.

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

Ресурсы

Ресурсы отвечают за конфигурацию проекта, включая:

  • Глобальные переменные, используемые во всем проекте.
  • Менеджер библиотек (Library manager) для подключения необходимых библиотек к проекту
  • Журнал записи действий во время исполнения
  • Конфигуратор тревог (Alarm Configuration) для конфигурирования обработки тревог в проекте
  • Конфигуратор ПЛК (PLC Configuration) для конфигурирования аппаратуры контроллера.
  • Конфигуратор задач (Task Configuration) для управления задачами
  • Менеджер рецептов (Watch and Receipt Manager) для просмотра и заказа наборов значений переменных
  • Опции целевой системы (Target Settings)
  • Рабочая область для отображения опций проекта

В зависимости от системы исполнения и ее опций могут подключаться дополнительные объекты:

Sampling Trace — для задания графической трассировки значений переменных.

ParameterManager — для взаимодействия с другими контроллерами в сети

PLC-Browser — монитор ПЛК

Tools – для вызова внешних, специфичных для каждой платформы инструментов

SoftMotion – компоненты системы управления движением (в соответствии с лицензией), редакторы CNC и CAM

Библиотеки

Проект может использовать несколько библиотек, в которые входят POU, необходимые им типы данных и глобальные переменные. Библиотечные POU можно использовать точно так же, как и определенные пользователем.

Библиотеки «standard.lib» и «util.lib» обязательно входят в стандартный комплект поставки.

 

Типы данных

Кроме стандартных типов данных, вы можете использовать определяемые пользователем типы данных. Ими могут быть структуры, перечисления и ссылки.

 

Визуализация

С помощью визуализации пользователь может создать графическое представление проекта. Форма и цвет графических элементов будут изменяться при работе программы в зависимости от значений переменных. Визуализация может исполнятся в системе программирования, в отдельном приложении CoDeSys HMI или как Web или целевая (в ПЛК) визуализация.

 

Мой блог находят по следующим фразам

Что такое CoDeSys

CoDeSys это современный инструмент для программирования контроллеров (CoDeSys образуется от слов Controllers Development System).

CoDeSys предоставляет программисту удобную среду для программирования контроллеров на языках стандарта МЭК 61131-3. Используемые редакторы и отладочные средства базируются на широко известных и хорошо себя зарекомендовавших принципах, знакомых по другим популярным средам профессионального программирования (такие, как Visual C++).

С чего начинается программный проект?

Прежде всего нужно дать проекту новое имя, оно же послужит и названием файла проекта. Первый программный компонент (POU Program Organization Unit) помещается в новый проект автоматически и получает название PLC_PRG. Именно с него и начинается выполнение процесса (по аналогии с функцией main в языке С), из него будут вызываться другие программные блоки (программы, функции и функциональные блоки).

Нет необходимости писать вручную текст для PLC_PRG, поскольку конфигурация задачи определяется на вкладке проекта Task Configuration.

Проект содержит ряд разнородных объектов POU, данных разных типов, элементов визуализации и ресурсов. Организатор объектов (Object Organizer) управляет списком всех объектов Вашего проекта.

Как создать собственный проект?

Для начала вы определяете конфигурацию ПЛК в соответствии с аппаратными средствами своего контроллера. Затем вы создаете программные компоненты, необходимые для решения проблемы. Далее вы пишете программный код для созданных компонентов на выбранных языках. Сразу после завершения программирования, вы компилируете проект и исправляете ошибки, если они

есть.

Как проверить проект?

Когда все ошибки устранены, можно приступить к отладке. Включите флажок эмуляция (simulation) и «подключитесь» к контроллеру. Теперь вы в режиме Online. Откройте окно с конфигурацией ПЛК (PLC Configuration) и проверьте правильность выполнения проекта. Для этого измените вручную входные данные и убедитесь, что выходы контроллера отреагировали нужным образом. Если необходимо, вы можете наблюдать значения переменных в программных компонентах. Используя менеджер просмотра и заказа значений переменных (короче, менеджер рецептов) Watch and Receipt Manager, вы сможете задать список переменных, значения которых необходимо наблюдать.

Отладка

В случае ошибок в работе кода вы можете задать точки останова. Когда процесс остановлен в определенной точке, вы можете просмотреть значения переменных проекта в данный момент времени. Выполняя проект в пошаговом режиме (single step), вы можете проверить логическую корректность своих программ.

Дополнительные возможности режима Online

В процессе отладки вы можете устанавливать значения переменных программ, задавать фиксированные значения на входы и выходы контроллера, контролировать последовательность исполнения процесса и определить место в программе, которое сейчас выполняется. Используя трассировку (Sampling Trace), отслеживать в графическом представлении изменения значений переменных за определенный промежуток времени.

Когда проект закончен и отлажен, переходите к окончательной доводке в рабочих условиях на реальном «железе». Естественно, при этом полностью доступны все отладочные функции.

Дополнительные возможности CoDeSys

Весь проект может быть экспортирован в текстовый файл и сохранен в печатном виде. Средства коммуникации CoDeSys включают символьный и DDE интерфейсы. Коммуникационный сервер, OPC и DDE серверы входят в стандартный пакет поставки. Путем выбора целевой платформы CoDeSys позволяет использовать один проект в различных системах.

Сетевые переменные общего доступа и Менеджер параметров обеспечивают средства сетевого взаимодействия контроллеров.

ENI: инжиниринговый интерфейс применяется совместно с любыми системами управления версиями через автономный ENI сервер. Программные компоненты CoDeSys сохраняются в единой базе данных, доступной другим пользователям. ENI сервер служит хранилищем конструкторских данных не только для CoDeSys, но и для сторонних программных инструментов.

CoDeSys позволяет задействовать «фирменные» программные инструменты. Файлы, включающие исполняемый код, могут быть скомпонованы с кодом проекта и загружены в контроллер.

Созданная в CoDeSys визуализация может выполняться не только в среде программирования, но и в целевой платформе или в Web. Это позволяет контролировать процесс и управлять им через Интернет.

 

Мой блог находят по следующим фразам

Что такое PLC (ПЛК)

Программируемый логический контро́ллер (ПЛК) (англ. Programmable Logic Controller, PLC) – это аббревиатура, которая объединяет весьма разные устройства, отличающиеся количеством и качеством входов и выходов, интерфейсов, средой программирования и т.п. Пожалуй, единственный признак, выделяющий ПЛК из множества средств автоматизации – способность реализации пользовательского алгоритма управления технологической системой.

PLC

Российский ПЛК

Кто и когда изобрел ПЛК

Современные источники приписывают честь создания ПЛК янки. И в отличие скажем от «русского света» Яблочкова нахально переименованного в «лампочку Эдисона» здесь видимо стоит поверить. Годом рождения ПЛК принято считать 1969 год, когда такие аппараты впервые были внедрены на заводах американской автомобильной промышленности. Довольно быстро такие аппараты оценили по обе стороны океана и сегодня в России мы гораздо чаще имеем дело с немецкими и японскими производителями ПЛК, нежели с американскими. В последнее время на рынке появились интересные разработки отечественных производителей. Благодаря успехам микроэлектроники произошла миниатюризация ПЛК, превратившая вчерашние шкафы в компактные коробочки.

ПЛК компании siemens

ПЛК компании siemens

Понятия

Как и весь цивилизованный мир, сфера ПЛК существует по понятиям. Понятия эти устоялись и закреплены в стандарте МЭК 61131-3 (Международной электротехнической комиссии). Именно в нем прописана структура проекта для ПЛК, стандартные языки программирования. Другие разделы стандарта МЭК 61131 определяют требования к аппаратной части ПЛК, их документированию, да и много чему еще. Скажу по секрету фолиант исключительно увесистый, однако чрезвычайно полезный. Скажем спасибо его разработчикам.

 

Мой блог находят по следующим фразам