Язык функциональных блоков: Общие сведения о языке FBD — Документация Beremiz

Содержание

Общие сведения о языке FBD — Документация Beremiz

FBD (Function Block Diagram) – это графический язык программирования высокого уровня, обеспечивающий управление потока данных всех типов. Позволяет использовать мощные алгоритмы простым вызовом функций и функциональных блоков. Удовлетворяет непрерывным динамическим процессам. Замечательно подходит для небольших приложений и удобен для реализации сложных вещей подобно ПИД регуляторам, массивам и т. д. Данный язык может использовать большую библиотеку блоков, описание которых приведено в приложении 2. FBD заимствует символику булевой алгебры и, так как булевы символы имеют входы и выходы, которые могут быть соединены между собой, FBD является более эффективным для представления структурной информации, чем язык релейно-контактных схем.

Согласно IEC 61131­3, основными элементами языка FBD являются: переменные, функции, функциональные блоки и соединения.

Переменные бывают входные, выходные и входные/выходные.

На рис. 1 показаны: входная переменная – «in_var», выходная переменная – «out_var» и входная/выходная переменная – «in_out_var».

Рис. 1 – Изображение переменной в языке FBD

Графическое изображение функции приведено на рис. 2. С левой стороны располагаются вхо­ды (IN1 и IN2), с правой стороны выходы (OUT).

Рис. 2 – Изображение функции в языке FBD

Аналогично, изображение функционального блока, приведённое на рис. 3, имеет с левой стороны вхо­ды (S1 и R), с правой стороны выход (Q1).

Рис. 3 – Изображение функционального блока в языке FBD

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

Также выходной параметр одной функции или функционального блока может быть напрямую соединён с входным параметром другого.

Рис. 4 – Пример соединения переменных, функций и функциональных блоков

Все функциональные блоки могут быть вызваны с дополнительными (необязатель­ными) формальными параметрами: EN (входом) и ENO (выходом). Пример такого функционального блока приведен на рис. 5.

Рис. 5 – Изображение элементарного функционального блока с параметрами EN/ENO

Если функциональный блок вызывается с параметрами EN/ENO и при этом значе­ние EN равно нулю, то алгоритмы, определяемые в функциональном блоке, не будут вы­полняться. В этом случае значение ENO автоматически устанавлива­ется равным 0. Если же значение EN равно 1, то алгоритмы, опреде­ляемые функциональным блоком, будут выполнены. После выполнения этих алгоритмов без ошибок значение ENO автоматически устанавливается равным 1. Если же возникает ошибка во время выполнения этих алгоритмов, то значение ENO будет установлено равным 0.

Поведение функционального блока одинаково как в случае вызова функционального блока с EN = 1, так и при вызове без параметров EN/ENO.

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

Рис. 6 – Изображение соединений в языке FBD

Они бывают двух видов: входное соединение и выходное выходные соединение. Основная задача соединений – передать значение из одного выхода на другой вход без прямого соединения выхода и входа. На рис. 5.7 показан пример, в котором выходное значение OUT функции BOOL_TO_INT передаётся на вход IN2 функции ADD:

Рис. 7 – Пример использования соединения на FBD диаграмме

На рис. 8 приведена FBD диаграмма, состоящая из следующих функциональных блоков: SR0, AND, TP0.

Рис. 8 – пример FBD диаграммы

Функциональный блок SR0 представляет собой Бистабильный SR-триггер. У него имеются входы S1, R1 и выход Q1, а так же дополнительный вход EN и выход ENO, позволяющие включать и выключать выполнение SR0. Выход Q1 с помощью соединён с входом IN1 блока AND, представляющий собой «Логическое И». Вход IN2 типа BOOL соединён с литералом «BOOL#1», который всегда положительный. Выход OUT блока AND соединён с входом IN функционального блока TP0, представляющий собой повторитель импульсов. Вход PT типа TIME, соединён с литералом «T#5s», который задаёт значение 5 секунд.

Если после запуска выполнения данного функционального блока enabled равно True и переменная S1_IN тоже True, функциональный блок SR0 начинает выполняться. На выходе OUT функционального блока AND будет значение True как только Q1 у SR0 будет равен True. Следовательно, как только OUT становится True вход IN функционального блока TP0 принимает тоже True и начинается отсчёт таймера ET (см. рис. 9).

Рис. 9 – Выполнение FBD диаграммы

Пока данный таймер не достигнет значения PT выход Q у функционального блока TP0 будет равен True. При достижении таймером ET значения PT, т.е. через 5 секунд выход Q становится False (см. рис. 10).

Рис. 10 – Выполнение FBD диаграммы

Как только вход IN функционального блока TP0 становится значения FALSE, счётчик ET сбрасывается в T#0s.

Язык функциональных блоковых диаграмм (Тема) | ПЛК

ПЛК

 

Язык функциональных блоков (Function Block Diagrams) позволяет создать программу прак­тически любой сложности на основе стандартных функциональных блоков (арифметические, тригонометричес­кие, логические блоки, РID-регуляторы, блоки, описывающие некоторые законы управления, мультиплексоры и т.д.). Все программирова­ние сводится к «склеиванию» готовых компонентов (блоков). Каждый функциональный блок представляет собой прямоугольник, внутри которого имеется обозначение функции, выполняемой блоком.

При программировании используются следующие формальные правила языка FBD:

1)      Функциональные блоки могут располагаться произвольно в поле программы;

2)      Не может быть несоединенных входов и выходов функционального блока;

3)      Соединение блоков может выполняться также при помощи ссылок с определен­ными именами;

4)      Функциональные блоки выполняются слева направо, сверху вниз;

5)      На входе функционального блока может быть константное выражение, любая внутренняя или входная переменная контроллера; выходная переменная;

6)      На выходе блока может быть любая внутренняя или выходная переменная ПЛК.

Далее в таблице представлены основные функциональные блоки языка FBD.

 

Таблица 1. Некоторые функциональные блоки языка FBD

Наименование

Обозначение

Описание

1. Функции двоичного типа

NOT

Логическое отрицание

AND

Логическая

конъюнкция

OR

Логическая

дизъюнкция

XOR

Исключающее ИЛИ

SET

Присвоение

переменной

RESET

Обнуление переменной

2.

Функции управления

RETURN

Возврат из

подпрограммы

GOTO

Безусловный переход

CALL

Вызов подпрограммы

TSTART

 

TSTOP

 

GSTART

 

GSTOP

 

3. Арифметические функции

ADD

Сложение

SUB

Вычитание

DIV

Деление

MUL

Умножение

4. Функции сравнения

=

Равно

<>

Не равно

>

Больше

<

Меньше

= >

Больше или равно

< =

Меньше или равно

5. Математические функции

ABS

Модуль

EXPT

Экспонента

LOG

Логарифм

SQRT

Корень

6. Тригонометрические

ACOS

Арккосинус

ASIN

Арксинус

ATAN

Арктангенс

COS

Косинус

SIN

Синус

TAN

Тангенс

 

Далее в таблице приведены примеры реализации некоторых операций на языке FBD.

 

Таблица 2. Примеры программирования на языке FBD

Выполняемая операция

Изображение

Описание

Обнаружение перепада сигнала In

 

 

Двоичная переменная Out примет зна­чение TRUE тогда и только тогда, ко­гда переменная In изменит свое состо­яние

П-регулятор

 

 

 

Рассогласование между текущим зна­чением величины Val и заданием Ref домножается на коэффициент Km и используется в качестве управляюще­го воздействия

