Языки программирования stl fbd lad + видео обзор

Программирование ПЛК Siemens на Simatic Step7

Добрый день, хабровчане! Полазив по Хабру, мною было обнаружено всего несколько топиков, в котором упоминалось бы словосочетание «Simatic Step 7». Хочу поделиться с Вами небольшой частью информации, накопленной мною за все время работы с программируемыми логическими контроллерами, и показать, что из себя представляют ПЛК, оболочка и что мне приходилось на них строить.

Данный пост содержит общую ознакомительную информацию о программировании ПЛК Siemens.

Введение

Устроилась я в эту фирму еще на 5м курсе института. К слову, образование мое к программированию относится весьма косвенно и было это больше увлечением. Познания мои на тот момент ограничивались курсом Delphi и весьма базовым Ассемблером. Компания занималась (да и занимается) проектированием, строительством и обслуживанием грузоподъемных машин, таких как погрузчики, портальные, козловые, мостовые и прочие краны. К ГП машинам мое образование имело еще меньше отношения. Поэтому я решила попробовать. 🙂

Программируемые логические контроллеры Siemens

ПЛК фирмы Siemens — это промышленные контроллеры и используются для автоматизации технологических процессов. У нас, в частности, использовались для автоматизации работы грузоподъемных машин.

Simatic включает в себя несколько линеек ПЛК — Simatic S5 и Simatic S7. В свою очередь линейка Simatic S7 содержит семейства S7-200, S7-300, S7-400 и S7-1200.

Чаще всего мы использовали ПЛК семейств S7-300 и S7-400, для которых компанией Siemens было разработано собственное программное обеспечение Simatic Step 7.
Языки программирования stl fbd lad

Кроме этого, к ПЛК через сеть Profibus подключалось большое количество ведомых устройств, таких как частотные преобразователи, приводы, абсолютные/инкрементные энкодеры и пр.

Вся работа ГП машины по максимуму автоматизировалась и крановщику нужно применять минимум усилий для управления оной.

Что из себя представляет Simatic Step 7?

Главной утилитой является Step 7 — Simatic Manager, которая позволяет производить конфигурацию ПЛК и сетей (утилиты HWConfig и NetPro).

Языки программирования stl fbd lad

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

Языки программирования stl fbd lad

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

Языки программирования stl fbd lad

Языки программирования stl fbd lad

Языки программирования stl fbd lad

ПЛК выполняет команды в порядке, определяемом программой, сверху вниз, затем начинает сначала.
С помощью редактора STL всегда можно посмотреть или отредактировать программы, созданные на LAD или FBD, обратное не всегда возможно.

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

Вместо заключения

Программирование ПЛК занятие увлекательное, особенно когда это не стенд, а реальное оборудование.
Моя работа заключалась в создании программы на ПЛК для управления всей ГП машины либо отдельных ее частей, а так же загрузке программного обеспечения непосредственно в оборудование и его отладке.
Случалось разное, но работать с железом было очень интересно, хоть и не легко иногда.
А строили мы вот такие ГП машины:
Языки программирования stl fbd lad

Источник

Как и обещал, программирование промышленных контроллеров Siemens

Языки программирования stl fbd lad

Siemens занимает 37 процентов мирового рынка автоматизации. Сегодня существует контроллеры 300, 400, 1200, 1500 серии. 300 и 400 серии проверенные, устаревшие, надежные, контроллеры. Уже несколько лет, представители Siemens утверждают что эти серии перестанут выпускать- однако, они выпускаются и еще долго будут выпускаться(мое мнение)

Языки программирования stl fbd lad

Сегодня будем разбирать программирование 300 и 400 серий. Выглядят оно как на картинке сверху. Заранее оговорюсь, 300 и 400 серии программируются в среде Simatic Step 7, а 1200 и 1500 программируются в TIAPortal.(По пожеланию, кому интересно, могу сделать пост по TIA)

Языки программирования stl fbd lad

