Файл: Микропроцессорная техника систем автоматизации. Лабораторный практикум.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 25.10.2023

Просмотров: 225

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

26 уровня воды), которые в процессе прогона программы будут выполняться последовательно один за другим, как это схематически показано на рис. 15.
Рис. 15. Модульная структура программы управления водогрейным котлом
Понятие переменной. Адресация переменных, типы данных
Переменная – это область памяти контроллера для хранения данных определенного типа. Каждая переменная характеризуется своим адресом и длиной, которая зависит от типа хранимых данных. При обращении в программе к переменной для считывания или записи данных нужно указать адрес этой переменной. В языках программирования высокого уровня есть два способа указания адреса переменной: абсолютный адрес и символьный адрес. При указании абсолютного адреса переменной нужно указать область памяти контроллера, в которой она находится, размер переменной, номер начального байта, и при необходимости – номер бита. Например, I0.1, QB0, MW20. Первая буква определяет область памяти контроллера (подробнее об этом будет рассказано чуть ниже). Вторая буква определяет размер переменной в байтах: B (byte) – 1 байт, W (word) – 2 байта,
WaterLevelControl [OB1]
TemperatureControl [OB123]

27
D (double word) – 4 байта. Однако такой способ указания адреса не всегда удобен и при использовании в программе большого количества переменных может привести к путанице при написании программы. Поэтому можно использовать символьное указание адреса, при котором с абсолютным адресом переменной связывается некоторое состоящее из символов слово (имя переменной), имеющее для программиста определенный понятный ему смысл. Так, например, если к дискретному входу контроллера
I0.1 подключена кнопка пуска двигателя, то с адресом I0.1 можно связать символьное имя данной переменной ButtonStart. Для одной переменной может быть задано только одно символьное имя.
Для задания символьных имен переменных в Simatic Step 7 предусмотрены таблицы символьных имен – PLC tags. Для открытия таблицы символьных имен необходимо в дереве проекта
(Project tree) выбрать пункт PLC_1→PLC tags→Default tag table, в результате чего откроется таблица Default tag table, создаваемая средой Simatic Step 7 автоматически для каждого проекта.
Структура таблицы символьных имен показана на стр. 37, табл.
13Ошибка! Источник ссылки не найден.. Для определения символьного имени переменной необходимо задать само символьное имя (Name), указать ее тип данных (Data type), абсолютный адрес (Adress) и при необходимости – комментарий.
ЦПУ предоставляет несколько возможностей для сохранения данных во время исполнения программы пользователя (табл. 3).
Глобальная память:
ЦПУ предоставляет ряд специализированных областей памяти, включая входы (I), выходы
(Q) и битовую память (меркеры) (M). Эта память доступна для всех кодовых блоков без ограничения.
Блок данных (DB): может быть включен в программу для сохранения данных для кодовых блоков. Эти данные сохраняются после исполнения соответствующего кодового блока. В
«глобальном» DB сохраняются данные, которые могут быть использованы всеми кодовыми блоками, тогда как в экземплярном
DB хранятся данные только для конкретного FB, и они структурированы в соответствии с параметрами этого FB.
Временная память: при вызове кодового блока операционная система ЦПУ выделяет временную, или локальную, память (L) для использования во время исполнения этого блока. Когда исполнение кодового блока заканчивается, ЦПУ выделяет эту локальную память для исполнения другого блока.


28
Таблица 3
Области памяти ПЛК для хранения данных
Область памяти
Описание
I
Образ процесса на входах ПЛК
В начале каждого цикла (прогона) копируется из физических входов
I__:P
Физический вход
Непосредственное чтение физических входов ЦПУ, сигнальной платы (SB) или сигнального модуля (SM)
Q
Образ процесса на выходах
В начале каждого цикла (прогона) копируется в физические выходы
Q__:P
Физический выход
Непосредственная запись в физические выходы ЦПУ, SB или SM
М
Битовая память
Управление и память данных
L
Временная память
Временные, локальные данные для блока
DB
Блок данных
Память данных, а также память параметров для FB
I (образ процесса на входах):CPU опрашивает периферические
(физические) входы в каждом цикле непосредственно перед исполнением циклического OB и записывает эти значения в образ процесса на входах. Можно обращаться к образу процесса на входах побитно, побайтно, пословно или используя двойные слова.
Разрешается доступ, как на чтение, так и на запись, но обычно входы образа процесса только считываются (табл. 4).
Таблица 4
Обращение к переменной из I-области по абсолютному адресу
1   2   3   4   5   6   7   8   9   10

Размер
переменной
Адрес
Пример
Бит
I[адрес байта].[адрес бита]
I0.1
Байт, слово или двойное слово
I[размер][адрес начального байта]
IB4, IW5, ID12

