Язык st codesys пример

Общие сведения о языке ST¶

ST (Structured Text) – это текстовый язык высокого уровня общего назначения, по синтаксису схожий с языком Pascal. Удобен для программ, включающих числовой анализ или сложные алгоритмы. Может использоваться в программах, в теле функции или функционального блока, а также для описания действия и перехода внутри элементов SFC. Согласно IEC 61131-3 ключевые слова должны быть введены в символах верхнего регистра. Пробелы и метки табуляции не влияют на синтаксис, они могут использоваться везде.

Выражения в ST выглядят точно также, как и в языке Pascal:

Порядок их выполнения – справа налево. Выражения состоят из операндов и операторов. Операндом является литерал, переменная, структурированная переменная, компонент структурированной переменной, обращение к функции или прямой адрес.

Типы данных¶

Согласно стандарту IEC 61131-3, язык ST поддерживает весь необходимый набор типов, аналогичный классическим языкам программирования. Целочисленные типы: SINT (char), USINT (unsigned char), INT (short int), UINT (unsigned int), DINT (long), UDINT (unsigned long), LINT (64 бит целое), ULINT (64 бит целое без знака). Действительные типы: REAL (float), LREAL (double). Специальные типы BYTE, WORD, DWORD, LWORD представляют собой битовые строки длиной 8, 16, 32 и 64 бит соответственно. Битовых полей в ST нет. К битовым строкам можно непосредственно обращаться побитно. Например:

a.3 := 1; (* Установить бит 3 переменной a *)

Логический тип BOOL может иметь значение TRUE или FALSE. Физически переменная типа BOOL может соответствовать одному биту. Строка STRING является именно строкой, а не массивом. Есть возможность сравнивать и копировать строки стандартными операторами. Например:

Для работы со строками есть стандартный набор функций (см. приложение 2, раздел «Строковые операции с переменными типа STRING»).

Специальные типы в стандарте IEC определены для длительности (TIME), времени суток (TOD), календарной даты (DATE) и момента времени (DT).

В таблице 3.1 приведены значения по умолчанию, соответствующие описанным выше типам.

Таблица 3.1 – Значения по умолчанию для типов данных IEC 61131-3

Тип(ы) данных Значение
BOOL, SINT, INT, DINT, LINT 0
USINT, UINT, UDINT, ULINT 0
BYTE, WORD, DWORD, LWORD 0
REAL, LREAL 0.0
TIME T#0S
DATE D#0001-01-01
TIME_OF_DAY TOD#00:00:00
DATE_AND_TIME DT#0001-01-01-00:00:00
STRING ‘’ (пустая строка)

По умолчанию, все переменные инициализируются нулем. Иное значение переменной можно указать явно при ее объявлении. Например:

str1: STRING := ‘Hello world’;

В определённых ситуациях при разработке программных модулей удобно использовать обобщения типов, т.е. общее именование группы типов данных. Данные обобщения приведены в таблице 3.2.

Таблица 3.2 – Обобщения типов данных IEC 61131-3

Источник

Подробности об языке программирования на ST в CoDeSyS

Прежде чем мы с вами будем рассматривать упрощённую графическую систему программирования для технологов, хотелось бы в двух словах рассказать о базисном языке программирования СИ. Язык ST CoDeSyS отличается от других своей гибкостью и адаптивностью под любые задачи. Он позволяет обрабатывать сложные решения и видеть всю картину в целом. Чаще всего применяется в функциональных блоках для обработки алгоритма той или иной части рабочего органа станка или линии.

Из этой статьи вы узнаете:

Здравствуйте уважаемые Дамы и Господа! Меня зовут Гридин Семён, и я являюсь автором этого блога. В данном посте я хочу обсудить с вами базовые понятия языка программирования CoDeSyS. Называется он ST CoDeSyS, очень сильно напоминает СИ.

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

ST (Structured text) — это одна из составных частей комплекса CoDeSyS и представляет собой текстовый редактор высокого уровня. Он очень похож на Basic или Pascal. Такой способ программирования является идеальным инструментом для людей-программистов. Преимуществом языка является создание сложных математических и разветвленных алгоритмов.

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

В чём преимущество данного способа программирования? давайте с вами перечислим:

