Программирование на языках LAD, STL и FBD
Каждый вход и выход имеет абсолютный адрес, предопределенный конфигурацией аппаратуры. Этот адрес указывается непосредственно, например: I 1.5 (вход-байт 1-бит 5). Абсолютный адрес может быть заменен символическим именем по вашему выбору (рис.53).

Рис. 53 Распределение адресов
Лучше использовать только абсолютное программирование, если в программе S7 не нужно обращаться ко многим входам и выходам.
Создание программы в OB1
В STEP 7 программы S7 создаются на стандартных языках программирования: контактный план (LAD), список операторов (STL) или функциональный план (FBD), рисунок 54. На практике необходимо решить, какой язык использовать.

Рис. 54 Стандартные языки программирования
Блок OB1 теперь откроется в соответствии с языком, который вы выбрали при создании блока в мастере проекта. Однако вы можете в любое время изменить язык программирования, установленный по умолчанию.
Копирование таблицы символов и открытие OB 1
Для копирования таблицы символов необходимо открыть свой проект "Getting Started". Для этого щелкните на кнопке Open [Открыть] на панели инструментов, выберите проект "Getting Started", который был создан, и подтвердите с помощью OK.
В зависимости от того, какой язык программирования решено использовать, откройте один из следующих проектов:
Ø zEn01_06_STEP7__ LAD _1-9;
Ø zEn01_02_STEP7__ STL _1-9;
Ø zEn01_04_STEP7__ FDB _1-9.
В методических указаниях приведены все три примера проектов. Необходимо открыть „zEn01_XXX“ и достигнуть компонент Symbols [Символы]. Далее студент может скопировать его с помощью буксировки в папку S7 Program в окне своего проекта "Getting Started". Затем окно „zEn01_XXX“ закрывается. Дважды щелкнув на OB 1 в проекте "Getting Started" и откроется окно для программирования LAD/STL/FBD.
Буксировка означает, что вы щелкаете мышью на любом объекте и перемещаете его, удерживая кнопку мыши нажатой. Когда вы отпускаете кнопку мыши, объект вставляется в выбранной позиции. В STEP 7 OB 1 обрабатывается CPU циклически. CPU читает и исполняет строку за строкой команды программы. Когда CPU возвращается к первой строке программы, он завершает ровно один цикл. Время, необходимое для этого, называется временем цикла сканирования. Все блоки программируются в окне LAD/STL/FBD.

Рис. 55 Окно для программирования LAD/STL/FBD
Программирование ОВ 1 в виде контактного плана
Далее рассмотрим примеры программирования последовательной, параллельной цепи и функцию памяти SR (установка / сброс) в виде контактного плана (LAD).
Программирование последовательной цепи в контактном плане. Если необходимо, установите LAD в качестве языка программирования в меню View [Вид]. Щелкните в области заголовка (title) OB1 и введите, например, "Циклически обрабатываемая главная программа". Выберите путь тока для своего первого элемента. Щелкните на этой кнопке на панели инструментов и вставьте нормально открытый контакт (рис.56).

Рис. 56 Последовательная цепь в контактном плане
Таким же образом вставьте второй нормально открытый контакт. Вставьте катушку у правого конца пути тока. В этой последовательной цепи пока отсутствуют адреса нормально открытых контактов и катушки. Проверьте, активизировано ли символическое представление (Symbolic Representation).
Щелкните на знаке . и введите символическое имя "Key_1 [Ключ_1]" (в кавычках). Подтвердите, нажав Enter. Введите символическое имя "Key_2 [Ключ_2]" для второго нормально открытого контакта. Введите имя "Green_Light [Зеленый_свет"] для катушки. Теперь запрограммирована вся последовательная цепь. Сохраните блок, если отсутствуют символы, выделенные красным цветом. Символы отображаются красным цветом, если, например, они отсутствуют в таблице символов, или если имеет место синтаксическая ошибка (рис.57).
Вы можете также вставить символическое имя непосредственно из таблицы символов. Щелкните на знаке . , а затем выберите команду меню Insert >Symbol [Вставить > Символ]. Просматривайте прокручиваемый список, пока не достигнете соответствующего имени, и выберите его. Символическое имя добавляется автоматически.

Для программирования параллельной цепи в контактном плане выделите Network 1 [Сегмент 1]. Вставьте новый сегмент. Снова выберите путь тока. Вставьте нормально открытый контакт и катушку. Выделите вертикальную линию в пути тока. Вставьте параллельную ветвь. Добавьте еще один нормально открытый контакт в параллельной ветви. Закройте ветвь (если необходимо, выберите нижнюю стрелку). В параллельной цепи все еще отсутствуют адреса. Для назначения символических адресов действуйте так же, как и для последовательной цепи.
Напишите у верхнего нормально открытого контакта "Key_3 [Ключ_3]", у нижнего контакта "Key_4 [Ключ_4]", а у катушки "Red_Light [Красный_свет]" Сохраните блок.