29
Добавляя к адресу ":P", можно непосредственно считывать цифровые и аналоговые входы ЦПУ, SB или SM. Доступ через I_:P отличается от доступа через I тем, что данные получаются непосредственно с входов, к которым производится обращение, а не из образа процесса на входах. Доступ через I_:P называется также прямым доступом на чтение, так как данные считываются прямо из источника, а не из его копии, которая была сделана при последнем обновлении образа процесса на входах.
Так как физические входы получают свои значения непосредственно из подключенных к ним полевых устройств, то запись в эти входы запрещена. То есть доступ через I_:P является доступом только на чтение, в отличие от доступа к I, который возможен как на считывание, так и на запись (табл. 5).
Таблица 5
Обращение к переменной из I__:P области по абсолютному адресу
Размер
переменной
Адрес
Пример
Бит
I[адрес байта].[адрес бита]:P I0.1:P
Байт, слово или двойное слово
I[размер][адрес начального байта]:P
IB4:P, IW5:P,
ID12:P
Q (образ процесса на выходах):CPU копирует значения, хранящиеся в образе процесса на выходах в физические выходы. К образу процесса на выходах можно обращаться побитно, побайтно, пословно или используя двойные слова. К выходам образа процесса разрешается доступ, как на чтение, так и на запись (табл. 6).
Таблица 6
Обращение к переменной из P области по абсолютному адресу
Размер
переменной
Адрес
Пример
Бит
Q[адрес байта].[адрес бита]
Q0.1
Байт, слово или двойное слово
Q[размер][адрес начального байта]
QB4, QW5,
QD12

30
Добавляя к адресу ":P", можно осуществлять непосредственную запись в физические цифровые и аналоговые выходы ЦПУ, SB или
SM. Доступ через Q_:P отличается от доступа через Q тем, что данные поступают непосредственно на выходы, к которым осуществляется обращение, и, кроме того, в образ процесса на выходах (запись осуществляется в оба места). Доступ через Q_:P иногда называют прямым доступом, так как данные посылаются прямо на целевой адрес, которому не приходится ждать следующего обновления образа процесса на выходах.
Так как физические выходы непосредственно управляют полевыми устройствами, подключенными к этим выходам, то чтение с этих выходов запрещено. Т. е. доступ через Q_:P является доступом только на запись, в отличие от доступа через Q, при котором возможно как чтение, так и запись (табл. 7).
Таблица 7
Обращение к переменной из Q__:P области по абсолютному адресу
Размер
переменной
Адрес
Пример
Бит
Q[адрес байта].[адрес бита]:P Q0.1:P
Байт, слово или двойное слово
Q[размер][адрес начального байта]:P
QB4:P, QW5:P,
QD12:P
M (область битовой памяти, M-память):Эту область памяти можно использовать для управляющих реле и данных, чтобы хранить промежуточные результаты операций или другую управляющую информацию. К области битовой памяти можно обращаться побитно, побайтно, пословно или используя двойные слова. Для битовой памяти возможен доступ, как на чтение, так и на запись (табл. 8).
Таблица 8
Обращение к переменной из M-области по абсолютному адресу
Размер
переменной
Адрес
Пример
Бит
M[адрес байта].[адрес бита]
M0.1
Байт, слово или двойное слово
M[размер][адрес начального байта]
MB4, MW5,
MD12


31
Temp (временная память):CPU выделяет временную память по мере необходимости. CPU выделяет временную память кодовому блоку в момент его запуска (для OB) или вызова (для FC или FB). При выделении временной памяти кодовому блоку могут повторно использоваться те же адреса временной памяти, которые перед этим были использованы другим OB, FC или FB. CPU не инициализирует временную память в момент выделения, поэтому она может содержать любые значения.
Временная память подобна M-памяти за одним важным исключением: область действия M-памяти "глобальна", а область действия временной памяти "локальна":
M-память: Любой OB, FB и любая FC может обратиться к данным в M-памяти, т. е. данные находятся глобально в распоряжении всех элементов программы пользователя.
Временная память: доступ к данным во временной памяти ограничен тем OB, FB или той FC, где были созданы или объявлены адреса во временной памяти. Адреса временной памяти остаются локальными и не могут быть использованы другими кодовыми блоками, даже если кодовый блок вызывает другой кодовый блок. Например: Если OB вызывает FC, то FC не может обратиться к временной памяти OB, вызвавшего эту функцию.
К временной памяти можно обращаться только с использованием символической адресации.
DB (блок данных) обычно используются для хранения различных типов данных, включая промежуточные результаты операций или другие управляющие параметры для FB, и структуры данных, необходимые для многих команд, например, таймеров и счетчиков. Для обращения к переменным, находящимся в блоке данных, необходимо использовать символическую адресацию
(табл. 9).
Таблица 9
Обращение к переменной из блока данных с помощью символической адресации
Адрес
Пример
[имя блока данных][имя переменной]
"IEC_Timer_0_DB".PT,
"My_DB".MyVar

