Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2822.pdf
Скачиваний:
7
Добавлен:
15.11.2022
Размер:
2.36 Mб
Скачать

будут появляться в соответствии с указанной скоростью обмена. Когда же значение регистра SxTIME равно 0, данные в окне «Serial» будут отображаться гораздо быстрее.

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

signal void serial_input (void) {

 

 

 

while (1) {

/* бесконечный цикл

 

*/

twatch (CLOCK);

/* пауза на 1 секунду

 

*/

S0IN = 'A';

/* послать 1й символ

*/

 

twatch (CLOCK / 900);

/* пауза на время передачи символа */

/* 900 достаточно для 9600 бит/с */

 

 

S0IN = 'B';

/* послать следующий символ

*/

twatch (CLOCK / 900);

 

 

 

S0IN = 'C';

/* послать последний символ

 

*/

}

/* повторяем сначала

 

*/

}

 

 

 

Работает эта сигнальная функция следующим образом: делает паузу на 1 секунду, затем подает на вход последовательного порта символы «A», «B» и «C» и повторяет все сначала.

ЛИТЕРАТУРА

1.Боборыкин А.В., Липовецкий Г.П. и др. Однокристальные микроЭВМ./ А.В. Боборыкин, Г.П. Липовецкий - М.: МИКАП, 1994. 400 с.

2.Григорьев В.Л. Программное обеспечение микропроцессорных систем./ В.Л. Григорьев - М.: Энергоатомиздат, 1983.- 208 с.

3.Бродин В.Б. Справочник. Микроконтроллеры: архитектура, программирование, интерфейс./ В.Б. Бродин, М.И. Шагурин - М.:ЭКОМ, 1999. 264 с.

4.Документация на микроконтроллеры фирмы Intel MCS51/151/251. (ка-

талог pdf файлов) - http://www.intel.com/design/mcs51/docs_mcs51.htm

140

ТЕМА 17

Микроконтроллеры серий S5, и S7. Основные блоки и их характеристики. Архитектура ЦПУ, организация памяти контроллера.

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

Одной из ведущих фирм-производителей средств автоматизации является фирма SIEMENS (Германия). Она занимает устойчивое положение на рынке программируемых логических контроллеров (ПЛК). По данным рыночных исследований, проведенных международной исследовательской корпорацией Automation Research Corporation за 1998 год, доля фирмы SIEMENS в общем мировом рынке сбыта программируемых логических контроллеров составляет 25.3 % , что выводит ее на первое место в ряду с такими фирмами как ALLEN-BRADLEY, AEG SCHNEIDER, KLOCKNER-MOELLER, ALFA LAVAL AUTOMATION, OMRON, BOSCH , MITSUBISHI, CEGELEC, ABB, PHILIPS.. Второе место с долей 18.4 %

принадлежит корпорации ROCKWELL AUTOMATION, в состав которой входит фирма ALLEN-BRADLEY (США). Распределение мест в европейском рынке сбыта ПЛК между двумя крупными конкурентами является таковым: фирма

SIEMENS - 43.5 %, фирма ALLEN-BRADLEY - 9.7 %. Такое уверенное превос-

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

Система SIMATIC S5 как одна из самых лучших на мировом рынке ПЛК, производителем которой является фирма SIEMENS, заложила основные стандарты в области автоматизации производства. В настоящее время по всему миру установлено и работает более 1 млн контроллеров SIMATIC S5, что является лучшим доказательством эффективности и качества данной продукции. Контроллеры SIMATIC S5 пользуются спросом и сегодня, несмотря на появление на рынке контроллеров новой волны SIMATIC S7. Доля контроллеров SIMATIC S5 по сравнению с контроллерами SIMATIC S7 на европейском рынке составляет 76.8 %, а на Российском рынке – 50.6 %. Последние цифры говорят, с одной стороны, о более динамичном внедрении самых современных контроллеров в России в пе-

141

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

БЛОКИ В ПРОГРАММЕ ПОЛЬЗОВАТЕЛЯ

Программное обеспечение STEP 7 дает вам возможность структурировать свою пользовательскую программу, иными словами, разбивать программу на отдельные автономные программные секции. Это дает следующие преимущества:

Такие программы проще для понимания.

Отдельные программные секции могут быть стандартизованы.

Упрощается организация программы.

Легче производить модификацию программы.

Отладка упрощается, так как можно тестировать отдельные секции.

Значительно упрощается прием системы в эксплуатацию.

ТИПЫ БЛОКОВ

Имеется несколько различных типов боков, которые вы можете использовать внутри пользовательской программы S7:

Блок

 

Краткое описание функции

См. также

 

Организационные

OB определяют структуру про-

Структура программы

блоки (OB)

 

граммы пользователя.

 

 

 

Системные

функ-

SFB и SFC встроены в CPU S7

Системные

функцио-

циональные

блоки

и обеспечивают вам доступ ко

нальные блоки (SFB) и

(SFB) и системные

всем

важным

системным

системные

функции

функции (SFC)

функциям.

 

(SFC)

 

 

Функциональные

FB – это блоки с "памятью",

Функциональные

бло-

блоки (FB)

 

которые вы можете програм-

ки (FB)

 

 

 

 

мировать сами.

 

 

 

 

Функции (FC)

 

FC содержат программы для

Функции (FC)

 

 

 

 

часто встречающихся функций.

 

 

 

Экземплярные блоки

Экземплярные DB связываются

Экземплярные

блоки

данных

 

с блоком, когда вызывается

данных

 

 

(экземплярные DB)

FB/SFB. Они создаются авто-

 

 

 

 

 

матически при компиляции.

 

 

 

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

DB – это области данных для

Совместно используе-

 

 

хранения данных пользователя.

мые блоки

данных

 

 

Кроме данных, соответствую-

(DB)

 

 

 

 

щих

функциональному блоку,

 

 

 

 

 

могут быть определены также

 

 

 

 

 

данные, совместно используе-

 

 

 

 

 

мые любыми блоками.

 

 

 

OB, FB, SFB, FC и SFC содержат секции программы и поэтому известны также как логические блоки. Допустимое количество блоков каждого типа и допустимая

142

длина блоков зависят от CPU.

ФУНКЦИИ (FC)

Функции (FC) относятся к блокам, которые вы программируете сами. Функция – это логический блок "с памятью". Временные переменные, принадлежащие FC, хранятся в стеках локальных данных. После того как FC выполнена, эти данные теряются. Чтобы хранить эти данные постоянно, функции могут также использовать разделяемые (глобальные) блоки данных.

Так как FC не имеет собственной памяти, то вы всегда должны определять для нее фактические параметры. Для локальных данных FC нельзя назначать начальные значения.

Применение

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

для возврата значения функции в вызывающий блок (пример: математические функции);

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

Назначение фактических параметров формальным параметрам

Формальный параметр – это макет для "фактического" параметра. Фактические параметры заменяют формальные параметры при вызове функции. Вы всегда должны ставить в соответствие фактические параметры формальным параметрам FC (например, фактический параметр "E3.6" формальному параметру "Start"). Входные, выходные параметры и параметры типа вход/выход, используемые FC, хранятся как указатели на фактические параметры логического блока, который вызвал FC.

ФУНКЦИОНАЛЬНЫЕ БЛОКИ (FB)

Функциональные блоки (FB) относятся к блокам, которые вы программирует сами. Функциональный блок – это логический блок "с памятью". В качестве памяти ему назначается блок данных (экземплярный блок данных). В экземплярном DB сохраняются параметры, передаваемые FB, и статические переменные. Временные переменные хранятся в стеке локальных данных.

Данные, сохраняемые в экземплярном DB, не теряются, когда исполнение FB завершено. Однако, данные, сохраняемые в стеке локальных данных, теряются, теряются, когда исполнение FB завершено.

ПРИМЕНЕНИЕ

FB содержит программу, которая исполняется всегда, когда FB вызывается другим логическим блоком. Функциональные блоки значительно облегчают про-

143

граммирование часто встречающихся сложных функций. ФУНКЦИОНАЛЬНЫЕ БЛОКИ И ЭКЗЕМПЛЯРНЫЕ БЛОКИ ДАННЫХ

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

Вызывая более одного экземпляра FB, можно с помощью одного FB управлять более чем одним устройством. Например, FB для некоторого класса двигателей может управлять различными двигателями, используя различные наборы экземпляров данных для разных двигателей. Данные для каждого двигателя (например, скорость, накопленное время работы и т. д.) могут быть сохранены в одном или нескольких экземплярных DB.

На следующем рисунке показаны формальные параметры FB, который использует фактические параметры, сохраненные в экземплярном DB.

Формальныепараметры

Фактическиепараметры

Старт

INT

IN

IN

Целое (16бит): пуск

Скорость

INT

Целое (16бит): скорость

История DT IN_OUT

Время_работы TIME IN_OUT

Дата и время (48 бит):

 

 

 

 

 

указательнаадресистории

 

 

 

 

 

Время (32 бита): времяработы

FB20: Двигатель

DB202:Двигатель _2

Переменные, имеющие тип данных FB

Если ваша пользовательская программа структурирована таким образом, что некоторый FB содержит вызовы других, уже существующих функциональных блоков, вы можете включить FB, подлежащие вызову, в таблицу писания переменных вызывающего блока в качестве статических переменных, имеющих тип данных FB. Этот способ позволяет вам "вкладывать" переменные и концентрировать экземпляры данных в одном блоке данных (мультиэкземплярном).

Области памяти и их функции

Большинство операндов в AWL обращаются к областям памяти. В следующей таблице перечислены области памяти и описаны функции каждой области.

Имя об-

 

Доступ к области че-

Со-

Функция области

рез единицы сле-

кра-

ласти

щение

 

 

дующего размера:

 

 

 

 

 

Вход об-

В начале цикла сканирования операционная

Входной бит

I

144

Имя об-

 

Доступ к области че-

Со-

Функция области

рез единицы сле-

кра-

ласти

щение

 

 

дующего размера:

 

 

 

 

 

 

раза про-

система считывает входы из процесса и за-

Входной байт

 

IB

цесса

писывает эти значения в эту область. Про-

Входное слово

 

IW

 

грамма может использовать эти значения

Входное двойное

ID

 

при циклической обработке.

 

слово

 

 

 

 

 

 

Выход

При выполнении цикла сканирования про-

Выходной бит

 

Q

образа

грамма рассчитывает выходные значения и

Выходной байт

 

QB

процесса

помещает их в эту область. В конце цикла

Выходное слово

 

QW

 

сканирования операционная система считы-

Выходное двойное

QD

 

вает рассчитанные выходные значения из

слово

 

 

 

этой области и передает их на выходы про-

 

 

 

цесса.

 

 

 

Битовая

Эта область предоставляет место для хране-

Бит памяти (меркер)

M

память

ния промежуточных результатов, рассчи-

Байт памяти (меркерный

MB

 

танных в программе.

байт)

 

 

 

 

Слово памяти (меркер-

MW

 

 

ное слово)

 

 

 

Двойное слово памяти

MD

 

 

(двойное меркерное сло-

 

 

во)

 

 

Перифе-

Эта область обеспечивает прямой доступ

Периферийный вход-

PIB

рия:

программе пользователя к модулям ввода и

ной байт

 

 

внешний

вывода (т.е., к периферийным входам и вы-

Периферийное

вход-

PIW

вход

ходам).

ное слово

 

 

 

 

 

 

 

Периферийное

вход-

PID

 

 

ное двойное

 

 

 

 

слово

 

 

Перифе-

 

Периферийный

вы-

PQB

рия:

 

ходной байт

 

 

внешний

 

Периферийное

вы-

PQW

выход

 

ходное слово

 

 

 

 

Периферийное

вы-

PQD

 

 

ходное двойное

 

 

 

 

слово

 

 

Таймеры

Таймеры – это функциональные элементы

Таймер (T)

 

T

 

программирования на AWL. Эта область

 

 

 

 

предоставляет место для хранения таймер-

 

 

 

 

ных ячеек. В этой области генератор такто-

 

 

 

 

вых импульсов обращается к ячейкам вре-

 

 

 

 

мени, чтобы обновить их путем уменьшения

 

 

 

 

значения времени, а таймерные команды

 

 

 

 

получают доступ к ячейкам времени.

 

 

 

Счетчики

Счетчики – это функциональные элементы

Счетчик (C)

 

C

145

Имя об-

 

Доступ к области че-

Со-

Функция области

рез единицы сле-

кра-

ласти

щение

 

 

дующего размера:

 

 

 

 

 

 

программирования на AWL. Эта область

 

 

 

предоставляет место для хранения счетчи-

 

 

 

ков. Операции счета получают доступ к ним

 

 

 

здесь.

 

 

Блок

Эта область содержит данные, к которым

Блок данных, откры-

 

данных

можно обратиться из любого блока. Если

тый оператором

 

 

вам нужно иметь два различных блока дан-

«OPN DB»:

 

 

ных, открытых одновременно, то один из

 

 

 

них можно открыть оператором «OPN DB»,

Бит данных

DBX

 

а второй – оператором «OPN DI». Благодаря

 

этому CPU может отличить, к какому из

Байт данных

DBB

 

двух блоков данных хочет обратиться про-

Слово данных

DBW

 

грамма, когда открыты оба блока. Хотя вы

Двойное слово дан-

DBD

 

можете использовать оператор «OPN DI»

ных

 

 

для открытия любого блока данных, этот

 

 

 

 

 

оператор в основном используется для от-

Блок данных, откры-

 

 

крытия экземплярных блоков данных, свя-

 

 

занных с функциональными блоками (FB) и

тый оператором

 

 

системными функциональными блоками

«OPN DI»:

 

 

(SFB). За дополнительной информацией о

Бит данных

DIX

 

FB, SFB и экземплярных блоках данных об-

Байт данных

DIB

 

ращайтесь к оперативной справке STEP 7.

Слово данных

DIW

 

 

 

 

Двойное слово дан-

DID

 

 

ных

 

Локаль-

Эта область содержит временные данные,

Бит временных ло-

L

ные

используемые внутри логического блока

кальных данных

 

данные

(OB, FB или FC). Эти данные называются

Байт временных ло-

LB

 

также динамическими локальными данны-

кальных данных

 

 

ми. Они служат в качестве промежуточного

LW

 

буфера. Когда логический блок завершает

Слово временных

 

работу, эти данные теряются. Эти данные

локальных данных

 

 

хранятся в стеке локальных данных (L-

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

LD

 

стек).

менных локальных

 

 

 

данных

 

ТЕМА 18

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

146

ОПЕРАЦИОННАЯ СИСТЕМА

Каждый CPU содержит операционную систему, которая организует все функции и последовательности в CPU, не связанные с конкретной задачей управления. Задачи операционной системы состоят в следующем:

обработка "теплого" и "горячего" перезапуска;

обновление таблицы образа процесса для входов и вывод таблицы образа процесса для выходов;

вызов программы пользователя;

обнаружение прерываний и вызов ОВ прерываний;

обнаружение и обработка ошибок;

управление областями памяти;

обмен информацией с устройствами программирования и другими коммуникационными партнерами.

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

ПРОГРАММА ПОЛЬЗОВАТЕЛЯ

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

определение условий для "теплого" и "горячего" перезапуска в CPU (например, инициализация сигналов с определенным значением);

обработка данных процесса (например, логическая комбинация двоичных сигналов, считывание и анализ аналоговых сигналов, задание двоичных сигналов для вывода, вывод аналоговых значений);

определение реакции на прерывания;

обработка нарушений в нормальном исполнении программы.

БУЛЕВА БИТОВАЯ ЛОГИКА Булева битовая логика используется в следующих основных командах:

И (A) и ее инверсная форма И-НЕ (AN);

ИЛИ (O) и ее инверсная форма ИЛИ-НЕ (ON);

Исключающее ИЛИ (X) и ее инверсная форма, Исключающее ИЛИ-НЕ

(XN).

Эти команды выполняют следующие основные функции:

Они опрашивают состояние сигнала операнда, чтобы выяснить активизирован операнд «1» или нет «0»;

Они опрашивают состояние сигнала таймера или счетчика, чтобы выяснить, установлен ли он в «0» (значение = 0) или в «1» (значение > 0);

Бит FC определяет результат логической операции (RLO):

147

Если FC равен 0, то результат опроса состояния остается неизменным и будет сохранен в RLO (начало логической цепи);

Если FC равен 1, то результат опроса состояния будет логически скомбинирован с логической командой (A, O, X) в соответствии с таблицей истинности и будет сохранен в RLO.

Таблица истинности внутри булевой логической цепи

Мнемоника

Команда

RLO перед

Состояние

Результат в

 

 

командой

операнда

RLO

A

