Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

3023

.pdf
Скачиваний:
8
Добавлен:
15.11.2022
Размер:
2.9 Mб
Скачать

то она может быть расширена за счет использования внешних модулей памяти (RAM, FEPROM). В компактной серии CPU 31xC (и других CPU серии S7-300) в качестве загрузочной памяти используются микрокарты памяти (MMC). В этом случае работа CPU без установки MMC не возможна. Микрокарты

MMC выбираются из ряда 64 Kb, 128 Kb, 512 Kb, 2 Mb, 4 Mb, 8 Mb и заказываются отдельно.

Для обновления/сохранения версии операционной системы (firmware) необходимо иметь ММС объемом от 2 до 8MB (в зависимости от CPU). Файлы обновлений firmware находят-

ся в Интернете по адресу http://www.siemens.com/automation /service&support.

Рабочая память (всегда RAM) встроена в CPU и не может быть расширена. Она служит для размещения исполняемого кода программы и данных. Доступ к рабочей памяти имеет только операционная система CPU.

Системная память встроена в CPU и не может быть ра с- ширена. Следующая таблица показывает программно доступные области системной памяти.

Область адресов

Доступ

Запись в STEP 7

Области отображе-

Бит

Ix.y / Qx.y

ния процесса на

Байт

IBx / QBx

входах (PII) и вы-

Слово

IWx / QWx

ходах (PIQ)

Двойное слово

IDx / QDx

Меркеры

Бит

Mx.y

 

Байт

MBx

 

Слово

MWx

 

Двойное слово

MDx

Данные локального

Бит

Lx.y

стека

Байт

LBx

 

Слово

LWx

 

Двойное слово

LDx

Таймеры/

Таймер

Tx

Счетчики

Счетчик

Cx

40

Системная память содержит:

образы процесса на входах и выходах (RAM);

области меркеров/флагов (RAM);

данные локального стека (RAM);

области таймеров и счетчиков (RAM);

диагностический буфер, MPI адрес, счетчики времени работы - (сохраняемая память).

Совокупность программно доступных адресов модулей ввода-вывода образуют адресное пространство CPU (I/O address area). В системе памяти S7-CPU это система адресов разделена на 2 равные области - для чтения и записи (рис. 4.2).

Рис. 4.2. Области отображения процесса

Операционная система CPU опрашивает состояние входов и выходов в каждом цикле. В ОЗУ ( RAM) определены специальные области памяти, в которые загружаются двоичные

41

данные из модулей: PII и PIQ. В процессе работы программа имеет доступ к этим областям памяти.

PII - область отображение входов находится в памяти CPU. В ней хранятся состояния сигналов на входах.

PIQ - область отображения выходов содержит выходные величины, получаемые при выполнении программы. Они пересылаются на фактический выход (Q) в конце цикла.

Когда Вы опрашиваете входы в пользовательской программе, например, командой A I2.0, оценивается последнее состояние из PII. Это гарантирует, что при многократном опросе входа в пределах одного цикла, всегда используется одно и то же сигнальное состояние.

Области отображения процесса представляют ячейки системной памяти, которые по диапазону адресов совпадают с адресным пространством только по младшим адресам. Например, CPU 314C-2DP имеет размер PII 128 байт, область PI – 1024 байта. Это означает, что вся считываемая информация из модулей ввода, имеющих адреса с 0 по 127 (от PIB0 до PIB127), размещается по адресам области PII с IB0 по IB127.

В таблице доступных областей памяти обозначено: x – номер байта (8 бит), слова (16 бит), двойного слова (16 бит), номер таймера, счетчика. После точки y – номер бита.

Пример адресации области маркеров слова MD100 приведен на рис. 4.3.

Рис. 4.3. Пример адресации

42

5.ОБРАБОТКА ПРОГРАММЫ S7

Вцелом программное обеспечение для CPU состоит из операционной системы (operating system) и пользовательской программы (user program).

Операционная система – это совокупность всех инструкций и описаний, которые осуществляют управление всеми системными ресурсами и процессами, использующими эти ресурсы. Она включает в себя такие функции, как резервирование данных в случае сбоя электропитания, активация приоритетных классов и так далее. Операционная система является компонентом CPU, к которому у пользователя нет доступа в режиме записи. Однако, вы можете перезагружать операционную систему с карты памяти в случае, к примеру, обновления программы.

Пользовательская программа представляет собой совокупность всех инструкций и описаний для обработки сигналов,

