Пример программы на языке st

Варианты решения задачи с раздела 1.11. Сравним различные варианты решения задачи из раздела 1.11 на языках LD, FBD и аналогично им варианты на языке ST. Два варианта решения на LD продемонстрированы в разделе 1.11, аналогичный код в ST представлен на рис.1.39- 1.40. Рис.1.39. Первый вариант реализации задачи: на LD та ST.

Рис.1.40. Второй вариант реализации задачи: на LD и ST. На рис.1.41 представлены варианты решения на FBD и ST с использованием RS -триггера и блока выбора SEL . В программе используются 3 элемента: Timer1 (таймер с задержкой на отключение), RS Trigger RS_0 (триггер ВКЛ/ОТКЛ), SEL (управляемый переключатель). Для выбора режима управления двигателем ( Start / Stop ) катушка реле пускателя M1 подключается к выходу элемента с функциями переключателя ( SEL ). Состоянием переключателя управляет вход G . Если на входе G=0 , переключатель находится в нормальном состоянии, то есть его выход соединяется с входом IN0 . Если G=1 , то выход переключается на вход IN1 . Таким образом, в режиме Stop ( Start = 0 ) двигатель будет управляться таймером, который будет реализовывать задержку на отключение через 5 с. В режиме Start двигателем будет управлять RS Trigger. Выход триггера руководствуется двумя входами: S — установить и запомнить на выходе логическую » 1 «; R1 — сбросить и запомнить на выходе логический » 0 «. Символ 1 после R (» R1 «) 29

Вебинар «Основы программирования ПЛК1хх на языке ST»

Пупена А.Н, Эльперин И.В. UNITY PRO – быстрый старт означает, что R имеет приоритет над S . Кружочек на соединении S — это знак инверсии, т.е. при LS1=TRUE на входе S=FALSE , а при LS1=FALSE на входе S=TRUE . Таким образом, при отключении сигнализатора LS1 (напорный бак пустой) на входе триггера появится логическая «1», что приведет к запуску двигателя, а при замыкании LS2 (напорный бак полный) на выходе появится логический 0 — есть остановка двигателя.

Если по техническим неисправностям сигнализатор нижнего уровня будет разомкнут, а верхний замкнут, то двигатель все равно отключится, так как вход имеет высший приоритет, чем S . Рис.1.41. Третий вариант реализации задачи: на FBD та ST. Конечно же, это не все варианты решения поставленной задачи, однако можно сделать определенные выводы о гибкости и компактности языка ST.

Читайте также:
Как в Андроид ярлык программы

Тем не менее, в наглядности язык ST во многих случаях уступает графическим языкам. Вариант решения задач с раздела 1.12. Программа для решения задачи из раздела 1.12 на языке ST может выглядеть как на рис.1.42. Рис.1.42. Вариант реализации задачи с раздела 1.12 на языке ST.

1. Сделать пункты 1-11 из раздела 1.12. 2. В задаче MAST создать секцию с названием «Intro_ST» на языке ST: в Project Browser -> Program-> Tasks-> MAST-> контекстное меню Sections -> New Section; Name = «Intro_ST»; Language = «ST» 3. В секции набрать программу в соответствии с рис.1.42: название функций ( INT_TO_REAL и REAL_TO_INT ) набираются с клавиатуры, или выбираются командой из панели инструментов, или выбираются из меню Edit-> FFB Input Assistant ; название экземпляров функциональных блоков ( TY1a, TY1b, TC1 ) набирается с клавиатуры или вставляется командой с панели инструментов, или вставляется с меню Edit-> Data Selection ; 4. Сделать пункты 14-38 из раздела 1.12. 30

#4 — Structured Text // Функция или функциональный блок?

Рис.1.43.К постановке задачи.
Пупена А.Н, Эльперин И.В. UNITY PRO – быстрый старт

1.14. Пример использования языка SFC.

Рассмотрим пример программы на языке SFC для решения следующей задачи (рис.1.43). После нажатия кнопки START , клапан kl1 открывается и аппарат заполняется жидкостью до срабатывания LS2 . После этого включается мешалка, и открывается клапан kl2 для подачи ферментов. После срабатывания датчика LS3 , клапаны и мешалка отключаются, открывается клапан kl3 , и продукт сливается из аппарата.

Когда аппарат пустой ( LS1 отключен) клапан kl3 закрывается, и система переходит в исходное состояние. Опишем поведение системы, используя механизм сети Петри (рис.1.44). Система может находиться в 4-х состояниях (шагах): ожидание старта (исходное состояние), наполнение жидкостью, добавление ферментов, слив продукта.

Во время каждого состояния положения исполнительных механизмов четко определено: например при наполнении жидкостью kl1 должен открыться. Переход из состояния в состояние происходит по определенным условиям: например система переходит в состояние «наполнение жидкостью» только после состояния «ожидания старта» и условия перехода «если нажата Start «. Таким образом, состояния в сети Петри являются позициями, а условия — переходами. Когда активируется определенный шаг, он получает маркер от деактивируемого шага. На рис.1.44 маркер находится у шага «Наполнение жидкостью». Сравните программу управления, написанную на языке SFC, с моделью системы базирующуюся на сети Петри. 31