И

0

0

0

 

 

0

1

0

 

 

1

0

0

 

 

1

1

1

AN

И-НЕ

0

0

0

 

 

0

1

0

 

 

1

0

1

 

 

1

1

0

O

ИЛИ

0

0

0

 

 

0

1

1

 

 

1

0

1

 

 

1

1

1

ON

ИЛИ-НЕ

0

0

1

 

 

0

1

0

 

 

1

0

1

 

 

1

1

1

X

Исключающее ИЛИ

0

0

0

 

 

0

1

1

 

 

1

0

1

 

 

1

1

0

XN

Исключающее ИЛИ-НЕ

0

0

1

 

 

0

1

0

 

 

1

0

0

 

 

1

1

1

Операнды основных функций

Операнд команды может быть битом, таймером или счетчиком.

Команда обращается к операнду с помощью одного из следующих видов адресации:

Идентификатор операнда и адрес внутри области памяти, определяемой идентификатором операнда (см. таблицы 18.1 и 18.2).

Бит, таймер или счетчик, передаваемый в качестве параметра (см. табл.

148

18.3).

 

 

 

 

 

 

 

 

Табл. 18.1

Идентификатор

Максимальный диапазон адресов в соответствии с видом адре-

операнда

 

 

сации

 

Прямая

Косвенная

Косвенная через регистр,

 

 

через память

внутри области

I

от 0.0 до

[DBD]

от 0 до

AR1, P#байт.бит]

Q

65 535.7

[DID]

65 532

[AR2, P#байт.бит]

 

 

[LD]

 

от 0.0 до 8 191.7

 

 

[MD]

 

M

от 0.0 до

[DBD]

от 0 до

AR1, P#байт.бит]

 

65 535.7

[DID]

65 532

[AR2, P#байт.бит]

 

 

[LD]

 

от 0.0 до 8 191.7

 

 

[MD]

 

DBX

от 0.0 до

[DBD] от 0 до

AR1, P#байт.бит]

DIX

65 535.7

[DID]

65 532

[AR2, P#байт.бит]

L

 

[LD]

 

от 0.0 до 8 191.7

 

 

[MD]

 

 

 

 

 

Табл. 18.2.

Идентификатор операнда

Максимальный диапазон адресов в соответствии с

 

 

видом адресации

 

 

Прямая

 

Косвенная через память

T

от 0 до 65 535

 

[DBW]

от 0 до 65 534

C

 

 

[DIW]

 

 

 

[LW]

 

 

 

 

[MW]

 

 

Табл. 18.3.

Операнд

Формат адресного параметра

Символическое имя

Бит, таймер или счетчик, передаваемый

 

как параметр

АНАЛИЗ УСЛОВИЙ С ПОМОЩЬЮ И, ИЛИ И ИСКЛЮЧАЮЩЕГО ИЛИ

Спомощью битовых логических команд можно опрашивать биты слова состояния CC 0, CC 1, BR, OV и OS. На эти биты оказывают влияние следующие команды

(табл. 18.4).

Табл. 18.4

149

Типы команд

Команда

Арифметика с фиксированной точкой

)I, *I, /I,<I, )D, *D, /D,<D, MOD

Операции сравнения (арифметика с

==I, <>I, <I, <=I, >I, >=I, ==D, <>D, <D,

фиксированной точкой)

<=D,>D, >=D

Арифметика с плавающей точкой

)R, *R,<R , /R, SQRT, SQR, LN, EXP,

 

SIN, COS, TAN, ASIN, ACOS, ATAN

Сравнение чисел с плавающей точкой

==R, <>R, <R, <=R, >R, >=R

Преобразование

BTI, BTD, RND, RND*, RND), TRUNC,

 

NEGI, NEGD

Функции сдвига и циклического сдви-

SLW, SRW, SLD, SRD, SSI, SSD, RLD,

га

RRD, RLDA, RRDA

Логические операции со словами

AW, OW, XOW, AD, OD, XOD

Скобочные выражения

)

Сохранение RLO в регистре BR

SAVE

Логическое управление

JCB, JNB, SPS

Управление программой

BEB, BE, BEA, CC, UC

Передача

T STW

Отношение результата к 0

Комбинация битов CC 1 и CC 0 в слове состояния может быть легко опрошена с помощью «замещающих операндов» (например, >0, ==0, <0 и т.д.). Табл. 18.5 показывает связь между различными комбинациями битов и упрощенным опросом. Например, вы можете опросить комбинацию CC 1 = 0 и CC 0 = 1 в команде И с помощью A <0.

 

 

Табл. 18.5

Если имеет место следующая комбинация сигналов

то опрос может происхо-

в слове состояния,

дить с помощью

состояние сигнала CC 1

состояние сигнала CC 0

 

1

0

> 0

0

1

< 0

0 или 1

1 или 0

<> 0

1 или 0

0 или 0

>= 0

0 или 0

1 или 0

<= 0

0

0

= = 0

1

1

UO

Пример

L +10 Загрузить целое число 10 в младшее слово аккумулятора 1 в качестве нижней границы.

L MW30 Загрузить значение слова памяти MW30 в младшее слово акку- мулятора 1, передав целое значение 10 в младшее слово аккуму-

150

 

лятора 2.

<=I

10 меньше или равно значению MW30? Если да, то установить

 

RLO в 1; иначе сбросить RLO в 0.

L +100

Загрузить целое число 100 в младшее слово аккумулятора 1 в ка-

 

честве верхней границы, передав значение MW30, сохраненное в

 

младшем слове аккумулятора 1, в младшее слово аккумулятора

 

2.

-I

Вычесть 100 из значения MW30. Результат устанавливает CC 1 и

 

CC 0 в соответствии с битовой комбинацией, показывающей от-

 

ношение результата к 0 (см. табл. 5.5). RLO не меняется.

А <=0

В соответствии с битовой комбинацией в CC 1 и CC 0, выполня-

 

ется ли условие <= 0? Да дает 1; нет дает 0 (см. табл. 5.5). Ском-

 

бинировать эту 1 или этот 0 с RLO в соответствии с таблицей ис-

 

тинности для И, сохранить результат в бите RLO.

= Q 4.0

Записать значение RLO как состояние сигнала выхода Q 4.0. Че-

 

рез катушку на выходе Q 4.0 протекает ток (она имеет состояние

 

сигнала 1), если значение MW30 больше или равно 10 и меньше

 

или равно 100.

 

 

Булевы битовые логические команды могут также дать программе возможность реагировать на ситуацию, когда результат арифметической операции над числами с плавающей точкой является недопустимым, так как одно из чисел не является допустимым числом с плавающей точкой (недопустимо, UO). Команда опрашивает состояние сигнала битов CC1 и CC0 слова состояния (см. табл. 18.5).

ТЕМА 19

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

ОРГАНИЗАЦИОННЫЕ БЛОКИ И СТРУКТУРА ПРОГРАММЫ

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

Тип прерыва-

Организационный

Приоритет

См. также

ния

блок

(по умолча-

 

 

 

нию)

 

151

Тип прерыва-

Организационный

Приоритет

См. также

ния

 

блок

(по умолча-

 

 

 

 

 

нию)

 

Главный про-

OB1

 

 

1

Организационный блок

граммный

 

 

 

 

для циклической обработ-

цикл

 

 

 

 

ки программы (OB1)

Прерывания

OB10 OB17

2

Организационные блоки

по времени

 

 

 

 

прерываний по времени

суток

 

 

 

 

(OB10 OB17)

Прерывания с

OB20

 

 

3

Организационные блоки

задержкой

OB21

 

 

4

прерываний с задержкой

 

OB22

 

 

5

(OB20 OB23)

 

OB23

 

 

6

 

Циклические

OB30

 

 

7

Организационные блоки

прерывания

OB31

 

 

8

циклических прерываний

 

OB32

 

 

9

(OB30 OB38)

 

OB33

 

 

10

 

 

OB34

 

 

11

 

 

OB35

 

 

12

 

 

OB36

 

 

13

 

 

OB37

 

 

14

 

 

OB38

 

 

15

 

Аппаратные

OB40

 

 

16

Организационные блоки

прерывания

OB41

 

 

17

аппаратных прерываний

 

OB42

 

 

18

(OB40 OB47)

 

OB43

 

 

19

 

 

OB44

 

 

20

 

 

OB45

 

 

21

 

 

OB46

 

 

22

 

 

OB47

 

 

23

 

Мультипро-

OB60

Многопроцес-

25

Многопроцессорный ре-

цессорное

сорный режим

 

жим –Синхронная работа

прерывание

 

 

 

 

нескольких CPU

 

 

 

 

Ошибки ре-

OB70 Ошибка резервиро-

25

Организационные блоки

зервирования

вания ввода/вывода

 

 

обработки ошибок (OB70

OB72 Ошибка резер-

 

(только в Н-

 

OB87 / OB121 OB122)

системах)

вирования CPU

28

 

Асинхронные

OB80

Временная

26

Организационные блоки

ошибки

ошибка

(или 28, если

обработки ошибок (OB70

 

OB81 Ошибка по пи-

ОВ асин-

OB87 / OB121 OB122)

 

танию

 

 

хронных

 

 

OB82

Диагностиче-

ошибок су-

 

152

Тип прерыва-

Организационный

Приоритет

См. также

ния

 

блок

(по умолча-

 

 

 

 

нию)

 

 

ское прерывание

ществует в

 

 

OB83 Ошибка уста-

программе

 

 

новки/ удаления мо-

запуска)

 

 

дуля

 

 

 

 

OB84

Аппаратная

 

 

 

неисправность CPU

 

 

 

OB85 Ошибка класса

 

 

 

приоритета

 

 

 

OB86 Неисправность

 

 

 

стойки

 

 

 

 

OB87 Ошибка связи

 

 

Фоновый

OB90

 

29 1)

Фоновый организацион-

цикл

 

 

 

ный блок (OB90)

Запуск

OB100

Теплый рес-

27

Организационные блоки

 

тарт

 

 

запуска

 

OB101 Горячий рес-

27

(OB100/OB101/OB102)

 

тарт

 

 

 

 

OB102

Холодный

27

 

 

рестарт

 

 

 

Синхронные

OB121 Ошибка про-

Приоритет

Организационные блоки

ошибки

граммирования

ОВ, вызвав-

обработки ошибок (OB70

 

OB122 Ошибка дос-

шего ошиб-

OB87 / OB121 OB122)

 

тупа

 

ку

 

1) Класс приоритета 29 соответствует приоритету 0,29. Фоновый цикл имеет более низкий приоритет, чем свободный цикл.

ОРГАНИЗАЦИОННЫЙ БЛОК ДЛЯ ЦИКЛИЧЕСКОЙ ОБРАБОТКИ ПРОГРАМ-

МЫ (OB1)

Циклическая обработка программы – это "стандартный" тип исполнения программы в программируемых логических контроллерах. Операционная система вызывает ОВ1 циклически, и этим вызовом она начинает циклическое исполнение программы пользователя.

ПОСЛЕДОВАТЕЛЬНОСТЬ ЦИКЛИЧЕСКОЙ ОБРАБОТКИ ПРОГРАММЫ В следующей таблице показаны фазы циклической обработки программы:

Шаг

Последовательность

в сущест-

Последовательность в новых CPU (с

 

вующих CPU

 

10/98)

153

Шаг

Последовательность

в сущест-

Последовательность в новых CPU (с

 

вующих CPU

 

 

10/98)

 

1.

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

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

система запускает

 

время контроля цикла.

время контроля цикла.

2.

CPU считывает состояния входов

CPU записывает значения из таблицы

 

модулей ввода и обновляет таб-

образа процесса на выходах в модули

 

лицу образа процесса на входах.

вывода.

 

3.

CPU

обрабатывает

программу

CPU считывает

состояния входов

 

пользователя и исполняет со-

модулей ввода и обновляет таблицу

 

держащиеся в ней команды.

образа процесса на входах.

4.

CPU

записывает

значения из

CPU обрабатывает программу поль-

 

таблицы образа процесса на вы-

зователя и исполняет содержащиеся

 

ходах в модули вывода.

в ней команды.

 

5.

В конце цикла

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

В конце цикла операционная систе-

 

системы выполняет все ждущие

мы выполняет все ждущие своей

 

своей очереди задачи, например,

очереди задачи, например, загрузка и

 

загрузка и удаление блоков, при-

удаление блоков, прием и передача

 

ем и передача глобальных дан-

глобальных данных.

 

ных.

 

 

 

 

 

6.

Наконец, CPU возвращается к

Наконец, CPU возвращается к началу

 

началу цикла и

перезапускает

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

 

время контроля цикла.

ля цикла.

 

ОБРАЗ ПРОЦЕССА

Чтобы в CPU во время циклической обработки программы находился непротиворечивый образ сигналов процесса, CPU обращается не непосредственно к адресным областям входов (I) и выходов (Q) на модулях ввода/вывода, а к области внутренней памяти CPU, содержащей образ входов и выходов.

ПРОГРАММИРОВАНИЕ ЦИКЛИЧЕСКОЙ ОБРАБОТКИ ПРОГРАММЫ

Циклическая обработка программы программируется записью программы пользователя в ОВ1 и в блоки, вызываемые внутри ОВ1 с помощью

STEP 7.

Циклическая обработка программы начинается, как только завершается без ошибок программа запуска.

ПРЕРЫВАНИЯ Циклическая обработка программы может быть прервана в результате:

прерывания

команды STOP (переключатель выбора режимов, опция меню на устройстве программирования, SFC46 STP, SFB20 STOP)

выхода из строя питания

появления неисправности или ошибки в программе

154

ВРЕМЯ ВЫПОЛНЕНИЯ ЦИКЛА

Время выполнения цикла – это время, необходимое операционной системе для выполнения циклической программы и всех программных секций, прерывающих цикл (например, выполнение других организационных блоков), и системных операций (например, обновления образа процесса). Это время контролируется.

Время выполнения цикла (TC) не одинаково в каждом цикле. На следующих рисунках показаны различные времена выполнения циклов (TC1 TC2) для существующих и новых CPU:

Различные времена выполнения цикла для существующих CPU

 

Текущий цикл

Следующий цикл

Следующий

 

 

TЦ1

 

 

TЦ2

 

цикл

Обновление таб-

 

OB10

Обновление таб-

Обновление таб-

 

Обновление таб-

Обновление таб-

OB1

лицы образа про-

OB1

лицы образа про-

лицы образа про-

OB1

лицы образа про-

лицы образа про-

цесса на входах

OB1цесса на выходах

цесса на входах

цесса на выходах

цесса на входах

МАКСИМАЛЬНОЕ ВРЕМЯ ЦИКЛА

С помощью STEP 7 вы можете изменить максимальное время цикла, установленное по умолчанию. Когда это время истекает, или CPU переходит в режим STOP, или вызывается ОВ80, в котором вы можете определить, как CPU должен реагировать на эту ошибку.

МИНИМАЛЬНОЕ ВРЕМЯ ЦИКЛА

С помощью STEP 7 вы можете установить минимальное время цикла для S7-400 и CPU 318. Это полезно в следующих ситуациях:

если интервал, с которым запускается исполнение программы в ОВ1 (проход главной программы), всегда должен быть одним и тем же;

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

ПРЕДВАРИТЕЛЬНО ЗАПРОГРАММИРОВАННЫЕ БЛОКИ

У вас нет необходимости программировать каждую функцию самостоятельно. CPU S7 предоставляют в ваше распоряжение заранее запрограммированные блоки, которые вы можете вызывать в своей пользовательской программе.

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

155

СИСТЕМНЫЕ ФУНКЦИОНАЛЬНЫЕ БЛОКИ

Системный функциональный блок (SFB) – это функциональный блок, встроенный в CPU S7. SFB являются частью операционной системы и не загружаются как часть программы пользователя. Как и FB, SFB – это блоки "с памятью". Для SFB тоже нужно создавать экземплярные блоки данных и загружать их в CPU как часть программы.

CPU S7 предоставляют в распоряжение следующие SFB:

для связи через проектируемые соединения;

для встроенных специальных функций (например, SFB29 ”HS_COUNT"

на CPU 312 IFM и CPU 314 IFM).

СИСТЕМНЫЕ ФУНКЦИИ

Системная функция – это заранее запрограммированная, оттестированная функция, встроенная в CPU S7. Вы можете вызвать SFC в своей программе. SFC являются частью операционной системы и не загружаются как часть программы. Как и FC, SFC являются блоками "без памяти".

CPU S7 предоставляют SFC для следующих функций:

копирование и блочные функции;

контроль программы;

работа с часами и счетчиками рабочего времени;

передача наборов данных;

передача событий из CPU всем остальным CPU в мультипроцессорном

режиме;

обработка прерываний по времени и с задержкой;

обработка синхронных и асинхронных ошибок;

информация о статических и динамических системных данных, например, диагностика;

обновление образа процесса и обработка битовых массивов;

адресация модулей;

децентрализованная периферия;

связь с помощью глобальных данных;

связь через не спроектированные соединения;

генерирование сообщений, относящихся к блокам.

ОРГАНИЗАЦИОННЫЕ БЛОКИ ДЛЯ ОБРАБОТКИ ПРОГРАММ, УПРАВЛЯЕМОЙ ПРЕРЫВАНИЯМИ

Предоставляя ОВ прерываний, CPU s7 обеспечивают следующие возможности:

секции программы могут исполняться в определенные моменты времени или через определенные интервалы (управление по времени);

ваша программа может реагировать на внешние сигналы от процесса.

156

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

Типы и применения прерываний Следующая таблица показывает, как могут быть использованы различные

типы прерываний.

Тип прерывания

ОВ прерываний

Примеры применения

Прерывание по вре-

OB10 OB17

Расчет общего расхода жидкости в

мени

 

процессе смешивания к концу смены

Прерывание с за-

OB20 OB23

Управление вентилятором, который

держкой

 

должен продолжать работать в тече-

 

 

ние 20 с после выключения двигателя

Циклическое преры-

OB30 OB38

Опрос уровня сигнала для системы

вание

 

управления по замкнутому контуру

Аппаратное преры-

OB40 OB47

Сообщение о достижении максималь-

вание

 

ного уровня в резервуаре

ТЕМА 20

Системы счисления, константы с фиксированной точкой, константы с плавающей точкой, константы счетчика и константы таймера, загрузка, перенос, загрузка числовых значений, загрузка параметров времени, RS и SR триггеры, детекторы фронтов, запоминание промежуточных результатов, D-триггер, триггер со счетным входом, установка входов.

При составлении программ пользователя могут использоваться различные формы представления числовых данных: двоичная, десятичная, шестнадцатиричная и BCD формат.

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

Команды L и T производят обмен информацией через аккумулятор. Команда L записывает (загружает) содержимое своего исходного адреса в аккумулятор 1, сдвигая всю уже содержащуюся там информацию в аккумулятор 2. Старое содержимое аккумулятора 2 заменяется. Команда Т копирует содержимое аккумулятора 1 и записывает его в соответствующую целевую память. Так как команда Т только копирует информацию, находящуюся в аккумуляторе 1, то она остается доступной для других команд.

Команды L и T могут обрабатывать информацию байтами (8 битов), слова-

157

ми (16 битов) и двойными словами (32 бита).

Аккумулятор содержит 32 бита. Данные длиной менее 32 битов располагаются в аккумуляторе справа. Остальные биты аккумулятора заполняются нулями.

Команда L может обращаться к константам в 8, 16 и 32 бита, а также к символам ASCII. Этот вид адресации называется непосредственной адресацией.

Операнд

Пример

 

Пояснение

 

±

L +5

Загружает 16-битовую целую константу в

 

 

аккумулятор 1.

 

 

B#(..,..)

L B#(1,10)

Загружает константу как 2 байта в акку-

 

 

мулятор 1. (В этом примере 10 поступает

 

 

в младший байт младшего слова аккуму-

 

 

лятора 1; 1 поступает в старший байт

 

 

младшего слова аккумулятора 1)

 

L B#(1,10,5,4)

Загружает константу как 4 байта в акку-

 

 

мулятор 1. (В этом примере 4 и 5 посту-

 

 

пают соответственно в младший и стар-

 

 

ший байт младшего слова аккумулятора

 

 

1; 10 и 1 поступают соответственно в

 

 

младший и старший байт старшего слова

 

 

аккумулятора)

 

 

L#..

L #+5

Загружает 32–битовую целую константу в

 

 

аккумулятор 1.

 

 

16#..

L B#16#EF

Загружает 8–битовую шестнадцтиричную

 

 

константу в аккумулятор 1.

 

 

L W#16#FAFB

Загружает 16–битовую шестнадцтирич-

 

 

ную константу в аккумулятор 1.

 

 

L DW#16#1FFE_1ABC

Загружает 32–битовую шестнадцтирич-

 

 

ную константу в аккумулятор 1.

 

2#..

L 2#1111_0000_1111_0000

Загружает 16–битовую двоичную кон-

 

L 2#1111_0000_1111_

станту в аккумулятор 1.

 

 

Загружает 32–битовую двоичную кон-

 

0000_1111_0000_1111_0000

 

станту в аккумулятор 1.

 

’..’

L ’AB’

Загружает 2 символа в аккумулятор 1.

 

L ’ABCD’

Загружает 4 символа в аккумулятор 1.

C#..

L C#1000

Загружает 16–битовую константу счетчи-

 

 

ка в аккумулятор 1.

 

S5TIME#..

L S5TIME#2S

Загружает

16–битовую

константу

 

 

S5TIME в аккумулятор 1.

 

..

L 1.0E+5

Загружает 32–битовое число с плавающей

 

 

точкой в формате IEEE в аккумулятор 1.

P#..

L P#I1.0

Загружает 32–битовый указатель в акку-

158

Операнд

Пример

Пояснение

 

 

L P##Start

мулятор 1.

 

 

Загружает 32–битовый указатель на ло-

 

 

 

кальную переменную (Start) в аккумуля-

 

 

 

тор 1

 

 

L P#ANNA

Загружает указатель на указанный пара-

 

 

 

метр в аккумулятор 1. (Эта команда за-

 

 

 

гружает относительное смещение адреса

 

 

 

указанного параметра. Для определения

 

 

 

абсолютного смещения в экземплярном

 

 

 

блоке данных функционального блока с

 

 

 

мультиэкземплярами к этому значению

 

 

 

должно быть добавлено содержимое ре-

 

 

 

гистра AR2).

 

D#..

L D#1994–3–15

Загружает 16–битовую дату в аккумуля-

 

 

 

тор 1.

 

T#..

L

Загружает 32–битовое значение времени

 

 

T#0D_1H_1M_0S_0MS

в аккумулятор 1.

 

TOD#..

L TOD#1:10:3.3

Загружает 32–битовое значение времени

 

 

 

суток в аккумулятор 1.

 

Используя команды загрузки

L Tn и L Cm, где n и m номер таймера

или счетчика, можно считать двоичное значение времени (счета) и загрузить его в младшее слово аккумулятора 1. Этот вид загрузки называют прямой загрузкой.

Основной особенность этой команды является то, что при считывании значения таймера, вы получаете только число в диапазоне 0…999. Значение базы таймера при этом не загружается.

Команды LС Tn и LС Cm, где n и m номер таймера или счетчика, позволяют загрузить в младшее слово аккумулятора 1 значение времени (счета) в ВСD коде.

Следующие команды можно использовать для преобразования чисел, представленных в двоично-десятичном коде, и целых чисел в другие виды чисел:

Мнемоника

Команда

Функция

BTI

BCD в целое

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

 

 

слове аккумулятора 1 число, представленное в

 

 

двоично-десятичном коде, в 16-битовое целое

 

 

число.

BTD

BCD в двойное

команда преобразует находящееся в аккуму-

 

целое

ляторе 1 число, представленное в двоично-

 

 

десятичном коде, в 32–битовое целое число.

ITB

Целое в BCD

команда преобразует 16–битовое целое число

159

Мнемоника

Команда

Функция

 

 

 

в младшем слове аккумулятора 1 в двоично-

 

 

 

десятичное число.

ITD

Целое в

двойное

команда преобразует 16–битовое целое число

 

целое

 

в младшем слове аккумулятора 1 в 32–битовое

 

 

 

целое число.

DTB

Двойное

целое

команда преобразует 32–битовое целое число

 

число в BCD

в аккумуляторе 1 в двоично-десятичное число.

DTR

Двойное

целое

команда преобразует 32–битовое целое число

 

число в

вещест-

в аккумуляторе 1 в 32– битовое число с пла-

 

венное

 

вающей точкой в формате IEEE (веществен-

 

 

 

ное число).

BCD в целое: BTI

Команда BCD в целое (BTI) преобразует трехразрядное число, записанное в двоично-десятичном коде (BCD-число, см. рис. 12.1) в младшем слове аккумулятора 1 в 16–битовое целое число. BCD-число может находиться в диапазоне от – 999 до +999. Результат преобразования сохраняется в младшем слове аккумулятора 1.

15

14

13

12

11

10

9

8

7

6

5

 

4

3

2

1

 

0

s

s

s

s

n

n

n

n

n

n

n

n

n

n

n

n

 

 

 

 

 

сотни

 

 

десятки

 

 

единицы

 

Значение BCD числа

эти биты при преобразовании не используются

Знак: 0000 для положительного числа, 1111 – для отрицательного

Если какой-либо разряд BCD–числа находится в недопустимом диапазоне между 10 и 15, то при попытке преобразования возникает ошибка BCDF. Имеет место один из следующих случаев:

CPU переходит в состояние STOP. В диагностический буфер вносится запись «BCD Conversion Error [Ошибка BCD-преобразования]» с идентификатором события номер 2521;

Если запрограммирован OB121, то он вызывается.

BCD в двойное целое: BTD

Команда BCD в двойное целое (BTD) преобразует семиразрядное число, записанное в двоично-десятичном коде (BCD–число) в аккумуляторе 1 в 32–

160

битовое целое число. BCD–число может находиться в диапазоне от –9 999 999 до +9 999 999. Результат преобразования сохраняется в аккумуляторе 1.

Если какой-либо разряд BCD–числа находится в недопустимом диапазоне между 10 и 15, то при попытке преобразования возникает ошибка BCDF. Имеет место один из следующих случаев:

CPU переходит в состояние STOP. В диагностический буфер вносится запись «BCD Conversion Error [Ошибка BCD-преобразования]» с идентификатором события номер 2521;

Если запрограммирован OB121, то он вызывается.

Целое в BCD: ITB

Команда Целое в BCD (ITB) преобразует 16–битовое целое число, находящееся в младшем слове аккумулятора 1 в трехразрядное число, записанное в дво- ично-десятичном коде. BCD–число может находиться в диапазоне от–999 до +999. Результат преобразования сохраняется в младшем слове аккумулятора 1.

Если целое число слишком велико, чтобы быть представленным в формате BCD, то преобразование не производится, биты переполнения (OV) и сохраняемого переполнения (OS) в слове состояния устанавливаются в 1.

Целое в двойное целое: ITD

Команда Целое в двойное целое (ITD) преобразует 16–битовое целое число, находящееся в младшем слове аккумулятора 1, в 32–битовое целое число. Результат преобразования сохраняется в аккумуляторе 1.

Двойное целое в BCD: DTB

Команда Двойное целое в BCD (DTB) преобразует 32–битовое целое число, находящееся в аккумуляторе 1, в семиразрядное число, записанное в двоичнодесятичном коде. BCD–число может находиться в диапазоне от –9 999 999 до +9 999 999. Результат преобразования сохраняется в аккумуляторе 1.

Если двойное целое число велико, чтобы быть представленным в формате BCD, то преобразование не выполняется, биты переполнения (OV) и сохраняемого переполнения (OS) в слове состояния устанавливаются в 1.

Двойное целое в вещественное: DTR

Команда Двойное целое в вещественное (DTR) преобразует 32–битовое целое число, находящееся в аккумуляторе 1 в 32–битовое число с плавающей точкой в формате IEEE (вещественное число). Если необходимо, команда округляет результат. Результат преобразования сохраняется в аккумуляторе 1.

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

161

Мнемоника

Команда

Функция

RND

Округление

 

Эта команда округляет преобразуемое число

 

 

 

до ближайшего целого числа. Если дробная

 

 

 

часть преобразуемого числа находится точно

 

 

 

между четным и нечетным результатом, ко-

 

 

 

манда выбирает четный результат.

RND+

Округление

до

Эта команда округляет преобразуемое число

 

ближайшего

 

до наименьшего целого числа, большего или

 

большего двойно-

равного преобразуемому числу с плавающей

 

го целого числа

точкой.

Округление

до

Эта команда округляет преобразуемое число

RND

ближайшего

 

до наибольшего целого числа, меньшего или

 

 

 

меньшего

двой-

равного преобразуемому числу с плавающей

 

ного целого числа

точкой.

TRUNC

Округление

от-

Эта команда преобразует целочисленную со-

 

брасыванием

ставляющую числа с плавающей точкой.

Результат преобразования сохраняется в аккумуляторе 1. Если преобразуется число, не являющееся числом с плавающей точкой, или число с плавающей точкой, которое не может быть преобразовано в целое число (32 бита), то преобразование не выполняется и появляется указание о переполнении.

Пример.

L MD10 Загрузить значение числа с плавающей точкой (32 бита, IEEE) из двойного слова памяти MD10 в аккумулятор 1.

RND Преобразовать число с плавающей точкой (32 бита) в целое число (32 бита), округлить до ближайшего целого числа и сохранить результат в аккумуляторе 1.

T MD20 Передать результат в двойное слово памяти MD20.

MD 10

3

3

2

2

2

2

2

2

2

2

2

2

1

1

1

1

1

1

1

1

1

1

 

 

 

 

 

 

 

 

 

 

1

0

9

8

7

6

5

4

3

2

1

0

9

8

7

6

5

4

3

2

1

0

9

8

7

6

5

4

3

2

1

0

0

1

0

0

0

0

1

0

1

1

0

0

1

0

0

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

MD 20

3

3

2

2

2

2

2

2

2

2

2

2

1

1

1

1

1

1

1

1

1

1

 

 

 

 

 

 

 

 

 

 

1

0

9

8

7

6

5

4

3

2

1

0

9

8

7

6

5

4

3

2

1

0

9

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

1

0

0

1

0

0

 

Следует особенно сказать о формате числа с плавающей точкой.

Бит 31 бит знака мантиссы (значение 1 соответствует отрицательному знаку).

Биты 23 ÷ 30 порядок мантиссы. Биты 0 ÷ 22 собственно мантисса.

162

Рассмотрим представление числа 10,0 в памяти контроллера (рис. 20.1)

Десятичное значение 10,0

Шестнадцате-

 

 

 

 

 

 

4

 

 

 

 

 

 

1

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

0

 

 

 

 

 

 

0

 

 

 

 

 

 

0

 

 

 

 

 

 

0

 

 

 

 

 

 

0

 

 

 

ричное значение

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Биты

 

 

 

3

 

3

 

 

2

 

2

 

2

 

2

 

 

2

 

 

2

 

2

 

2

 

 

2

 

 

2

 

1

 

1

 

 

1

 

1

 

1

 

1

 

 

1

 

1

 

1

 

1

 

9

 

8

 

7

 

6

 

5

 

4

 

3

 

2

 

1

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

0

 

 

9

 

8

 

7

 

6

 

 

5

 

 

4

 

3

 

2

 

 

1

 

 

0

 

9

 

8

 

 

7

 

6

 

5

 

4

 

 

3

 

2

 

1

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

1

 

0

 

0

 

0

 

0

 

0

 

1

 

0

 

0

 

1

 

 

0

 

0

 

0

 

0

 

0

 

0

 

0

 

0

 

0

 

0

 

0

0

 

0

 

0

 

0

0

 

0

 

0

 

0

0

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Порядок: e (8 бит)

 

 

 

 

 

 

 

 

 

 

Мантисса (дробная часть): f

 

(23 бита)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Знак мантиссы: s (1 бит)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

e = 27 +21 =130

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f

= 22

= 0.25

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1. f

 

= 2eсмещ =1.25*2130127

=1.25*23 =10.0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 20.1. Представление числа с плавающей точкой в памяти контроллера

Знак может принимать значения "0" (положительное число) и "1" (отрицательное число). Экспонента сохраняется как константа, увеличенная на 1 (смещена на +127), так что она имеет диапазон значений от 0 до 255. Мантисса представляет собой дробную часть. Целая часть мантиссы (integer component) не хранится, так как она или всегда равна 1 (в случае нормированных чисел с плавающей запятой), или всегда равна 0 (в случае ненормированных чисел с плавающей запятой).

КОМАНДЫ ДЛЯ ОЦЕНКИ ФРОНТОВ: FP, FN

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

Следующий список операторов позволяет программе реагировать на положительный фронт импульса (рис. 20.2).

163

A I 0.0

FP M 1.0

= Q 4.0

Номер цикла

 

1

 

2

 

3

 

4

 

5

 

6

 

7

 

8

 

9

 

10

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 20.2. Программирование реакции на положительный фронт