спомощью которых осуществляется управление предприятием (процессом) в соответствии с определенной задачей автоматизации.

Пользовательская программа может состоять из программных разделов, которые обрабатываются CPU в зависимости от определенных событий. Таким событием может быть запуск системы автоматизации, прерывание или обнаружение программной ошибки. Программы, назначенные для обработки событий, разделяются на приоритетные классы (priority classes), которые определяют порядок обработки программы, когда происходит несколько событий.

Программой с низшим приоритетом является главная программа (main program), циклически обрабатываемая CPU. События могут прервать главную программу в любом месте, после чего CPU выполнит связанную с прерыванием обслуживающую программу (процедуру) или программу (процедуру) обработки ошибки и вернет управление главной программе.

Каждому событию соответствует специальный организационный блок (organization block – OB). Организационные

43

блоки в программе пользователя реализуют механизм приоритетных классов. При возникновении события CPU активизирует назначенный организационный блок. Организационный блок – это часть пользовательской программы, которую вы можете сами написать.

Перед началом обработки главной программы CPU выполняет программу запуска (startup routine). Эта программа может быть запущена включением питания, поворотом переключателя режимов на передней панели CPU или с помощью программирующего устройства. Обработка программы, следующая за исполнением программы запуска, в системах S7-300 начинается всегда с начала главной программы (полный рестарт – complete restart); в системах S7-400 также возможно продолжить сканирование программы с точки, в которой оно было прервано («теплый» рестарт – warm restart).

Главная программа располагается в организационном блоке ОВ 1, который всегда обрабатывается центральным процессором. Начало пользовательской программы идентично первому сегменту (сети, network) в ОВ 1. По завершению обработки ОВ 1 (конец программы) CPU передает управление операционной системе, и после вызова различных функций операционной системы, таких как обновление образа процесса, центральный процессор снова вызывает ОВ 1.

Событиями, которые могут вмешиваться в работу программы, являются прерывания (interrupts) и ошибки (errors).

Источником прерываний может быть процесс (аппаратные прерывания), или они могут исходить от CPU (циклические прерывания – watchdog interrupts, прерывания по времени суток – time-of-day interrupts и другие).

Что касается ошибок, то различают синхронные и асинхронные ошибки. Асинхронной является ошибка, которая не зависит от выполнения программы, к примеру, отказ электропитания в устройстве расширения или замена модуля. Синхронные ошибки возникают при выполнении программы. К

44

ним относятся, например, обращение к несуществующему адресу или ошибка преобразования типа данных.

Типы и номера регистрируемых событий и соответствующих организационных блоков определяются CPU; не каждый CPU способен обработать все возможные события STEP 7.

CPU имеет три режима работы: режим STOP, режим STARTUP и режим RUN. Светодиоды состояния на передней стороне CPU показывают текущий режим работы.

В режиме STOP CPU не выполняет программу, и вы можете загружать проект.

В режиме STARTUP один раз выполняются OB запуска (если имеются).

В режиме RUN многократно выполняется цикл сканирования (рис. 5.1).

Рис. 5.1. Циклическое выполнение программы

45

CPU выполняет полный перезапуск (с OB100) при включении или переключении STOP --> RUN. При полном перезапуске, операционная система удаляет несохраняемые меркеры, таймеры и счетчики, удаляет стек прерываний и стек блоков, сбрасывает все сохраненные аппаратные и диагностические прерывания и запускает контроль времени цикла.

Фазы циклической обработки программы:

Операционная система запускает время контроля цикла.

CPU записывает значения из отображения процесса на выходах в модули вывода.

CPU считывает состояние входов на модулях ввода и обновляет отображение процесса на входах.

CPU обрабатывает прикладную программу и исполняет указанные в программе команды.

В конце цикла OC выполняет стоящие на очереди задачи, например, загрузку и стирание блоков, мониторинг статуса блоков, прием и передачу глобальных данных.

Время, необходимое для выполнения всех перечисленных операций, называется циклом сканирования или временем цикла. Время цикла является величиной переменной и может меняться от цикла к циклу. В начале каждого цикла OC перезапускает счетчик времени цикла.

С целью повышения удобочитаемости и понимания программы вы можете разбить ее на произвольное число разделов. Языки программирования STEP 7 поддерживают эту концепцию и предоставляют необходимые функции. Каждая часть программы должна быть независимой и обладать технологическим или функциональным базисом. Эти разделы программы называются «блоками» («Blocks»). Блок – это раздел программы, который определяется собственной функциональностью, структурой или решаемой задачей.