С этим мы разобрались, но, прежде чем переходить к непосредственному изучению азов программирования, необходимо ознакомиться с элементом языка — тип данных. Хочу обратить внимание, этот элемент практически схож во многих си-подобных языках (Питон, Ардуино IDE, СИ# т.д.)

Тип данных переменной определяет род информации, диапазон представлений и множество допустимых операций. Языки МЭК используют строгую идеологию в этом отношений. Любую переменную можно использовать только после её объявления. Присваивать значения одной переменной другой можно, только если они одного типа. В другом случае используются преобразователи типов.

В таблице ниже я представлю типы данных, которые используются чаще всех:

Тип Название Предел Размер в байтах
BOOL Логическое 1 бит 1 бит
BYTE Целочисленое 8 бит 1 байт
WORD Целочисленое 16 бит 2 байта
INT Целочисленое -32768-32767 2 байта
UINT Целочисленое 0-65535 2 байта
FLOAT Вещественное ±10³³ 4 байта
DATE_AND_TIME Дата и время
STRING Строковое

Перечень основных операторов

Операторы — это символы определённых операций. Но их можно определить и как функции, наделёнными определёнными привилегиями. Они имеют определённые ключевые слова и формы для представления на ST.

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

Источник

Примеры простых программ для ПЛК в CodeSys на языке релейных диаграмм

Ранее по этой теме мы рассматривали несколько типовых решений в программах для ПЛК, которые могут использоваться для управления электродвигателями: Схемы пуска электродвигателя на языке лестничных диаграмм LD для ПЛК

В этой подборке рассмотрена автоматизация следующих процессов:

Автоматическая система для отбрасывания бутылок;

Автоматический выбор цвета краски;

Автоматизация вентиляционной системы.

Все программы написаны в CodeSys на языке релейных диаграмм, в англоязычном варианте это язык Ladder Diagram, сокращенно LD.

Автоматическая система для отбрасывания бутылок

Принцип работы: данная система позволяет отбрасывать упавшие бутылки, которые затрудняют процесс производства.

Схема технологического процесса:

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

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

Программа на языке релейных диаграмм для ПЛК в CodeSys автоматической системы отбраковки бутылок:

Программа в режиме эмуляции:

Описание работы программы:

Нажимаем кнопку «START» тем самым питая схему. Запускается цикл и конвейер. Во второй части цепи находится два индукционных датчика «Х1» и «Х2», с помощью которых и определяется положение бутылки на конвейере. Когда бутылка упала срабатывает датчик «Х2» и его контакт разрывает цепь тем самым, не пропуская упавшую бутылку.

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

Процесс сброса бутылки:

Автоматический выбор цвета краски

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

Схема технологического процесса:

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

Селекторный переключатель используется для выбора цвета в системе, а переключатель ON/OFF используется для остановки системы.

Программа для ПЛК в CodeSys:

Описание работы программы:

Когда переключатель ВКЛ/ВЫКЛ (I2.0) находится в положении ВКЛ и нажата кнопка START, загорается лампа CYCLEON. Если цикл включен и выбрана краска желтого цвета ( YELLOWPIGMENTSELECTION ), клапан управления желтого цвета ( YELLOWCONTROLVALVE ) будет включен. Если цикл включен и выбрана краска синего цвета (BLUEPIGMENTSELECTION), клапан управления синим цветом (BLUECONTROLVALVE) будет включен. Если выбрана краска зеленого цвета (GREENPIGMENTSELECTION), оба клапана будут включены, а краска станет зеленого цвета.

Программа в режиме эмуляции (заполнение бутылки краской зеленого цвета):

Автоматизация движения механизма в функции пути

Автоматизация вентиляционной системы

Программа ПЛК для системы управления вентиляторами для промышленности.

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

Состояние «ВКЛ» вентиляторов, а также состояние основного питания должно указываться соответствующим светодиодом. Если есть неисправность с более чем одним вентилятором, то это остсояние должно указываться мигающим светодиодом с частотой 5 Гц. Неисправность с одним вентилятором или отсутствие неисправности с вентилятором должны указываться постоянным светом на индикаторе состояния неисправности.

Это простой пример блока управления вентиляторами, используемый в промышленности.

Программа для ПЛК в CodeSys:

Когда цикл включен (CYCLEK) и неисправностей вентилятора 2 и вентилятора 3 нет, то вентилятор 2 (FAN2) и вентилятор 3 (FAN3) будут включены. Если вентилятор 2 или вентилятор 3 неисправен, то будет запущен вентилятор 1 (FAN1).

В системе, если какие-либо два вентилятора из трех неисправны, то лампа индикации неисправности (FIND) начнет мигать с частотой 5 Гц. Для этого нужно использовать специальный таймер, но чтобы не усложнять программу ограничимся пока в ней отдельным контактом. Индикаторные лампы для вентилятора 1, вентилятора 2 и вентилятора 3 включаются в соответствии с сигналом неисправности.

Программа в режиме эмуляции (случай поломки вентилятора 3):

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

Structured Text

Книга «Изучаем Structured Text МЭК 61131-3»: Ссылка на книгу

Источник

Поделиться с друзьями
admin
Оцените автора
( Пока оценок нет )
Как переводится?
Adblock
detector