Если программируемый логический обнаруживает положительный фронт на контакте I 1.0, он активизирует выход Q 4.0 на один цикл ОВ1. Программируемый логический контроллер сохраняет результат логической операции, выполненной командой А, в бите памяти (меркере) фронта M 1.0 и сравнивает его с RLO предыдущего цикла сканирования. (В примере на рис. 5.1 RLO оператора «A I 1.0» оказался равным состоянию сигнала входа I 1.0. Однако это не будет иметь места в каждой программе). Если текущий RLO равен 1, а RLO предыдущего цикла сканирования, сохраненный в бите M 1.0, равен 0, то оператор FP устанавливает RLO в 1. Оператор FP обнаруживает положительный фронт на контакте (т.е. изменение состояния RLO с 0 на 1). Если RLO не меняется (текущий RLO и предыдущий RLO, сохраненный в бите памяти фронта, оба равны 0 или 1), то оператор FP сбрасывает RLO в 0.

Рис. 20.3 показывает список операторов, который дает программе возможность реагировать на отрицательный фронт. Если вы используете в своей программе команду FP или FN, то бит памяти, являющийся операндом этой команды, используется FP или FN исключительно для своих собственных целей запоминания. Поэтому вы не должны использовать команды, которые могли бы изменить этот бит. В противном случае вы исказите сохраненный RLO. Это предупреждение относится ко всем областям памяти, задаваемым идентификаторами операнда.

A I 0.0

FN M 1.0

= Q 4.0

Номер цикла

1

2

3

4

5

6

7

8

9

10

 

 

 

 

 

 

 

 

 

 

Рис. 20.3. Программирование реакции на отрицательный фронт

ТЕМА 21

Сравнения “равно”, “не равно”, “больше”, “больше или равно”, “меньше”,

164

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

Команды Сравнить можyj использовать для сравнения следующих пар числовых значений:

два целых числа (16 битов);

два двойных целых числа (32 бита);

два вещественных числа.

Числовые значения, подлежащие сравнению, предварительно загружаютсяв аккумуляторы 1 и 2. Команда Сравнить сравнивает значение в аккумуляторе 1 со значением в аккумуляторе 2 в соответствии с критериями, перечисленными в табл. 21.1.

Результатом сравнения является логической величиной, т.е. 1 или 0. 1 указывает, что результат сравнения является истиной; 0 указывает, что результат сравнения является ложью. Этот результат сохраняется в бите результата логической операции (бит RLO). Этот результат вы можете использовать в своей программе для дальнейшей обработки.

Когда CPU выполняет команду сравнения, он также устанавливает биты в слове состояний. Другие команды AWL могут анализировать биты слова состояния. CPU выполняет команды сравнения независимо от результата логической операции.

 

 

Табл. 21.1

Символ (ы)

Критерий

Вид числового значения

 

для команды

сравнения

в аккумуляторах 1 и 2

 

= = I

равно

Целое число (16 бит) в младшем слове аккумулято-

 

 

 

ра 2 равно целому числу в младшем слове аккуму-

 

 

 

лятора 1.

 

= = D

равенство

Двойное целое число (32 бита) в аккумуляторе 2

 

 

 

равно двойному целому числу в аккумуляторе 1.

 

= = R

равенство

Число с плавающей точкой (32 бита, IEEE) в акку-

 

 

 

муляторе 2 равно числу с плавающей точкой (32

 

 

 

бита, IEEE) в аккумуляторе 1.

 

< > I

не равно

Целое число (16 бит) в младшем слове аккумулято-

 

 

 

ра 2 не равно целому числу в младшем слове акку-

 

 

 

мулятора 1.

 

< > D

не равно

Двойное целое число (32 бита) в аккумуляторе 2 не

 

 

 

равно двойному целому числу в аккумуляторе 1.

 

< > R

не равно

Число с плавающей точкой (32 бита, IEEE) в акку-

 

 

 

муляторе 2 не равно числу с плавающей точкой (32

 

 

 

бита, IEEE) в аккумуляторе 1.

 

> I

больше

Целое число в младшем слове аккумулятора 2

 

 

 

больше целого числа в младшем слове аккумулято-

 

165

Символ (ы)

Критерий

Вид числового значения

 

для команды

сравнения

в аккумуляторах 1 и 2

 

 

 

ра 1.

 

> D

больше

Двойное целое число в аккумуляторе 2 больше

 

 

двойного целого числа в аккумуляторе 1.

 

> R

больше

Число с плавающей точкой (32 бита, IEEE) в акку-

 

 

муляторе 2 больше числа с плавающей точкой (32

 

 

бита, IEEE) в аккумуляторе 1.

 

< I

меньше

Целое число в младшем слове аккумулятора 2

 

 

меньше целого числа в младшем слове аккумуля-

 

 

тора 1.

 

< D

меньше

Двойное целое число в аккумуляторе 2

меньше

 

 

двойного целого числа в аккумуляторе 1.

 

< R

меньше

Число с плавающей точкой (32 бита, IEEE) в акку-

 

 

муляторе 2 меньше числа с плавающей точкой (32

 

 

бита, IEEE) в аккумуляторе 1.

 

>= I

больше

Целое число в младшем слове аккумулятора 2

 

или равно

больше или равно целому числу в младшем слове

 

 

аккумулятора 1.

 

>= D

больше

Двойное целое число в аккумуляторе 2 больше или

 

или равно

равно двойному целому числу в аккумуляторе 1.

>= R

больше

Число с плавающей точкой (32 бита, IEEE) в акку-

 

или равно

муляторе 2 больше или равно числу с плавающей

 

 

точкой (32 бита, IEEE) в аккумуляторе 1.

 

<= I

меньше

Целое число в младшем слове аккумулятора 2

 

или равно

меньше или равно целому числу в младшем слове

 

 

аккумулятора 1.

 

<= D

меньше

Двойное целое число в аккумуляторе 2

меньше

 

или равно

или равно двойному целому числу в аккумуляторе

 

 

1.

 

<= R

меньше

Число с плавающей точкой (32 бита, IEEE) в акку-

 

или равно

муляторе 2 меньше или равно числу с плавающей

 

 

точкой (32 бита, IEEE) в аккумуляторе 1.

 

ОПЕРАЦИИ СО СЧЕТЧИКАМИ

Счетчик – это функциональный элемент языка программирования STEP 7, предназначенный для счета.

Счетчики имеют зарезервированную область памяти в CPU. Эта область памяти резервирует одно 16-битовое слово для каждого счетчика.

Набор команд списка операторов поддерживает 256 счетчиков. Количество счетчиков, доступных в CPU, описано в технических данных CPU.

Операции со счетчиками являются единственными функциями, имеющими

166

доступ к области памяти, зарезервированной для счетчиков.

Представление языка программирования STEP 7 в виде списка операторов предоставляет в распоряжение следующие команды:

Установка (S);

Сброс (R);

Прямой счет (CU);

Обратный счет (CD);

Разблокировка счетчика (FR);

Загрузка счетчика в одном из следующих форматов:

двоичный (L)

двоично-десятичный (LC)

Опрос состояния сигнала счетчика и логическое сопряжение результата опроса с помощью булевой логической операции (A, AN, O, ON, X, XN). Опрос состояния сигнала с помощью команды A, O или X дает результат,

равный «1», когда значение счетчика больше нуля.

Опрос состояния сигнала с помощью команды A, O или X дает результат, равный «0», когда значение счетчика равно нулю.

УСТАНОВКА, СБРОС И РАЗБЛОКИРОВКА СЧЕТЧИКА

Установка счетчика в программе на AWL возможна одним из трех операто-

ров:

Опрос состояния сигнала на равенство 0 или 1 (например, A I 2.3)

