Программы для ПЛК создаются на языках программирования, стандартизированных МЭК в документе [IEC61131-3]. Самым простым и старым языком программирования МЭК-стандарта является язык LD – ladder diagram – лестничная диаграмма, лестничная логика,
в советском стандарте называвшийся языком релейно-контактных РКСсхем ( ). На нем и будем писать первую программу для ПЛК.
Язык LD – графический язык, в котором программа выглядит, как релейная схема в стандарте промышленной автоматизации. Вертикальная л н я слева – «провод с высоким потенциалом», вертикальная л н я справа – «нулевой провод». Между ними располагаютниися контактные цепи в виде горизонтальных линий (по общему виду программы дано название языка программирования). Слева по ли-
располагаются «коммутаторы электрического тока» (соответствуют входнымбпеременным логического типа и дискретным входам). Справа – «потре тели электрического тока» (соответствуют выходным переменным лог ческого типа и дискретным выходам). Предполагается, что «коммутаторы» можно соединять в любом порядке и последовательности, определяя логику работы цепи, а потребители – только параллельно,Атак как в реальном подобном устройстве они в любом случае замыкали ы цепь и включались бы одновременно.
Д И
Рисунок 11. Новая программа, рабочее поле для программирования на LD
11
Цепь из двух последовательно соединенных коммутаторов соответствует логической операции «И», а цепь из двух параллельно соединенных коммутаторов соответствует логической операции «ИЛИ». Операции «НЕ» соответствует нормально замкнутая кнопка, которая размыкает цепь (фактически, дает логический нуль) при нажатии (по-
Сдачи логической единицы) и наоборот. Подробные сведения о языке LD можно взять из лекционного курса.
остав м программу, с помощью которой можно построить таблицы ст нности основных логических операций, которые зада-
дискретныедим помощью лестн чной логики.
Во-первых, надо знать, как правильно в программе использовать входы ПЛК. Внизу вертикальной панели в левой части основного окна стемы «CoDeSys» есть четыре закладки, каждая из
которых соответствуетбопределенной части структуры проекта на «CoDeSys», структура ото ражается на самой панели. По четвертой (самой правой) закладке ото ражаются параметры конфигурации проекта, в том ч сле конфигурации самого ПЛК (см. рисунок 12). Она и потребуется, нужно вы рать ее, далее выбрать в появившемся иерархическом деревеАпункт «Конфигурация ПЛК».
Д
Рисунок 12. Конфигурирование входов и выходов контроллераИв системе CoDeSys
Во-вторых, надо поставить задачу, решаемую с помощью ПЛК. Есть три логических операции: «И», «ИЛИ» и «НЕ». Максимальное число операндов у элементарных операций – два; выход у каждой операции один. Таким образом, чтобы задать операнды, надо задействовать два дискретных входа, а чтобы одновременно видеть результаты всех трех операций надо задействовать три дискретных выхода.
12
Входы и выходы в МЭК-языках могут обозначаться по именам и по адресам. Пример обозначения входа по адресу: «%IX0.0», пример обозначения выхода: «%QX1.0». Здесь «I» и «Q» обозначают, что это, соответственно, вход и выход, «X» – то, что его емкость составляет один двоичный разряд (один бит), то есть, он может хранить либо нуль, либо единицу (бывают входы и выходы на 8, 16, или даже 32 бита, которые хранят числа). Первая цифра (слева от точки) – это ад-
рес ячейки (группы б т, байта, |
двухбайтового слова, структуры, и т. |
||
д.), где хран тся значение, вторая цифра (справа от точки) – номер |
|||
значен |
я в ячейке, в данном случае номер бита в байте (нумеруется от |
||
0). По умолчан ю д скретные входы (рисунок 15, верхняя часть ли- |
|||
С |
|
|
|
цевой панели) 1, 2...6 соответствуют адресам %IX0.0, %IX0.1... |
|||
%IX0.5, а д скретные выходы (рисунок 15, нижняя часть лицевой па- |
|||
нели) 1, 2, 3, 4 соответствуют %QX1.0, %QX1.1, %QX1.2, %QX1.3. |
|||
Эти адреса |
спользовать в процессе всей дальнейшей работы. |
||
Адресам можно |
в соответствие имена. Один из спосо- |
||
поставить |
|
||
бов это сделать показан на рисунке 12: на конфигурационном экране в |
|||
дереве |
меющ хся д скретных входов нужно сделать двойной щел- |
||
будем
чок «мыши» на словеА«AT», в результате появится поле для ввода
имени, и после ввода имени (например «A»), вся конструкция будет выглядеть, как «A AT %IX0.0...», это будет обозначать, что переменная A связана с входом %IX0.0. Таким образом, зададим переменные A и B, соответствующие входам Д%IX0.0 и %IX0.1 и переменные C, D и E, соответствующие выходам %QX1.0, %QX1.1 и %QX1.2.
Переходим к написанию непосредственно программы. В переменную C будет заноситься результат операции «И», в переменную D – результат операции «ИЛИ» (участвуют переменные A и B), а в переменную E – результат операции «НЕ», произведенной надИпеременной A.
Вид программы для решения данной задачи приведен на рисунке 13. Стоит немного рассказать о работе с редактором LD. Чтобы на новой строке поставить первый элемент, необходимо сделать клик «мышью» в правой части строки, при этом на ней появится пунктирный прямоугольник. Далее следует нажать кнопку на панели под главным меню, на которой изображен требуемый элемент, при этом «коммутатор» будет расположен в левой части строки, а «потребитель» – в правой части. Чтобы создать параллельное соединение «коммутаторов» необходимо выделить один или несколько «коммутаторов», параллельно которым строится ветвление, (последнее делается «мышью» при зажатой клавише «Shift» клавиатуры), после чего
13
нажимается соответствующая кнопка на панели инструментов под главным меню (третья, или четвертая слева в группе кнопок «коммутаторов»). Чтобы добавить еще один «потребитель» необходимо сделать щелчок «мышью» по существующему «потребителю» и нажать соот-
ветствующую кнопку на панели инструментов под главным меню. Си б А
Рисунок 13. Программа дляДпостроения таблиц истинности логических элементов в редакторе средыИ«CoDeSys»
Удалить элемент можно выделив его щелчком левой кнопки «мыши» и нажав клавишу «Delete». Добавлять в программу новые строки можно комбинацией клавишей «Ctrl-T», либо пунктами выпадающего по правой кнопке меню «Цепь (перед)» и «Цепь (после)».
После создания программы, ее необходимо перевести на машинный язык – скомпилировать. Вызов компилятора осуществляется из основного окна «CoDeSys», из главного меню: «Проект» – «Компилировать всё». После выбора этого пункта в нижней панели окна (см. рисунок 13; панель служебных сообщений, если ее не было, то она появится) через некоторое время появится надпись «0 ошибок, 0 предупреждений». Компиляция успешна, если в ней нет (то есть,
14
ноль) ошибок. Предупреждения – это указания на не ошибочные, но сомнительные, либо бессмысленные места в программе (например, переменная значение знакового типа присваивается переменной беззнакового типа, или переменная объявлена, но нигде не использована), при наличии предупреждений программа, возможно, будет рабо-
Стать некорректно, либо из текста программы можно удалить определенные вещи, совершенно ей не вредя. При наличии ошибок, их необходимо справлять, выше по тексту на панели служебных сообщений (там же, где указано количество ошибок и предупреждений) на-
ходятся сообщен я об ошибках, которые указывают на ошибочные строкипрограммы. б А
Рисунок 14. Подменю взаимодействияДс ПЛКИв главном меню
После компиляции программу можно загружать в ПЛК и запускать. В случае отсутствия в ПЛК программы, или наличия в нем другой программы, загрузка программы в ПЛК происходит автоматически после выбора пункта «Подключить» подменю «Онлайн» главного меню (см. рисунок 14). Запуск на исполнение и остановка программы в ПЛК осуществляется одним нажатием кнопки «Старт/стоп» на передней панели ПЛК, либо выбором соответствующего пунктов «Старт» и «Стоп» подменю «Онлайн» главного меню.
15