Непосредственно к самому программированию. Для начала нужно сконфигурировать Hardware. Что это такое? Допустим Вам требуется что то автоматизировать, и в зависимости от поставленных задач, выбираете контроллер под определенные задачи из определенной серии. У нас в примере выбран S7 315 2-DP. Иначе говоря мы говорим среде что мы будем писать программу для вот именно такого контроллера к которому по ProfiBus’у подключена децентрализованная периферия(кому нужно, могу подробно сделать отдельный пост). На картинке выше показано что у нас 315 2-DP и к нему подключено 5 корзин и в выделенной корзине, установлены модули 3 Analog Input, 2 Digital Output, 1 Analog Output, 1 CP 341(для подключения к какому устройству по RS485)

На второй картинке в папке Bloks находятся куча блоков. Существуют основные блоки OB, FB, FC, DB, DT, VT которые вы можете создать.

Даже не знаю как проще обьяснить(привет из лиги лени). Оооооочень грубо говоря, в ОВ1 построчно будет обрабатываться ваша программа. Существует ОВ1,ОВ10-17, ОВ20-23, ОВ30-38, ОВ40-47, ОВ55-57, ОВ60(Если кому надо, напишу отдельно подробно)

FB(функциональный блок)-для удобства, вы можете написать программу в функциональном блоке и вызвать его в OB1. Попробую проще обьяснить- у Вас стоит задача управления 4 одинаковыми насосами. Чтоб 4 раза не писать программу управления для каждого, просто пишите программу управления в функциональном блоке и 4 раза вызываете в OB1 и привязываете соответствующие входы и выходы.

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

Языки программирования stl fbd lad

На картинке мой OB1, как вы видите, я вызываю функциональные блоки- привязываю входные ножки и указываю DB. Это сделано на языке программирования FBD(об этом позже)

Языки программирования stl fbd lad

Так выглядит мой функциональный блок- язык FBD

Наконец-то добрались к языкам программирования. STL, FBD, LAD- их 3

STL- это язык программирования Список операторов. Мне кажется этот язык больше похож на Ассамблер.

LAD- язык программирования для «электриков», релейные схемы(графический язык)

FBD- язык программирования для «электронщиков» блочные схемы(графический язык)

Языки программирования stl fbd lad

Языки программирования stl fbd lad

Тоже самое, только в LAD

Языки программирования stl fbd lad

То же самое, на FBD

Выделим основные моменты:

2) Для удобства- нужно заполнить таблицу символов(блин,вспомнил в конце поста)

Смотрите, допустим у Вас 2 насоса, которыми нужно управлять. Вы создали 2 корзины в HW, поставили модуль Analog Input(допустим для контроля вибрации в подшипниках). Когда вы в HW ставите модуль- он автоматически прописывает адреса входов(3 картина). в моем примере 448. 463. И в папке S7 Program. в следующем фото

Языки программирования stl fbd lad

в этой папке есть таблица символов. Открываем его.

Языки программирования stl fbd lad

3) Выбираете удобный для Вас язык программирования и начинаете работать

Понимаю, что все ооочень поверхностно, ну как смог.

Источник

ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ LAD, STL И FBD

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

Языки программирования stl fbd lad

Рис. 53 Распределение адресов

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

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

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

Языки программирования stl fbd lad

Рис. 54 Стандартные языки программирования

Блок OB1 теперь откроется в соответствии с языком, который вы выбрали при создании блока в мастере проекта. Однако вы можете в любое время изменить язык программирования, установленный по умолчанию.

Копирование таблицы символов и открытие OB 1

Для копирования таблицы символов необходимо открыть свой проект «Getting Started». Для этого щелкните на кнопке Open [Открыть]на панели инструментов, выберите проект «Getting Started», который был создан, и подтвердите с помощью OK.

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

Ø zEn01_06_STEP7__LAD_1-9;

Ø zEn01_02_STEP7__STL_1-9;

Ø zEn01_04_STEP7__FDB_1-9.

В методических указаниях приведены все три примера проектов. Необходимо открыть „zEn01_XXX“ и достигнуть компонент Symbols [Символы]. Далее студент может скопировать его с помощью буксировки в папку S7 Programв окне своего проекта «Getting Started». Затем окно „zEn01_XXX“ закрывается. Дважды щелкнув на OB 1в проекте «Getting Started» и откроется окно для программирования LAD/STL/FBD.