Загрузка значения счетчика (например, L C# 3) в младшее слово аккумулятора 1

Установка счетчика со значением, которое вы загрузили (например, S C 1). Эта операция пересылает значение счетчика из аккумулятора 1 в слово счетчика.

В программе на AWL изменение результата логической операции (RLO) с 0 на 1 перед командой Установить (S) устанавливает счетчик на запрограммированное счетное значение. Запрограммированное счетное значение и команда установки должны следовать сразу за логической операцией, определяющей условия установки счетчика.

Установить счетчик на определенное значение можно загрузкой этого значения в младшее слово аккумулятора 1 и, немедленно после этого, установкой счетчика. Когда вы устанавливаете в программе счетчик, CPU ищет в аккумуляторе 1 счетное значение. Затем CPU передает это счетное значение из аккумулятора 1 в слово счетчика, которое указано в операторе установки (например, S C 1). Диапазон счетных значений лежит между 0 и 999.

Пример установки счетчика

A I 2.3 Опросить состояние сигнала на входе I 2.3.

167

L C#3 Если состояние сигнала равно 1, загрузить счетное значение 3 в аккумулятор 1.

S C1 Установить счетчик C 1 на счетное значение 3. Эта операция пересылает счетное значение 3 из аккумулятора в слово счетчика 1.

Сброс счетчика

Счетчик сбрасывается с помощью команды Сбросить (R). CPU сбрасывает счетчик, когда результат логической операции равен 1 непосредственно перед командой R в вашей программе. Пока RLO перед оператором R равен 1, команда A, O или X, опрашивающая состояние сигнала счетчика, дает результат, равный 0, а команда AN, ON или XN – результат, равный 1. Когда программа сбрасывает счетчик, она очищает его, т.е. сбрасывает его значение в 0.

Если счетчик должен сбрасываться статическим сигналом на входе сброс

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

При программировании счетчиков следует придерживаться следующей последовательности:

1.Прямой счет

2.Обратный счет

3.Установка счетчика

4.Сброс счетчика

5.Опрос состояния сигнала счетчика

6.Загрузка значения счетчика (чтение значения счетчика)

Разблокировка счетчика для повторного пуска

Изменение с 0 на 1 результата логической операции перед командой Разблокировать (FR) разблокирует счетчик. CPU выполняет команду FR только при положительном фронте сигнала. Разблокировка счетчика не требуется ни для установки счетчика, ни для нормального счета. Разблокировка используется только для того, чтобы устанавливать счетчик или производить прямой или обратный счет, если перед соответствующим оператором счета требуется положительный фронт сигнала (переход из 0 в 1) и если бит RLO перед соответствующим оператором имеет состояние сигнала 1.

ПРЯМОЙ И ОБРАТНЫЙ СЧЕТ

В программе на AWL изменение результата логической операции с 0 на 1 перед командой прямого счета (CU) увеличивает счетчик. Каждый раз, когда непосредственно перед командой прямого счета появляется положительный фронт RLO, счетчик увеличивается на одну единицу. Когда счет достигает своего верхнего предела, равного 999, увеличение прекращается, и дальнейшее изменение

168

состояния сигнала на входе прямого счета никакого влияния не оказывает. Меры против переполнения (OV) не предусмотрены.

Bзменение результата логической операции с 0 на 1 перед командой обратного счета (CD) уменьшает счетчик. Каждый раз, когда непосредственно перед командой обратного счета появляется положительный фронт RLO, счетчик уменьшается на одну единицу. Когда счет достигает своего нижнего предела, равного 0, уменьшение прекращается, и дальнейшее изменение состояния сигнала на входе обратного счета никакого влияния не оказывает. Счетчик не ведет счета с отрицательными значениями.

ЗАГРУЗКА ЗНАЧЕНИЯ СЧЕТЧИКА В ВИДЕ ЦЕЛОГО ЧИСЛА

Значение счетчика хранится в слове счетчика в двоичном коде. Вы можете использовать следующую команду для считывания двоичного значения счетчика из слова счетчика и загрузки его в младшее слово аккумулятора 1:

L <слово счетчика>

Такой способ загрузки называют непосредственной загрузкой значения счетчика.

Вы можете использовать значение, содержащееся в аккумуляторе 1 в качестве результата операции загрузки L для дальнейшей обработки. Но вы не можете передать значение из аккумулятора в слово счетчика. Если вы хотите запустить счетчик с заданным счетным значением, вам нужно использовать соответствующий оператор установки счетчика.

ЗАГРУЗКА ЗНАЧЕНИЯ СЧЕТЧИКА В ДВОИЧНО-ДЕСЯТИЧНОМ ФОРМАТЕ

Значение счетчика хранится в слове счетчика в двоичном коде. Вы можете использовать следующую команду для считывания значения счетчика в двоичнодесятичном формате (BCD) и загрузки его в младшее слово аккумулятора 1:

LC <слово счетчика>

Такой способ загрузки называют загрузкой значения счетчика в формате

BCD.

Значение, которое содержится в младшем слове аккумулятора 1 в качестве результата операции LC, имеет тот же формат, который необходим для установки счетчика.

ПРИМЕР СЧЕТЧИКА

Рис. 21.1 дает пример прямого счета, обратного счета, установки и сброса счетчика, опроса состояния сигнала счетчика и загрузки значения счетчика. Пример придерживается нормальной последовательности программирования. На рисунке числа указывают на объяснения, приведенные ниже.

1.Изменение RLO с 0 на 1 на входе установки устанавливает счетчик на счетное значение 3. Переход с 1 на 0 на входе установки воздействия на счетчик не оказывает.

2.Изменение RLO с 0 на 1 на входе обратного счета уменьшает счетчик на

169

единицу. Переход с 1 на 0 на входе обратного счета воздействия на счетчик не оказывает.

3.Результат опроса состояния сигнала оператором A C 1 равен 0, когда счетное значение равно 0.

4.Изменение RLO с 0 на 1 на входе прямого счета увеличивает счетчик на единицу. Переход с 1 на 0 на входе прямого счета воздействия на счетчик не оказывает.

5.Если RLO на входе сброса равен 1, счетчик сбрасывается. Опрос состояния сигнала дает 0. Изменение RLO с 1 на 0 на входе сброса воздействия на счетчик не оказывает.

6.Изменение RLO с 0 на 1 на входе прямого счета при наличии сигнала сброса вызывает кратковременное увеличение счетчика, после чего он немедленно сбрасывается непосредственно следующим далее в программе оператором сброса. (На рис. 7.1 это кратковременное увеличение показано импульсной линией на временной диаграмме). После этого опрос состояния сигнала дает результат, равный 0.

7.Изменение RLO с 0 на 1 на входе разблокировки при наличии сигналов прямого и обратного счета заставляет счетчик кратковременно увеличиться, а затем немедленно уменьшиться из-за непосредственно следующего в программе оператора обратного счета. (На рис. 7.1 это кратковременное увеличение показано импульсной линией на временной диаграмме). Переход с 1 на 0 на входе разблокировки воздействия на счетчик не оказывает.

I 2.0

Разблокировка

 

 

 

 

 

 

 

 

 

 

 

 

7

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

I 2.1 Прямой счет

 

 

 

 

 

4

 

6

 

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

I 2.2

Обратный счет

2

 

2

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

I 2.3

Установка

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

I 2.4

Сброс

 

 

 

 

 

 

 

 

 

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Реакция счетчика

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Опрос выхода счет-

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

чика Q 4.0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 21.1. Пример команд счетчика

 

 

 

Рекомендуемая последовательность команд работы со счетчиком имеет следующий вид:

170

A

I 2.0

 

FR

C1

Разблокировать счетчик C 1.

A

I 2.1

 

CU

C1

Прямой счет (увеличение на 1).

A

I 2.2

 

CD

C1

Обратный счет (уменьшение на 1).

A

I 2.3

 

L

C#3

 

S

C1

Установить счетчик C 1.

A

I 2.4

 

R

C1

Сбросить счетчик C 1.

A

C1

Опросить состояние сигнала счетчика C 1.

=

Q 4.0

 

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

ТЕМА 22

Запуск таймера, сброс таймера, опрос таймера, режимы работы таймера, запуск таймера в различных режимах работы. Организационные блоки прерываний по времени и работа с ними.

Таймер – это элемент языка программирования STEP 7, который реализует и контролирует процессы, управляемые временем. Таймерные команды дают программе возможность выполнять следующие функции:

Обеспечение времени ожидания;

Обеспечение времен контроля. Например, программа контролирует скорость двигателя в течение 30 секунд после нажатия пусковой кнопки;

Генерирование импульсов. Например, программа подает импульсы, вызывающие мигание лампы;

Измерение времени. Например, программа может определить, сколько времени занимает наполнение резервуара.

Имеющиеся в распоряжении команды

Представление языка программирования STEP 7 в виде списка операторов предоставляет в распоряжение следующие команды:

Запуск таймера одного из следующих типов:

-формирователя импульса (SP),

-формирователя удлиненного импульса (SE),

-формирователя задержки включения (SD),

171

-формирователя задержки включения с запоминанием (SS),

-формирователя задержки выключения (SF);

Сброс таймера (R);

Разрешение на запуск (разблокировка) таймера (FR);

Загрузка таймера в одном из следующих форматов:

-в двоичном коде (L)

-в двоично-десятичном коде (LC)

Опрос состояния сигнала таймера и логическое сопряжение результата опроса с помощью булевой логической операции (A, AN, O, ON, X, XN).

РАЗМЕЩЕНИЕ ТАЙМЕРА В ПАМЯТИ И КОМПОНЕНТЫ ТАЙМЕРА

Таймеры имеют собственную зарезервированную область памяти в CPU. Эта область памяти резервирует одно 16-битное слово для каждого адреса таймера. Набор команд списка операторов поддерживает 256 таймеров. Чтобы установить количество доступных таймерных слов, обратитесь к техническому описа-

нию CPU.

К области памяти таймеров имеют доступ следующие функции:

Таймерные команды;

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

интервалы времени, установленные базой времени, пока значение времени не станет равным нулю.

Биты с 0 по 9 в таймерном слове содержат значение времени в двоичном коде. Значение времени задает количество единиц. Функция обновления таймера уменьшает значение времени на одну единицу через интервал времени, установленный базой времени. Значение времени уменьшается до тех пор, пока оно не станет равным нулю. Значение времени загружается в младшее слово аккумулятора 1 в двоичном, шестнадцатеричном или двоично-десятичном (BCD) коде. Диапазон времени охватывает значения с 0 по 9 990 секунд.

Вы можете предварительно загрузить значение времени с использованием любого из следующих форматов:

L W#16#wxyz

где w = база времени (то есть интервал времени или разрешающая способность);

xyz = значение времени в двоично-десятичном формате

L S5T# aH_bbM_ccS_dddMS

где a = часы, bb = минуты, cc = секунды и ddd = миллисекунды

База времени выбирается автоматически и значение округляется до

ближайшего меньшего числа с этой базой времени.

Максимальное значение времени, которое вы можете ввести, равно 9 990

секунд или 2H_46M_30S.

Биты 12 и 13 в таймерном слове содержат базу времени в двоичном коде.

172

База времени определяет интервал, через который значение времени уменьшается на одну единицу. Минимальная база времени равна 10 мс; максимальная - 10 с.

База времени

Двоичный код для базы времени

10 mc

00

100 mc

01

1 c

10

10 c

11

Так как значения времени запоминаются только через один интервал времени, то значения, не являющиеся точными кратными интервала времени, урезаются. Значения, разрешающая способность которых слишком велика для желаемого диапазона, округляются таким образом, что достигается желаемый диапазон, но не желаемая разрешающая способность.

Когда таймер запускается, содержимое аккумулятора 1 используется в качестве значения времени. Биты с 0 по 11 в младшем слове аккумулятора 1 содержат значение времени в двоично-десятичном формате (BCD–формат: каждая группа из четырех битов содержит двоичный код одного десятичного разряда). Биты 12 и 13 содержат базу времени в двоичном коде.

 

 

 

 

ПРИМЕРЫ ТАЙМЕРОВ

 

 

 

 

 

 

 

Таймер как формирователь импульса: SP

 

 

 

 

 

A

I 2.0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

FR

T1

Разблокировать таймер Т1

 

 

 

 

 

 

 

 

 

 

 

A

I 2.1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

L

S5T#1m5S0mS

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

SP

T1

Запустить таймер T1 в качестве формирователя импульса.

A

I 2.2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

R

T1

Сбросить таймер T1.

 

 

 

 

 

 

 

 

 

 

 

 

=

Q 40.0

Опросить состояние сигнала таймера T1.

 

 

 

 

 

вход запуска

I 2.1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

вход сброса

I 2.2

1

 

 

 

1

2

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

 

 

 

5

 

 

 

Реакция таймера

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Опрос состояния

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

выхода таймера

Q 4.0

 

tвыд

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 22.1. Таймер,

как формирователь импульса, часть 1

173

вход разблокировки I 2.0

 

 

6

 

 

 

7

 

 

 

 

 

8

 

вход запуска

I 2.1

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Реакция таймера

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Опрос состояния

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

выхода таймера

Q 4.0

 

 

tвыд

 

 

tвыд

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 22.2. Таймер, как формирователь импульса, часть 2

1.Изменение RLO с 0 на 1 на входе запуска запускает таймер. С этого момента отсчитывается запрограммированное время t.

2.Если на входе запуска RLO равен 0, то таймер сбрасывается.

3.Опрос состояния сигнала на выходе Q 4.0 таймера дает состояние сигнала, равное 1, в течение всей работы таймера.

4.Если RLO, равный 1, прикладывается к входу сброса, то таймер сбрасывается. Пока на входе запуска состояние сигнала остается равным 1, изменение RLO с 1 на 0 на входе сброса, не оказывает никакого влияния на таймер.

5.Изменение RLO с 0 на 1 на входе запуска при наличии сигнала на входе сброса приводит к кратковременному запуску с немедленным сбросом из-за следующего непосредственно далее в программе оператора сброса (на рис. 6.1 показано в виде импульсной линии на временной диаграмме). Для этого импульса не может быть получен результат опроса, если соблюдается описанная выше последовательность записи операторов.

6.Изменение RLO с 0 на 1 на входе разблокировки во время работы таймера перезапускает таймер. Запрограммированное время используется при перезапуске как текущее время. Изменение RLO на входе разблокировки с 1 на 0 воздействия не оказывает.

7.Если RLO меняется с 0 на 1 на входе разблокировки, когда таймер не работает, а на входе запуска RLO все еще равен 1, то таймер также будет запущен как формирователь импульса с запрограммированным временем.

8.Изменение RLO с 0 на 1 на входе разблокировки, когда RLO на входе запуска еще равен 0, не оказывает воздействия на таймер.

Таймер как формирователь удлиненного импульса: SE

A

I 2.0

 

FR

T1

Разблокировать таймер Т1

A

I 2.1

 

L

S5T#1m5S0mS

 

 

 

174

T1

Запустить таймер T1 в качестве формирователя импульса.

A

I 2.2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

R

T1

Сбросить таймер T1.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

=

Q 40.0

Опросить состояние сигнала таймера T1.

 

 

 

 

 

 

 

 

 

 

 

 

вход запуска

I 2.1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

вход сброса

I 2.2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

 

 

 

 

 

Реакция таймера

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Опрос состояния

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

выхода таймера

Q 4.0

 

 

 

tвыд

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 22.3. Таймер, как

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

формирователь удлиненного импульса, часть 1

вход разблокировки I 2.0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6

 

 

 

 

 

 

 

7

 

 

 

 

 

 

 

 

 

 

8

 

 

 

8

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

вход запуска

I 2.1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Реакция таймера

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Опрос состояния

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

выхода таймера

Q 4.0

 

 

 

 

tвыд

 

 

tвыд

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 22.4. Таймер, как формирователь удлиненного импульса, часть 2

1.Изменение RLO с 0 на 1 на входе запуска запускает таймер. После этого запрограммированное время t отсчитывается независимо от изменения RLO с 1 на 0 на входе запуска.

2.Если RLO на входе запуска меняется с 0 на 1 до истечения времени, то таймер перезапускается с первоначально запрограммированным временем.

3.Опрос состояния сигнала на выходе таймера дает результат 1 в течение всего времени работы таймера.

4.Если на входе сброса RLO становится равным 1, то таймер сбрасывается. Пока состояние сигнала на входе запуска остается равным 1, смена RLO на входе сброса с 1 на 0 не оказывает влияния на таймер

5.Изменение RLO с 0 на 1 на входе запуска при наличии сигнала на входе сброса приводит к кратковременному запуску с немедленным сбросом из-за следующего непосредственно далее в программе оператора сброса. Для этого импульса не может быть получен результат опроса, если соблюдается

175

описанная выше последовательность записи операторов.

6.Изменение RLO с 0 на 1 на входе разблокировки во время работы таймера перезапускает таймер. Запрограммированное время при перезапуске используется как текущее время. Изменение RLO на входе разблокировки с 1 на 0 воздействия не оказывает.

7.Если RLO меняется с 0 на 1 на входе разблокировки, когда таймер не работает, а на входе запуска RLO все еще равен 1, то таймер также будет запущен как формирователь удлиненного импульса с запрограммированным временем.

8.Изменение RLO с 0 на 1 на входе разблокировки, когда RLO на входе запуска еще равен 0, не оказывает воздействия на таймер.

Таймер как формирователь задержки включения: SD

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

вход запуска

I 2.1

 

 

 

 

 

 

 

 

2

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

Вход сброса

I 2.2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Реакция таймера

 

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Опрос состояния

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

выхода таймера

Q 4.0

 

 

tвыд

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 22.5. Таймер,

как

 

 

 

 

 

 

 

 

 

 

 

 

формирователь задержки включения, часть 1

вход разблокировки I 2.0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6

 

 

 

 

7

 

 

 

 

8

 

 

 

вход запуска

I 2.1

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Вход сброса

I 2.2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Реакция таймера

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Опрос состояния

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

выхода таймера

Q 4.0

 

 

 

tвыд

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 22.6. Таймер, как формирователь задержки включения, часть 2

176

1.Изменение RLO с 0 на 1 на входе запуска запускает таймер. После этого идет отсчет запрограммированного времени t.

2.Когда на входе запуска RLO становится равным 0, таймер сбрасывается.

3.Опрос состояния сигнала на выходе таймера Q 4.0 дает результат 1, когда время истекло, а сигнал на входе запуска равен 1.

4.Если на входе сброса RLO становится равным 1, то таймер сбрасывается. Пока состояние сигнала на входе запуска остается равным 1, смена RLO на входе сброса с 1 на 0 не оказывает влияния на таймер.

5.Изменение RLO с 0 на 1 на входе запуска при наличии сигнала на входе сброса приводит к кратковременному запуску с немедленным сбросом из-за следующего непосредственно далее в программе оператора сброса. Для этого импульса не может быть получен результат опроса, если соблюдается описанная выше последовательность записи операторов.

6.Изменение RLO с 0 на 1 на входе разблокировки во время работы таймера перезапускает таймер. Запрограммированное время при перезапуске используется как текущее время. Изменение RLO на входе разблокировки с 1 на 0 воздействия не оказывает.

7.Если RLO меняется с 0 на 1 на входе разблокировки после завершения нормальной работы таймера, то это не оказывает воздействия на таймер.

8.Изменение RLO с 0 на 1 на входе разблокировки после сброса таймера, когда RLO на входе запуска еще равен 1, запускает таймер. Запрограммированное время используется в качестве текущего времени.

Таймер как формирователь задержки включения с запоминанием: SS

Основная особенность этого типа таймеров состоит в том, что в случае, когда имеются условия для перевода таймера в состояние “1“, вывести его из этого состояния можно только командой сброса.

вход запуска

I 2.1

 

1

 

 

 

 

 

 

 

1

 

 

 

 

 

 

5

 

Вход сброса

I 2.2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

 

Реакция таймера

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Опрос состояния

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

выхода таймера

Q 4.0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

tвыд

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 22.7. Таймер задержки

включения с запоминанием, часть 1

 

 

177

вход разблокировки I 2.0

 

 

 

6

 

 

 

 

 

7

 

 

 

 

 

 

9

 

 

 

вход запуска

I 2.1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Вход сброса

I 2.2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

 

 

 

 

 

 

 

 

Реакция таймера

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Опрос состояния

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

выхода таймера

Q 4.0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

tвыд

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 22.8. Таймер задержки включения с запоминанием, часть 2

1.Изменение RLO с 0 на 1 на входе запуска запускает таймер. После этого запрограммированное время t отсчитывается независимо от изменения RLO с 1 на 0 на входе запуска.

2.Опрос состояния сигнала на выходе таймера дает результат 1, когда время истекло.

3.Результат опроса состояния сигнала на выходе Q 4.0 меняется на 0 только тогда, когда RLO на входе сброса равен 1.

4.Если на входе сброса RLO становится равным 1, то таймер сбрасывается. Пока состояние сигнала на входе запуска остается равным 1, смена RLO на входе сброса с 1 на 0 не оказывает влияния на таймер.

5.Изменение RLO с 0 на 1 на входе запуска при наличии сигнала на входе сброса приводит к кратковременному запуску с немедленным сбросом из-за следующего непосредственно далее в программе оператора сброса. Для этого импульса не может быть получен результат опроса, если соблюдается описанная выше последовательность записи операторов.

6.Когда RLO на входе разблокировки меняется с 0 на 1 во время работы таймера, а RLO на входе запуска таймера равен 1, таймер перезапускается. Запрограммированное время при перезапуске используется как текущее время. Изменение RLO на входе разблокировки с 1 на 0 воздействия на таймер не оказывает.

7.Если RLO меняется с 0 на 1 на входе разблокировки после завершения нормальной работы таймера, то это не оказывает воздействия на таймер.

8.Если RLO меняется с 0 на 1 на входе разблокировки, когда таймер работает, а RLO на входе запуска таймера равен 0, то это не оказывает воздействия на таймер.

9.Если RLO на входе разблокировки меняется с 0 на 1, когда таймер сброшен, а RLO на входе запуска еще равен 1, то таймер перезапускается. Запрограммированное время используется в качестве текущего времени для пере-

запуска.

178

Таймер как формирователь задержки выключения: SF

 

 

 

 

вход запуска

I 2.1

 

 

 

 

 

 

 

1

 

 

1

 

 

 

 

 

 

 

 

 

3

1

 

 

 

 

 

2

 

 

 

 

 

Вход сброса

I 2.2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Реакция таймера

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Опрос состояния

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

выхода таймера

Q 4.0

 

 

tвыд

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 22.9. Таймер, как формирователь задержки выключения, часть 1

вход разблокировки I 2.0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

7

 

 

 

 

 

8

 

 

 

 

7

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

вход запуска

I 2.1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Вход сброса

I 2.2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Реакция таймера

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Опрос состояния

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

выхода таймера

Q 4.0

 

 

 

 

 

 

 

 

 

 

 

 

tвыд

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 22.10. Таймер, как формирователь задержки выключения, часть 2

1.Изменение RLO с 0 на 1 на входе запуска вызывает изменение с 0 на 1 сигнала на выходе Q 4.0 таймера. Изменение RLO на входе запуска с 1 на 0 запускает таймер. С этого момента ведется отсчет запрограммированного времени t.

2.Если на входе запуска снова появляется RLO, равный 1, то таймер сбрасывается.

3.Опрос состояния сигнала на выходе Q 4.0 таймера дает результат 1, когда RLO на входе запуска равен 1, а время еще не истекло.

4.Если на входе сброса RLO становится равным 1, то таймер сбрасывается. Тогда опрос состояния сигнала таймера дает результат, равный 0. Изменение RLO на входе сброса с 1 на 0 не оказывает воздействия на таймер.

5.Если на входе сброса появляется 1, когда таймер не работает, то это не оказывает никакого воздействия на таймер.

6.Изменение RLO с 1 на 0 на входе запуска при наличии сигнала на входе сброса приводит к кратковременному запуску с немедленным сбросом из-за следующего непосредственно далее в программе оператора сброса. Затем

179

опрос состояния сигнала таймера дает результат 0.

7.Если RLO меняется с 0 на 1 на входе разблокировки, когда таймер не работает, то это не оказывает воздействия на таймер. Изменение RLO с 1 на 0 тоже не оказывает влияния на таймер.

8.Изменение RLO с 0 на 1 на входе разблокировки во время работы таймера приводит к перезапуску таймера. Запрограммированное время используется при перезапуске в качестве текущего времени.

ТЕМА 23

Адресные регистры и особенности работы с ними. Указатели. Косвенная адресация через адресные регистры. Косвенная адресация через область памяти. Структура функционального блока, примеры составления программы функционального блока и его вызова в основной программе.

КОСВЕННАЯ АДРЕСАЦИЯ ЧЕРЕЗ ПАМЯТЬ

Команда, использующая косвенную адресацию через память, имеет операнд, указывающий местоположение значения, которое команда будет обрабатывать, и состоящий из следующих двух частей:

идентификатора операнда (например, «IB» для «входного байта»);

одного из следующих указателей:

-слова, содержащего номер таймера (T), счетчика (C), блока данных (DB), функции (FC) или функционального блока (FB)

-двойного слова, содержащего точный адрес значения внутри области памяти, указанной идентификатором операнда

Операнд задает адрес значения или номер косвенно через указатель. Это слово или двойное слово может находиться в одной из следующих областей:

битовая память (M);

блок данных (DB);

экземплярный блок данных (DI);

локальные данные (L).

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

Когда вы работаете с косвенно адресованным через память операндом, который хранится в области памяти блока данных, вам нужно вначале открыть блок данных, используя команду Открыть блок данных (OPN). После этого вы можете использовать слово или двойное слово данных в качестве косвенного адреса, как показано в следующем примере:

OPN DB10

L IB [DBD20]

180

Формат указателя

Есть два возможных формата указателя: слово и двойное слово. Сокращенное обозначение для формата в виде слова заканчивается на W (например, DBW). Рис. 23.1 показывает формат указателя для слова. Сокращенное обозначение для формата в виде двойного слова заканчивается на D (например, DBD). Рис. 23.2 показывает формат указателя для двойного слова.

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

n n n n n n n n n n n n n n n n

Биты от 0 до 15 (nnnn nnnn nnnn nnnn): номер (диапазон от 0

до 65 535) таймера (T), счетчика (Z), блока данных (DB), функции (FC) или функционального блока (FB)

Рис. 23.1. Формат указателя в виде слова для косвенной адресации через память

3

3

2

2

2

2

2

2

2

2

2

2

1

1

1

1

1

1

1

1

1

1

9

8

7

6

5

4

3

2

1

0

1

0

9

8

7

6

5

4

3

2

1

0

9

8

7

6

5

4

3

2

1

0

 

 

 

 

 

 

 

 

 

 

0 0 0 0 0 0 0 0 0 0 0 0 0 b b b b b b b b b b b b b b b b x x x

Биты с 3 по 18 (bbbb bbbb bbbb bbbb): номер (диапазон от 0 до 65 535) адресуемого байта.

Биты с 0 по 2 (xxx): номер (диапазон от 0 до 7) адресуемого бита.

Рис. 23.2. Формат указателя в виде двойного слова для косвенной адресации через память

АДРЕСНЫЕ РЕГИСТРЫ

Для некоторых видов косвенной адресации при программировании в AWL необходимы определенные регистры CPU.

Адресные регистры 1 и 2 (AR1 и AR2) – это 32-битные регистры, которые принимают указатель на адрес внутри заданной области или указатель, содержащий информацию об области, для команд, использующих косвенную адресацию через регистр.

Указатели используются при косвенной адресации через регистр. В распоряжении имеются два следующих вида указателей:

внутренние для области: для доступа внутри заданной области к битам, байтам, словам и двойным словам в областях памяти P, I, Q, M, DBX, DIX и L;

с указанием области: для доступа с указанием области к битам, байтам, словам и двойным словам в областях памяти P, I, Q, M, DBX, DIX и L.

181

КОСВЕННАЯ АДРЕСАЦИЯ ВНУТРИ ОБЛАСТИ ЧЕРЕЗ РЕГИСТР

Команда, использующая косвенную адресацию внутри области через регистр, имеет операнд, указывающий местоположение значения, которое команда будет обрабатывать, и состоящий из следующих двух частей:

идентификатора операнда (например, «LD» для «двойного слова локальных данных»);

адресного регистра и указателя для задания байта и бита. Байт и бит указывают смещение, которое при добавлении к содержимому регистра оп-

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

плюс смещение.

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

Вычисление адреса операнда

Операнд команды указывает на значение, которое команда будет обрабатывать. При косвенной адресации внутри области через регистр операнд указывает на адрес значения косвенно через адресный регистр плюс смещение. Рис. 23.3 показывает, как вычислить адрес операнда для команды присваивания (=) в следующем операторе: = Q [AR1, P#1.1]

Содержимое адресного регистра AR1: 8.7 байт 8, бит 7

Смещение P#: 1.1 байт 1, бит 1

+

Адрес: Выходной байт A 10.0 байты: 9, биты: 8 (= 1 байт)

Рис. 23.3. Вычисление адреса выхода Q [AR1, P#1.1]

Пример

A [AR1, P#4.3] Выполнить логическую операцию И с битом, адрес которого вычисляется как содержимое адресного регистра AR 1 плюс 4 байта плюс 3 бита. Область памяти бита задана в битах 24, 25 и 26 адресного регистра AR1.

= [AR2, P#0.0] Присвоить бит RLO биту, адрес которого находится в адресном регистре AR 2.

Область памяти бита задана в битах 24, 25 и 26 адресного регистра AR2.

L B [AR1, P#100.0] Загрузить в аккумулятор 1 байт, адрес которого вычисляется как содержимое адресного регистра AR 1 плюс 100 байтов.

Область памяти байта задана в битах 24, 25 и 26 адресного регистра AR1.

T D [AR2, P#56.0] Передать содержимое аккумулятора 1 в двойное слово, адрес которого вычисляется как содержимое адресного

182

регистра AR 2 плюс 56 байтов. Область памяти двойного слова задана в битах 24, 25 и 26 адресного регистра AR2.

Таблица 23.1 перечисляет значения двоичного кода в битах 24, 25 и 26 указателя, которые определяют эту область.

 

Табл. 23.1.

Идентификатор области (область памяти)

Двоичное содержимое

 

 

битов 26, 25 и 24

 

P (периферия, внешние входы и выходы)

000

 

I (вход образа процесса)

001

 

Q (выход образа процесса)

010

 

M (битовая память)

011

 

DBX (блок данных)

100

 

DIX (экземплярный блок данных)

101

 

(предыдущие локальные данные, т.е. локальные дан-

111

 

ные предыдущего незавершенного блока)

 

 

Формат указателя

Для косвенной адресации с указанием области памяти через регистр в распоряжении имеется только один возможный формат указателя: двойное слово. Сокращенное обозначение указателя в формате двойного слова заканчивается на D (например, DBD). На рисунке 23.4 вы видите формат указателя для двойного слова.

3

3

2

2

2

2

2

2

2

2

2

2

1

1

1

1

1

1

1

1

1

1

9

8

7

6

5

4

3

2

1

0

1

0

9

8

7

6

5

4

3

2

1

0

9

8

7

6

5

4

3

2

1

0

 

 

 

 

 

 

 

 

 

 

1

0

0

0

0

r

r

r

0

0

0

0

0

b

b

b

b

b

b

b

b

b

b

b

b

b

b

b

b

x

x

x

Бит 31 = 1 задает косвенную адресацию с указанием области памяти через ре-

гистр.

Биты 24, 25 и 26 (rrr): идентификатор области (область памяти, см. таблицу

3.4).

Биты с 3 по 18 (bbbb bbbb bbbb bbbb): номер (диапазон от 0 до 65 535) адре-

суемого байта.

Биты с 0 по 2 (xxx): номер (диапазон от 0 до 7) адресуемого бита

Рис. 23.4. Формат указателя в виде двойного слова для косвенной адресации с указанием области памяти через регистр

Пример

L P#I 8.7

Загрузить указатель в формате двойного слова на адрес би-

 

та I 8.7 в аккумулятор 1.

LAR1

Сохранить указатель в формате двойного слова на адрес

183

 

бита I 8.7 в AR1.

L P#Q 8.7

Загрузить указатель в формате двойного слова на адрес би-

 

та Q 8.7 в аккумулятор 1.

LAR2

Сохранить указатель в формате двойного слова на адрес

 

бита Q 8.7 в AR2.

A [AR1, P#0.0]

CPU складывает содержимое адресного регистра AR1 (P# I

 

8.7) и смещение (P#0.0) и использует операнд, на который

 

указывает результат (I8.7), в качестве операнда битовой

 

логической операции И. Содержимое AR1 остается неиз-

 

менным.

= [AR2, P#1.1]

CPU присваивает результат логической операции (RLO)

 

операнду (Q 10.0). CPU вычисляет этот операнд, складывая

 

содержимое адресного регистра AR2 (P#A 8.7) и смещение

 

(P#1.1), указатель при этом деактивируется. Содержимое

 

AR2 остается неизменным.

ОПЕРАЦИИ С АККУМУЛЯТОРАМИ И КОМАНДЫ, ИСПОЛЬЗУЮЩИЕ АДРЕСНЫЕ РЕГИСТРЫ

В распоряжении программиста имеются следующие команды для манипулирования содержимым одного или обоих аккумуляторов:

Мнемоника

Команда

Объяснение

TAK

 

 

Обменять содержи-

Эта команда обменивает содержимое ак-

 

 

 

мое аккумуляторов

кумулятора 1 с содержимым аккумулятора

 

 

 

1 и 2

2.

PUSH с

двумя

Копировать акку-

Эта команда копирует содержимое акку-

аккумулятора-

мулятор 1 в аккуму-

мулятора 1 в аккумулятор 2.

ми

 

 

лятор 2

 

POP

с

двумя

Копировать акку-

Эта команда копирует содержимое акку-

аккумулятора-

мулятор 2 в аккуму-

мулятора 2 в аккумулятор 1.

ми

 

 

лятор 1

 

PUSH

с че-

Копировать акку-

Эта команда копирует содержимое акку-

тырьмя

акку-

мулятор 3 в аккуму-

мулятора 3 в аккумулятор 4, содержимое

муляторами

лятор 4, аккумуля-

аккумулятора 2 в аккумулятор 3 и содер-

 

 

 

тор 2 в аккумулятор

жимое аккумулятора 1 в аккумулятор 2.

 

 

 

3, аккумулятор 1 в

 

 

 

 

аккумулятор 2

 

POP

с четырь-

Копировать акку-

Эта команда копирует содержимое акку-

мя

аккумуля-

мулятор 2 в аккуму-

мулятора 2 в аккумулятор 1, содержимое

торами

 

лятор 1, аккумуля-

аккумулятора 3 в аккумулятор 2 и содер-

 

 

 

тор 3 в аккумулятор

жимое аккумулятора 4 в аккумулятор 3.

184

Мнемоника

Команда

Объяснение

 

2, аккумулятор 4 в

 

 

аккумулятор 3

 

ENT

Войти в стек акку-

Эта команда копирует содержимое акку-

 

муляторов

мулятора 3 в аккумулятор 4 и содержимое

 

 

 

аккумулятора 2 в аккумулятор 3.

LEAVE

Покинуть стек ак-

Эта команда копирует содержимое акку-

 

кумуляторов

мулятора 3 в аккумулятор 2 и содержимое

 

 

 

аккумулятора 4 в аккумулятор 3.

INC

Инкрементировать

Эта команда увеличивает содержимое

 

аккумулятор 1

младшего байта в младшем слове аккуму-

 

 

 

лятора 1 на 8-битовую константу, задан-

 

 

 

ную в операторе команды. Эта константа

 

 

 

может находиться в диапазоне от 0 до 255.

DEC

Декрементировать

Эта команда уменьшает содержимое

 

аккумулятор 1

младшего байта в младшем слове аккуму-

 

 

 

лятора 1 на 8-битовую константу, задан-

 

 

 

ную в операторе команды. Эта константа

 

 

 

может находиться в диапазоне от 0 до 255.

+AR1, +AR2

Прибавить аккуму-

Эта команда прибавляет содержимое

 

лятор 1 к адресному

младшего слова аккумулятора 1 к адрес-

 

регистру

 

ному регистру 1 или 2.

+AR1

Прибавить констан-

Эта команда прибавляет константу к со-

P# байт.бит,

ту к адресному ре-

держимому адресного регистра 1 или 2

+AR2

гистру

 

 

P# байт.бит

 

 

 

BLD

Команда

отображе-

Эта команда не выполняет никакой функ-

 

ния программы

ции и не влияет на биты состояния. Она

 

 

 

имеет значение только для устройства

 

 

 

программирования (PG) при отображении

 

 

 

программы. Операнд <число> является

 

 

 

идентификатором команды BLD и генери-

 

 

 

руется устройством программирования.

NOP 0

Пустая

команда 0

Эти команды не выполняют никаких дей-

NOP 1

Пустая команда 1

ствий и не оказывают влияния на содер-

 

 

 

жимое слова состояния. Команды NOP 1 и

 

 

 

NOP 0 необходимы для декомпиляции.

 

 

 

Код команды содержит битовую комби-

 

 

 

нацию из 16 нулей или 16 единиц.

185

ТЕМА 24

Математические и логические операции языка STEP 7. Операции сдвига и преобразования типов данных. Управляющие операторы языка. Особенности оператора циклов.

ОСНОВНЫЕ АРИФМЕТИЧЕСКИЕ ОПЕРАЦИИ

В табл. 21.1 перечислены команды AWL, с помощью которых можно складывать, вычитать, умножать и делить целые числа (16 битов) и двойные целые числа (32 бита).

 

 

Табл. 24.1.

Команда

Размер в

Функция

 

битах

 

+I

16

Складывает содержимое младших слов аккумуляторов 1 и 2

 

 

и сохраняет результат в младшем слове аккумулятора 1.

-I

16

Вычитает содержимое младшего слова аккумулятора 1 из

 

 

содержимого младшего слова аккумулятора 2 и сохраняет

 

 

результат в младшем слове аккумулятора 1.

*I

16

Перемножает содержимое младших слов аккумуляторов 1 и

 

 

2 и сохраняет результат (32 бита) в аккумуляторе 1.

/I

16

Делит содержимое младшего слова аккумулятора 2 на со-

 

 

держимое младшего слова аккумулятора 1. Результат сохра-

 

 

няется в младшем слове аккумулятора 1. Целый остаток от

 

 

деления сохраняется в старшем слове аккумулятора 1.

+D

32

Складывает содержимое аккумуляторов 1 и 2 и сохраняет

 

 

результат в аккумуляторе 1.

-D

32

Вычитает аккумулятора 1 из содержимого аккумулятора 2 и

 

 

сохраняет результат в аккумуляторе 1.

*D

32

Перемножает содержимое аккумуляторов 1 и 2 и сохраняет

 

 

результат в аккумуляторе 1.

/D

32

и сохраняет частное в аккумуляторе 1.

MOD

32

Делит содержимое аккумулятора 2 на содержимое аккуму-

 

 

лятора 1 и сохраняет остаток от деления как результат в ак-

 

 

кумуляторе 1.

Связь между арифметическими операциями и аккумуляторами

Арифметические операции комбинируют содержимое аккумуляторов 1 и 2. Результат сохраняется в аккумуляторе 1. Старое содержимое аккумулятора 1 сдвигается в аккумулятор 2.

В CPU с четырьмя аккумуляторами затем содержимое аккумулятора 3 копируется в аккумулятор 2, а содержимое аккумулятора 4 в аккумулятор 3. Старое содержимое аккумулятора 4 не меняется.

186

Например, в контроллере с двумя аккумуляторами, команда сложения аккумуляторов 1 и 2 как целых чисел (+I) указывает CPU, что нужно сложить содержимое младшего слова аккумулятора 1 и младшего слова аккумулятора 2 и сохранить результат в младшем слове аккумулятора 1. Эта операция заменяет старое содержимое младшего слова аккумулятора 1. Старое содержимое аккумулятора 2 и старшего слова аккумулятора 1 не меняются.

В контроллере с четырьмя аккумуляторами команда сложения аккумуляторов 1 и 2 как целых чисел (+I) указывает CPU, что нужно сложить содержимое младшего слова аккумулятора 1 и младшего слова аккумулятора 2 и сохранить результат в младшем слове аккумулятора 1. Эта операция заменяет старое содержимое младшего слова аккумулятора 1. Затем она копирует содержимое аккумулятора 3 в аккумулятор 2, а содержимое аккумулятора 4 в аккумулятор 3. Аккумулятор 4 и старшее слово аккумулятора 1 не меняются

Анализ битов в слове состояния Арифметические операции влияют на следующие биты слова состояния:

CC 1 и CC 0;

 

 

 

 

OV;

 

 

 

 

OS.

 

 

 

 

Допустимый диапазон значений результата

СС1

СС0

OV

OS

для целых (16 битов) и двойных целых (32

 

 

 

 

 

бита) чисел

 

 

 

 

0 (ноль)

 

0

0

0

I: –32 768 ≤ результат < 0 (отрицательное число)

0

1

0

D: –2 147 483 648 ≤ результат < 0 (отрицательное

 

 

 

 

число)

 

 

 

 

 

I: 32 767 ≥ результат >0 (положительное число)

1

0

0

D: 2 147 483 647 ≥ результат >0 (положительное

 

 

 

 

число)

 

 

 

 

 

Диапазон недопустимых значений результа-

СС1

СС0

OV

OS

та для целых (16 битов) и двойных целых (32

 

 

 

 

 

бита) чисел

 

 

 

 

I: результат > 32 767 (положительное число)

1

0

1

1

D: результат > 2 147 483 647 (положительное число)

 

 

 

 

I: результат < -32 768 (отрицательное число)

0

1

1

1

D: результат < –2 147 483 648 (отрицательное чис-

 

 

 

 

ло)

 

 

 

 

 

*D: результат = –4 294 967 296

0

0

1

1

/D или MOD: произошло деление на 0.

1

1

1

1

ОПЕРАЦИИ НАД ЧИСЛАМИ С ПЛАВАЮЩЕЙ ТОЧКОЙ

В таблице 24.2 перечислены команды AWL, которые вы можете использовать для сложения, вычитания умножения и деления 32–битовых чисел с плаваю-

187

щей точкой в формате IEEE. Так как эти числа относятся к типу данных REAL (вещественные), то в качестве мнемонического сокращения для этих команд используется R.

 

Табл. 24.2

Команда

Функция

+R

Складывает числа с плавающей точкой (32 бита, IEEE) в аккумулято-

 

рах 1 и 2 и сохраняет 32-битовый результат в аккумуляторе 1.

-R

Вычитает число с плавающей точкой (32 бита, IEEE) в аккумуляторе

 

1 из числа с плавающей точкой (32 бита, IEEE) в аккумуляторе 2 и

 

сохраняет 32-битовый результат в аккумуляторе 1.

*R

Умножает число с плавающей точкой (32 бита, IEEE) в аккумуляторе

 

1 на число с плавающей точкой (32 бита, IEEE) в аккумуляторе 2 и

 

сохраняет 32-битовый результат аккумуляторе 1.

/R

Делит число с плавающей точкой (32 бита, IEEE) в аккумуляторе 2 на

 

число с плавающей точкой (32 бита, IEEE) в аккумуляторе 1. 32-

 

битовый результат сохраняется в аккумуляторе 1.

Связь операций с аккумуляторами такая же, как у операций с целыми числами. Арифметические операции комбинируют содержимое аккумуляторов 1 и 2. Результат сохраняется в аккумуляторе 1. Содержимое аккумулятора 2 не меняется. В CPU с четырьмя аккумуляторами содержимое аккумулятора 3 копируется в аккумулятор 2, а содержимое аккумулятора 4 в аккумулятор 3.

Допустимый диапазон результата для чисел

СС1

СС0

OV

OS

с плавающей точкой (32 бита)

 

 

 

 

 

 

 

 

+0, –0 (ноль)

0

 

0

 

0

 

–3.402823E+38 < результат< –1.175494E-38

0

 

1

 

0

 

(отрицательное число)

 

 

 

 

 

 

 

 

+1.175494E-38 < результат< 3.402823E+38

1

 

0

 

0

 

(положительное число)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Недопустимый диапазон результата для чи-

СС1

 

СС0

 

OV

 

OS

сел с плавающей точкой (32 бита)

 

 

 

 

 

 

 

 

–1.175494E-38 < результат< –1.401298E-45

0

 

0

 

1

 

1

 

(отрицательное число) потеря значимости

 

 

 

 

 

 

 

 

+1.401298E-45 < результат< +1.175494E-38

0

 

0

 

1

 

1

 

(положительное число) потеря значимости

 

 

 

 

 

 

 

 

результат < –3.402823E+38

0

 

1

 

1

 

1

 

(отрицательное число) переполнение

 

 

 

 

 

 

 

 

результат > –3.402823E+38

1

 

0

 

1

 

1

 

(положительное число) переполнение

 

 

 

 

 

 

 

 

188

ЛОГИЧЕСКИЕ ОПЕРАЦИИ СО СЛОВАМИ

Логические операции со словами комбинируют пары слов (16 битов) или двойных слов (32 бита) бит за битом в соответствии с правилами булевой логики. Каждое слово или двойное слово должно находиться в одном из двух аккумуляторов.

Для слов содержимое младшего слова аккумулятора 2 комбинируется с содержимым младшего слова аккумулятора 1. Результат комбинирования сохраняется в младшем слове аккумулятора 1, заменяя его старое содержимое.

Для двойных слов содержимое аккумулятора 2 комбинируется с содержимым аккумулятора 1. Результат комбинирования сохраняется в аккумуляторе 1, заменяя его старое содержимое.

Если результат логического комбинирования равен 0, то бит CC 1 слова состояния сбрасывается в 0. Если результат логического комбинирования не равен 0, то CC 1 устанавливается в 1. В любом случае биты CC 0 и OV слова состояния сбрасываются в 0.

Для выполнения логических операций со словами в вашем распоряжении имеются следующие команды:

Мнемо-

Команда

Функция

ника

 

 

AW

Поразрядное логиче-

Комбинирует бит за битом два слова в соот-

 

ское И со словами

ветствии с таблицей истинности для И

OW

Поразрядное логиче-

Комбинирует бит за битом два слова в соот-

 

ское ИЛИ со словами

ветствии с таблицей истинности для ИЛИ

XOW

Поразрядное исклю-

Комбинирует бит за битом два слова в соот-

 

чающее ИЛИ со сло-

ветствии с таблицей истинности для исклю-

 

вами

чающего ИЛИ

AD

Поразрядное логиче-

Комбинирует бит за битом два двойных слова

 

ское И с двойными

в соответствии с таблицей истинности для И

 

словами

 

OD

Поразрядное логиче-

Комбинирует бит за битом два двойных слова

 

ское ИЛИ с двойны-

в соответствии с таблицей истинности для

 

ми словами

ИЛИ

XOD

Поразрядное исклю-

Комбинирует бит за битом два двойных слова

 

чающее ИЛИ с двой-

в соответствии с таблицей истинности для ис-

 

ными словами

ключающего ИЛИ

Команда AW, OW или XOW может использовать в качестве операнда 16– битовую константу. Команда комбинирует содержимое младшего слова аккумулятора 1 с 16–битовой константой.

Команда AD, OD или XOD может использовать в качестве операнда 32– битовую константу.

189

КОМАНДЫ СДВИГА И ЦИКЛИЧЕСКОГО СДВИГА

С помощью команд сдвига вы можете побитно сдвинуть налево или направо содержимое младшего слова аккумулятора 1 или содержимое всего аккумулятора. Сдвиг на n битов влево умножает содержимое аккумулятора на 2n, сдвиг на n битов вправо делит содержимое аккумулятора на 2n. Таким образом, если, например, вы сдвигаете двоичный эквивалент десятичного числа 3 на 3 бита влево, то в аккумуляторе получается двоичный эквивалент десятичного числа 24. Если вы сдвигаете двоичный эквивалент десятичного числа 16 на 2 бита вправо, то в аккумуляторе получается двоичный эквивалент десятичного числа 4.

Число, следующее за командой сдвига или записанное в младшем байте младшего слова аккумулятора 2, указывает, на сколько битов должен быть произведен сдвиг. Разряды, освобождаемые командой сдвига, заполняются нулями или сигнальным состоянием знакового бита (0 - для положительных чисел, 1 - для отрицательных). Последний сдвинутый бит загружается в бит СС 1 слова состояния. Биты СС 0 и OV слова состояния сбрасываются в 0. Вы можете анализировать бит СС 1 с помощью команд перехода.

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

Команды сдвига: числа без знака

Следующие команды сдвигают побитно содержимое младшего слова аккумулятора 1 влево или вправо:

Сдвинуть слово влево (SLW, 16 битов);

Сдвинуть слово вправо (SRW, 16 битов).

Следующие команды сдвигают все содержимое аккумулятора 1 побитно влево или вправо:

Сдвинуть двойное слово влево (SLD, 32 бита);

Сдвинуть двойное слово вправо (SRD, 32 бита).

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

 

 

 

 

 

 

 

 

0

0

0

0

 

1

1

1

1

0

1

0

 

1

0

1

0

1

 

 

 

 

 

 

 

 

 

 

 

 

 

SLW 6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

0

0

0

 

1

1

1

1

0

1

 

0

1

0

1

0

1

0

 

0

0

0

0

0

 

Эти пять бит

 

Бит, сдвигаемый последним,

 

Освободившиеся

 

теряются

 

сохраняется в бите CC 1 слова

 

 

 

разряды запол-

 

 

 

 

 

 

 

состояния.

 

 

 

 

 

 

 

 

 

 

 

 

няются нулями

Рис. 24.1. Сдвиг младшего слова аккумулятора 1 на 6 разрядов влево

В табл. 24.2 приведены характеристики команд сдвига.

190

 

 

 

 

 

 

Табл. 24.2

Коман-

Задействован-

Направ-

Указание коли-

Заполнитель

Диапазон

да

ная область

ление

чества разрядов

для освобо-

сдвига

 

 

 

для сдвига

дившихся

 

 

 

 

 

 

разрядов

 

SLW n

Младшее слово

влево

В операторе

 

0

n = 0 ÷15

 

аккумулятора 1

 

 

 

 

 

SLW

Младшее слово

влево

В младшем

байте

0

0 ÷ 255 2)

 

аккумулятора 1

 

младшего

слова

 

 

 

 

 

аккумулятора 2

 

 

SLD n

Аккумулятор 1

влево

В операторе

 

0

n = 0 ÷32

SLD

Аккумулятор 1

влево

В младшем

байте

0

0 ÷ 255 3)

 

 

 

младшего

слова

 

 

 

 

 

аккумулятора 2

 

 

SRW n

Младшее слово

вправо

В операторе

 

0

n = 0 ÷15

 

аккумулятора 1

 

 

 

 

 

SRW

Младшее слово

вправо

В младшем

байте

0

0 ÷ 255 2)

 

аккумулятора 1

 

младшего

слова

 

 

 

 

 

аккумулятора 2

 

 

SRD n

Аккумулятор 1

вправо

В операторе

 

0

n = 0 ÷32

SRD

Аккумулятор 1

вправо

В младшем

байте

0

0 ÷ 255 3)

 

 

 

младшего

слова

 

 

 

 

 

аккумулятора 2

 

 

SSI n

Младшее слово

вправо

В операторе

 

Знаковый

n = 0 ÷15

 

аккумулятора 1

 

 

 

бит

 

SSI

Младшее слово

вправо

В младшем

байте

Знаковый

0 ÷ 255 4)

 

аккумулятора 1

 

младшего

слова

бит

 

 

 

 

аккумулятора 2

 

 

SSD n

Аккумулятор 1

вправо

В операторе

 

Знаковый

n = 0 ÷32

 

 

 

 

 

бит

 

SSD

Аккумулятор 1

вправо

В младшем

байте

Знаковый

0 ÷ 255 5)

 

 

 

младшего

слова

бит

 

 

 

 

аккумулятора 2

 

 

Примечания:

 

 

 

 

 

1)Если количество разрядов, на которые необходимо произвести сдвиг или циклический сдвиг, равно 0, то команда выполняется как NOP.

2)Для величин сдвига, больших 16, результат функции сдвига равен

W#16#0000 и CC 1 = 0.

3)Для величин сдвига, больших 32, результат функции сдвига равен

DW#16#0000_0000 и CC 1 = 0

4)Для величин сдвига, больших 15, результат функции сдвига равен

W#16#0000 и CC 1 = 0 или W#16#FFFF и CC 1 = 1 в зависимости от знака (0 или 1).

5)Для величин сдвига, больших 31, результат функции сдвига равен

DW#16#0000_0000 (CC 1 = 0) или DW#16#FFFF_FFFF (CC 1 = 1) в зависимости

191

от знака числа битов, подлежащих сдвигу.

КОМАНДЫ ПЕРЕХОДА

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

Команда

Объяснение

 

Команды безусловного перехода

JU

Перейти безусловно

JL

Перейти по списку

Команды

условного перехода с условием, зависящим от RLO

JC

Перейти, если RLO = 1

JCN

Перейти, если RLO = 0

JCB

Перейти, если RLO = 1 с сохранением RLO в BR

JNB

Перейти, если RLO = 0 с сохранением RLO в BR

Команды

условного перехода с условием, зависящим от BR или OV/OS

JBI

Перейти, если BR = 1

JNBI

Перейти, если BR = 0

JO

Перейти, если OV = 1

JOS

Перейти, если OS = 1

Команды условного перехода с условием, зависящим от результата операции, закодированного в CC 1 и CC 0

JZ

Перейти, если результат = 0

JN

Перейти, если результат <> 0

JP

Перейти, если результат > 0

JM

Перейти, если результат < 0

JMZ

Перейти, если результат <= 0

JPZ

Перейти, если результат >= 0

JUO

Перейти, если результат недействителен

 

Циклическое управление

LOOP

Перейти, если содержимое аккумулятора 1 > 0

Метка перехода может служить операндом команды перехода или служить обозначением цели команды перехода. Она состоит не более чем из 4 символов. Первый символ должен быть буквой, а остальные символы могут быть буквами или числами (напр., SEG3). В качестве обозначения цели метка перехода должна, кроме того, завершаться двоеточием. В этом случае за меткой перехода всегда должна следовать команда (напр., SEG3: NOP 0).

192

ЦИКЛИЧЕСКОЕ УПРАВЛЕНИЕ

Команда Цикл (LOOP) используется для многократного вызова раздела программы (см. рис. 24.3). Команда Цикл уменьшает младшее слово аккумулятора 1 на 1. Затем значение в младшем слове аккумулятора 1 проверяется. Если оно не равно 0, то выполняется переход к метке, указанной в операнде команды LOOP; в противном случае выполняется следующая команда.

Метка перехода в качестве операнда

Команда LOOP снабжается меткой, которая определяет место, в которое должна вернуться программа. Например, команда LOOP в программе, показанной на рис. 16.3, имеет в качестве операнда метку перехода NEXT. Эта метка сообщает команде о необходимости возврата в программе к оператору T MB10. В этой точке программа обрабатывает раздел А. Команда LOOP возвращается к этой метке столько раз, сколько вы ей укажете. Эта информация предоставляется программе в младшем слове аккумулятора 1. Одним из способов сделать это является установка счетчика цикла и загрузка его в аккумулятор.

начало

Инициализировать счетчик цикла

ИнициализироРаздел А программы L +5 вать счетчик

цикла

 

 

 

NEXT: T MB10

 

 

Уменьшить счетчик

 

 

 

цикла на 1

 

 

 

 

 

Раздел А

 

 

 

 

 

 

 

 

 

 

 

да

Счетчик

 

L MB10

 

 

LOOP NEXT

 

 

цикла <> 0

 

 

 

 

 

 

нет

конец

Рис. 24.3. Использование команды LOOP для многократного вызова раздела программы

Во избежание исполнения программного цикла большее число раз, чем это

193

необходимо, вам нужно принять во внимание следующие свойства команды

LOOP:

Если вы инициализируете счетчик цикла нулем, то цикл исполняется 65 535 раз;

Следует избегать инициализации цикла отрицательным числом.

ТЕМА 25

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

Рассмотрим несколько примеров программирования задач пользователя в сравнении с аналогичным программированием задач для однокристальных микроЭВМ.

1.Прием одноканальных данных.

Вотличие от приема одноканальных данных однокристальными микроЭВМ, здесь эта процедура программируется гораздо проще. Самый простой способ произвести подсчет импульсов по каналу (например, I0.0) состоит в подаче входного сигнала на вход счетчика:

A I0.0 // проверка состояния входа I0.0

CU C1 // увеличение содержимого счетчика, если есть входной сигнал или в виде функционального программирования:

C1

I0.0 CU

В отличие от программирования аналогичной задачи для однокристальной микроЭВМ здесь не используется вход прерывания и не контролируется длительность входного сигнала. Счетчик имеет встроенный контроль изменения входного сигнала и реагирует только на передний фронт сигнала управления.

2. Прием одноканальных сигналов в режиме реального времени.

Рассмотрим следующую задачу: обеспечить подсчет числа "1" импульсов на входе I0.0, удовлетворяющих условию 0,5 с < tи < 2 с.

В отличие от однокристальной микроЭВМ, мы располагаем достаточным количеством программных таймеров и счетчиков, для решения данной задачи наиболее простым способом.

Рассмотрим временную диаграмму вариантов сигналов на линии входа I0.0:

I0.0

 

 

1

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

194

0,5 с

2 с

1 – входной сигнал имеет длительность менее 0,5 секунды;

2- входной сигнал имеет длительность, удовлетворяющую условию задачи;

3- входной сигнал имеет длительность более 2 секунд.

Здесь же приведены временные сигналы, соответствующие заданным контрольным интервалам времени.

Если посмотреть на моменты времени, соответствующие моменту окончания входных сигналов, то можно выделить правило, соответствующее условию задачи: входной импульс должен быть подсчитан, если на момент его окончания завершен отсчет временного интервала 0,5 секунды (таймер 1), и продолжается отсчет временного интервала 2 секунды (таймер 2).

Программа, реализующая эти условия, выглядит следующим образом:

A

I0.0

//проверка состояния бита I0.0

L

S5T#500mS

//загрузка константы таймера 0,5 секунды

SE

T1

//запуск таймера Т1 на 0,5 секунды

A

I0.0

// проверка состояния бита I0.0

L

S5T#2S

// загрузка константы таймера 2 секунды

SE

T2

// запуск таймера Т2 на 2 секунды

A

I0.0

// проверка состояния бита I0.0

FN

M0.0

//определение заднего фронта сигнала I0.0

=

M0.1

//определение бита заднего фронта сигнала

A

M0.1

//есть задний фронт сигнала I0.0?

AN

T1

//таймер Т1 закончил отсчет времени?

A

T2

//таймер Т2 продолжает отсчет?

CU

C1

//если все совпадает, то инкремент счетчика

Текст программы в функциональной форме (FBD), сформированный генератором отчетов, выглядит следующим образом:

195

3, Рассмотрим задачу, в которую входит работа с блоками данных.

196

Предположим, что блок данных у нас уже существует в проекте программы (BD 12) и имеет структуру из 4 целых переменных. В данном примере рассматриваются способы адресации к блоку данных, а также показаны результаты записи различных типов данных.

Исходный вариант блока данных имеет следующий вид:

Текст программы:

Программа запущена со следующими параметрами:

Результаты работы программы:

197

Теперь поясним полученные результаты.

OPN DB

12

Этот оператор открывает для доступа блок данных DB 12.

L

IB 0

 

T

DBB

0

Результат работы этих операторов – запись числа 512 в DB_VAR_1. Первый оператор загружает в аккумулятор байт IB0, который равен 2. Второй оператор – пересылает полученное значение в нулевой байт целой переменной блока данных с адресом равным 0. Поскольку пересылка происходит по правилам параллельной загрузки (младший байт источника попадает в старший байт приемника), то в результате оператора в слове блока данных оказывается число 512. Графически это выглядит следующим образом:

IB0

 

 

 

 

Аккумулятор

 

 

DBB0

DBB1

 

2

 

L

 

0

 

2

T

2

0

 

 

 

 

 

 

 

 

 

 

результат

 

2

 

 

20 Н или 512

L

IW

2

 

 

 

 

 

 

 

T

DBW

 

2

 

 

 

 

 

Результат работы этих операторов – запись числа 20 в DB_VAR_2. Первый оператор загружает в аккумулятор слово IW2, который равен 20. Второй оператор

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

L

B#16#20

T

MD

6

L

W#16#40

T

DBW [MD 6]

T

MW

16

Результат работы этих операторов – запись числа 40Н (64) в DB_VAR_3 и MW16.

Первый оператор загружает в аккумулятор шестнадцатеричное число 20. Второй – пересылает полученное значение в двойное слово MD 6. Третий - загружает в аккумулятор шестнадцатеричное число 40. Четвертый – пересылает содержимое аккумулятора (шестнадцатеричное 40) в слово блока данных, по адресу, содержащемуся в двойном слове MD 6, что соответствует пересылке в слово блока данных с адресом 6. Это объясняется тем, что три младших бита указателя адреса (в данном случае – двойного слова MD 6) являются адресом бита. Поэтому адрес формируется следующим образом:

198

Содержимое MD 6

0

 

0

 

1

 

0

 

0

 

0

 

0

0

 

 

 

 

2

 

 

 

 

 

 

0

 

 

 

 

 

Интерпретация адреса

 

 

0

 

0

 

1

 

0

 

0

 

0

 

0

0

 

 

 

 

 

4

 

 

 

 

 

 

 

0

 

 

 

Адрес слова (байта)

 

 

Адрес бита

 

 

 

Пятый оператор пересылает то же значение в слово памяти MW 16.

 

 

L

 

P#20.6

 

 

 

 

 

 

 

 

 

 

 

T

 

DBW

6

 

 

 

 

 

 

 

 

 

 

Результат

работы

этих

операторов – запись числа 166 в DB_VAR_4

(DBW6). Первый оператор загружает в аккумулятор указатель на шестой бит двадцатого байта. Второй – пересылает полученное значение в слово блока данных

DBW 6. Рассмотрим формат указателя и объясним полученный результат: Интерпретация адреса

0

0

1

0

1

0

0

1

1

0

 

 

Адрес байта

 

 

Адрес бита

 

 

Десятичное 20

 

 

 

6

 

0

0

1

0

1

0

0

1

1

0

Общий результат: шестнадцатеричный - А6

Общий результат: десятичный - 166

ТЕМА 26

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

Системы визуализации, называемые также системами управления и наблюдения, (B+B-системы, от немецкого Bedienen und Beobachten – управление и наблюдение), использующие в качестве основы персональный компьютер, развивались стремительно. В том, что касается самых современных программных технологий, то тенденцию развития здесь устанавливает SIMATIC® WinCC®. WinCC

– это сокращение от Windows Control Center [Центр управления Windows], он предоставляет вам все возможности для надежного управления вашим процессом

встандартной среде Windows NT.

Вспектре продуктов для визуализации SIMATIC HMI® (HMI = Human Machine Interface [человеко-машинный интерфейс]) WinCC представляет собой

199

разбитую на уровни по цене и производительности систему управления и наблюдения класса SCADA с мощными функциями управления автоматизированными процессами. WinCC особенно отличается своей абсолютной открытостью. Она легко взаимодействует со стандартными и пользовательскими программами, в результате чего возникают решения по визуализации, которые точно удовлетворяют практическим требованиям. Благодаря открытым интерфейсам системные интеграторы могут разрабатывать собственные приложения, целенаправленно надстраивая системные расширения на основе WinCC.

WinCC – это система визуализации, которая сводит вместе на платформе Windows NT ноу-хау фирмы Siemens, ведущего поставщика продуктов в области автоматизации процессов, и компетенцию компании Microsoft, ведущей на мировом рынке в области разработки программного обеспечения для персональных компьютеров.

WinCC – это современная система с привлекательной панелью управления, открытая для мира делопроизводства и производства продукции, зрелая и надежная в работе, эффективно проектируемая, масштабируемая для простых и слож-

ных задач и при этом легко встраиваемая в приложения для широкого класса предприятий вплоть до встраивания в MES ERP-решения. Кроме того, WinCC может применяться во всем мире и во всем мире поддерживается отделениями обслуживания и поддержки фирмы Siemens.

ОСНОВНЫЕ СВОЙСТВА СИСТЕМЫ:

Использование новаторских программных технологий

WinCC основывается на новейших разработках и методах в области программного обеспечения. Тесное сотрудничество с Microsoft гарантирует, что пользователь спокойно может ожидать нововведений и в будущем.

Встроены все функции мощной системы визуализации

Уже базовая система WinCC предоставляет все компоненты и функции, которые необходимы для решения также и сложных задач визуализации. Редакторы для создания изображений, сценариев, аварийных сообщений, графиков, отчетов являются фиксированной составной частью системы

WinCC.

Масштабирование от простых до сложных задач

WinCC – это модульный и гибко расширяемый блок автоматизации для простых применений в машиностроении вплоть до сложных многопользовательских приложений или даже распределенных систем с несколькими серверами в сложных промышленных системах.

Расширяемость через специфические для отраслей и технологий опции и дополнения

На основе открытых программных интерфейсов уже разработаны различные дополнительные пакеты WinCC, которые покрывают многообразные отрасле-

200

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

Простое проектирование, поддерживаемое модулями оперативной помощи также и в режиме online

В среде WYSIWYG в распоряжении проектировщика наряду с простыми диалогами, ассистентами (мастерами) имеются также обширные библиотеки. При пуске в эксплуатацию изменения могут производиться также online!

Программное обеспечение для проектирования с возможностью переключения между несколькими языками

Программное обеспечение WinCC полностью рассчитано на многоязычное использование. Например, можно выбирать между немецким, английским и французским языком или же между различными азиатскими языками.

Возможность использования по всему миру благодаря переключению языков в режиме online

Для переключения языков в режиме online могут храниться тексты на любых языках, так как WinCC спроектирован для эксплуатации в странах с различными языками.

Каналы связи с контроллерами всех известных производителей

В объем поставки WinCC входят все существенные каналы связи для подключения к устройствам управления SIMATIC S5/ S7/ 505, а также такие каналы, как Profibus DP, DDE и OPC. Кроме того, имеется множество каналов связи, содержащихся в качестве опций или дополнений.

Согласованность с SIMATIC WinAC

Можно с уверенностью сказать, что комбинация ПЛК и системы визуализации на одном персональном компьютере является концепцией будущего. WinCC и WinAC образуют при этом мощное, основанное на ПК и полностью встроенное решение задач автоматизации фирмы Siemens.

Поддержка и консультации для любых случаев применения WinCC

Разумеется, WinCC включен в контекстную онлайновую систему помощи. В трудных случаях в вашем распоряжении имеется, кроме того, (с понедельника по пятницу) круглосуточная служба поддержки клиентов (Customer Support). Регулярное обновление и расширение базы знаний WinCC предлагает вам служба WinCC/Comprehensive Support [Поддержка WinCC и всесторонняя поддержка]. И последнее по порядку, но не по важности: вы можете рассчитывать на профессиональную подстраховку и консультации через Центр ком-

петентности WinCC (WinCC Competence Center) и WinCC Professionals.

Встроенная база данных ODBC / SQL

201

В WinCC встроена стандартная база данных Sybase SQL Anywhere, в которой хранятся все списковые данные проектирования и процесса. Доступ к базе данных WinCC возможен без всяких проблем с помощью языка структурированных запросов к базе данных SQL или через драйвер ODBC. Через эти способы доступа WinCC открывает свои данные, например, другим программам и базам данных Windows и полностью встраивается в концепцию завода или предприятия.

Высокопроизводительные стандартные интерфейсы, например, OLE, ActiveX, OPC

Такие стандартные интерфейсы, как DDE и OLE для обмена данными между программами Windows являются такими же обязательными составными частями WinCC, как и беспроблемное встраивание управляющих элементов ActiveX и функциональных возможностей среды клиент-сервер OPC.

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

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

С помощью WinCC имеется возможность проектировать визуализацию нейтрально не только по отношению к технологии, но и по отношению к отрасли, т.е. объединить в одной системе автоматизацию производства и процессов. WinCC доказывает это, ссылаясь на свои применения в следующих отраслях:

резиновая и каучуковая промышленность; автомобилестроение;

производство продуктов питания, молочная промышленность; производство и переработка бумаги; производство энергии; очистка сточных вод;

химическая и фармацевтическая промышленность; производство стали;

машиностроение и производство комплектного промышленного оборудова-

ния.

202

Состав пакета:

Редакторы и

Задача или проектируемая функция этапа

интерфейсы

выполнения

WinCC

 

WinCC Explorer

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

(Проводник

доступа ко всем его данным и централизованная

WinCC)

настройка

 

 

Graphics Designer

Графическая система для свободно формируемой

(Графический ди-

визуализации и управления через полностью

зайнер)

графические объекты, причем все их свойства могут

быть сделаны динамическими

 

Alarm Logging

Система сообщений для регистрации и архивирования

(Регистрация ава-

событий с возможностями отображения и управления

рийных

в соответствии с DIN 19235; свободно выбираемые

сообщений)

классы сообщений, отображение и протоколирование

Tag Logging (Ре-

Архивирование значений переменных процесса для

гистрация

регистрации, сжатия и сохранения измеренных

значений, например, для представления в виде

тегов)

графиков и таблиц и дальнейшей обработки

 

 

Система отчетов для управляемого временем или собы-

Report Designer

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

(Дизайнер отче-

действий и текущих данных о процессе в виде пользова-

тов)

тельских отчетов или проектной документации в свобод-

 

но выбираемом формате

User Administrator

Инструмент для удобного управления пользователем и

(Администратор

его полномочиями

пользователя)

Global Scripts

Функции обработки с безграничными возможностями

(Глобальные

путем использования встроенного компилятора ANSI-C

сценарии)

 

 

 

 

Для обмена данными с подчиненными устройствами

Каналы связи

управления (протоколы SIMATIC, Profibus DP, сервер

 

DDE и OPC в объеме поставки)

Стандартные ин-

Для открытой интеграции других приложений

терфейсы

Windows (ODBC/SQL, ActiveX, OLE, DDE, OPC и т.д.)

Интерфейсы для

Для индивидуального доступа к данным и функциям

WinCC (C-API) и для встраивания в программы

программирования

пользователя

SIMATIC WinCC предлагается как пакет программного обеспечения и

203

как готовая к применению система, состоящая из различных аппаратных вариантов РС и программного пакета. В качестве станций управления можно в общем случае использовать обычные РС, причем годятся как офисные, так и промышленные персональные компьютеры. Платформой операционной системы для

WinCC V5 является Windows NT 4.0, для WinCC V6 Windows 2000 или Windows XP.

Если вы приняли решение в пользу WinCC в виде пакета программного обеспечения, то вы можете работать на выбранном вами персональном компьютере. Напротив, система, готовая к применению, дает вам то преимущество, что вы получаете проверенные, оптимизированные для конкретного применения персональные компьютеры, которые нужно только включить („plug and play“). Работы по установке полностью отпадают. По желанию могут быть встроены и необходимые коммуникационные модули для SIMATIC NET, или, в многопользовательской системе, для терминальной шины.

В каждом случае для выбора предоставляются пакеты на 128, 256, 1024 или 64 000 PowerTag’ов. Под PowerTag’ами понимаются исключительно процессные переменные, которые связаны с процессом для управления. При этом одна процессная переменная может порождать до 32 сообщений. Кроме того, в распоряжении имеются внутренние переменные, не связанные с процессом, в качестве дополнительной системной услуги.

Пакеты Powerpack позволяют увеличить количество используемых PowerTag’ов. Когда растет ваше приложение, вместе с ним растет и WinCC. Так что вы можете спокойно начинать работу с самым маленьким вариантом, а затем, по мере необходимости, наращивать мощность с помощью пакетов Pawerpack.

ИСПОЛНЯЕМЫЙ ПАКЕТ WINCC (RUNTIMEPAKET)

Исполняемый пакет (Runtimepaket) RT содержит необходимые для приложений функции для отображения и управления процессом, для сообщений о событиях, для архивирования сообщений, измеренных значений и протоколирования. Предназначенное для рабочего использования программное обеспечение имеется в четырех вариантах, которые отличаются друг от друга только количеством доступных PowerTag’ов. Во всех четырех вариантах используются одни и те же функции.

ПОЛНЫЙ ПАКЕТ WINCC (KOMPLETTPAKET)

В полном пакете WinCC (Komplettpaket) RC в дополнение к лицензии на использование содержится лицензия на проектирование. Она допускает

неограниченное проектирование с соответствующим количеством

PowerTag’ов.

ПАКЕТЫ WINCC POWERPACK

Когда растет ваше приложение, вместе с ним растет и WinCC. Пакеты

204

PowerPack дают возможность впоследствии увеличивать количество доступных для использования PowerTag’ов.

ОПЦИИ И ДОПОЛНЕНИЯ WINCC

Универсально используемый базовый пакет WinCC образует ядро для модульных расширений. Эти функциональные расширения могут быть приобретены в виде необязательных компонентов (опций) WinCC или дополнений WinCC.

Опции WinCC – это продукты отделения автоматизации и приводов (Automation & Drives) фирмы Siemens. Они обслуживаются консультантами и центральной линией оперативной поддержки. Дополнения WinCC (Add-ons) разрабатываются и продаются другими учреждениями фирмы Siemens, а также внешними оферентами. Поддержка дополнений WinCC осуществляется через соответствующих поставщиков продукта, которые являются также консультантами при встраивании продукта в решение задачи автоматизации.

Полностью интегрированная автоматизация (Totally Integrated Automation - T.I.A.)

T.I.A. –это интеграция различных продуктов фирмы Siemens, причем WinCC, как окно в процесс, образует центральный блок T.I.A. T.I.A. означает общность в проектировании и программировании, хранении данных и обмене данными.

Компоненты визуализации системы контроля и управления SIMATIC PCS 7

SIMATIC PCS 7 – это система контроля и управления процессами в T.I.A. PCS 7 сочетает преимущества решений задач автоматизации, основанных на использовании контроллеров, для дискретного производства с преимуществами решений, основанных на использовании систем контроля и управления процессами для непрерывных производств. При этом PCS 7 использует стандартные компоненты SIMATIC для визуализации процессов, а именное станции оператора на основе WinCC.

Встраивание в MES-и ERP-решения

Благодаря стандартным интерфейсам SIMATIC WinCC становится встроенной составной частью информационно-технологического ландшафта на всем предприятии – от автоматизированного производственного процесса вплоть до оптимизации процессов на уровне управления предприятием и до подготовки административных данных для руководства предприятия (MES = Manufacturing Execution Systems – Производственные исполняющие системы и ERP = Enterprise Resource Planning – Планирование ресурсов в масштабе предприятия).

205

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