логических блоков (FC, FB, OB) или как тип данных для переменных блока данных (DB). Их преимущество состоит в том, что вам нужно определить специальную структуру данных только один раз, чтобы иметь возможность использовать ее столько раз, сколько вы желаете, и назначать ее любому количеству переменных.
• Типы данных, определенные пользователем, могут использоваться как шаблон для создания блоков данных с одинаковой структурой данных, т. е. вы создаете структуру один раз, а затем создаете блоки данных простым назначением типа данных, определенного пользователем.
Типы данных, определенные пользователем, создаются в SIMATIC Manager или в редакторе пошагового ввода аналогично другим блокам.
СТРУКТУРА ТИПА ДАННЫХ, ОПРЕДЕЛЕННОГО ПОЛЬЗОВАТЕЛЕМ
Когда открывается тип данных, определенный пользователем, на экране появляется новое рабочее окно, отображающее описание этого типа данных, определенного пользователем, в табличной форме.
•Первая и последняя строка уже содержат описания STRUCT и END_STRUCT для начала и конца типа данных, определенного пользователем. Эти строки вы редактировать не можете.
•Тип данных, определенный пользователем, редактируется вводом ваших элементов в соответствующие столбцы, начиная со второй строки таблицы описаний.
•Структура типов данных, определенных пользователем, может состоять из:
•элементарных типов данных
•составных типов данных
•существующих типов данных, определенных пользователем.
Типы данных, определенные пользователем, в программе S7 не загружаются в CPU S7. Они или создаются непосредственно с использованием редактора пошагового ввода и редактируются, или создаются при компиляции исходных файлов.
СВОЙСТВА БЛОКОВ
Можно легко идентифицировать создаваемые блоки, используя свойства блоков. Можно также защитить эти блоки от несанкционированных изменений.
Свойства блока следует редактировать, когда он открыт. Кроме свойств, которые вы можете редактировать, диалоговое окно свойств отображает также данные только для информации: эту информацию вы редактировать не можете.
Свойства блока и системные атрибуты отображаются также в SIMATIC Manager в свойствах объекта для блока. Здесь вы можете редактировать только свойства NAME [имя], FAMILY [семейство], AUTHOR [автор] и VERSION
55
[версия].
Свойства объекта редактируются после вставки блока через SIMATIC Manager. Если блок был создан с помощью одного из редакторов, а не в SIMATIC Manager, эти элементы (язык программирования) сохраняются автоматически в свойствах объекта.
Таблица свойств блока При вводе свойств блока необходимо соблюдать последовательность,
показанную в следующей таблице:
Ключевое слово / |
Значение |
|
|
Пример |
||||
свойство |
|
|
|
|
|
|
|
|
[KNOW_HOW_PROTECT] |
Защита |
блока; |
блок, |
KNOW_HOW_PROTECT |
||||
|
скомпилированный |
с |
этой |
|
|
|||
|
опцией, |
не |
|
позволяет |
|
|
||
|
просматривать |
свой |
раздел |
|
|
|||
|
кодов. |
|
|
|
|
|
|
|
[AUTHOR:] |
Имя автора: название компании, |
AUTHOR : Siemens, |
||||||
|
отдела или другое имя (не более |
но не ключевое слово |
||||||
|
8 символов без пробелов) |
|
|
|
|
|||
[FAMILY:] |
Название |
семейства блоков: |
FAMILY : controllers, |
|||||
|
например, controllers (не более 8 |
но не ключевое слово |
||||||
|
символов без пробелов) |
|
|
|
|
|||
[NAME:] |
Имя блока (не более 8 |
NAME : PID, но не |
||||||
|
символов) |
|
|
|
|
|
ключевое слово |
|
[VERSION: int1 . int2] |
Номер версии блока (оба числа |
VERSION : 3.10 |
||||||
|
между 0 и 15, т. е. от 0.0 до |
|
|
|||||
|
15.15) |
|
|
|
|
|
|
|
[CODE_VERSION1] |
Идентификатор того, может ли |
CODE_VERSION1 |
||||||
|
функциональный |
|
блок |
иметь |
|
|
||
|
мультиэкземпляры. |
Если нужно |
|
|
||||
|
описать мультиэкземпляры, |
то |
|
|
||||
|
функциональный |
|
блок |
|
не |
|
|
|
|
должен иметь этого свойства |
|
|
|
||||
[UNLINKED] только |
Блок данных |
со |
свойством |
|
|
|||
для DB |
UNLINKED |
не |
связан |
с |
|
|
||
|
программой. |
|
|
|
|
|
|
|
[READ_ONLY] только |
Защита от записи для блоков |
FAMILY= |
Examples |
|||||
для DB |
данных; их не могут быть |
VERSION= |
3.10 |
|||||
|
изменены |
|
|
|
|
|
READ_ONLY |
|
Защита блока KNOW_HOW_PROTECT [защита ноу-хау] имеет следующие последствия:
• Если вы захотите посмотреть скомпилированный блок позднее в
56
редакторе пошагового ввода AWL, FUP или КОР, то раздел кодов блока не будет отображаться на экране.
• Таблица описания переменных блока отображает только переменные типов var_in, var_out и var_in_out. Переменные типов var_stat и var_temp
остаются скрытыми.
11. СОЗДАНИЕ БЛОКОВ ПРОГРАММЫ НАAWL
Что такое Список операторов?
Список операторов (англ. Statement List, STL; нем. Anweisungsliste, AWL) – это текстовый язык программирования, который может быть использован для создания операторной части логического блока. Синтаксис его операторов похож на язык ассемблера и состоит из команд, за которыми следуют адреса (операнды), на которые команда действует.
Язык программирования AWL
Из языков программирования, с помощью которых можно программировать контроллеры S7, AWL наиболее близок к машинному коду MC7 процессора S7. Это значит, что при его использовании для программирования контроллеров S7, вы можете оптимизировать время исполнения и использование памяти. Язык программирования AWL имеет все необходимые элементы для создания всей программы пользователя. Он содержит обширный набор команд. В распоряжении программиста имеется свыше 130 различных основных команд, а также широкий набор адресов. Функции и функциональные блоки позволяют структурировать программу на AWL, делая ее более обозримой.
Программный пакет
Программный пакет AWL – это составная часть стандартного программного обеспечения STEP 7. Это значит, что после установки программного обеспечения STEP 7 вам доступны все функции редактирования, компиляции и тестирования/отладки для AWL. Используя AWL, вы можете создать свою собственную пользовательскую программу:
•с помощью редактора пошагового ввода; при этом ввод структуры
•локальных данных облегчается с помощью табличных редакторов.
•с помощью исходного файла в текстовом редакторе; при этом ввод текста облегчается с помощью шаблонов блоков.
Встандартном программном обеспечении имеется три языка программирования: STL (AWL), FBD (FUP) и LAD (КОР). Вы можете переходить от одного языка программирования к другому почти без ограничений, выбирая наиболее подходящий язык для конкретного блока, который вы программируете.
57
Если вы пишете программу в LAD или FBD, то вы всегда можете перейти к представлению STL. Если вы преобразуете программу на языке LAD в программу на языке FBD и наоборот, то элементы программы, которые не могут быть представлены на целевом языке, отображаются на STL.
12. СТРУКТУРА И КОМПОНЕНТЫ КОМАНД И ОПЕРАТОРОВ
Компоненты оператора
В зависимости от своей структуры оператор относится к одной из двух следующих основных групп:
•оператор, состоящий только из команды (например, NOT);
•оператор, состоящий из команды и операнда (адреса).
Операнд команды
Операнд команды задает константу или адрес, по которому команда находит значение (объект данных), с которым она должна выполнить операцию. Операнд может иметь символическое имя или абсолютное обозначение. Он может указывать на следующие элементы (см. также таблицы с 2–1 по 2–5):
•Константа, значение таймера или счетчика или строка символов ASCII, которые должны загружаться в аккумулятор 1 (например, L +27, см. табл. 2–1);
•Бит слова состояния программируемого логического контроллера (например, A UO, см. табл. 2–2);
•Символическое имя (например, A Motor.On, см. табл. 2–3);
•Блок данных и адрес внутри области этого блока данных (например, L DB4.DBD10, см. табл. 2–4);
•Функция (FC), функциональный блок (FB), встроенная системная функция (SFC) или встроенный системный функциональный блок (SFB) и номер функции или функционального блока (см. табл. 2–5);
•Идентификатор операнда и адрес внутри области памяти, задаваемой идентификатором операнда (например, A I 1.0 или A I [AR1,P#4.3].
Таблицы с 2–1 по 2–5 показывают различные операторы, каждый из которых состоит из команды и операнда.
|
|
Табл. 2-1. |
|
Оператор |
Описание |
||
Команда |
Операнд |
||
|
|||
L |
+27 |
Загрузить целое число 27 в аккумулятор 1 |
|
L |
‘END’ |
Загрузить символы ‘END’ в аккумулятор 1 |
|
Биты слова состояния Операнд команды списка операций может обращаться к одному или более
58
битам слова состояния программируемого логического контроллера. Команда опрашивает состояние сигнала отдельного бита слова состояния (например, A BR) и реагирует на него или интерпретирует комбинацию из двух битов (например, A UO).
|
|
|
|
|
|
Табл. 2-2. |
Оператор |
|
Описание |
|
|
||
Команда |
Операнд |
|
|
|
||
|
|
|
|
|
||
A |
BR |
1 или 0 в бите 8 слова состояния включается в |
||||
|
|
булеву логическую комбинацию. |
||||
A |
UO |
Команда |
интерпретирует |
|
комбинацию, |
|
|
|
которую она находит в битах CC 1 и CC 0 |
||||
|
|
слова |
состояния, |
чтобы |
выяснить, |
|
|
|
выполняется ли определенное условие. |
||||
|
|
Например, комбинация |
из |
1 |
и 1 означает |
|
|
|
«недопустимо», т.е. одно из значений в |
||||
|
|
операции с плавающей точкой не было в |
||||
|
|
действительности числом |
с |
плавающей |
||
|
|
точкой. |
|
|
|
|
|
|
|
|
|
|
|
Структура слова состояния имеет следующий вид:
15 |
… |
9 8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
||
|
|
|
BR |
CC1 |
CC0 |
OV |
OS |
OR |
STA |
RLO |
|
FC |
|
FC . Первичный опрос
Бит 0 слова состояния называется битом первичного опроса (бит FC). Состояние сигнала 0 в бите FC указывает, что за этой точкой в программе следующая логическая команда начинает новую цепь логических операций. (Черта над FC показывает, что этот бит берется с отрицанием). Каждая логическая команда опрашивает состояние сигнала бита FC, а также состояние сигнала операнда, к которому она обращается. Если бит FC равен 0, то команда сохраняет результат опроса состояния сигнала в бите результата логической операции слова состояния (бит RLO, см. следующий раздел) и устанавливает бит FC в 1. Этот процесс называется первичным опросом. Если состояние сигнала бита FC равно 1, то команда логически сопрягает результат опроса состояния сигнала операнда, к которому она обращается, со значением, хранящимся в предыдущем бите RLO. Цепь логических команд всегда заканчивается командой вывода (S, R или =), командой перехода, связанной с результатом логической операции (JC) или одной из скобочных команд A(, O(, X(, AN(, ON( или XN(. Каждая такая команда сбрасывает бит FC в 0.
59