Буксировка означает, что вы щелкаете мышью на любом объекте и перемещаете его, удерживая кнопку мыши нажатой. Когда вы отпускаете кнопку мыши, объект вставляется в выбранной позиции. В STEP 7 OB 1 обрабатывается CPU циклически. CPU читает и исполняет строку за строкой команды программы. Когда CPU возвращается к первой строке программы, он завершает ровно один цикл. Время, необходимое для этого, называется временем цикла сканирования. Все блоки программируются в окне LAD/STL/FBD.

Языки программирования stl fbd lad

Рис. 55 Окно для программирования LAD/STL/FBD

Программирование ОВ 1 в виде контактного плана

Далее рассмотрим примеры программирования последовательной, параллельной цепи и функцию памяти SR (установка / сброс) в виде контактного плана (LAD).

Программирование последовательной цепи в контактном плане. Если необходимо, установите LADв качестве языка программирования в меню View [Вид]. Щелкните в области заголовка (title)OB1 и введите, например, «Циклически обрабатываемая главная программа». Выберите путь тока для своего первого элемента. Щелкните на этой кнопке на панели инструментов и вставьте нормально открытый контакт (рис.56).

Языки программирования stl fbd lad

Рис. 56 Последовательная цепь в контактном плане

Таким же образом вставьте второй нормально открытый контакт. Вставьте катушку у правого конца пути тока. В этой последовательной цепи пока отсутствуют адреса нормально открытых контактов и катушки. Проверьте, активизировано ли символическое представление (Symbolic Representation).

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

Языки программирования stl fbd lad

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

Напишите у верхнего нормально открытого контакта «Key_3 [Ключ_3]», у нижнего контакта «Key_4 [Ключ_4]», а у катушки «Red_Light [Красный_свет]» Сохраните блок.

Языки программирования stl fbd lad

Рис. 58 Параллельная цепь в контактном плане

Для программирования функции памяти в контактном плане выделите Network 2 [Сегмент 2] и вставьте еще один сегмент (рис.59). Снова выделите путь тока. Перемещайтесь в каталоге элементов программы в разделе Bit Logic [Двоичная логика], пока не достигнете элемента SR. Дважды щелкните, чтобы вставить этот элемент. Вставьте нормально открытый контакт перед каждым из входов S и R. Введите следующие символические имена перед элементом SR:

Ø Верхний контакт «Automatic_On

Ø Нижний контакт «Manual_On

Ø Элемент SR «Automatic_Mode

Сохраните блок и закройте окно.

Языки программирования stl fbd lad

Рис. 59 Функция памяти в контактном плане

Языки программирования stl fbd lad

Языки программирования stl fbd lad

Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰).

Языки программирования stl fbd lad

Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого.

Источник

Языки программирования PLC: LD, FBD, SFC, ST, IL, CFC

Языки программирования stl fbd lad

Контролер – это управляющее устройство. Действительно функциональным он становится только тогда, когда вы создаете и запускаете программу по его использованию.

Отсюда вытекает главная задача программируемого логического контролера – исполнение программы, которая осуществляет руководство технологического процесса.

Какой набор программ доступен для ПЛК? В принципе любой набор возможен. Главное, чтобы размер свободных ресурсов, данного инструмента, вам был не помехой. Разработчик получает широкие возможности по написанию программ.

Что же необходимо, чтобы осуществить программирование контроллера? Во – первых нужен программист, который бы досконально разбирался в данном вопросе. Во – вторых необходим сам компьютер и конечно пакет разработки.

Функционал средств разработки

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

Какой функционал предлагает среда разработки?

И наконец необходимо отметить главное достоинство – это поддержка порядка шести языков программирования. Единственным недостатком является то, что совместимость программ реализована на низком уровне. Производители ПЛК не пришли к унификации и каждый выпускает, данное устройство, со своей программной средой.

Виды языков программирования для ПЛК

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

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

FBD ( Диаграмма Функциональных Блоков) – здесь также используется графическое программирование. Образно говоря, FBD определяет собой некую множественность функциональных блоков, которые имеют соединения между собой (вход и выход).

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

