- Счетчики (Counters, C) – это организуемые на программном уровне ячейки памяти, используемые для ведения счета по возрастанию и убыванию.
- Временные локальные данные (Temporary local data, L). Ячейки памяти, используемые в качестве динамических промежуточных буферов во время обработки блоков. Временные локальные данные расположены в L-стеке, которые динамически используются CPU во время выполнения программы.
Различают бинарные (дискретные) и аналоговые сигналы.
Бинарные (дискретные) сигналы
Бинарный сигнал (binary signal) содержит один бит информации. Примерами дискретных сигналов являются входные сигналы от конечных выключателей, переключателей мгновенного контакта и т.п., которые поступают на цифровые входные модули, и выходные сигналы, которые управляют лампами, контакторами и т.п. через цифровые выходные модули.
Аналоговые сигналы
Аналоговый сигнал (analog signal) содержит 16 бит информации. Аналоговый сигнал соответствует «каналу», который отображается в контроллере в виде машинного слова (word), то есть двух байт. Аналоговые входные сигналы (например, напряжения от терморезисторов) поступают в аналоговые входные модули, оцифровываются и после этого становятся доступными для обработки в контроллере в виде 16-разрядного сигнала (16 информационных битов). С другой стороны, 16-разрядный сигнал может управлять аналоговым индикатором посредством аналогового выходного модуля, где информация преобразовывается в аналоговую величину (например, ток).
Таблица символов
В управляющей программе работают с адресами; это входы, выходы, таймеры, блоки. Можно присвоить абсолютные адреса (например, I1.0) или символические адреса (например, Start signal). Символическая адресация использует вместо абсолютного адреса имена. Применяя осмысленные имена, можно сделать программу более читаемой.
В символической адресации различают локальные (local) и глобальные (global) символы. Локальный символ известен только в блоке, в котором он был определен. Можно использовать одинаковые локальные символы в разных блоках для различных целей. Глобальный символ известен во всей программе и имеет одинаковое значение во всех блоках. Глобальные символы определяются в таблице символов (объект Symbols (Символы) в контейнере S7 Program (S7-программа)).
На рис. 1.2 представлен пример таблицы символов.
Рис. 1.2 Пример таблицы символов
В таблице символов можно присвоить имена следующим адресам и объектам:
- Входам I, выходам Q, периферийным входам PI и периферийным выходам PQ;
- Меркерам М, таймерам Т и счетчикам С;
- Кодовым блокам OB, FB, FC, SFC, SFB и блокам данных DB;
- Определенным пользователем типам данных UDT;
- Таблице переменных (variable table) VAT.
Адреса данных и блоки данных включены в число локальных адресов; ассоциированные символы определяются в разделе описаний блока данных в случае глобальных блоков данных и разделе описаний функционального блока в случае блоков данных экземпляров.
Редактор программ
Для создания пользовательских программ базовый пакет STEP 7 содержит редактор программ (Program Editor) для языков программирования LAD (ladder logic или ladder diagram – контактный план; представление, схожее с диаграммами релейной логики; многоступенчатая схема), FBD (function block diagram – диаграмма функциональных блоков или функциональный план) и STL (statement list – список операторов или список мнемоник; ассемблероподобный язык). Программирование на языках LAD и FBD осуществляется путем ввода блоков из существующей библиотеки и установки на их входах и выходах соответствующих адресов.
Если используется символическая адресация для глобальных адресов, то символы уже должны быть присвоены абсолютным адресам; тем не менее, можно ввести новые символы или изменить их во время ввода программы.
Блоки
С целью повышения удобочитаемости и понимания программы можно разбить ее на произвольное число разделов. Языки программирования STEP 7 поддерживают эту концепцию и предоставляют необходимые функции. Каждая часть программы должна быть независимой и обладать технологическим или функциональным базисом. Эти разделы программы называются «блоками» («Blocks»). Блок – это раздел программы, который определяется собственной функциональностью, структурой или решаемой задачей.
Типы блоков
Step7 предоставляет для разных задач различные типы блоков:
- Пользовательские блоки (user blocks) – содержат пользовательскую программу и пользовательские данные.
- Системные блоки (system blocks) – содержат системную программу и системные данные.
- Стандартные блоки (standard blocks) – готовые к непосредственному использованию (созданные заранее) блоки, такие как драйверы для функциональных модулей (FM) и коммуникационных процессоров (СР).
Пользовательские блоки
В случае больших и сложных программ рекомендуется и отчасти является необходимостью «структурирование» (разбиение) программы с выделением блоков. В зависимости от приложения можно выбрать для использования различные типы блоков:
Организационные блоки (Organization blocks – OB) – служат в качестве интерфейса между операционной системой и программой пользователя. Операционная система CPU вызывает организационные блоки при возникновении определенных событий, например, в случае аппаратного прерывания или прерывания по времени суток. Главная программа находится в организационном блоке ОВ1. Остальные организационные блоки имеют постоянные номера, назначенные в зависимости от событий, для обработки которых они вызываются.
Функциональные блоки (Function blocks – FB) – являются частями программы, вызовы которых могут быть запрограммированы с помощью параметров блока. У них есть область памяти для переменных (variable memory), которая расположена в блоке данных. Этот блок постоянно назначен функциональному блоку или, точнее, вызову (call) функционального блока.
Кроме того, каждому вызову функционального блока можно назначить другой блок данных (с такой же структурой данных, но содержащий другие значения). Подобный постоянно назначенный блок называется экземплярным блоком данных или экземпляром блока данных (instance data block), а совокупность вызова функционального блока и экземплярного блока данных называется экземпляром вызова (call instance) или просто «экземпляром» («instance»). Функциональные блоки могут также хранить свои переменные в экземплярном блоке данных вызывающего функционального блока; такой экземпляр называется «локальным экземпляром» («local instance»).
Функции (Functions – FC) – используются для программирования часто повторяющихся или сложных функций автоматизации. Для них могут быть назначены параметры. Функции могут возвращать значение (называемое значением функции) в вызывающий блок. Значение функции является необязательным параметром. Кроме него у функций могут быть другие выходные параметры. Функции не сохраняют информацию и не имеют назначенного блока данных.
Блоки данных (Data blocks – DB) – содержат данные программы. Программируя блоки данных, определяют форму хранения данных (в каком блоке, в каком порядке и какой при этом используется тип данных). Блоки данных используются двумя способами:
1) в качестве глобальных блоков данных (global data blocks),
2) в качестве экземплярных блоков данных (instance data blocks).
Глобальный блок данных в пользовательской программе является, так сказать, «свободным» блоком данных и не назначается кодовому блоку. Однако экземплярный блок данных назначен функциональному блоку и хранит часть локальных данных этого блока.
Количество блоков определенного блочного типа и размер блоков зависит от типа CPU. Число организационных блоков и их номера фиксированы; они назначаются операционной системой CPU. Блокам других типов можно самостоятельно назначить номера из определенного диапазона. Также можно с помощью таблицы символов назначить каждому блоку имя (символ) и затем обращаться к блокам по присвоенному имени.
Системные блоки
Системные блоки являются компонентами операционной системы. Они могут содержать программы (системные функции, SFC, или системные функциональные блоки, SFB) или данные (системные блоки данных, SDB). Системные блоки предоставляют доступ к важным системным функциям, таким как управление внутренними таймерами CPU или различные коммуникационные функции.
Можно вызвать SFC и SFB, но нельзя ни изменить их, ни самостоятельно запрограммировать. Сами блоки не занимают места в пользовательской памяти (user memory); только вызовы блоков и экземплярные блоки данных блоков SFB располагаются в пользовательской памяти.
Блоки SDB содержат информацию о таких вещах, как конфигурация системы автоматизации или параметры модулей. Система STEP 7 сама генерирует эти блоки и управляет ими. Тем не менее, можно определять их содержимое, например, при конфигурировании станций. Как правило, блоки SDB располагаются в загрузочной памяти (load memory). Из пользовательской программы доступ к ним получить нельзя.
Стандартные блоки
В дополнение к создаваемым функциям и функциональным блокам можно использовать готовые к применению блоки (называемые «стандартными блоками»).
Они могут поставляться на носителях данных или содержаться в библиотеках, входящих в состав пакета STEP 7 (например, IEC-функции или функции для преобразования S5/S7).
1.3 Порядок выполнения работы
1.3.1 Запустить программу SIMATIC Manager.
1.3.2 Создать новый проект, выполнив File/New… Появится окно New project. Ввести имя проекта (см. рис. 1.3).
Рис. 1.3 Окно для создания нового проекта