Различают следующие типы блоков (рис. 5.2):

Пользовательские блоки (user blocks). Эти блоки содержат пользовательскую программу и пользовательские данные.

46

Системные блоки (system blocks). Эти блоки содержат системную программу и системные данные.

Стандартные блоки (standard blocks). Готовые к непосредственному использованию (созданные заранее) блоки, такие как драйверы для функциональных модулей (FM) и ко м- муникационных процессоров (СР).

Рис. 5.2. Типы блоков

Организационные блоки (Organization blocks - OB)

Эти блоки служат в качестве интерфейса между операционной системой и программой пользователя. Операционная система CPU вызывает организационные блоки при возникновении определенных событий, например, в случае аппаратного прерывания или прерывания по времени суток. Главная программа находится в организационном блоке ОВ 1. Остальные организационные блоки имеют постоянные номера, назначенные в зависимости от событий, для обработки которых они вызываются.

Функциональные блоки (Function blocks - FB)

Эти блоки являются частями программы, вызовы которых могут быть запрограммированы с помощью параметров блока. У них есть область памяти для переменных (variable memory), которая расположена в блоке данных. Этот блок постоянно назначен функциональному блоку или, точнее, вызову (call) функционального блока.

47

Кроме того, каждому вызову функционального блока можно назначить другой блок данных (с такой же структурой данных, но содержащий другие значения). Подобный постоянно назначенный блок называется экземплярным блоком данных или экземпляром блока данных (instance data block), а совокупность вызова функционального блока и экземплярного блока данных называется экземпляром вызова (call instance) или просто «экземпляром» («instance»). Функциональные блоки могут также хранить свои переменные в экземплярном блоке данных вызывающего функционального блока; такой экземпляр называется «локальным экземпляром» («local instance»).

Функции (Functions - FC)

Функции используются для программирования часто повторяющихся или сложных функций автоматизации. Для них могут быть назначены параметры. Функции могут возвращать значение (называемое значением функции) в вызывающий блок. Значение функции является необязательным параметром. Кроме него у функций могут быть другие выходные параметры. Функции не сохраняют информацию и не имеют назначенного блока данных.

Блоки данных (Data blocks - DB)

Эти блоки содержат данные вашей программы. Программируя блоки данных, вы определяете форму хранения данных (в каком блоке, в каком порядке и какой при этом используется тип данных). Блоки данных используются двумя способами:

1)в качестве глобальных блоков данных (global data

blocks),

2)в качестве экземплярных блоков данных (instance data

blocks).

Глобальный блок данных в пользовательской программе является, так сказать, ”свободным” блоком данных и не назначается конкретному кодовому блоку. Экземплярный блок данных назначен функциональному блоку и хранит часть локальных данных этого блока.

48

Количество блоков определенного блочного типа и размер блоков зависит от типа CPU. Число организационных блоков и их номера фиксированы; они назначаются операционной системой CPU. Блокам других типов вы можете самостоятельно назначить номера из определенного диапазона. Также вы можете с помощью таблицы символов назначить каждому блоку имя (символ) и затем обращаться к блокам по присвоенному имени.

Системные блоки

Системные блоки являются компонентами операционной системы. Они могут содержать программы (системные функции, SFC, или системные функциональные блоки, SFB) или данные (системные блоки данных, SDB). Системные блоки предоставляют вам доступ к важным системным функциям, таким как управление внутренними таймерами CPU или различные коммуникационные функции.

Вы можете вызвать SFC и SFB, но вы не сможете ни и з- менить их, ни самостоятельно запрограммировать. Сами блоки не занимают места в пользовательской памяти (user memory); только вызовы блоков и экземплярные блоки данных блоков SFB располагаются в пользовательской памяти.

Блоки SDB содержат информацию о таких вещах, как конфигурация системы автоматизации или параметры модулей. Система STEP 7 сама генерирует эти блоки и управляет ими. Тем не менее, вы можете определять их содержимое, например, при конфигурировании станций. Как правило, блоки SDB располагаются в загрузочной памяти (load memory). Из пользовательской программы доступ к ним получить нельзя.

Стандартные блоки

В дополнение к создаваемым вами функциям и функциональным блокам вы можете использовать готовые к применению блоки (называемые «стандартными блоками»). Они могут поставляться на носителях данных или содержаться в библио-

49

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]