SFC ( Sequential Function Chart) – может использоваться с языками ST и IL, он также основан на графике. Принцип его построения близок к образу конечного автомата, данное условие относит его к самым мощным языкам программирования.

Технологические процессы, в данном языке, построены по типу определенных шагов. Структура шагов состоит из вертикали, которая идет сверху вниз. Каждый шаг – это конкретные операции. Описать операцию можно не только с помощью SFC, но и с помощью ST и IL.

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

Недостатком SFC можно считать, что в процессе работы может быть активировано несколько шагов, не в параллельных потоках. Поэтому необходим глобальный контроль со стороны программиста.

ST ( Структурированный Текст) – относится к языкам высокого уровня и имеет много сходного с Pascal и Basic.

ST позволяет интерпретировать более шестнадцати типов данных и имеет возможность работать с логическими операциями, циклическими вычислениями и т.д.

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

IL ( Список Команд) – язык подобен Ассемблеру, обычно используется для кодировки блоков по отдельности. Плюсом является то, что данные блоки имеют большую скорость работы и низкую требовательность к ресурсам.

CFC ( Continuous Flow Chart) – относится к языкам высокого уровня. В принципе – это явное продолжение языка FBD.

Процесс проектирования состоит из использования готовых блоков и размещения их на экране. Далее происходит их настройка и размещения соединений между ними.

Каждый блок – это управление определенным технологическим процессом. Здесь идет основной уклон на технологический процесс, математика уходит на второй план.

Источник

Simatic Step 7, STL, сглаживание (Smooth) сигнала аналогового входа 4-20mA.

Языки программирования stl fbd lad

Simatic это абревиатура семейств PLC фирмы Siemens для общепромышленного применения (SIMATIC S7-300/S7-400/C7/WinAC). Сейчас есть и более новые SIMATIC S7-1200/S7-1500, программируются через TIA Portal.
Siemens выпускает и узко специализированные линейки PLC (Sinumerik — для станков ЧПУ, Simadyn — линейка повышенной производительности, многие задачи решаются аппаратно, специализированными блоками). Так же широко распостранены абревиатуры, которые относятся к области применения, а не к линейке аппаратного обеспечения на котором оно собрано, естественно оно должно поддерживать стандарты фирмы Siemens (SIMATIC HMI — управление оборудованием с панели оператора, SIMATIС NET — все что связано с межблоковой связью, SIMOTION — моторизованные приводы, управляющие движением, SIMODRIVE — инверторы, управляемые через ProfiBus, и еще куча абревиатур на которые Siemens имеет товарные знаки).
Step 7 это IDE для программирования всего этого хозяйства (кроме устаревшего S7-200, для него используется STEP 7-Micro/WIN, несмотря на схожее название, это отдельная программа и в IDE Step 7 не интегрируется). Составить представление можно почитав статью на Хабре Программирование ПЛК Siemens на Simatic Step7. Дополнительные языки программирования, драйвера оборудования и т.д. интегрируются в Step 7. Доступны драйверы для широкой номенклатуры стороннего оборудования (не Siemens).
Инструментальные средства STEP 7 позволяют выполнять:

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

STL — один из МЭК (IEC) стандарта IEC61131-3 языков программирования (англ. Statement List, список операторов). Немцы зовут его AWL (нем. Anweisungsliste), это же расширение имеют и исходники, написанные на STL. Тут есть несоответствие в абревиатурах стандартных языков МЭК и фирмы Siemens. Дело в том, что по стандартам МЭК язык STL должен называться IL (Instruction List), а абревиатура ST (Structured Text) зарезервирована за Pascal-подобным языком, который у Siemens называется SCL (Structured Control Language).
Кроме STL, Step 7 включает в дистрибутив поддержку МЭК языков LAD (Ladder Diagram, язык релейной (лестничной) логики) и FBD (Function Block Diagram, программирование функциональными блоками). При приобретении лицензии интегрируются языки SCL (Pascal-подобный язык), S7-GRAPH (позволяет выполнять конфигурирование и программирование систем графическими способами, стандарт DIN EN 6.1131-3), S7-HiGraph (позволяет разрабатывать программы систем автоматизации SIMATIC в виде графа состояния системы), S7-PDIAG (позволяет разрабатывать однородные процедуры диагностирования систем автоматизации SIMATIC), S7-PLCSIM (позволяет эмулировать работу систем автоматизации SIMATIC, предназначен для отладки программ указанных систем на программаторе/компьютере без использования реальных технических средств автоматизации).
В настоящее время Siemens активно рекомендует переходить со Step 7 на TIA Portal. Это логическое развитие Step 7, но не всегда однозначное (IMXO, что-то теряем, что-то находим. ).
Представленный функциональный блок выполняет функции ограничителя аналогового сигнала (4..20mA) с индикацией выхода за диапазон (Limiter) и его сглаживания по алгоритму простого (арифметического) скользящего среднего (SMA).
Алгоритмов скользящего среднего несколько, SMA (простой, Simple Moving Average), EMA (экспоненциальный, Exponential Moving Average), WMA (взвешенный, Weighted Moving Average). Последние еще и разновидности имеют. Здесь рассмотрен только первый.

Код функционального блока был написан для контроллера семейства Simatic S7-300, конкретно для S7-313C.
Как правило (за редким исключением, S7-313C как раз из них), входные аналоговые модули S7-300 имеют универсальные входы. У ранних ревизий переключателем на боковой стенке модуля можно перевести вход в режим работы с сигналами напряжения, тока, термометров сопротивления и резисторов, термопар (4 положения). Аналоговые модули не имеющие переключателя (новые ревизии), конфигурируются утилитой Hardware Configuration, входящей в состав пакета STEP7.
Здесь рассмотрена работа с аналоговым входом, настроенным на измерение тока 4-20mA. Он преобразует входной ток в слово (16-разрядное HEX число).

Языки программирования stl fbd lad

У различных модулей аналоговых входов Simatic разрешающая способность может быть от 9 до 15 бит + знак. Если разрешающая способность аналогового модуля составляет менее 16 бит, то аналоговая величина сохраняется в модуле с выравниванием влево. Младшие, не используемые, битовые разряды заполняются нулями.
Из таблицы видно, что модуль с состоянии работать с входным током в диапазоне 1,185mA — 22,81mA. Ток не входящий в данный диапазон вызывает переполнение и показания являются недействительными. Нередкие в промышленности отказ датчика или обрыв провода приведут к выходу измеряемого тока из диапазона работы аналогового входа.
Поэтому перед любой обработкой полученных данных от аналогового входа необходимо их нормализовать, т.е. отсечь недействительные значения. Один из вариантов такой функции на языке STL:

Небольшое обьяснение к коду для тех, кто незнаком с промышленными контроллерами Siemens. Simatic S7-300 имеет два 32-х разрядных аккумулятора. При загрузке в первый, его предыдущее содержимое сдвигается во второй. Поэтому применение операции сравнения или математической операции требует двух предварительных операций загрузки. Результат сохраняется в первом аккумуляторе. Бит RLO — результат логической операции, применим и для операций сравнения. JC — переход при RLO=1, JCN — переход при RLO=0. W#16#6C00 расшифровывается как шестнадцатиричное (#16) представление слова (W) 6C00, его можно записать и в десятичном виде W#27648 или просто 27648.
Ограничитель можно оформить в виде функции, т.к. статичной памяти для работы ему не требуется.
Алгоритм же вычисления арифметического плавающего среднего должен хранить в статичной памяти результаты последних замеров (кольцевой буфер), указатель на последний замер и сумму замеров в буфере. Т.е. иметь статичную память, неизменную между вызовами функции. В Step 7 этим требованиям отвечает функциональный блок. Помимо функции он имеет жестко ассоциированный (экземплярный) блок данных для расчетов. Обращаться к этим данным изнутри функционального блока проще чем к глобальным. Доступ снаружи (не из функционального блока) запрещен и блокируется.
На рисунке ниже представлена реакция функции простого скользящего среднего на скачок сигнала полного диапазона при буфере в 16 слов, функциональный блок вызывается из блока циклического прерывания ОВ35 с цикличностью 100mc.