Рис. 58 Параллельная цепь в контактном плане
Для программирования функции памяти в контактном плане выделите Network 2 [Сегмент 2] и вставьте еще один сегмент (рис.59). Снова выделите путь тока. Перемещайтесь в каталоге элементов программы в разделе Bit Logic [Двоичная логика], пока не достигнете элемента SR. Дважды щелкните, чтобы вставить этот элемент. Вставьте нормально открытый контакт перед каждым из входов S и R. Введите следующие символические имена перед элементом SR:
Electro-Magnetic World
A program consists of instructions that accomplish specific tasks. The degree of complexity of a PLC program depends upon the complexity of the application, the number and type of input and output devices, and the types of instructions used. Ladder logic (LAD) is one programming language used with PLCs. Ladder logic incorporates programming functions that are graphically displayed to resemble symbols used in hard-wired control diagrams.
The left vertical line of a ladder logic diagram represents the power or energized conductor. The output coil instruction represents the neutral or return path of the circuit. The right vertical line, which represents the return path on a hard-wired control line diagram, is omitted. Ladder logic diagrams are read from left-to-right and top-to-bottom. Rungs are sometimes referred to as networks. A network may have several control elements, but only one output coil.
Picture 1: Ladder Logic Programming sample
Statement List and Function Block Diagrams
While ladder logic programs are still common, there are many other ways to program PLCs. Two other common examples are statement list and function block diagrams.
Statement list (STL) instructions include an operation and an operand. The operation to be performed is shown on the left. The operand, the item to be operated on, is shown on the right.
Function block diagrams (FBD) include rectangular functions with inputs shown on the left side of the rectangle and outputs shown on the right side.
In the following example (Picture 2), the program segments perform the same function.
Picture 2: STL, FBD, LAD samples
In addition to LAD, STL, and FBD, multiple other types of programming languages are used for PLCs. Each type of programming has its advantages and disadvantages. Factors such as application complexity, types of programming available for a specific PLC model, and user standards and preferences determine which type of programming is used for an application.
PLC Scan
The PLC program is executed as part of a repetitive process referred to as a scan. A PLC scan (Picture 3) starts with the CPU reading the status of inputs. Next, the application program is executed. Then, the CPU performs internal diagnostics and communication tasks. Finally, the CPU updates the status of outputs. This process repeats as long as the CPU in the run mode. The time required to complete a scan depends on the size of the program, the number of I/Os, and the amount of communication required.
Программирование ПЛК Siemens на Simatic Step7
Добрый день, хабровчане! Полазив по Хабру, мною было обнаружено всего несколько топиков, в котором упоминалось бы словосочетание «Simatic Step 7». Хочу поделиться с Вами небольшой частью информации, накопленной мною за все время работы с программируемыми логическими контроллерами, и показать, что из себя представляют ПЛК, оболочка и что мне приходилось на них строить.
Данный пост содержит общую ознакомительную информацию о программировании ПЛК Siemens.
Введение
Устроилась я в эту фирму еще на 5м курсе института. К слову, образование мое к программированию относится весьма косвенно и было это больше увлечением. Познания мои на тот момент ограничивались курсом Delphi и весьма базовым Ассемблером. Компания занималась (да и занимается) проектированием, строительством и обслуживанием грузоподъемных машин, таких как погрузчики, портальные, козловые, мостовые и прочие краны. К ГП машинам мое образование имело еще меньше отношения. Поэтому я решила попробовать. 🙂
Программируемые логические контроллеры Siemens
ПЛК фирмы Siemens — это промышленные контроллеры и используются для автоматизации технологических процессов. У нас, в частности, использовались для автоматизации работы грузоподъемных машин.
Simatic включает в себя несколько линеек ПЛК — Simatic S5 и Simatic S7. В свою очередь линейка Simatic S7 содержит семейства S7-200, S7-300, S7-400 и S7-1200.
Чаще всего мы использовали ПЛК семейств S7-300 и S7-400, для которых компанией Siemens было разработано собственное программное обеспечение Simatic Step 7. 
- модуль центрального процессора (CPU);
- блоки питания (PS) для питания контроллера от сети переменного или постоянного тока;
- сигнальные модули (SM), предназначенные для ввода/вывода дискретных и аналоговых сигналов;
- коммуникационные процессоры (CP), выполняющие автономную обработку коммуникационных задач в промышленных сетях Profibus, Industrial Ethernet и др.;
- функциональные модули (FM), которые выполняли задачи автоматического регулирования, взвешивания, позиционирования и пр.;
- интерфейсные модули (IM) для подключения стоек расширения к базовому блоку контроллера.
Кроме этого, к ПЛК через сеть Profibus подключалось большое количество ведомых устройств, таких как частотные преобразователи, приводы, абсолютные/инкрементные энкодеры и пр.
Вся работа ГП машины по максимуму автоматизировалась и крановщику нужно применять минимум усилий для управления оной.
Что из себя представляет Simatic Step 7?
Главной утилитой является Step 7 — Simatic Manager, которая позволяет производить конфигурацию ПЛК и сетей (утилиты HWConfig и NetPro).

В процессе конфигурации определяется состав оборудования, способы подключения, используемые сети, адреса, выбираются настройки для используемых модулей. Готовая конфигурация загружается в ПЛК, что так же является настройкой оборудования.
Утилиты конфигурации позволяют осуществлять диагностику оборудования, обнаруживать аппаратные ошибки или неправильный монтаж.
-
LAD (Ladder Diagram) — релейные диаграммы. Редактор отображает программу в графическом представлении, похожем на электрическую монтажную схему. Логические схемы позволяют программе имитировать протекание электрического тока от источника напряжения через ряд логических условий на входах, которые активизируют условия на выходах. Источником напряжения выступает шина, находящаяся слева.
Основными элементами являются нормально замкнутые и нормально разомкнутые контакты.


Я работала с самого начала в STL, пробовала LAD, мне показался слишком непонятным и многие вещи таки не удавалась так просто в нем сделать, как в STL. Плюс еще в том, что при загрузке программы в ПЛК, она компилируется в STL и, соответственно, при выкачке ее из ПЛК на программатор она так же представлена в STL.
Вместо заключения
Программирование ПЛК занятие увлекательное, особенно когда это не стенд, а реальное оборудование.
Моя работа заключалась в создании программы на ПЛК для управления всей ГП машины либо отдельных ее частей, а так же загрузке программного обеспечения непосредственно в оборудование и его отладке.
Случалось разное, но работать с железом было очень интересно, хоть и не легко иногда.
А строили мы вот такие ГП машины: 
Предисловие
Новая система автоматизации SIMATIC объединяет все подсистемы, используемые в решении задач автоматизации, – от полевого уровня до управления процессом – в рамках однородной системной архитектуры в гомогенное целое. Это достигается с помощью интегрированных конфигурирования и программирования, управления данными и коммуникации с программируемыми контроллерами (SIMATIC S7), компьютерами автоматизации (SIMATIC М7) и системами управления (SIMATIC С7).
Всем нуждам автоматизации процесса и производства отвечают три серии программируемых контроллеров: S7-200 – компактные контроллеры («микро-PLC»), S7-300 и S7-400 – контроллеры с возможностью модульного расширения, предназначенные для применения как в системах с минимальными требованиями, так в высокопроизводительных системах.
STEP 7, дальнейшее развитие STEP 5, является программным обеспечением разработки программ для нового SIMATIC. С целью использования преимущества знакомого пользовательского интерфейса стандартных ПК (PC) (окна, операции с мышью) в качестве операционной системы выбрана Microsoft Windows 95/98 или Windows NT.
Для структурного (блочного) программирования STEP 7 предоставляет языки программирования, соответствующие DIN EN 6.1131-3. К ним относятся STL (statement list – список операторов или список мнемоник; ассемблероподобный язык), LAD (ladder logic или ladder diagram – контактный план; представление, схожее с диаграммами релейной логики; многоступенчатая схема), FBD (function block diagram – диаграмма функциональных блоков или функциональный план) и пакет SCL (паскалеподобный язык высокого уровня), который является дополнительным и может не входить в стандартную поставку.
Несколько дополнительных пакетов предоставляют следующие языки: S7-GRAPH (последовательное управление), S7-HiGraph (программирование с диаграммами «со-
стояние-переход») и CFC (соединение блоков; похож на диаграмму функциональных блоков).
Различные методы представления позволяют каждому пользователю выбрать подходяще описание функции управления. Такая широкая адаптируемость в представлении решаемой задачи управления значительно упрощает работу со STEP 7.
Эта книга содержит описание языков программирования LAD и FBD для S7-300/400. Первый раздел книги знакомит с системой автоматизации S7-300/400 и приводит основы использования STEP 7. Следующий раздел адресован начинающим пользователям или пользователям, переходящим с управления на основе реле-контакторов; здесь рассказывается об «Основных функциях» двоичного управления. Информация о цифровых функциях поясняет, как комбинируются цифровые значения; например, основные вычисления, сравнения, преобразование типов данных.
С помощью LAD или FBD вы можете управлять обработкой программы (программным потоком) и разрабатывать структурированные программы. Наряду с циклической обработкой основной программы вы можете включить программные секции, управляемые событиями, а также повлиять на поведение контроллера при запуске и при возникновении событий-ошибок/сбоев.
Книгу завершает общий обзор системных функций и набора функций для LAD и FBD.