Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Язык структурированного текста

Язык структурированного текста (Structured TextST) относится к классу текстовых языков высокого уровня. Этот язык подобен таким языкам программирования, как Pascal и С. На его основе можно создавать гибкие процедуры обработки данных. Язык структурированного текста является основным для описания шагов и транзакций языка SFC. Кроме этого, он имеет «выходы» во все остальные языки, что делает его универсальным в применении.

Язык ST используется для создания программ путем записи строк, состоящих из алфавитно-цифровых символов. Фраза составляется из основных элементов языка ST. Пример:

 

! % L 2: (* Вот предложение с меткой, комментариями *)

SET % M 0; % MW 4:= % MW 2 + % MW 9;

(* и различными инструкциями *)

% MF 12:= SQRT (% MF 14);

 

Основные инструкции языка ST:

- битовые инструкции;

- арифметические и логические инструкции для слов и двойных слов;

- арифметические инструкции для чисел с плавающей точкой;

- инструкции числового сравнения слов, двойных слов и чисел с плавающей точкой;

- числовые преобразования;

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

- инструкции для строк из символов;

- инструкции для алфавитно-цифрового сравнения;

- инструкции для управления временем;

- программные инструкции – инструкции для управления программой;

- управляющие инструкции – инструкции для управления ходом выполнения программы;

- инструкции для стандартных функциональных типов;

- инструкции предметной области (связь, ПИД–регулирование и т.д.).

Язык содержит четыре управляющие структуры:

- условное действие IF;

- условные итеративные действия WHILE и REPEAT;

- повторяющееся действие FOR.

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

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

 

! % L 95:

IF % I 3.3 AND % I 3.14

THEN SET % Q 4.0;

END _ IF;

 

! % L 105:

IF % M 3 THEN

FOR % MW 99:= 0 TO 31 DO

IF % MW 100[% MW 99]<>0 THEN

% MW 10:= % MW 100[% MW 99];

% MW 11:= % MW 99;

% M l:= TRUE;

EXIT;

ELSE

% M 1:= FALSE;

END _ IF;

END _ FOR;

ELSE

% M 1:= FALSE;

END_IF;

 

Основные команды языка ST приведены в таблице 3.3.

 

Таблица 3.3 Основные команды языка ST

Изображение Функция
Битовые инструкции
: = Битовое присвоение
OR Булевское ИЛИ
AND Булевское И
XOR Булевское ИСКЛЮЧАЮЩЕЕ ИЛИ
NOT Инверсия
RE Возрастающий фронт
FE Убывающий фронт
SET Установка в 1
RESET Сброс в 0
Числовое сравнение для слов, двойных слов и чисел с плавающей точкой
< Меньше
> Больше
<= Меньше или равно
>= Больше или равно
= Равно
<> Не равно
Битовые таблицы
Таблица:= Таблица Присвоение между двумя таблицами
Таблица: = Слово Присвоение таблице значение слова
Таблица: = Двойное слово Присвоение таблице значение двойного слова
Двойное слово:= Таблица Присвоение двойному слову значения таблицы
COPY _ BIT Копирование содержимого одной битовой таблицы в другую
AND _ ARX Операция И между содержимым двух таблиц
OR _ ARX Операция ИЛИ между содержимым двух таблиц
XOR _ ARX Операция ИСКЛЮЧАЮЩЕЕ ИЛИ между содержимым двух таблиц
NOT _ ARX Инверсия содержимого таблицы
BIT _ W Копирование содержимого битовой таблицы в таблицу слов
BIT _ D Копирование содержимого битовой таблицы в таблицу двойных слов
W _ BIT Копирование содержимого таблицы слов в битовую таблицу
D _ BIT Копирование содержимого таблицы двойных слов в битовую таблицу
Целочисленная арифметика над словами и двойными словами
+, –, *, / Сложение, вычитание, умножение, целочисленное деление
REM Остаток от целочисленного деления
SQRT Целочисленный квадратный корень
ABS Абсолютное значение
INC Приращение на единицу
DEC Уменьшение на единицу
Арифметика над числами с плавающей точкой
+, –, *, / Сложение, вычитание, умножение, деление
SQRT Квадратный корень
ABS Абсолютное значение
TRUNG Целая часть
LOG Логарифм с 10-м основанием
LN Натуральный логарифм
ЕХР Натуральная экспонента
ЕХРТ Возведение действительного числа в целую степень
COS Значение косинуса в радианах
SIN Значение синуса в радианах
TAN Значение тангенса в радианах
ACOS Арккосинус (результат между 0 и 2p)
ASIN Арксинус (результат между –p/2 и +p/2)
ATAN Арктангенс (результат между –p /2 и +p/2)
DEG_TO_RAD Преобразование градусов в радианы
RAD_TO_DEG Преобразование радиан в градусы
Логические инструкции над словами и двойными словами
AND Логическое И
OR Логическое ИЛИ
XOR Логическое ИСКЛЮЧАЮЩЕЕ ИЛИ
NOT Логическое дополнение
SHL Логический сдвиг влево
SHR Логический сдвиг вправо
ROL Циклический логический сдвиг влево
ROR Циклический логический сдвиг вправо
Инструкции для управления программой
HALT Останов выполнения программы
JUMP Безусловный переход к метке
SRi Вызов подпрограммы
RETURN Возврат из подпрограммы
MASKEVT Маскирование событий в ПЛК
UNMASKEVT Снятие маскирования событий в ПЛК
Инструкции числового преобразования
BCD_TO_INT BCD код ® Двоичный код
INT_TO_BCD Двоичный код ® BCD код
GRAY_TO_INT Код Грея ® Двоичный код
INT_TO_REAL Целое число ® Число с плавающей точкой
DINT_TO_REAL Целое число ® Число с плавающей точкой
REAL_TO_INT Число с плавающей точкой ® Целое число
REAL_TO_DINT Число с плавающей точкой ® Целое число
DBCD_TO_DINT 32-х разрядный BCD код ® 32-разрядное целое число
DINT_TO_DBCD 32-х разрядное целое число ® 32-разрядный BCD код
DBCD_TO_INT 32-х разрядный BCD код ® 16-разрядное целое число
INT_TO_DBCD 16-разрядное целое число ® 32-х разрядный BCD код
LW Извлечение наименее значимого слова из двойного слова
HW Извлечение наиболее значимого слова из двойного слова
CONCATW Совмещение (конкатенация) двух одиночных слов
MAX_ARW, MAX_ARD Нахождение максимального значения в таблице
MIN_ARW, MIN_ARD Нахождение минимального значения в таблице
OCCUR_ARW, OCCUR_ARD Подсчет числа элементов таблицы с заданным значением
SORT_ARW, SORT_ARD Сортировка таблицы в порядке возрастания или убывания
ROL_ARW, ROL_ARD Циклический сдвиг в таблице влево
ROR_ARW, ROR_ARD Циклический сдвиг в таблице вправо
FIND_EQWP, FIND_EQDP Нахождение первого элемента равного заданному значению
LENGTH_ARW, LENGTH_ARD Вычисление длины таблицы
Инструкции для таблиц из чисел с плавающей точкой
Таблица:=Таблица Присвоение между таблицами
Таблица:=Плавающяя точка Начальное заполнение таблицы (инициализация)
SUM_ARR Сумма элементов в таблице
EQUAL_ARR Сравнение двух таблиц
FIND_EQR Нахождение первого элемента равного заданному значению
FIND_GTR Нахождение первого элемента со значением больше заданного
FIND_LTR Нахождение первого элемента со значением меньше заданного
MAX_ARR Нахождение максимального значения в таблице
MIN_ARR Нахождение минимального значения в таблице
OCCUR_ARR Подсчет числа элементов таблицы с заданным значением
SORT_ARR Сортировка таблицы в порядке возрастания или убывания
ROL_ARR Циклический сдвиг в таблице влево
ROR_ARR Циклический сдвиг в таблице вправо
LENGTH_ARR Вычисление длины таблицы
Инструкции для последовательности символов
STRING _ TO_INT Преобразование из ASCII кода в двоичный код
STRING_TO_DINT Преобразование из ASCII кода в двоичный код
INT_TO_STRING Преобразование из двоичного кода в ASCII код
DINT_TO_STRING Преобразование из двоичного кода в ASCII код
STRING_TO_REAL Преобразование из ASCII кода в код с плавающей точкой
REAL _ TO _ STRING Преобразование из кода с плавающей точкой в ASCII код
<, >, <=, >=, ==, < > Алфавитно-цифровые сравнения
FIND Определение местоположения подпоследовательности
EQUAL_STR Позиция первого символа отличающегося от заданного
LEN Длина последовательности символов
MID Извлечение подпоследовательности
INSERT Внесение подпоследовательности
DELETE Удаление подпоследовательности
CONCAT Объединение двух последовательностей
REPLACE Перемещение последовательности
LEFT Определение начала последовательности
RIGHT Определение конца последовательности
Инструкции для управления временем
SCHEDULE Функция часов в реальном времени
RRTC Чтение системной даты
WRTC Обновление системной даты
PTC Чтение даты и кода останова
ADD_TOD Добавление временного периода ко времени дня
ADD_DT Добавление временного периода к дате и времени
DELTA_TOD Разность между двумя моментами времени дня
DELTA_D Разность между датами (без учета времени)
DELTA_DT Разность между датами (с учетом времени)
SUB_TOD Вычитание временного периода из времени дня
SUB_DT Вычитание временного периода из даты и времени дня
DAY_OF_WEEK Чтение текущего дня недели
TRANS_TIME Преобразование длительности в дату
DATE_TO_STRING Преобразование даты в последовательность символов
TOD_TO_STRING Преобразование времени в последовательность
DT_TO_STRING Преобразование полной даты в последовательность
TIME_TO_STRING Преобразование длительности в последовательность
Особые инструкции
WSHL_RBIT, DSHL_RBIT Сдвиг слова влево с сохранением сдвинутых битов
WSHR _ RBIT, DSHR_RBIT Сдвиг слова вправо со знаковым расширением и сохранением сдвинутых битов
WSHRZ_С, DSHRZ_С Сдвиг слова вправо с заполнением нулем и с сохранением сдвинутых битов
SCOUNT Увеличение или уменьшение счетчика с индикацией обнуления или переполнения
ROLW, ROLD Подсчет сдвигов влево
RORW, RORD Подсчет сдвигов вправо
Инструкции для задержки времени
FTON Включить задержку
FTOF Выключить задержку
FTP Импульсное время задержки
FPULSOR Квадратно-волновой сигнальный генератор

 

<== предыдущая лекция | следующая лекция ==>
Язык Instruction List (IL) | Применение управляющих структур
Поделиться с друзьями:


Дата добавления: 2014-01-03; Просмотров: 2972; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.008 сек.