Списка инструкций (СИ).
Обзор языков и сред программирования ПЛК
ПЛК – это логические контроллеры. Они в первую очередь были предназначены для замены релейных элементов схем, работающих, как известно, по принципу «включено / выключено». Это не говорит о том, что с их помощью нельзя обрабатывать аналоговые сигналы. В некоторых типах контроллеров уже заложена возможность обработки таких сигналов, в других - эта задача может решаться применением специальных модулей расширения (как в контроллерах LOGO, например).
В любом случае, первое, с чем надо определиться перед составлением программы, - каким образом “объяснить” контроллеру то, какую задачу он должен выполнить. В разных языках программирования это делается по-разному.
2.1 Языки релейно-контактных схем (РКС)и
Перед программированием на языке релейно-контактных схем нужно выполнить несколько предварительных этапов.
· Надо переопределить все составляющие оборудования в символы, понятные для контроллера. Он ведь ничего не знает о реле, выключателях, двигателях. Он может только оценить состояния входов ( включено / выключено) и по введённой в него программе принять решение о том, включить или выключить состояния тех или иных выходов.
· Заменить источник питания. В РКС для этого использованы две вертикальные прямые с обеих сторон окна описания программы. Можно считать одну из них плюсовой шиной питания, а другую – минусовой.
· Присвоить символы входам и выходам.
Как пройти эти этапы составления программы, показывается на примере простейшей задачи. На рисунке 1.16 приведена схема подачи питания на контроллер. Оно включается нажатием кнопки Start, а отключается кнопкой аварийного или штатного останова (с индексом 3). Если предположить, что некоторый контроллер по своей программе должен включить питание на контроллер, изображённый на рис.1.16, а под кнопками с ручным управлением понимать управляемые контакты, то в символике языка РКС это можно представить следующим образом.
Назначим символы входам и выходам.
Вход (X1) – нормально открытый (разомкнутый) контакт. При срабатывании кнопки Startэтот контакт замкнётся.
Вход (X2) – нормально закрытый (замкнутый) контакт. При срабатывании кнопки останова этот контакт разомкнётся.
Выход (Y1) – цепь питания контроллера, обозначающая в данном примере некоторую коммутируемую нагрузку.
Программа включения будет выглядеть так:
В реальных программах взаимодействует много сигналов, и отдельные строки записываются одна под другой (лестницей, ступеньками). Видимо поэтому язык РКС в англоязычной литературе часто обозначается как LAD (Ladder Diagram), т.е. лестничных диаграмм.
Отметим, что рассмотренную задачу включения нагрузки можно представить иначе. Речь идёт о языке, который называется “Список Инструкций” (СИ). Поскольку среда программирования MELSEC MEDOC FX / WIN позволяет составлять программу и в одном языке, и в другом, то, чтобы избежать излишних повторений при их описании, одни и те же примеры будут рассмотрены параллельно и записаны в форматах представления обоих языков (РКС и СИ).
В языке РКС и типы контактов, и их взаимодействие отображаются в тексте программы путём указания вида их соединения.
В языке СИ и тип контакта, и способ взаимодействия обозначаются соответствующей командой.
Самые простые КОМАНДЫ обозначают только тип контакта.
1. Команда LD.
И графическое отображение в РКС, и команда LDв СИ обозначают нормально открытый (незамкнутый) контакт. При замыкании X0 выход Y0 перейдёт в состояние ON (включено).
2. Подобно этому символ и команда LDI обозначают нормально закрытый (замкнутый) контакт X1, при срабатывании которого выход Y1 перейдёт в состояние OFF (выключено).
Значительная часть КОМАНД определяет характер взаимодействия сигналов.
3. Команда AND –логическое умножение (конъюнкция). Результатом операции является «истина», если оба операнда принимают значение «истина», и «ложь» - во всех других случаях.