Языки программирования stl fbd lad

Языки программирования stl fbd lad

Это привело к тому, что адрес указателя в буфере не изменяется и программа постоянно стоит на первом слове.

Проверил на рабочем S7-300, нет, все работает как и должно быть.

Языки программирования stl fbd lad

И ревизия PLCSIM у меня вроде не старая (K5.4.5.2), раньше проблем не было, в общем не понял…
Если хотите, чтобы FB нормально работал и в симуляторе, его нужно немного изменить. Не полагаться на то, что нужное число осталось в ACCU 2, а принудительно загрузить его в ACCU 1. Вырезаем следующие строки:

и в самый конец блока (после T #OUTPUT) добавляем:

Создавать блоки данных для функциональных блоков вручную нет необходимости и не рекомендуется. Лучше чтобы их создал STEP 7. Для этого нужно в месте вызова функционального блока вызвать его с номером требуемого блока данных. Примерно так:

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

Языки программирования stl fbd lad

При нажатии «Yes» блок данных с необходимой внутренней структурой, правильным TimeStamp (отметка времени) и привязкой к FB30 будет создан:

Языки программирования stl fbd lad

Вызов блока также дополнится формальными обозначениями входов/выходов:

Языки программирования stl fbd lad

Блок был опробован на измерении уровня воды в буферном баке (120 м3) датчиком давления. Уровень (0..6м) отслеживается с шагом изменения 0,01м. Ранее при медленном опорожнении бака происходило 4-6 переключений во время смены показаний. После подключения на выход датчика этого функционального блока показания сгладились, происходило 1-2 переключения. Хотелось бы еще плавнее. Это было достигнуто увеличением постоянной времени фильтра. Сделать это несложно, необходимо пропускать некоторые из вызовов фильтра.

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

Коэффициент деления Division_Factor выведен как тег в операционной панели.
И в заключение расскажу еще об одном эксперименте с этим функциональным блоком. Вход и выход блока имеют одинаковый тип данных. А что если включить два блока цепочкой, один за другим? Чтобы оставить только необходимое, был оформлен новый функциональный блок.

Для сравнения график исходной функции FB30, постоянная времени фильтра 1,6 сек.

Языки программирования stl fbd lad

И график «тандемной» функции FB40, постоянная времени фильтра 3,2 сек. График из прямого стал S-образным.

Языки программирования stl fbd lad
Качественной рускоязычной документации по устройству и программированию Simatic очень много. Перевод как правило произведен фирмой Siemens, и самая полная подборка со свежими исправлениями лежит на официальном сайте. К сожалению для скачивания требуется регистрация.

Источник

Видео

Знакомство с STL

Знакомство с STL

Simatic FBD ч.1 - Общее ознакомление. Булевы операции

Simatic FBD ч.1 - Общее ознакомление. Булевы операции

Программа FBD для PLC на запуск двигателя звезда-треугольник

Программа FBD для PLC на запуск двигателя звезда-треугольник

Tia Portal. LAD программирование. Часть 1

Tia Portal.  LAD программирование. Часть 1

РАЗРАБОТКА ПРОГРАММЫ УПРАВЛЕНИЯ НА ЯЗЫКЕ FBD |ПРАКТИЧЕСКОЕ ЗАНЯТИЕ 1

РАЗРАБОТКА ПРОГРАММЫ УПРАВЛЕНИЯ НА ЯЗЫКЕ FBD |ПРАКТИЧЕСКОЕ ЗАНЯТИЕ 1

Программирование ПЛК. Как понять язык LADDER за 5 минут!

Программирование ПЛК. Как понять язык LADDER за 5 минут!

TIA Portal LD/FBD/SCL

TIA Portal LD/FBD/SCL

Где используется язык FBD

Где используется язык FBD

Основы работы CoDeSys язык FBD

Основы работы CoDeSys язык FBD

Программирование на языке FBD в среде Zelio Soft 2

Программирование на языке FBD в среде Zelio Soft 2
Поделиться или сохранить к себе:
Добавить комментарий

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