Ограничение нижнего предела делителя In

 

 

 

Программа обеспечивает деление переменной Sampl на значение переменной Val. Переменная делителя Val снизу ограничена значением Vmin. Переменная Error принимает значение TRUE, если Val < Vmin

 

Язык функциональных блоковых диаграмм (FBD)

Информатика Язык функциональных блоковых диаграмм (FBD)

просмотров — 586

Создание новой программы

Создание списка глобальных переменных

Создание нового проекта

Этапы разработки

Разработка прикладного программного обеспечения для промышленных контроллеров в системе UltraLogic выполняется следующим образом:

— создание нового проекта;

— заполнение таблиц глобальных переменных;

— разработка программ;

— конфигурирование контроллера;

— компиляция;

— загрузка и отладка программы.

Для того, чтобы открыть окно нового проекта͵ в меню Проект выберите строку Новый. Откроется окно нового проекта с заголовком Без имени. Для изменения имени проекта в меню Проектвыберите строку Сохранить как… и, в появившемся окне Сохранить проект, введите новое имя.

В новом проекте выберете раздел Переменныеи откройте лист с закладкой Сетевые. В таблице глобальных сетевых переменных уже существуют две системные переменные ERR_SEG и ERR_OFS. Добавьте в список нужные переменные. Для этого щелкните правой кнопкой мыши в поле листа с закладкой Сетевые, появится всплывающее меню. В меню выберите строку Добавить. Откроется окно Создание переменной. Заполните необходимые поля и отметьте нужные атрибуты переменной.

Разработка программ производится в разделœе Программы менеджера проекта. Для выбора раздела щелкните левой кнопкой мыши на названии раздела Программы.

Важно заметить, что для создания списка программ проекта щелкните правой кнопкой мыши в окне проекта на листе с закладкой Список. Появится всплывающее меню:

Новая Программасоздает лист для новой программы; Редактированиередактирование программы; Заголовокредактирование заголовка программы;

Переместить вверхпередвинуть программу в списке на позицию вверх;

Переместить внизпередвинуть программу в списке на позицию вниз;

Удалитьудалить программу.

Щелкните левой мышью на строке меню Новая программа. Откроется окно Создание новой программы. Заполните необходимые поля. После этого в разделœе проекта Программыпоявится новый лист с закладкой название, а на листе с закладкой Список — название и комментарий, только что введенной программы.

При открывании окна с редактируемой программой автоматически вызывается редактор языка FBD.

Программа на языке FBD может содержать следующие базовые типы объектов:

— функциональные блоки и связи;

— переходы и метки;

— комментарии.

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

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

Имеются следующие формальные правила языка FBD:

— функциональные блоки могут располагаться произвольно в поле программы;

— не может быть свободных (несоединœенных) входов и выходов функционального блока;

— любая связь имеет имя и тип;

— входы и выходы функциональных блоков, присоединœенные к связям, имеющим одинаковые имена, считаются соединœенными;

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

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

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

На входе FBD блока может быть

— константное выражение;

— внутренняяиливходная переменная;

— выходная переменная.

На выходе FBDблока может быть любая внутренняя или выходная переменная.

Метки и переходы можно использовать для управления процессом выполнения программы. Для завершения программы существует оператор RETURN.

Комментарии — это произвольный текст в поле программы. В одной строке комментария может содержаться до 255 символов.

Стоит сказать, что для написания программы используется панель инструментов редактора FBD. Кнопка вызова панели инструментов Tools находится в окне главного меню системы. Далее показан вид этой панели:

Панель инструментов представляет из себя набор кнопок с условным изображением тех или иных операций редактора. Набор кнопок является многоуровневым, ᴛ.ᴇ. большинство кнопок раскрывают набор кнопок следующего уровня.

Базовые функции языка FBD разделœены на следующие группы:

— логические функции;

— функции сравнения;

— арифметические функции;

— функции управления программой и таймерами.

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

Все функции сравнения в качестве операндов могут использовать переменные типа INTEGER, FLOAT, TIMER. Входные переменные каждой отдельной функции должны иметь одинаковый тип. На выходах всœех функциональных блоков сравнения по результату операции формируются переменные типа BOOLEAN. После инициализации программы эти переменные принимают значение FALSE, кроме тех глобальных переменных, значение которых при инициализации явно объявлены как TRUE. Кнопка вызова функций сравнения на панели инструментов вызывает следующее меню:

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


