Язык релейно-контактных схем (LD)
Этот язык программирования, изобретенный в США десятилетия назад, получил наиболее широкое распространение. Изначально изобретенный для замены логических схем, выполненных на релейной технике, язык релейно-контактных схем является базовым в США на сегодняшний день, и применяется в 95% всех приложений. Визуально этот язык напоминает последовательность цепей управления, в которой все входы должны быть установлены в значение «истина» для активации одного или нескольких выходов.
Язык релейно-контактных схем получил такое широкое распространение, потому что на нем могут писать практически все программисты в любой стране.
Поскольку он напоминает знакомый всем формат электрических цепей, даже не специалист в области программирования, знакомый с электроникой может разобраться в программе для поиска ошибок в ней. На этом языке легко писать программы. Имея базовое представление о входных и выходных сигналах, можно начать писать код. Большинство других языков IEC требуют большей подготовки, например, прорисовки диаграмм всех потенциальных процессов. Наконец, программа, реализованная в виде релейно-контактных схем, может быть организована в виде папок или подпрограмм, которые загружаются в контроллер, позволяя проводить легкую сегментацию программы.
Рис. 1. Этот язык напоминает последовательность цепей управления, в которой все входы должны быть установлены в значение «истина» для активации одного или нескольких выходов.
Язык релейно-контактных схем идеален для простых приложений перемещения материалов. Например, когда один датчик распознает наличие коробки, другой датчик проверяет наличие препятствий, а затем выходной сигнал, при соответствующем условии, запускает привод для перемещения коробки на другой конвейер. В данном случае дискретные входы контролирую текущие условия, базовая программа анализирует эти входы и подает соответствующие сигналы на выходы. В программе могут быть использованы таймеры, некоторые базовые сравнения или математические операции, но нет возможности использовать сложные функции.
На языке релейно-контактных схем затруднительно реализовывать более сложный функционал ПЛК (программируемый логический контроллер, англ.: PLC), сохраняя парадигму легкой визуализации и понимания. Такие функции как ПИД-регулирование, тригонометрия и анализ данных в приложении реализовать трудно. Другой сложностью является то, что по мере роста объема программы, ее становится сложно читать и интерпретировать, если нет подробнейшей документации. Наконец, реализация полного процесса управления на языке релейно-контактных схем может быть чрезвычайно трудным.
Синтаксис и примеры
Сам язык можно рассматривать как набор связей между логическими проверяющими (контактами) и исполнительными механизмами (катушками). Если можно проследить путь между левой стороной ступени и выходом через установленные (истинные или «замкнутые») контакты, цепочка имеет значение «истина», а бит сохранения выходной катушки установлен (1) или «истина». Если путь не может быть прослежен, то выход ложный (0) и «катушка» по аналогии с электромеханическими реле считается «обесточенной». Аналогия между логическими предложениями и состоянием контактов реле принадлежит Клоду Шеннону .
У лестничной логики есть контакты, которые замыкают или размыкают цепи для управления катушками. Каждая катушка или контакт соответствует состоянию отдельного бита в памяти программируемого контроллера. В отличие от электромеханических реле, лестничная программа может любое количество раз ссылаться на состояние одного бита, что эквивалентно реле с неограниченно большим количеством контактов.
Так называемые «контакты» могут относиться к физическим («аппаратным») входам в программируемый контроллер от физических устройств, таких как кнопки и концевые выключатели, через встроенный или внешний модуль ввода, или могут представлять состояние битов внутренней памяти, которые могут быть сгенерированы. в другом месте программы.
Каждая ступень лестничного языка обычно имеет одну катушку в крайнем правом углу. Некоторые производители могут допускать использование более одной выходной катушки на ступеньке.
- Вход звена: шашки (контакты)
- Нормально разомкнутый контакт, замкнутый всякий раз, когда соответствующая катушка или вход, управляющий им, находятся под напряжением. (Открытый контакт в состоянии покоя)
- Нормально замкнутый («не») контакт, замкнутый всякий раз, когда соответствующая катушка или управляющий вход не находятся под напряжением. (Замкнутый контакт в состоянии покоя)
- Выход ступени: исполнительные механизмы (катушки)
- Обычно неактивная катушка, запитывается всякий раз, когда ее ступень закрывается. (Неактивен в состоянии покоя)
- Обычно активная («не») катушка, запитанная всякий раз, когда ее ступень открыта. (Активен в покое)
«Катушка» (выход ступени) может представлять физический выход, который управляет некоторым устройством, подключенным к программируемому контроллеру, или может представлять бит внутренней памяти для использования в другом месте программы.
Чтобы вспомнить их, представьте шашки (контакты) как вход кнопки, а исполнительные механизмы (катушки) как выход лампочки. Наличие косой черты внутри шашек или исполнительных механизмов будет указывать на состояние по умолчанию устройства в состоянии покоя.
Место ПЛК в системе управления
До создания миниатюрных интегральных схем рука оператора буквально не успевала переключать режимы на пульте цепи управления. Использование контроллерных блоков «Сегнетикс», «Дельта» и подобных способствовало снятию нагрузки с человека.
Ее переложили «на плечи» машин с выводом на экран данных мониторинга, отображенных в виде мнемосхем и изменяемых параметров. На ПЛК возлагаются задачи по опросу датчиков и регистров, обработке поступающей информации.
Без микроконтроллеров не было бы РСУ, АСУ, сложных автоматных комплексов управления технологическими процессорами. Используя сетевой трафик, ПЛК анализируют данные, успевая проверять состояние портов входа. Главный недостаток, особенность микроконтроллеров состоит в необходимости прошивки, создания программы для работы.
Впрочем, его следует воспринимать двояко: индивидуально создаваемое ПО позволяет проектировать узкоспециализированные изделия под конкретные задачи.
Ladder Diagram Programming
The following computer screenshot shows a typical Ladder Diagram program.
Contacts appear just as they would in an electrical relay logic diagram – as short vertical line segments separated by a horizontal space.
Normally-open contacts are empty within the space between the line segments, while normally-closed contacts have a diagonal line crossing through that space.
Coils are somewhat different, appearing as either circles or pairs of parentheses. Other instructions appear as rectangular boxes.
Each horizontal line is referred to as a rung, just as each horizontal step on a stepladder is called a “rung.”
A common feature among Ladder Diagram program editors, as seen on this screenshot, is the ability to color-highlight those virtual “components” in the virtual “circuit” ready to “conduct” virtual “power.”
In this particular editor, the color used to indicate “conduction” is light blue.
Another form of status indication seen in this PLC program is the values of certain variables in the PLC’s memory, shown in red text.
For example, you can see coil T2 energized at the upper-right corner of the screen (filled with light blue coloring), while coil T3 is not.
Correspondingly, each normally-open T2 contact appears colored, indicating its “closed” status, while each normally-closed T2 contact is uncolored.
By contrast, each normally-open T3 contact is uncolored (since coil T3 is unpowered) while each normally-closed T3 contact is shown colored to indicate its conductive status.
Likewise, the current count values of timers T2 and T3 are shown as 193 and 0, respectively. The output value of the math instruction box happens to be 2400, also shown in red text.
Color-highlighting of Ladder Diagram components only works, of course, when the computer running the program editing software is connected to the PLC and the PLC is in the “run” mode (and the “show status” feature of the editing software is enabled).
Otherwise, the Ladder Diagram is nothing more than black symbols on a white background.
Not only is status highlighting very useful in de-bugging PLC programs, but it also serves an invaluable diagnostic purpose when a technician analyzes a PLC program to check the status of real-world input and output devices connected to the PLC.
This is especially true when the program’s status is viewed remotely over a computer network, allowing maintenance staff to investigate system problems without even being near the PLC!
Credits : by Tony R. Kuphaldt – Creative Commons Attribution 4.0 License
PLC Tutorials :
If you liked this article, then please subscribe to our YouTube Channel for PLC and SCADA video tutorials.
You can also follow us on and to receive daily updates.
Dia Diagram Editor
Dia Diagram Editor is a free open source ladder diagram software for Windows. Using this software, you can easily create a ladder diagram. Not just the ladder diagram, but a lot of different types of diagrams such as ERD, Network Diagram, Use Case Diagram, UML Diagrams, etc., can also be created in it. To deal with different types of diagram, it provides various dedicated sections containing tools to create a specific type of diagram like Assorted, Chronogram, Cybernetics, Database, etc. For the ladder diagram, you can use its Ladder section that has all essential shapes and elements like if ladder contact, if not ladder contact, simple output variable, negative output variable, receptivity output variable, and more.
You can easily select and drop ladder diagram elements from the ladder section to canvas to start building the diagram. The canvas available in it is also quite handy as it provides helpful features namely grid lines and a scale for precise diagram building. After dropping required elements to the canvas, you need to properly structure them by placing all elements on their right place. After making the structure, name each element of the ladder diagram to finish the diagram. After completion, you can export the ladder diagram in formats like PDF, SVG, PNG, TIFF, JPG, BMP, etc.
Пример программы на языке SFC¶
На рис. 7.12 приведен пример SFC диаграммы состоящей из начального шага
«initStep», шагов «firstStep» и «secondStep» и 3 перехода.
Переход «startFlag» представляет обычную переменную типа BOOL и
полностью зависит от её значения. Переход между «firstStep» и
«secondStep» зависит от LD диаграммы с двумя катушками, ассоциированными
с переменными типа BOOL: «in1» и «in2». Переход активируется только в
том случае, если «in1» и «in2» будут TRUE. Переход между «secondStep» и
прыжком на initStep активирован, когда значение переменной «value»
меньше -100.
Во время действия «firstStep» выполняется увеличение переменной count на
1. Во время действия «secondStep» из переменной «value» вычитается 10.
Рис. 7.12 – SFC диаграмма
YottaEditor
YottaEditor is another free ladder diagram software for Windows. It is a very comprehensive ladder diagram software through which you can create both simple and complex ladder diagrams. It provides various elements sections containing both conventional as well as advanced components which are usually not present in a ladder diagram software.
Let’s take a look at all the element sections and which elements they offer:
- I/O: In this section, you get all standard ladder diagram elements like make/ break contact, analog contact, relay contact, inverted output, etc.
- TMR: It contains pulse and timer related components such as Wiping Relay, Asynchronous Pulse Generator, Random Generator, Weekly Timer, Astronomical Clock, etc.
- Aux: In it, you get auxiliary components like Boolean Function, Binary Code, OR Mask, NOT Mask, Stepping Motor Control, Pulse Train Output, and more.
- Math: This section contains advanced math components or elements which you can include in the diagram such as Logarithm, Square Root, Sine Function, Cosine Function, Secant function, etc.
- BSC: It has only two components namely AND(Edge) and NAND(Edge).
You can easily select and add components or elements from element sections to the main canvas with ease. After adding all required elements to the canvas, join elements with the help of mouse to complete the ladder diagram. In it, you also get an inbuilt simulation feature through which you can perform simulation on your ladder diagram to check its performance.
Ladder diagram created through this software can be saved as YLD and PDF files.
Обзор
Часть лестничной диаграммы, включая контакты и катушки, сравнения, таймеры и моностабильные мультивибраторы
Релейная логика широко используется для программирования ПЛК , где требуется последовательное управление процессом или производственной операцией. Релейная логика полезна для простых, но важных систем управления или для переделки старых проводных релейных схем. По мере того, как программируемые логические контроллеры становились все более сложными, они также использовались в очень сложных системах автоматизации. Часто программа релейной логики используется вместе с программой HMI, работающей на компьютерной рабочей станции.
Мотивация для представления логики последовательного управления в релейной диаграмме заключалась в том, чтобы позволить заводским инженерам и техническим специалистам разрабатывать программное обеспечение без дополнительного обучения для изучения такого языка, как FORTRAN или другой компьютерный язык общего назначения. Разработка и обслуживание были упрощены из-за сходства со знакомыми системами релейного оборудования. Реализации релейной логики могут иметь характеристики, такие как последовательное выполнение и поддержка функций потока управления, которые делают аналогию с аппаратным обеспечением несколько неточной.
Лестничную логику можно рассматривать как язык, основанный на правилах, а не как процедурный язык . «Ступенька» в лестнице представляет собой правило. При использовании реле и других электромеханических устройств различные правила выполняются одновременно и немедленно. При реализации в программируемом логическом контроллере правила обычно выполняются последовательно программным обеспечением в непрерывном цикле или «сканировании». Выполняя цикл достаточно быстро, обычно много раз в секунду, достигается эффект одновременного и немедленного выполнения. Правильное использование программируемых контроллеров требует понимания ограничений порядка выполнения цепочек.
Ограничения и языки-преемники
Лестничная нотация лучше всего подходит для задач управления, где требуются только двоичные переменные и где блокировка и упорядочение двоичных данных являются основной проблемой управления. Как и во всех языках параллельного программирования , последовательный порядок операций может быть неопределенным или неясным; возможны состояния логической гонки , которые могут привести к неожиданным результатам. Чтобы избежать этой проблемы, сложные ступени лучше всего разбить на несколько простых шагов. Некоторые производители избегают этой проблемы, явно и полностью определяя порядок выполнения ступени, однако у программистов все еще могут возникнуть проблемы с полным пониманием итоговой сложной семантики.
Аналоговые величины и арифметические операции неудобно выражать в релейной логике, и каждый производитель использует разные способы расширения обозначений для этих задач. Обычно существует ограниченная поддержка массивов и циклов, что часто приводит к дублированию кода для выражения случаев, которые в других языках требуют использования индексированных переменных.
По мере того как микропроцессоры становятся более мощными, такие нотации, как последовательные функциональные схемы и функциональные блок-схемы, могут заменить релейную логику для некоторых ограниченных приложений. Некоторые новые ПЛК могут полностью или частично выполнять программирование на диалекте, напоминающем БЕЙСИК , C или другой язык программирования с привязками, подходящими для среды приложений реального времени.
Ladder на службе в быту, а также почему это может оказаться Вам интересно и даже полезно
Путь LED-самурая
Немного предыстории — около года назад я опубликовал обзорную статью, где была описана минимальная отладочная плата для микроконтроллера серии STM32F405. Особого интереса тогда публикация не вызвала. А зря. Согласен, слишком много «расплодилось» подобных решений на просторах интернета.
Но полезное, как известно, никогда не пропадает даром. И этот случай — тому подтверждение. Недавно коллега открыл небольшую фирму, занялся строительством жилых домов «под ключ». Одним из устройств, которое ему было очень нужно — это система управления динамическим освещением.
Паяльник, гугл, отрицание, гнев, торг, депрессия, принятие — вот его путь в одном предложении. Теперь обо всем по порядку.
Предыстория
В первой строке поиска, выдаваемого поисковыми системами, будет конечно же система, собранная на arduino. Признаюсь — я не имею опыта большого работы с этой платформой, но наш интерес лежит в области графического языка программирования Ladder, чем оный похвастатья (пока по крайней мере) не может. Среди прочего, там значилось 16 разрядный ШИМ и 21 выходной канал, плюс автоматическая настройка яркости в зависимости от освещённости. И вишенка на торт — наличие онлайн режима, то есть контроль работы алгоритма программы без изменения её функциональности.
Конечно же, первая мысль была — вот оно, реальное применение! Добавить выходные каналы в прошивку, и на языке LAD реализовать алгоритм, раскидав по подпрограммам типичные задачи. Оживить шину I2C и подключить датчик освещенности. И само собой, всё на базе операционной системы реального времени. Отладка и программирование — через порт USB при помощи бесплатной программы Autoshop. Всё просто.
Ladder Logic для PIC и AVR
Перевод на русский язык оригинальной статьи Jonathan Westhues: http://cq.cx/ladder.pl
Предисловие: Я написал компилятор, который позволяет работать с диаграммами лестничной (релейной) логики (Ladder Logic) и генерирует нативный код для PIC16 и AVR. Особенности программы:
- цифровые входы и выходы
- таймеры (TON, TOF, RTO)
- счетчики (CTU, CTD, ‘цифровые счетчики’ для использования в качестве секвенсора)
- аналоговые входы, аналоговые (ШИМ) выходы
- целочисленные переменные и арифметические команды
- последовательный порт для связи с PC, LCD, и другими устройствами
- сдвиговые регистры, просмотровые таблицы (look-up tables)
- EEPROM переменные, значения которых не теряются при выключении питания
- симулятор, для проверки вашей программы перед генераций кода для PIC/AVR
Данная программа является свободным программным обеспечением; исходный код и исполняемые файлы доступны для скачивания.
Why Use PLC Ladder Logic Examples?
The reason I use ladder logic examples is one of the big advantages of code. In this case the PLC programming language ladder logic. You can reuse chunks of a PLC program in your own PLC program. In fact reusable code is widely used and many automation projects are build on the ISA-88 or S88 batch control standard which encourages reusable function blocks. Reusing code can also have advantages when you’re integrating a SCADA system.
You can “copy and paste” lines of ladder logic symbols from one PLC program to another PLC program. By doing so, you will shorten the development time of a project. So that you don’t have to invent everything from the very bottom each time you are developing a new PLC program. That is why I often make use of PLC program examples.
I wrote another article where I included examples of PLC analog input and output programming. If you want to learn ladder logic from the beginning, you should check out my ladder logic tutorial or maybe even start learning from an online PLC training course.
If you are new to ladder logic, check out these short video tutorials to learn about the basic instructions:
and this one to learn how to build logic gates:
Основные понятия языка SFC¶
Язык SFC использует следующие структурные элементы для создания
программы: шаг (и начальный шаг), переход, блок действий, прыжок и связи
типа дивергенция и конвергенция.
После вызова программного модуля, описанного языком SFC, первым
выполняется начальный шаг. Шаг, выполняемый в данный момент, называется
активным. Действия, связанные с активным шагом, выполняются один раз в
каждом управляющем цикле. В режиме выполнения активные шаги выделяются
салатовым цветом. Следующий за активным шагом шаг станет активным,
только если в переходе между этими шагами условие будет истинно.
В каждом управляющем цикле будут выполнены действия, содержащиеся в
активных шагах. Далее проверяются условия перехода, и, возможно, уже
другие шаги становятся активными, но выполняться они будут уже в
следующем цикле.
Далее описывается каждый элемент SFC диаграммы.
Наиболее важным элементом языка SFC является шаг, который описывает одну
операцию. Шаг изображается в виде прямоугольника с собственным именем
внутри (см. рис. 7.1).
Рис. 7.1 – Графическое представление «Шага» языка SFC
У каждого шага может быть 3 контакта. Сверху и снизу для соединения с
переходом и справа для соединения с блоком действий. Шаг предваряется
переходом, который определяет условие для активации данного шага в
процессе выполнения программы и отображается в виде горизонтальной черты
на ветви диаграммы процесса с указанием имени и условия. Два шага
никогда не могут быть соединены непосредственно, они должны всегда
отделяться переходом (см. рис. 7.2).
Рис. 7.2 – Шаги «step2» и «step3», соединённые переходом «tr2_3»
Любая SFC диаграмма должна содержать начальный шаг (шаг, выделенный
двойной рамкой), с которого начинается выполнение диаграммы.
Между шагами находятся так называемые переходы. Условием перехода может
быть логическая переменная или константа, логический адрес или
логическое выражение, описанное на любом языке. Условие может включать
серию инструкций, образующих логический результат, в виде ST выражения,
например:
(i<= 100) AND b
либо на любом другом языке.
На рис. 7.3 приведён пример перехода между шагом «Step3» и «Step5» с
именем «transition4».
Рис. 7.3 – Переход между шагами «Step3» и «Step5» с предопределённым
условием «transition4»
В данном случае «transition4» это имя для предопределённого перехода,
который может использоваться многократно на SFC диаграмме для
определения переходов между несколькими шагами. Код для него может быть
представлен, например, на языке ST:
:= (flag = True AND level > 10);
На рис. 7.4 представлен переход между шагами «Step6» и «Step7» в виде
обычного условия:
level > 10
Рис. 7.4 – Переход между шагами «step6» и «step7» с предопределённым
условием «transition4»
На рис. 7.5 представлен переход между шагами «Step8» и «Step9» в виде
значения логического выражения «AND» на языке FBD:
Рис. 7.5 – Переход между шагами «step8» и «step9», заданный «логическим
И» на языке FBD
Условие не должно содержать присваивания, вызов программ и экземпляров
функциональных блоков.
Каждый шаг имеет нулевое или большее количеством действий, объединённых,
как правило, на диаграмме, в блок действий. На рис. 7.6 показан примера
шага «evaluateStep» и связанный с ним блок действий.
Рис. 7.6 – Шаг «evaluateStep» и связанный с ним блок действий,
содержащий 3 действия
Блок действий определяет операции, которые должны выполняться при
активации (выполнении) шага. Шаги без связанного блока действий
идентифицируются как ждущий шаг. Блок действий может состоять из
предопределённых действий. Каждому предопределённому действию
присваивается имя (на рис. 7.6 это «action0» и «action1»). Одно действие
может использоваться сразу в нескольких шагах. Действие может
выполняться непрерывно, пока активен шаг, либо единожды. Это
определяется специальными квалификаторами, описание которых приведено в
таблице 6. Квалификаторы также могут ограничивать время выполнения
каждого действия в шаге.
Шаг может быть также заменён «прыжком». Последовательности шагов всегда
ассоциируются с прыжком к другому шагу той же самой последовательности
шагов. Это означает, что они выполняются циклически. Переход на
произвольный шаг – это соединение на шаг, имя которого указано под
знаком «прыжка». Такие переходы нужны для того, чтобы избежать
пересекающихся и идущих вверх соединений. На рис. 7.7 показана SFC
диаграмма, содержащая два «прыжка».
Рис. 7.7 – SFC диаграмма, содержащая «прыжки»
Первый делает переход к шагу «init» в случае выполнения условия
«transition4», второй делает переход к шагу «step1», в случае выполнения
условия «transition2».
3.3 Размещение памяти
Конфигурация линкера по умолчанию разрешает размещенение
свободной памяти. Вы можете переопределить эту конфигурацию, используя
команду MEMORY. Команда MEMORY описывает расположение и размер блоков
памяти, как Вам это удобно
Необходимо использовать ее очень
осторожно. Вы можете описать, какие участки памяти могут быть
использованы линкером, и каких он должен избегать
Линкер не тасует
секции, чтобы они помещались в доступные регион памяти, но перемещает
требуемые секции в правильные регионы, исправляя ошибки, когда регионы
заполняются.
Скрипт может содержать максимум одну команду MEMORY, тем не менее
Вы можете определить любое необходимое Вам число блоков памяти внутри
этой команды. Синтаксис этой команды таков:
Например, для того, чтобы определить два региона в памяти,
доступные для размещения: первый, начинающийся с 0 размером 256
килобайт и второй, начинающийся с адреса 0x40000000 размером 4
мегабайта:
Программные модули¶
Добавление программных модулей (программ, функций, функциональных
блоков) осуществляется с помощью всплывающего меню дерева проекта,
в котором необходимо выбрать пункт «Функция», «Функциональный
блок» или «Программа». Далее появится диалог «Создать новый POU».
Проект «First steps» представляет собой основной программный модуль,
написанный на языке FBD, в котором используются 5 функциональных блоков,
написанных на пяти разных языках IEC 61131-3. Каждый функциональный блок
это счетчик, увеличивающий значение выхода на единицу до тех пор, пока
на входе Reset не будет установлено значение True. Инкрементация
значения происходит в каждом цикле основной программы. Регулировать
интервал цикла можно изменяя длительность задачи для экземпляра основной
программы в панели ресурсов.
В созданный проект необходимо добавить программу program0, функцию и 5
функциональных блоков: CounterST, CounterLD, CounterFBD, CounterSFC,
CounterIL. Если при создании проекта основной программный модуль
program0 не был добавлен, его следует добавить вручную. Далее
рассмотрено добавление каждого программного модуля в отдельности.
Программа
Ниже будет приведён пример добавления в проект программы, написанной на
языке FBD. Логика и алгоритм работы данного программного модуля
следующие: определена переменная Reset типа BOOL, отвечающая за сброс
каждого из пяти счетчиков, определены пять переменных Cnt1..Cnt5 типа
INT, в них хранится значение каждого из пяти счетчиков, и добавлены пять
функциональных блоков, представляющих собой инкрементирующий счетчик на
пяти языках IEC 61131-3. При запуске программы начальное значение
переменной Reset устанавливается по умолчанию False. Значения счетчиков
начнут увеличиваться, начиная со значения по умолчанию (для типа INT
равно 0). Для сброса счетчиков переменную Reset необходимо форсировать
значением True, затем вернуть значение False. Переменным Cnt1..Cnt5
будет присвоено начальное значение конфигурационной константы
ResetCounterValue, таким образом значения счетчиков
сбросятся, и начнется отсчет начиная с 17.
Сначала следует добавление программы в проект, осуществляемое с помощью
меню дерева проекта, выбором пункта «Программа» (см. ):
Рисунок 107 — Добавление программы в проект
В появившемся диалоге (см. ) выберем язык FBD и тип POU
«программа».
Рисунок 108 — Диалог добавления программы в проект
Добавим в панели переменных и констант переменную Reset типа BOOL,
отвечающую за сброс каждого из пяти счетчиков, а так же пять переменных
Cnt1..Cnt5 типа INT, в которых будут храниться значения каждого из пяти
счетчиков. Далее необходимо обратиться к редактору языка FBD. Для
написания алгоритма и логики выполнения данной программы нам понадобятся
функциональные блоки счетчиков, создание которых рассмотрено в п. 6.3.2.
Для удобства редактирования FBD диаграмм в редакторе существует функция
Drag&Drop , необходимые функциональные блоки и
переменные можно добавить в поле редактирования из библиотеки функций и
функциональных блоков и таблицы переменных путем
перетаскивания в поле редактирования. необходимо левой
клавишей мыши зажать столбец «#» для переменной в панели переменных и
констант, далее перенести указатель на область редактирования FBD
диаграммы и отпустить кнопку мыши (Drag&Drop).
Перенесем 5 экземпляров переменной Reset и все переменные Cnt1..Cnt5 в
поле редактирования диаграммы как показано на :
Рисунок 109 — Перенос переменных в поле редактирования
Из библиотеки функций и функциональных блоков добавим пользовательские
функциональные блоки. Добавление данных функциональных блоков удобнее
осуществить переносом соответствующей функции с помощью мыши (Drag&Drop)
из панели библиотеки функций и функциональных блоков в область
редактирования FBD диаграммы данного программного модуля как показано
на :
Рисунок 110 — Программа на языке FBD без связей
Добавим связи между функциональными блоками и входными и выходными
переменными.
Рисунок 111 — Основной программный модуль на языке FBD
1. What Is a Ladder Diagram?
Ladder diagrams are advanced schematics widely used to record logic structures for
industrial controls. These are called ladder diagrams because they mimic a ladder, with two vertical rails
(supply power) and as many «rungs» (horizontal lines) as there are to represent control circuits.
The load device (lamp, relay coil, solenoid coil, etc.) is drawn almost always on the right-hand side of the
rung in ladder diagrams. Although it doesn’t matter electrically where the relay coil is
within the rung, it does matter that the end of the power supply of the ladder is grounded, for stable
operation.
How Ladder Logic is Executed
In order to successfully read ladder logic we need a basic understanding of how a PLC works and how ladder logic is executed in a PLC. You see, the PLC follows a certain execution procedure and if not adhered to it can lead to the ladder logic being read incorrectly.
Ladder logic works in a similar way to relay logic, but without all the laborious wiring. It has supply rails, relay coils, relay contacts, counters, timers, PID loop controllers and much more. In simple terms, all the field input and output devices are wired to the PLC and the ladder logic program decides what outputs to trigger depending on the status of the input signals.
In basic terms, PLCs execute ladder logic by first reading all the input states and storing them into memory. Secondly, scanning through and evaluating each rung of ladder logic, from left to right and top to bottom. Lastly, at the end of the scan, the resultant logic is executed and the outputs are written to.
Базовый логический элемент ТТЛШ (на примере серии К555)
В качестве базового элемента серии микросхем К555 использован элемент И-НЕ. На рис. 3.29, а изображена схема этого элемента, а условное графическое обозначение транзистора Шоттки приведено на рис. 3.29, б. Такой транзистор эквивалентен рассмотренной выше паре из обычного транзистора и диода Шоттки. ТранзисторVT4 — обычный биполярный транзистор.
Если оба входных напряжения uвх1и uвх2 имеют высокий уровень, то диодыVD3 и VD4 закрыты, транзисторы VT1,VT5 открыты и на выходе имеет место напряжение низкого уровня. Если хотя бы на одном входе имеется напряжение низкого уровня, то транзисторы VT1 и VT5 закрыты, а транзисторы VT3 и VT4 открыты, и на входе имеет место напряжение низкого уровня. Полезно отметить, что транзисторы VT3 и VT4 образуют так называемый составной транзистор (схему Дарлингтона).