32
Каждая переменная имеет определенный тип. Тип переменной определяет ее размер в байтах и описывает свойства переменной, то есть диапазон значений или точности числа, сохраненного в переменной, или какие операции являются возможными с этой переменной. ПЛК Simatic S7-1200 поддерживает следующие простые числовые типы данных, перечисленные в табл. 10.
Таблица 10
Типы данных
Тип
данных
Размер
Диапазон
Примеры
значений
Bool
1 бит от 0 до 1
TRUE, FALSE, 0, 1
Byte
1 байт от 0 до 255 10, 107, 220
Word
2 байта от 0 до 65535 607, 1112
DWord
4 байта от 0 до 4294967295 13042014,
14121981
Char
1 байт от 0 до 255
‘A’, ‘t’, ‘@’
SInt
1 байт от -128 до 127
-123, 123
Int
2 байта от -32768 до 32767 -3505, 26648
Dint
4 байта от -2147483648 до
2147483647
-25, 6071952,
11121942
USInt
1 байт от 0 до 255 33
UInt
2 байта от 0 до 65535 44444
UDInt
4 байта от 0 до 4294967295 555555555
Real
4 байта от ±1.18∙10
-38
до
±3.40∙10 38
-0.1, 10.25
LReal
8 байт от ±2.23∙10
-308
до
±1.79∙10 308
-0.0001,
123.456789
Кроме того, есть специальные типы данных для хранения данных, представляющих собой строки символов (STRING), данных о дате (DATE) и времени суток (TIME_OF_DAY).
Основы алгоритмического языка Structured Control Language
Несмотря на значительное разнообразие производителей контроллеров и систем программирования, международный стандарт МЭК 61131-3 определяет пять основных языков программирования контроллеров (табл. 11).


33
Таблица 11
Языки программирования промышленных контроллеров, принятые международным стандартом МЭК 61131-3
Название Название полное
Описание
IL
Instruction
List
Список инструкций
Текстовый ассемблероподобный язык низкого уровня
LD
Ladder
Diagram
Релейно-
контактные схемы
Графический язык, программная реализация релейно- контактных схем
FBD
Function
Block
Diagram
Функциональные блоковые диаграммы
Графический язык.
Каждый ФБ имеет входы (слева) и выходы (справа).
SFC
Sequential
Function
Chart
Последовательные функциональные диаграммы
Графический высокоуровневый язык. Создан на базе математического аппарата сетей Петри
ST
Structured
Text
Структури- рованный текст
Текстовый
Паскалеподобный язык программирования высокого уровня
Выбор конкретного языка программирования зависит от субъективного опыта разработчика. Если ставится задача логического управления, наглядным является использование графических языков программирования. При этом программа внешне напоминает принципиальную электрическую схему: релейно-контактную или электронной логики. Но использование текстовых языков программирования позволяет решать не только логические задачи на основе алгебры Буля, но и использовать весь арсенал математики, начиная с арифметики, включая интегральное и дифференциальное исчисление и базы данных.

34
Step7-SCL (Structured Control Language – Структурный управляющий язык) – это текстовый язык высокого уровня, разработанный компанией Siemens для программирования контроллеров серии Simatic. Язык SCL является текстовым паскалеподобным языком программирования высокого уровня и соответствует определенному в международном стандарте МЭК
61131-3 текстовому языку ST.
Для языка SCL определены следующие общие правила синтаксиса:
· одна команда может быть введена в несколько строк;
· каждая команда завершается символом “;” (точка с запятой);
· нет разницы между строчными и прописными буквами;
· комментарии в программе служат только для ее пояснения и не влияют на ее исполнение.
Язык SCL включает следующие виды команд:
· команды присвоения значений (Value assignments) – присваивают переменной некоторое значение (явно указанное значение – константу, результат некоторого выражения либо значение другой переменной);
· команды контроля последовательности выполнения программы (Instructions for program control) – для организации условных переходов, ветвлений (IF … THEN … ELSE …), циклов
(FOR … TO … DO …) и т. д.;
· прочие команды – арифметические, логические операции, операции преобразования и округления, перемещения блоков данных и др., представленные на панели Instructions;
· команды вызова программных блоков (block calls) – таймеров, счетчиков, ПИД-регуляторов и т. д.
Арифметические операторы
SCL обеспечивает стандартные арифметические функции
(операторы):
=
присваивание
+ сложение
– вычитание и отрицательное значение
* умножение
/ деление