Читайте также


  • — Язык Functional Block Diagrams (FBD)

    Язык функциональных блок-схем (FBD) описывает функции преобразования входных переменных контроллера в выходные в виде сочетания элементарных функциональных блоков. Язык функциональных блоков (Function Block Diagrams) позволяет создать программную единицу практически любой… [читать подробенее]


  • — Язык функциональных блоковых диаграмм (FBD)

    Создание новой программы Создание списка глобальных переменных Создание нового проекта Этапы разработки Разработка прикладного программного обеспечения для промышленных контроллеров в системе UltraLogic выполняется следующим образом: -… [читать подробенее]


  • — Создание простейшего проекта в среде ISaGRAF на языке FBD

    Цель работы: Знакомство со средой программирования промышленных контроллеров ISaGRAF версии 3.32 и выше (3.4х, 3.5х) и языком программирования FBD. Задание на лабораторную работу: в ходе работы разработать приложение на языке FBD для виртуального контроллера, реализующую… [читать подробенее]


  • — П.4 Диаграммы функциональных блоков FBD

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


  • — Языки программирования стандарта IEC 61131-3: IL, LD, FBD, ST, CFC. Типичное применение языков стандарта.

    Контроль текущего состояния и ошибок при работе операторских станций. Автосохранение параметров при перезапуске. Защита операторских станций от несанкционированного доступа. Защита от несанкционированного доступа — важная функция, способствующая поддержанию… [читать подробенее]


  • — Диаграммы функциональных блоков, FBD

    Структурированный текст, ST Язык SFC является текстовым языком высокого уровня и очень сильно напоминает Паскаль: Пример программы на языке ST: IF Voltage>220 THEN Current:=Current — 10; (*Если V>220 В, то уменьшить ток на 10*) ELSE Current:=50; Speed:= ON;(*Установить ток 50А и включить мотор*) END_IF; . .. [читать подробенее]


  • — Диаграммы функциональных блоков, FBD

    Структурированный текст, ST Список инструкций, IL Язык IL напоминает ассемблер и используется для реализации функций, функциональных блоков и программ, а также шагов и переходов в языке SFC. Основным достоинством языка является простота его изучения. Наиболее часто… [читать подробенее]


  • — А. Язык программирования – ФБД (FBD).

    Программирование работы смесителя – дозатора в среде LOGO! Soft — Comfort На рис. 4.2 приведена программа, написанная на языке ФБД в среде LOGO! Soft – Comfort [1], и обеспечивающая выполнение всех действий, составляющих работу схемы рис.4.1. Входные сигналы контроллера форми­руются… [читать подробенее]


  • %d1%8f%d0%b7%d1%8b%d0%ba%20fbd — с русского на все языки

    Все языкиРусскийАнглийскийИспанский────────Айнский языкАканАлбанскийАлтайскийАрабскийАрагонскийАрмянскийАрумынскийАстурийскийАфрикаансБагобоБаскскийБашкирскийБелорусскийБолгарскийБурятскийВаллийскийВарайскийВенгерскийВепсскийВерхнелужицкийВьетнамскийГаитянскийГреческийГрузинскийГуараниГэльскийДатскийДолганскийДревнерусский языкИвритИдишИнгушскийИндонезийскийИнупиакИрландскийИсландскийИтальянскийЙорубаКазахскийКарачаевскийКаталанскийКвеньяКечуаКиргизскийКитайскийКлингонскийКомиКомиКорейскийКриКрымскотатарскийКумыкскийКурдскийКхмерскийЛатинскийЛатышскийЛингалаЛитовскийЛюксембургскийМайяМакедонскийМалайскийМаньчжурскийМаориМарийскийМикенскийМокшанскийМонгольскийНауатльНемецкийНидерландскийНогайскийНорвежскийОрокскийОсетинскийОсманскийПалиПапьяментоПенджабскийПерсидскийПольскийПортугальскийРумынский, МолдавскийСанскритСеверносаамскийСербскийСефардскийСилезскийСловацкийСловенскийСуахилиТагальскийТаджикскийТайскийТатарскийТвиТибетскийТофаларскийТувинскийТурецкийТуркменскийУдмурдскийУзбекскийУйгурскийУкраинскийУрдуУрумскийФарерскийФинскийФранцузскийХиндиХорватскийЦерковнославянский (Старославянский)ЧеркесскийЧерокиЧеченскийЧешскийЧувашскийШайенскогоШведскийШорскийШумерскийЭвенкийскийЭльзасскийЭрзянскийЭсперантоЭстонскийЮпийскийЯкутскийЯпонский

     

    Все языкиРусскийАнглийскийИспанский────────АлтайскийАрабскийАрмянскийБаскскийБашкирскийБелорусскийВенгерскийВепсскийВодскийГреческийДатскийИвритИдишИжорскийИнгушскийИндонезийскийИсландскийИтальянскийКазахскийКарачаевскийКитайскийКорейскийКрымскотатарскийКумыкскийЛатинскийЛатышскийЛитовскийМарийскийМокшанскийМонгольскийНемецкийНидерландскийНорвежскийОсетинскийПерсидскийПольскийПортугальскийСловацкийСловенскийСуахилиТаджикскийТайскийТатарскийТурецкийТуркменскийУдмурдскийУзбекскийУйгурскийУкраинскийУрумскийФинскийФранцузскийЦерковнославянский (Старославянский)ЧеченскийЧешскийЧувашскийШведскийШорскийЭвенкийскийЭрзянскийЭсперантоЭстонскийЯкутскийЯпонский

    Создание программы на языке FBD

    В начало

     

    Задание

    Требуется создать программу на языке FBD согласно условиям:

    1) Время перемещения в каждом направлении нужно контролировать. Перемещение влево должно прекращаться через 5 с, а перемещение вправо – через 10 с.

    2) Направление перемещения изменяется автоматически по истечении указанного времени.

    Решение

    Формируем блок-схемы из FFB, которые объединяются друг с посредством внешних параметров FFB (перемен­ные, соответствующие входам и выходам FFB), т. е. таблично.

     

    Рис. 1. Решение на языке FBD

    Рис. 2

    Рис. 3

     

    Ответы на контрольные вопросы

    Язык FBD (Function Block Diagram) – графический язык программирования высокого уровня, обеспечивающий управление потоками данных всех типов. Позволяет использовать очень мощ­ные алгоритмы простым вызовом функций и функциональных блоков. Удовлетворяет непрерывным динамическим процессам. Подходит для небольших приложений. Хорош для сложных ве­щей подобно ПИД регуляторам, массивам и т. д. Имеет большую библиотеку блоков. FBD заимствует символику булевой алгебры и, так как булевы символы имеют входы и выходы, которые могут быть соединены между собой, FBD является более эффективным для представления структурной информации, чем язык релейно-контактных схем.

    2. Что такое EFB, DFB, UDEFB?

      EFB (Elementary Function Block) – элементарные функции и элементарные функциональные блоки; они находятся в библиоте­ках. Логика обработки в EFB (программа) написана на языке С и не может быть изменена в редакторе FBD. Изменять можно только параметры блоков;

    DFB (Derived Function Block) – функции и функциональные блоки пользователя; они конструируются пользователем из EFB;

    UDEFB (User Defined Elementary Function Block) – разработан­ные пользователем на языке С; они оформляются как объекты библиотек.

    3. Каково назначение входов EN и выходов ENO функциональных блоков?

    Все FFB могут быть вызваны с дополнительными (необязатель­ными) формальными параметрами: EN (входом) и ENO (выходом).

    Конфигурирование (включение или выключение) параметров EN и ENO осуществляется в диалоговом окне Property (свойства) FFB, которое вызывается посредством команд Object, Property (Объекты, Свойства), или двойным нажатием левой клавиши (ЛК) мыши на изображении FFB.

    Если FFB вызывается с параметрами EN/ENO и при этом значе­ние EN равно нулю, то алгоритмы, определяемые FFB, не будут вы­полняться. В этом случае значение ENO автоматически устанавлива­ется равным 0. Если же значение EN равно 1, то алгоритмы, опреде­ляемые FFB, будут выполнены. После выполнения этих алгоритмов без ошибок значение ENO автоматически устанавливается равным 1. Если же возникает ошибка во время выполнения этих алгоритмов, то значение ENO будет установлено равным 0.

    Поведение FFB одинаково как в случае вызова FFB с EN = 1, так и при вызове без параметров EN/ENO.

    4. Какую структуру имени, присваиваемого автоматически, имеет FFB?

    Для EFB, DFB и UDEFB принято общее обозначение – FFB (Functions/Function Block). Каждый из перечисленных объектов представляет собой подпро­грамму, которая помещается в одну из библиотек, используемых при разработке программы работы ПЛК. Таким образом обеспечи­вается возможность вызова и хранения FFB в форме библиотек.

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

    FBI = Экземпляр Функционального Блока

    n = порядковый номер функционального блока в проекте

    Это автоматически генерируемое имя может быть изменено для наглядности. Имя экземпляра (максимум 32 символа) должно быть уникальным в пределах всего проекта и не является чувствительным к регистру. Имя экземпляра должно соответствовать общим соглашениям об именовании.

    5. Для чего служат связи?

    Связи являются соединениями между FFB. Несколько связей могут быть соединены с FFB выходом. Пункты любого такого соединения отмечаются жирной точкой. Входы/выходы, которые будут соединены, должны иметь соответствующие типы данных. Связи могут быть отредактированы в режиме Выбора. Перекрывание с другими объектами разрешается. Связи не могут использоваться для конфигурации контуров, потому что не возможно ясно определить порядок обработки в секции. Контуры должны решаться с помощью фактических параметров.

    6. Какое значение назначается по умолчанию несвязанным входам FFB?

    Несвязанным входам FFB назначается по умолчанию значение ”0”.

    Редактор FBD-программ АЛЬФА

    Раздел Наименование раздела Перечень функциональных блоков
    1 Функциональные блоки ввода-вывода интерфейсный ввод-вывод, аналоговый ввод-вывод, дискретный ввод-вывод, импульсный ввод
    2 Математические функциональные блоки умножение, суммирование с масштабированием, деление, корень квадратный, абсолютное значение, интегрирование, дифференцирование с задержкой
    3 Логические функциональные блоки логическое И, многовходовое И, логическое ИЛИ, многовходовое ИЛИ, исключающее ИЛИ, мажорирование, триггер, регистр, выделение фронта
    4 Функциональные блоки управления программой минимум, максимум, скользящее среднее, задержка, экстремум, ограничение, ограничение скорости, переключатель по номеру, компаратор, таймер, счетчик, мультивибратор, одновибратор, импульсатор
    5 Функциональные блоки управления технологическим процессом фильтр, масштабирование, кусочно-линейная функция, уставка аналоговая, уставка времени, программный задатчик, таймер-сигнализатор реального времени, линейное изменение параметра, пользовательская панель
    6 Функциональные блоки ПИД-регуляторов регулятор аналоговый, регулятор импульсный, регулятор каскадный, регулятор аналоговый с расширенными функциями, дельта-регулятор
    7 Функциональные блоки вычисления влажность, экспонента, натуральный логарифм, десятичный логарифм
    8 Функциональные блоки управления состоянием если, тогда, состояние, уставка дискретная, выбор из множества, детектор включения питания или запуска программы пользователя

    Программирование контроллеров Siemens — multisets.ru

    Программирование различных типов контроллеров от Siemens выполняется посредством создания специальной программы-инструкции в поставляемом вместе с контроллером программном обеспечении и последующей загрузки ее в контроллер.

    Наибольшее распространение получили три основных программы:

    1. Simatic Step 7.
    2. Desigo Xworks.
    3. LOGO! SoftComfort.

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

    Simatic Step 7

    Данное программное обеспечение предназначено для работы с контроллерами серии S200, S300 и S400. Все они предназначены для работы в особо тяжелых условиях промышленного производства. Серия S200 используется для малой автоматизации технологических процессов, S300 – выполнения автоматизации средней сложности, S400 — максимальной, при этом их архитектура довольно похожа.

    Программирование контроллеров Сименс данной линии выполняется с помощью нескольких стандартных языков программирования:
    1. FBD – язык функциональных блоков, программирование на данном языке похоже на использование цифровой логики (блоки И, ИЛИ, компараторы, таймеры, триггеры и т.д). Программа контроллера напоминает функциональную построенную на базе аналоговых микросхем.
    2. LAD – язык релейных схем, программирование Siemens посредством данного языка программирования идеально подходит для выполнения первичной обработки дискретных входов и выходов контроллера. Программа, написанная на LAD, выглядит аналогично функциональной схеме соединения релейных контактов (нормально открытые и закрытые контакты)
    3. STL – язык создания списка инструкций, предназначен для организации выполнения пошаговых операций.
    4. SCL – похожий на Pascal язык программирования, идеально подходит для организации сложной обработки получаемых данных. Сименс программирование на данном языке может заключаться в функциональные блоки FBD для удобного внедрения в другие части программы контроллера.

    Подключение для программирования контроллеров может выполняться через кабель MPI, Profibus, эзернет.

    Desigo Xworks

    Программа, используемая для Siemens программирование контроллеров, обеспечивающих автоматизацию зданий и помещений, выполнение диспетчеризации. Основная задача, решаемая с помощью контроллеров данной серии, – управление микроклиматом и освещением здания, создание систем оповещения. Для программирования контроллеров данного типа используются языки программирования аналогичные Simatic Step 7.

    LOGO! Soft Comfort

    Программное обеспечение данного типа позволяет выполнять программирование лого Сименс. Контроллеры Logo фактически являются мощными, многофункциональными, программируемыми реле, объединяющими в себе ряд дискретных и аналоговых входов-выходов, обладающие возможностью подключения дополнительной периферии. Siemens logo программирование похоже на FBD и LAD язык программирования Step 7, но имеется ограничение по максимальному количеству используемых блоков. Контроллеры logo для программирования подключаются через кабель USB непосредственно к персональному компьютеру.

    Наша компания предлагает продажу и помощь в программировании контроллеров Siemens. Совместное внедрение систем автоматизации любой сложности и на любом объекте.

    % PDF-1.2 % 904 0 объект > эндобдж xref 904 189 0000000016 00000 н. 0000004133 00000 п. 0000006654 00000 н. 0000006814 00000 н. 0000006898 00000 н. 0000006989 00000 н. 0000007078 00000 н. 0000007223 00000 п. 0000007279 00000 н. 0000007378 00000 н. 0000007470 00000 н. 0000007616 00000 н. 0000007685 00000 н. 0000007784 00000 н. 0000007880 00000 п. 0000008025 00000 н. 0000008094 00000 н. 0000008193 00000 п. 0000008293 00000 п. 0000008439 00000 н. 0000008508 00000 н. 0000008605 00000 н. 0000008708 00000 н. 0000008853 00000 н. 0000008922 00000 н. 0000009019 00000 н. 0000009137 00000 п. 0000009282 00000 п. 0000009351 00000 п. 0000009448 00000 н. 0000009554 00000 н. 0000009655 00000 п. 0000009724 00000 н. 0000009792 00000 н. 0000009945 00000 н. 0000010031 00000 п. 0000010150 00000 п. 0000010270 00000 п. 0000010337 00000 п. 0000010403 00000 п. 0000010520 00000 п. 0000010588 00000 п. 0000010704 00000 п. 0000010771 00000 п. 0000010884 00000 п. 0000010951 00000 п. 0000011068 00000 п. 0000011134 00000 п. 0000011243 00000 п. 0000011309 00000 п. 0000011375 00000 п. 0000011441 00000 п. 0000011573 00000 п. 0000011641 00000 п. 0000011765 00000 п. 0000011833 00000 п. 0000011901 00000 п. 0000011969 00000 п. 0000012107 00000 п. 0000012175 00000 п. 0000012292 00000 п. 0000012360 00000 п. 0000012428 00000 п. 0000012496 00000 п. 0000012624 00000 п. 0000012692 00000 п. 0000012808 00000 п. 0000012876 00000 п. 0000012989 00000 п. 0000013057 00000 п. 0000013195 00000 п. 0000013263 00000 п. 0000013375 00000 п. 0000013443 00000 п. 0000013565 00000 п. 0000013633 00000 п. 0000013789 00000 п. 0000013857 00000 п. 0000013965 00000 п. 0000014033 00000 п. 0000014176 00000 п. 0000014244 00000 п. 0000014355 00000 п. 0000014423 00000 п. 0000014558 00000 п. 0000014626 00000 п. 0000014753 00000 п. 0000014821 00000 п. 0000014947 00000 п. 0000015015 00000 п. 0000015140 00000 п. 0000015208 00000 п. 0000015335 00000 п. 0000015403 00000 п. 0000015471 00000 п. 0000015539 00000 п. 0000015669 00000 п. 0000015738 00000 п. 0000015857 00000 п. 0000015926 00000 п. 0000015995 00000 п. 0000016064 00000 п. 0000016177 00000 п. 0000016246 00000 п. 0000016358 00000 п. 0000016427 00000 н. 0000016541 00000 п. 0000016610 00000 п. 0000016734 00000 п. 0000016803 00000 п. 0000016917 00000 п. 0000016986 00000 п. 0000017100 00000 п. 0000017169 00000 п. 0000017283 00000 п. 0000017352 00000 п. 0000017467 00000 п. 0000017536 00000 п. 0000017650 00000 п. 0000017719 00000 п. 0000017833 00000 п. 0000017902 00000 п. 0000018016 00000 п. 0000018085 00000 п. 0000018212 00000 п. 0000018281 00000 п. 0000018398 00000 п. 0000018467 00000 п. 0000018594 00000 п. 0000018663 00000 п. 0000018778 00000 п. 0000018847 00000 п. 0000018974 00000 п. 0000019043 00000 п. 0000019161 00000 п. 0000019230 00000 п. 0000019357 00000 п. 0000019426 00000 п. 0000019538 00000 п. 0000019607 00000 п. 0000019734 00000 п. 0000019803 00000 п. 0000019928 00000 п. 0000019997 00000 п. 0000020112 00000 п. 0000020181 00000 п. 0000020307 00000 п. 0000020376 00000 п. 0000020490 00000 н. 0000020559 00000 п. 0000020685 00000 п. 0000020754 00000 п. 0000020871 00000 п. 0000020940 00000 п. 0000021066 00000 п. 0000021135 00000 п. 0000021259 00000 п. 0000021328 00000 п. 0000021452 00000 п. 0000021521 00000 п. 0000021590 00000 п. 0000021659 00000 п. 0000021786 00000 п. 0000021855 00000 п. 0000021982 00000 п. 0000022051 00000 п. 0000022172 00000 п. 0000022241 00000 п. 0000022371 00000 п. 0000022440 00000 п. 0000022583 00000 п. 0000022652 00000 п. 0000022792 00000 п. 0000022861 00000 п. 0000022930 00000 н. 0000022999 00000 н. 0000023056 00000 п. 0000023229 00000 п. 0000023455 00000 п. 0000024582 00000 п. 0000025712 00000 п. 0000025819 00000 п. 0000029313 00000 п. 0000029530 00000 п. 0000030649 00000 п. 0000032465 00000 п. 0000047345 00000 п. 0000004255 00000 н. 0000006630 00000 н. трейлер ] >> startxref 0 %% EOF 905 0 объект > эндобдж 1091 0 объект > транслировать H [p {X % N — $ & 2 Tf (xt & 3! GiPB ܆ & N3I + i3], FEq̣H (І6i {wW /; ҞsuBB5 / «! ~ T О » uysLQM @ Dc (4 «Y.ϒn # r4 * K ٘ bYUFwY% & G% gWbL 㪂 E ֫ Ʋ * 7 (oXVQ, FeU ה XVG2sXKzGz`0Mb) zE ׌ rZ & Ñ1Z% flwZ5 + k] ץ ifҶbJUpp% = V «KFo_Фz`Sp | ‘0k.q,} 1g9 & fS $ ܫ X «Hɜ = N + @ l0 |> b $ ԔIY9ˌ # a5% 4v # 7ehz {$}. B`Z6, — = 1޺٥50 «݀ IJr 8LV.zt-CO (‘fa3′» + * $ \ Ibd%: ܟ xC’ʃ Cm & z? 3 ڗ> I%; T ~ ஜ ‘n (} 9CRΤ {8 kUbt ~ lJ8 # 6h

    Программирование ПЛК: функциональная блок-схема, список инструкций и релейная диаграмма

    Так же, как при разговоре с человеком, когда мы разговариваем с машиной, нам нужно знать ее язык. Нам необходимо знать языки программирования, особенно для программируемых логических контроллеров (ПЛК).И, как и у нас, их довольно много.

    К счастью, IEC 61131-3 (Международная электротехническая комиссия) стандартизировала несколько языков программирования ПЛК в 1993 году: список инструкций (IL), лестничную диаграмму (LD), функциональную блок-схему (FBD), структурированный текст (ST) и последовательные функции. диаграмма (SFC). В этой статье мы рассмотрим первые три.

    RIA15 Индикатор с питанием от контура для 4..,20 мА или HART®

    Список инструкций

    Если мы запрограммировали микроконтроллеры на языке ассемблера, IL покажется знакомым. Один из самых простых языков программирования ПЛК (по крайней мере, теоретически), IL движется шаг за шагом и упрощает ввод ряда простых математических функций.

    Как и сборка, IL состоит из множества строк кода, одна строка для одной операции. У этих операций может быть три модификатора.Модификатор «N» отменяет результат, «C» делает его условным, а «(» задерживает его. Этот список операторов и модификаторов даст нам представление о том, что мы можем сделать.

    Предоставлено инженером на диске

    Как язык низкого уровня, IL выполняется намного быстрее и занимает меньше места в хранилище, чем графический язык, такой как релейная диаграмма и функциональный блок. А поскольку это чисто текстовый язык, у нас не будет вкладок, чтобы нажимать или чего-то еще. Мышь не требуется, что ускоряет программирование. Мы можем отображать и редактировать его с помощью портативных программаторов без необходимости в программном обеспечении или ноутбуке.

    Однако у IL слабая семантика и отсутствие структуры кода. Если неаккуратный человек пишет код, у другого человека могут возникнуть проблемы с его чтением. Отсутствие визуальной структуры также может затруднить определение того, что программа должна делать или почему она не делает то, что должна. А сложные вычисления сложно настроить.

    Чтобы узнать о HART, вы можете прочитать статью Visaya об основах связи HART

    Лестничная диаграмма

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

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

    С любезного разрешения Programmable Logic Controllers от
    W. Bolton

    Этот простой подход делает использование LD несложным. Нам просто нужен базовый план входных и выходных сигналов, чтобы начать кодирование.Мы также можем организовать релейную диаграмму в папки или подпрограммы, что позволяет легко сегментировать.

    LaD отлично подходит для простых приложений, например, для цифровых входов, которые проверяют различные условия и соответствующим образом настраивают выходы. Мы также можем разработать таймеры, счетчики, сравнения и другие базовые функции. Однако, если нам нужны сложные функции, такие как тригонометрия и анализ данных, мы можем застрять. И чем больше становится программа, тем сложнее ее читать и интерпретировать.

    Здесь вы можете увидеть простую программу с релейной диаграммой.

    Предоставлено PLC Academy
    В этом видео вы можете увидеть простую лестничную логику

    iDTM-EDD (EU) Professional HART / FF DTM от CodeWrights

    DTM с официальной библиотекой DD всех DD, зарегистрированных в FieldComm Group

    Функциональная блок-схема

    Как и LD, FBD нагляден и интуитивно понятен для тех, кто разбирается в электричестве.Для тех, кто привык к логическим выражениям и цифровым системам, FBD будет более интуитивно понятным, чем лестница. Это тоже похоже на схему подключения. Однако здесь мы «соединяем» блоки вместе, в то время как LD имеет больше логики реле. В FBD у вас есть входы слева от функциональных блоков и выходы справа.

    Можно сказать, что FBD — это визуально более простая версия LD. Взгляните на это изображение, чтобы увидеть, как они соотносятся, и сделайте собственные выводы об этом утверждении.

    Чтобы узнать о Profinet, вы можете прочитать статью о Visaya здесь

    Предоставлено программируемыми логическими контроллерами от
    W.Bolton

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

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

    FBD / LD / IL

    Комбинированный редактор позволяет программировать на языках FBD (функциональная блок-схема), LD (лестничная диаграмма) и IL (список инструкций).

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

    Функциональная блок-схема (FBD)

    Функциональная блок-схема — это графический язык программирования IEC 61131. Он использует список сетей. Каждая сеть содержит структуру, которая может содержать логические и арифметические выражения, вызовы функциональных блоков, переход или оператор возврата.

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

    Пример:

    Релейная диаграмма (LD)

    Релейная диаграмма (LD) — это графический язык программирования, который основан на принципе электрические схемы.

    Релейная диаграмма подходит для конфигурирования логических цепей управления, а также может использоваться для создания сетей, подобных FBD. Таким образом, LD хорошо подходит для управления вызовами других программных блоков.

    Релейная диаграмма состоит из серии сетей. Сеть ограничена слева вертикальной линией (шиной). Сеть содержит принципиальную схему, состоящую из контактов, катушек, дополнительных функциональных блоков (POU) и соединительных линий. В левой части сети находится контакт или серия контактов, которые переходят в состояние ВКЛ или ВЫКЛ слева направо, что соответствует логическим значениям ИСТИНА и ЛОЖЬ. Каждый контакт связан с логической переменной. Если эта переменная имеет значение ИСТИНА, состояние передается слева направо через соединительную линию.В противном случае передается OFF. Таким образом, катушкам в правой части сети присваивается значение ВКЛ или ВЫКЛ из левой части. Соответственно, значение ИСТИНА или ЛОЖЬ записывается в присвоенные им логические переменные.

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

    Пример:

    IEC 61131-3 определяет полный набор команд LD, состоящий из различных типов контактов и катушек. Контакты проводят ток слева направо (в зависимости от их типа). Катушки хранят поступающее значение. Контакты и катушки назначаются логическим переменным. Они могут дополнять сеть LD с помощью прыжков, прыжков назад, маркеров и комментариев.

    Список инструкций (IL)

    Список инструкций — это язык программирования, соответствующий стандарту IEC 61131 и похожий на Ассемблер.Он поддерживает программирование на основе аккумулятора.

    Список инструкций (IL) состоит из серии операторов. Каждая инструкция начинается с новой строки и содержит оператор и один или несколько операндов, разделенных запятыми, в зависимости от типа операции. Перед инструкцией может стоять маркер, за которым следует двоеточие. Маркер используется для идентификации инструкции и может использоваться в качестве пункта назначения перехода. Комментарий должен быть последним элементом в строке. Между инструкциями можно добавлять пустые строки.

    Поддерживаются все операторы IEC 61131-3, а также несколько входов, несколько выходов, отрицания, комментарии, установка / сброс выходов и условные / безусловные переходы.

    Каждая инструкция в первую очередь основана на загрузке значений в аккумулятор (инструкция LD). Затем соответствующая операция выполняется с параметром из аккумулятора. Результат операции записывается обратно в аккумулятор, откуда он должен быть сохранен в определенном месте с помощью инструкции ST.

    Instruction List поддерживает операторы сравнения (EQ, GT, LT, GE, LE, NE) и переходы для программирования условного выполнения или циклов. Переходы могут быть безусловными (JMP) или условными (JMPC / JMPCN). Для условных переходов программа проверяет, является ли значение в аккумуляторе ИСТИНА или ЛОЖЬ.

    Пример:

    Комбинированный редактор позволяет программировать на языках FBD (функциональная блок-схема), LD (лестничная диаграмма) и IL (список инструкций).

    Базовым элементом программирования FBD и LD является сеть.Каждая сеть содержит структуру, которая может представлять следующее: логическое или арифметическое выражение, вызов ПМ (функции, функционального блока, программы и т. Д.), Переход или инструкцию возврата. IL фактически не требует сетей. Однако в CODESYS программа IL также состоит как минимум из одной сети для поддержки преобразования в FBD или LD. Ввиду этого вам также следует осмысленно разделить программу IL на сети.

    См. Также

    Функциональная блок-схема представляет собой графически ориентированный язык программирования IEC 61131.Он работает со списком сетей, где каждая сеть содержит структуру, которая может содержать логические и арифметические выражения, вызовы функциональных блоков, команду перехода или возврата.

    Здесь используются коробки, известные из логической алгебры. Ящики и переменные соединяются соединительными линиями. Поток сигналов в сети идет слева направо. Поток сигналов в редакторе идет сверху вниз, начиная с сети 1.

    Пример

    Примечание

    CFC также является языком программирования, основанным на том же принципе, что и FBD, но со следующими отличиями:

    • Редактор CFC не ориентирован на сеть.
    • Вы можете свободно размещать элементы в редакторе CFC.
    • Возможна прямая вставка отзывов.
    • Порядок выполнения определяется списком вставленных в данный момент элементов, который вы можете изменить.

    См. Также

    Релейная диаграмма (LD) — это графически ориентированный язык программирования, который приближает электрическую схему. С одной стороны, лестничная диаграмма подходит для проектирования логических коммутационных блоков, но с другой стороны, вы также можете создавать сети, как в FBD.Поэтому вы можете очень хорошо использовать LD для управления вызовами других программных блоков.

    Релейная диаграмма состоит из серии сетей. Сеть ограничена с левой стороны вертикальной линией (шиной). Сеть содержит принципиальную схему контактов, катушек, дополнительных блоков (POU) и соединительных линий. На левой стороне сети есть контакт или серия контактов, которые передают состояние ВКЛ или ВЫКЛ, что соответствует логическим значениям ИСТИНА, и , ЛОЖЬ, , слева направо.С каждым контактом связана логическая переменная. Если эта переменная имеет значение ИСТИНА, статус передается слева направо через соединительную линию. В противном случае выдается реле «ВЫКЛ». Таким образом, катушка (катушки) в правой части сети принимает (а) значения ВКЛ и ВЫКЛ, приходящие слева, и значение ИСТИНА или ЛОЖЬ записывается соответственно в присвоенную им логическую переменную.

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

    Пример

    IEC 61131-3 определяет полный набор команд LD, состоящий из различных типов контактов и катушек. Контакты проводят ток (в зависимости от их типа) слева направо. Катушки хранят поступающее значение. Контакты и катушки назначаются логическим переменным. Вы можете дополнить сеть LD переходами, возвратами, метками и комментариями.

    См. Также

    Список инструкций представляет собой язык программирования, подобный ассемблеру, соответствующий стандарту IEC 61131. Он поддерживает программирование на основе аккумулятора.

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

    Поддерживаются все операторы IEC 61131-3, а также несколько входов, несколько выходов, отрицания, комментарии, установка / сброс выходов и условные / безусловные переходы.

    Каждая инструкция основана в первую очередь на загрузке значений в аккумулятор (инструкция LD ). После этого выполняется соответствующая операция с параметром из аккумулятора. Результат операции снова записывается в аккумулятор, откуда его следует целенаправленно сохранить с помощью инструкции ST .

    Список инструкций поддерживает операторы сравнения (EQ, GT, LT, GE, LE, NE) и переходы для программирования условного выполнения или циклов. Переходы могут быть безусловными (JMP) или условными (JMPC / JMPCN). В случае условных переходов выполняется проверка того, является ли значение в аккумуляторе ИСТИНА или ЛОЖЬ .

    Пример

    См. Также

    Реализация функций MATLAB с использованием блоков — MATLAB и Simulink

    Функциональные блоки MATLAB позволяют вам определять настраиваемые функциональные возможности в Simulink ® моделирует с помощью языка MATLAB ® .Это самый простой способ перенести код MATLAB в Simulink. Блоки MATLAB Function поддерживают генерацию кода C / C ++ из Simulink Coder ™ и встроенный кодер ® .

    Как работают функциональные блоки MATLAB

    Когда вы моделируете модель, которая содержит функциональный блок MATLAB, программное обеспечение генерирует двоичный код или исполняемый код C / C ++ MATLAB (MEX) из блока и интегрирует этот код с модель. Блок MATLAB Function использует ту же инфраструктуру, что и MATLAB Coder, который вы используете для генерации кода C / C ++ из кода MATLAB вне Simulink.

    Поскольку блок MATLAB Function полагается на технологию генерации кода, он имеет много общего с MATLAB Кодер. Ограничения генерации кода C / C ++ для MATLAB Coder также применяется к блокам MATLAB Function. Однако Блок MATLAB Function является автономным в Simulink и не требует MATLAB Кодер. Чтобы сгенерировать автономный код C / C ++ из модели, содержащей Функциональные блоки MATLAB, используйте Simulink Кодер.

    Возможности функционального блока MATLAB

    Ниже описывается , какой можно использовать с MATLAB. Функция для в вашей модели. Чтобы увидеть , как использовать Функциональный блок MATLAB в примере, см. Создание настраиваемой функциональности с помощью функциональных блоков MATLAB.

    Simulink к интерфейсу MATLAB

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

    По умолчанию размер и тип входных и выходных сигналов в MATLAB Функциональные блоки наследуются от соответствующих сигналов Simulink. Вы также можете указать размер и тип входов. и выводит явно в диспетчере портов и данных или в обозревателе моделей. Видеть Определите данные функционального блока MATLAB.

    Автономная генерация кода C / C ++

    Функциональные блоки MATLAB поддерживаются для генерации кода C / C ++ с Simulink Кодер и встроенный кодер.Используя генерацию кода на модели Simulink, которая содержит блок MATLAB Function, вы можете развернуть функциональность MATLAB вне среды MATLAB.

    Для получения дополнительной информации о генерации кода C / C ++ из модели Simulink см. Simulink Coder.

    Язык и поддержка функций MATLAB

    В функциональном блоке MATLAB можно использовать только подмножество Язык MATLAB и языковые функции, которые поддерживаются для кода C / C ++ поколение.Список функций, поддерживаемых для генерации кода, см. В разделе Функции и объекты, поддерживаемые для генерации кода C / C ++. Для поддерживаемые языковые функции, см. Функции языка MATLAB, поддерживаемые для генерации кода C / C ++.

    Внешние функции

    Для моделирования вы можете вызвать внешних функций из Функциональный блок MATLAB. Внешние функции — это функции, которые не поддерживается для генерации кода C / C ++, но может быть отправлен в Среда MATLAB для выполнения во время выполнения.Внешние функции выполняются в рабочей области во время моделирования модели.

    Для генерации кода, Simulink Кодер пытается скомпилировать все функции в функции MATLAB блокировать, если вы явно не объявляете их внешними. Вызовы внешних функций исключены из сгенерированного автономного кода, такого как автономный исходный код C / C ++ или исполняемые файлы. См. Раздел «Разрешение вызовов функций для генерации кода» и «Использование кодировщика».Внешняя конструкция.

    Функциональный блок Simulink и поддержка блока Stateflow

    Из функциональных блоков MATLAB можно вызывать функции, определенные в Функциональный блок Simulink. Вы можете вызывать функции Stateflow ® , когда выбираете Export Chart Level Functions. (Сделать глобальным) и Разрешить вызов экспортируемых функций Флажки Simulink в диалоговом окне Свойства диаграммы. Учить больше о том, как вызывать функции, определенные в Simulink Function и Блоки Stateflow, см. Добавление функции Simulink к модели.

    SFEW3E_C_EM1.indd

    % PDF-1.3 % 1 0 объект >] / Pages 3 0 R / Type / Catalog / ViewerPreferences >>> эндобдж 2 0 obj > поток uuid: f42a3d05-624d-40d5-a4cf-5806fb4f0a0badobe: docid: indd: 9cd7e9d4-60e2-11e0-a5a7-feda216da862xmp.id: 01a142f8emp-ff2c-7940i24-33df-pdf-7940i243df2: bf2cd-79401-992-984-984-987-97-98a.pdf 78683dbaafdcxmp.did: FA0E8398D876E111ADACEC2A8CDFA39Fadobe: docid: indd: 9cd7e9d4-60e2-11e0-a5a7-feda216da862default

  • преобразован из application / x-indesign в application / pdfAdobe Indesign CC / pdfAdobe.0 (Windows) / 2019-11-19T14: 42: 29 + 09: 00
  • 2019-11-19T14: 42: 29 + 09: 002019-11-19T14: 43: 31 + 09: 002019-11-19T14: 43: 31 + 09: 00 Приложение Adobe InDesign 14.0 (Windows) / pdf
  • SFEW3E_C_EM1.indd
  • Библиотека Adobe PDF 15.0 FalsePDF / X-3: 2002PDF / X-3: 2002PDF / X-3: 2002 конечный поток эндобдж 3 0 obj > эндобдж 15 0 объект > эндобдж 16 0 объект > эндобдж 17 0 объект > эндобдж 18 0 объект > эндобдж 34 0 объект > эндобдж 35 0 объект > эндобдж 36 0 объект > эндобдж 37 0 объект > эндобдж 38 0 объект > эндобдж 59 0 объект / LastModified / NumberofPages 1 / OriginalDocumentID / PageUIDList> / PageWidthList >>>>> / Resources> / Font> / ProcSet [/ PDF / Text] / Properties> / XObject >>> / TrimBox [8.50394 8.50394 603.78 850.394] / Тип / Страница >> эндобдж 60 0 объект / LastModified / NumberofPages 1 / OriginalDocumentID / PageUIDList> / PageWidthList >>>>> / Resources> / Font> / ProcSet [/ PDF / Text] / Properties> / XObject >>> / TrimBox [8.50394 8.50394 603.78 850.394] / Type / Страница >> эндобдж 61 0 объект / LastModified / NumberofPages 1 / OriginalDocumentID / PageUIDList> / PageWidthList >>>>> / Resources> / Font> / ProcSet [/ PDF / Text] / Properties> / XObject >>> / TrimBox [8.50394 8.50394 603.78 850.394] / Тип / Страница >> эндобдж 62 0 объект / LastModified / NumberofPages 1 / OriginalDocumentID / PageUIDList> / PageWidthList >>>>> / Resources> / Font> / ProcSet [/ PDF / Text] / Properties> / XObject >>> / TrimBox [8.50394 8.50394 603.78 850.394] / Type / Страница >> эндобдж 63 0 объект / LastModified / NumberofPages 1 / OriginalDocumentID / PageUIDList> / PageWidthList >>>>> / Resources> / Font> / ProcSet [/ PDF / Text] / Properties> / XObject >>> / TrimBox [8.50394 8.50394 603.78 850.394] / Тип / Страница >> эндобдж 64 0 объект / LastModified / NumberofPages 1 / OriginalDocumentID / PageUIDList> / PageWidthList >>>>> / Resources> / Font> / ProcSet [/ PDF / Text] / Properties> / XObject >>> / TrimBox [8.50394 8.50394 603.78 850.394] / Type / Страница >> эндобдж 65 0 объект / LastModified / NumberofPages 1 / OriginalDocumentID / PageUIDList> / PageWidthList >>>>> / Resources> / Font> / ProcSet [/ PDF / Text] / Properties> / XObject >>> / TrimBox [8.ͮ; T | v? #T & ؈ @ ‘+ 2 A-BVB ֮ ipuF> JPlT $? F} h_sDm 﩮 wrBo,) ӌmgM҃mcJvPARxPP WIqJb6 յ & R} «; p6tèVQFKLI * iD $ pA: | 67A (I | ht! -`] $ Dy] 4 + C (RDP% ch3] _D2cz: I = y # k * o2% PDk6 / xmnwlSS XÄ,? & GV0 ** `x.P @ Qm @ ޕ a0PiBFs.iQC] Z (Ύ * ִ 1 PYQk: & q

    Различия между языками программирования ПЛК

    >> Различия между языками программирования ПЛК

    Существует несколько различных методов программирования процессора Control Logix, перечисленных здесь в порядке от наиболее распространенного до наименее распространенного:

    • Релейная логика (наиболее распространенная, предпочтительная)
    • Функциональная блок-схема
    • Последовательные функциональные схемы
    • Структурированный текст

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

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

    В ПЛК Control Logix комбинации могут использоваться совместно друг с другом. Различные подпрограммы могут обращаться к одним и тем же тегам независимо от метода, а это означает, что функциональная блок-схема может обращаться к тем же тегам, что и лестничная процедура.Хорошей практикой является использование одного метода программирования, но если другая инструкция доступна только в другом методе и ее необходимо использовать, можно использовать два или три метода.

    В этом руководстве для каждого метода была создана подпрограмма, выполняющая одно и то же. Подпрограмма принимает тег «Триггер» и выводит тег «Выход». Тег «Выход» включается на десять секунд, затем отключается на десять секунд, затем повторяется до тех пор, пока тег «Триггер» не очищается.

    Рисунок 1: Релейная логика

    В релейной логике вы размещаете различные инструкции на так называемых «ступенях».Каждая цепочка имеет инструкции ввода и инструкции вывода. Инструкции ввода находятся слева, а инструкции вывода — справа. Он имитирует «цепь», где левая сторона является шиной питания, а правая — общей шиной. Если смоделированная «мощность» проходит через входные инструкции, она выполняет выходные инструкции. Эти процедуры просматриваются сверху вниз, слева направо. Чтобы уточнить, ступень 1 будет завершена полностью до того, как будут оценены инструкции ввода ступени 2.

    В случае вышеприведенного примера команды ввода — это нормально разомкнутые (XIC) и нормально замкнутые контакты (XIO). XIC и XIO — официальные названия инструкций. Команды вывода — это инструкции TON и OTE. TON — это инструкция «Задержка включения таймера», а OTE — инструкция «Активизация выхода». Как описано выше, при срабатывании триггерного тега (в данном случае LAD_TRIGGER) вывод будет включаться на десять секунд, а затем отключаться на десять секунд. В данном случае выходной тег — «LAD_OUTPUT».

    Ladder Logic является основой программируемых логических контроллеров и наиболее широко используется. Люди утверждают, что с помощью этого метода можно запрограммировать что угодно, а другие методы не нужны, что я поддерживаю, хотя я рассмотрю другие методы.

    Плюсы релейной логики:

    • Хорошо организованный код на звеньях
    • Хорошо поддерживает онлайн-изменения
    • Комментарии видны и организованы
    • Инструкции занимают мало памяти.

    Минусы релейной логики:

    • Некоторые инструкции по управлению технологическим процессом недоступны
    • Могут возникнуть проблемы при сканировании
    • Сложно для программирования движения
    • Сложно для пакетного программирования
    Рисунок 2: Функциональная блок-схема

    На изображении выше показан пример той же самой программы, написанной на функциональной блок-схеме.В схемах функциональных блоков пользователь помещает инструкции на «лист», и одна процедура может иметь несколько листов. Инструкции ввода и инструкции вывода могут быть где угодно на листе. Для подключения входных и выходных инструкций пользователь помещает провода между клеммами. Лист сканируется «непрерывно», то есть нет различимого начала и конца, но лист 1 сканируется раньше листа 2 и так далее. Пользователь должен помнить об этом при использовании этого метода.

    В случае, показанном на Рисунке 2, входные инструкции Входное задание (IREF) и выходные инструкции являются командами TONR (таймер вкл. Со сбросом).Инструкции TONR доступны в функциональном блоке и структурированном тексте, но не доступны в релейной логике или последовательной функциональной диаграмме.

    Это хороший метод программирования управления движением. Пользователь может настроить линейные изменения и s-образные кривые для частотно-регулируемого привода или серводвигателя.

    Функциональный блок Плюсы:

    • Подходит для управления движением
    • Подходит для обработки сигналов низкого уровня
    • Некоторым пользователям может быть проще визуальный метод
    • Широкий набор команд

    Минусы функциональных блоков:

    • Код неорганизован
    • Листы складываются, и становится трудно отладить
    • Инструкции занимают больше памяти, чем в Ladder
    Рисунок 3: Структурированный текст

    На этом изображении показана точно такая же программа, но написанная в виде структурированного текста.Пользователь вручную записывает каждую строку процедуры (ей). Ключевые слова и инструкции окрашены в синий цвет, а теги — в красный. Процедура просматривается сверху вниз, слева направо. Набор инструкций аналогичен набору инструкций для функциональной блок-схемы. Как видно на рисунке 3, используется инструкция TONR. Подобно функциональному блоку, теги можно «связать» с инструкциями, задав их равными. Например, на изображении выше «ST_OFF_TIMER.TimerEnable» соединен с «ST_ON_TIMER.DN». Когда это выполняется, эта строка кода будет начинать «ST_OFF_TIMER» после завершения «ST_ON_TIMER».

    Структурированный текст полезен только для большого количества вычислений. Не рекомендуется ничего, кроме установки тегов в значения. Иногда при онлайн-редактировании правки не принимаются, и пользователю приходится загружать заново.

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

    Структурированный текст Плюсы:

    • Код организован
    • Операции управления пользователем
    • Подходит для больших вычислений

    Минусы структурированного текста:

    • Очень абстрактный
    • Сложный синтаксис
    • Трудно отладить
    • Трудно редактировать онлайн
    Рисунок 4: Последовательная функциональная диаграмма

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

    Объекты перехода

    и шаги вроде этого:

    Шаги

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

    Действия шага

    В этом случае есть только одно действие, но каждый шаг может иметь несколько условий.Пользователь может разделить последовательность, используя ветви шагов или переходов. Пользователь связывает шаги и действия, используя провод, аналогичный методу на схемах функциональных блоков. Шаг ДОЛЖЕН быть связан с переходом и наоборот. Шаги нельзя соединить последовательно, как и переходы. Шаги и переходы могут быть соединены параллельно для разделения последовательности.

    Каждый переход является оператором, а не просто тегом, и позволяет перейти к следующему шагу, когда переход вернет истину. Вот несколько примеров:

    Пример 1 Пример 2

    Шаги имеют встроенные таймеры, использующие конфигурацию для каждого шага.Посмотрите на пример здесь:

    Рисунок 5: Окно свойств шага SFC

    В онлайн-режиме SFC показывает положение последовательности, помещая зеленую рамку вокруг выполняемого шага. Как видно на рисунке 4, step_000 активен.

    SFC на рисунке 4 делает то же самое, что и другие программы: он включает и выключает выходной тег на десять секунд при нажатии на триггер.

    Если пользователь знаком с программированием OPTO-22, то ему будет комфортно в этой среде, поскольку это программирование в том же стиле блок-схемы.

    Плюсы SFC:

    • Онлайн-режим упрощает отладку
    • Таймеры встроенные для шагов
    • Действия, прикрепленные к шагам в указанном пользователем порядке

    SFC Минусы:

    • Абстрактный код может дезорганизоваться
    • Синтаксис может быть трудным
    • Сложная последовательность выполнения простых задач
    • Онлайн-редактирование — это вызов

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

    Для получения дополнительной информации или приобретения модуля ПЛК посетите нашу домашнюю страницу здесь.

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *