Учебное пособие 1319
.pdfСТРУКТУРА И КОМПОНЕНТЫ ТАБЛИЦЫ СИМВОЛОВ
Структура таблицы символов
Symbol Editor - Project/SIMATIC300 Station(1)/CPU314(1)/.../Symbols
Table Edit Insert View Window Help
Project/SIMATIC300 Station(1)/CPU314(1)/.../Symbols |
|
|||||
O |
M |
C |
Symbol |
Address |
Data Type |
Comment |
1 |
|
|
|
|
|
|
Пояснения к рисунку: Symbol Editor – редактор символов; Table – таблица; Edit – редактировать; Insert – вставить; View – вид; Window – окно; Help –
помощь; Symbol – символ(ическое имя); Address – адрес; Data Type – тип данных;
Comment – комментарий.
Столбцы O/M/C
Столбцы O/M/C показывают, были ли символическому имени назначены специальные свойства:
O означает, что символ может управляться и наблюдаться с помощью WinCC. M означает, что этому символу было назначенное относящееся к нему сообщение (SCAN).
C означает, что символу назначены коммуникационные свойства (могут быть выбраны только с помощью NCM).
Символическое имя (Symbol)
Символическое имя не должно быть длиннее 24 символов. Таблица символов может содержать не более 16380 символических имен.
В таблице символов вы не можете назначать символические имена для адресов в блоках данных (DBD, DBW, DBB, DBX). Их имена назначаются в описании блоков данных.
Для организационных блоков (ОВ) и некоторых системных функциональных блоков (SFB) и системных функций (SFC) уже существуют предварительно определенные записи для таблицы символов, которые вы можете импортировать при редактировании таблицы символов для своей программы S7. Файл импорта хранится в каталоге STEP 7 под
...\S7data\Symbol\Symbol.sdf
Адрес (Address)
Адрес – это аббревиатура для определенной области памяти и положения
в ней.
Пример: Вход Е 12.1
50
Синтаксис адреса контролируется при его вводе. Проверяется также, может ли адрес быть назначен указанному типу данных.
Тип данных (Data Type)
Вы имеете возможность выбора из ряда типов данных, доступных в STEP 7. Поле типов данных уже содержит тип данных по умолчанию, который вы можете изменить, если это необходимо. Если сделанное вами изменение непригодно для данного адреса и его синтаксис неверен, то при выходе из поля появляется сообщение об ошибке.
Комментарий (Comment)
Все символическим именам могут быть назначены комментарии. Комбинирование кратких символических имен и более подробных комментариев делает создание программы более эффективным, документацию вашей программы более полной. Комментарий может иметь длину до 80 символов.
Преобразование в переменные языка С
Вы можете выбрать символические имена в таблице символов для программы М7 и, используя дополнительный пакет программ ProC/C++, преобразовать их в соответствующие переменные языка С.
АДРЕСА И ТИПЫ ДАННЫХ, РАЗРЕШЕННЫЕ В ТАБЛИЦЕ СИМВОЛОВ
По всей таблице символов должен использоваться только один набор мнемонических обозначений. Переключение между мнемоникой SIMATIC (немецкой) и мнемоникой IEC (английской) должно выполняться в SIMATIC Manager с помощью команды меню Options > Customize [Параметры > Настройка] в закладке "Language [Язык]".
IEC |
SIMA |
Описание |
|
Тип данных |
|
|
Диапазон |
|
|
TIC |
|
|
|
|
|
значений |
|
I |
E |
Входной бит |
BOOL |
|
|
0.0 − 65535.7 |
||
IB |
EB |
Входной байт |
BYTE, CHAR |
|
0 |
− 65535 |
||
IW |
EW |
Входное слово |
WORD, INT, S5TIME |
0 |
− 65534 |
|||
ID |
ED |
Входное |
двойное |
DWORD, |
DINT, |
REAL, |
0 − 65532 |
|
|
|
слово |
|
TOD, TIME |
|
|
|
|
Q |
A |
Выходной бит |
BOOL |
|
|
0.0 − 65535.7 |
||
QB |
AB |
Выходной байт |
BYTE, CHAR |
|
0 |
− 65535 |
||
QW |
AW |
Выходное слово |
WORD, INT, S5TIME |
0 |
− 65534 |
|||
QD |
AD |
Входное |
двойное |
DWORD, |
DINT, |
REAL, |
0 − 65532 |
|
|
|
слово |
|
TOD, TIME |
|
|
|
|
M |
M |
Меркерный бит |
BOOL |
|
|
0.0 − 65535.7 |
||
MB |
MB |
Меркерный байт |
BYTE, CHAR |
|
0 − 65535 |
51
IEC |
SIMA |
Описание |
|
Тип данных |
|
|
Диапазон |
|
TIC |
|
|
|
|
|
значений |
MW |
MW |
Меркерное слово |
WORD, INT, S5TIME |
0 − 65534 |
|||
MD |
MD |
Меркерное |
двойное |
DWORD, |
DINT, |
REAL, |
0 − 65532 |
|
|
слово |
|
TOD, TIME |
|
|
|
PIB |
PEB |
Периферийный |
BYTE, CHAR |
|
0 − 65535 |
||
|
|
входной байт |
|
|
|
|
|
PQB |
PAB |
Периферийный |
BYTE, CHAR |
|
0 − 65535 |
||
|
|
выходной байт |
|
|
|
|
|
PIW |
PEW |
Периферийное |
WORD, INT, S5TIME |
0 − 65534 |
|||
|
|
входное слово |
|
|
|
|
|
PQW |
PAW |
Периферийное |
WORD, INT, S5TIME |
0 − 65534 |
|||
|
|
выходное слово |
|
|
|
|
|
PID |
PED |
Периферийное |
DWORD, |
DINT, |
REAL, |
0 − 65532 |
|
|
|
входное |
двойное |
TOD, TIME |
|
|
|
|
|
слово |
|
|
|
|
|
PQD |
PAD |
Периферийное |
DWORD, |
DINT, |
REAL, |
0 − 65532 |
|
|
|
выходное |
двойное |
TOD, TIME |
|
|
|
|
|
слово |
|
|
|
|
|
T |
T |
Таймер |
|
TIMER |
|
|
0 − 65535 |
C |
Z |
Счетчик |
|
COUNTER |
|
|
0 − 65535 |
FB |
FB |
Функциональный |
FB |
|
|
0 − 65535 |
|
|
|
блок |
|
|
|
|
|
OB |
OB |
Организационный |
OB |
|
|
1 − 65535 |
|
|
|
блок |
|
|
|
|
|
DB |
DB |
Блок данных |
DB, FB, SFB, UDT |
|
1 − 65535 |
||
FC |
FC |
Функция |
|
FC |
|
|
0 − 65535 |
SFB |
SFB |
Системный |
|
SFB |
|
|
0 − 65535 |
|
|
функциональный |
|
|
|
|
|
|
|
блок |
|
|
|
|
|
SFC |
SFC |
Системная функция |
SFC |
|
|
0 − 65535 |
|
VAT |
VAT |
Таблица |
|
|
|
|
0 − 65535 |
|
|
переменных |
|
|
|
|
|
UDT |
UDT |
Тип |
данных, |
UDT |
|
|
0 − 65535 |
|
|
определенный |
|
|
|
|
|
|
|
пользователем |
|
|
|
|
Имеется возможность хранить неполные символические имена. Например, вы можете ввести сначала только символическое имя, а соответствующий адрес добавить позднее. Это значит, что вы можете прервать свою работу над таблицей символов в любое время, сохранить промежуточный результат и завершить свою работу в другое время. Когда же дело дойдет до
52
использования этого символа для создания программного обеспечения (без появления какого бы то ни было сообщения об ошибке), вы должны будете уже ввести символическое имя, адрес и тип данных.
Неуникальные символы появляются, когда вы вставляете в таблицу символов символ, имя которого и/или адрес уже были использованы в другой строке таблицы. Это значит, что и новый, и существующий символы не уникальны.
В таблице символов неуникальные символы выделяются графически (цветом, шрифтом). Это изменение в их представлении означает, что они еще нуждаются в редактировании. Вы можете отобразить все символы или отфильтровать их вид так, чтобы на экране отображались только уникальные или только неуникальные символы.
Неуникальный символ становится уникальным при изменении компонента (имени и/или адреса), который делал его неуникальным. Если два символа неуникальны, и вы изменяете один из них так, чтобы сделать его уникальным, то другой символ тоже становится уникальным.
ОБЩИЕ СОВЕТЫ ПО ВВОДУ СИМВОЛОВ
Для ввода новых символов в таблицу символов поместите курсор в первую пустую строку таблицы и заполните ячейки. Вы можете вставить новую, пустую строку перед текущей строкой в таблице символов с помощью команды меню Insert > Symbol [Вставить > Символ]. Вы можете копировать и модифицировать существующие записи с помощью команд из меню редактирования (Edit). Сохраните, а затем закройте таблицу символов. Вы можете сохранить также символы, которые были определены не полностью.
При вводе в таблицу свойств символов, вам следует принять во внимание следующие особенности:
Столбец |
|
|
Замечание |
|
Symbol [Символ] |
Имя должно быть уникальным для всей таблицы |
|||
|
символов. Когда вы подтверждаете ввод в этом |
|||
|
поле или покидаете поле, неуникальный символ |
|||
|
выделяется. Символическое имя может содержать |
|||
|
до 24 символов. Кавычки (") не допускаются. |
|||
Address [Адрес] |
Когда вы подтверждаете ввод в этом поле или |
|||
|
покидаете |
поле, |
производится |
контроль |
|
допустимости введенного адреса. |
|
||
Data Type [Тип данных] |
При вводе адреса этому полю автоматически |
|||
|
назначается тип данных по умолчанию. Если вы |
|||
|
меняете это умолчание, то программа проверяет, |
|||
|
соответствует ли новый тип данных адресу. |
53
Comment [Комментарий] Вы можете ввести здесь комментарии, чтобы кратко объяснить функции символических имен (не более 80 символов). Ввод комментариев не обязателен.
10. СОЗДАНИЕ БЛОКОВ
Программу для CPU S7 можно создать в виде:
•блоков
•исходных файлов.
Папка "Blocks [Блоки]" доступна для хранения блоков под программой
S7.
Эта папка блоков содержит блоки, необходимые вам для загрузки в CPU S7 для решения вашей задачи автоматизации. Эти загружаемые блоки включают в себя логические блоки (ОВ, FB, FC) и блоки данных (DB). Пустой организационный блок ОВ1 автоматически создается вместе с папкой блоков, так как вам всегда потребуется этот блок для исполнения вашей программы в
CPU S7.
Папка блоков содержит также следующие объекты:
•Типы данных, определенные пользователем (UDT), которые созданы вами. Они облегчают программирование, но не загружаются в CPU.
•Таблицы переменных (VAT), которые вы можете создать для наблюдения и изменения переменных в процессе отладки своей программы. Таблицы переменных не загружаются в CPU.
•Объект "System Data [Системные данные]" (блоки системных данных), содержащий системную информацию (конфигурацию и параметры системы). Эти системные блоки данных создаются и снабжаются данными при конфигурировании аппаратуры.
•Системные функции (SFC) и системные функциональные блоки (SFB), нужные для вызова в пользовательской программе. Вы не можете сами редактировать SFC и SFB.
За исключением системных блоков данных (которые могут быть созданы
иотредактированы только через программу конфигурирования программируемого логического контроллера), все блоки в программе пользователя редактируются с помощью соответствующего редактора. Этот редактор запускается автоматически при двойном щелчке на соответствующем блоке.
ТИПЫ ДАННЫХ, ОПРЕДЕЛЕННЫЕ ПОЛЬЗОВАТЕЛЕМ (UDT)
Типы данных, определенные пользователем, − это специальные структуры данных, создаваемые вами самими, которые вы можете использовать во всей программе S7, как только они были определены.
•Типы данных, определенные пользователем, могут использоваться, как
иэлементарные или составные типы данных, в описании переменных
54
логических блоков (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