Читайте также:
Посудомойка не включает программы причины
Пупена А.Н, Эльперин И.В. UNITY PRO – быстрый старт
Модель роботы системы в Программа на SFC
виде сети Петри

Рис.1.44.Пример решения задачи с использованием Петри и SFC 32

Источник: studfile.net

Изучение программ на языке структурированного текста

Основой ST-программы служат выражения. Результат вычисления выражения присваивается переменной при помощи оператора «:=», как и в Паскале. Каждое выражение обязательно заканчивается точкой с запятой «;». Выражение состоит из переменных констант и функций, разделенных операторами

iVarl := 1 + iVar2 / ABS(iVar2);

Стандартные операторы в выражениях ST имеют символьное представление, например математические действия: +, -, *, /, операции сравнения и т, д.

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

iVarl := 1 + (*получить знак*) iVar2 / ABS(iVar2); (*проверка на 0 была выше*)

В примере комментарий выделен курсивом.

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

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

Выражение, заключенное в скобки, вычисляется в первую очередь. Тип выражения определяется типом результата вычислений:

bAlarm := bylnpl > bylnp2 AND bylnpl + bylnp2 <> 0 OR b Alarm 2;

Порядок вычисления выражений

Вычисление выражения происходит в соответствии с правилами приоритета операций- Первыми выполняются операции с наивысшим приоритетом.

В порядке уменьшения приоритета операции располагаются так: выражение в скобках; вызов функции; степень ЕХРТ; замена знака (-); отрицание NOT ; умножение, деление и деление по модулю MOD; сложение и вычитание (+, —); операции сравнения ( , =); равенство (=); неравенство (<>); логические операции AND, XOR и OR.

Приоритет операций в выражениях очень важен. В первую очередь с математической точки зрения:

Х:=2 + 2*2; (* = 6*)
X := (2 + 2) * 2; (* = 8*)

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

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

iVar1: SINT;
siVar2: SINT := 120;

Читайте также:
Какие программы можно использовать в покере

siVar1 := 120 — siVar2 + 20; (*120- 120 = 0, 0 + 20 = 20*)
siVar1 := 120 — (siVar2 + 20); (*120 + 20 = -116, 120 + 116 = -20*)

Пустое выражение

Пустое выражение состоит из точки с запятой «;». . Для точки с запятой транслятор не генерирует никакого кода» Если случайно поставить лишнюю «;», это не вызовет ошибки. Единственное осмысленное применение пустого выражения — это обеспечение правильности языковых конструкций. Например, может потребоваться оттранслировать проект, содержащий еще не реализованный POU, Для корректной трансляции достаточно написать в теле POU один пустой оператор.

Оператор выбора IF

Оператор выбора позволяет выполнить различные группы выражений в зависимости от условий, выраженных логическими выражениями. Полный синтаксис оператора IF (если) выглядит так:

IF THEN ; [ ELSIF THEN ; … ELSIF THEN ; ELSE ; ] END_IF

Если ИСТИНА, то выполняются выражения первой группы — . Прочие выражения пропускаются, альтернативные условия не проверяются.

Часть конструкции в квадратных скобках является необязательной и может отсутствовать.

Если ЛОЖЬ, то одно за другим проверяются условия ELSIF. Первое истинное условие приведет к выполнению соответствующей группы выражений. Прочие условия ELSIF анализироваться не будут. Групп ELSIF может быть несколько или не быть совсем.

Если все логические выражения дали ложный результат, то выполняются выражения группы ELSE, если она есть» Если группы ELSE нет, то не выполняется ничего.

В простейшем случае оператор IF содержит только одно условие:

IF b:= 1 THEN iVarl := 1; iVar2 := 0; END_IF

На первый взгляд конструкция IF с несколькими группами ELSIF выглядит сложной, но на самом деле оказывается достаточно выразительной:

IF bReset THEN iVarl := 1; ELSIF byLeft THEN

Перед написанием программы объявляем и присваиваем переменные

Затем согласно таблице/алгоритму пишем программу

Готовая программа на языке ST.

Далее создаем форму визуализации и добавляем в нее стрелочный индикатор. В появившемся окне конфигурирования индикатора (рисунок 5.7) необходимо настроить формат шкалы и перемену, значение которой будет показывать индикатор, для этого необходимо нажать кнопку «Переменная/Шкала».

Окно конфигурирования стрелочного индикатора.

В открывшемся окне (рисунок 5.8) необходимо ввести числовые значения начала и конца шкалы, а также цену основных и промежуточных делений. В поле «Переменная» необходимо связать индикатор с нужной переменной (для этого установите курсор в поле «Переменная» и нажмите F2)

Окно конфигурирования шкалы переменной.

Источник: promtechautomat.ru

Операторы языка программирования ST

CoDeSys и ОВЕН

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru