Назад
281
Последовательность инструкций
вызывает перенос содержания регистра (пары) 14 (+15) в ячейки памяти с адресами
ЕЕ02
H
и ЕЕО3
H
.
Операция TIR с содержанием КН = 80 по адресу 65 534 включает светодиод на
лицевой панели платы процессора. При содержании КН = 00 светодиод снова
выключается.
Операция TIR по адресу 65 535 влияет на аппаратное обеспечение процессора
(маску).
Распределение регистра и области памяти в контроллерах S5-1 50A и S5-150K
описывается в разделе 9.5.
TNB 0 - 255 перенос блока по байтам
TNW 0 - 255 перенос блока по словам
Операции TNB и TNW вызывают копирование целых областей памяти.
Максимально можно переносить содержание 256 байтов (с помощью операции
TNB) или 256 слов (с помощью операции TNW, но только в S5-150S ). Адрес
исходного поля находится в аккумуляторе 2, адрес поля назначения - в
аккумуляторе I. Перенос блоков осуществляется по убывающей, т.е. необходимо
всегда указывать верхние адреса полей.
282
Последовательность инструкций
переносит содержание ячеек памяти с адресами с F080, по F000
в ячейки памяти с адресами ЕЕ80 - ЕЕОО, в общей сложности 128 байтов.
Вычислительные функции
Операции ADD BF и ADD KF увеличивают содержание аккумулятора 1 на
величину указанной константы. Поскольку указывать можно и отрицательные
числа, то это позволяет выполнять функции как сложения, так вычитания.
Переноса содержания аккумуляторов не происходит, т.е. содержание
аккумуляторов 2 и 4 сохраняется. Индикация не устанавливается.
Операция ADD KF на языке программирования STEP 5 записывается
в виде однословной инструкции. На машинном языке МС 5 в накопителе
программ она занимает два 16-разрядных слова.
283
Прочие числовые системные функции
ТАК Поменять местами содержание аккумуляторов
При выполнении операции ТАК меняется содержание аккумуляторов 1 и 2.
Содержание аккумуляторов 3 и 4 сохраняется. Индикация не устанавливается.
В нижеследующем примере от значения слова меток MW 180 вычитается двоичное
число, стоящее в битах с 0 по II слова входов ЕW 22, и результат переносится в
слово данных DW 17.
Программа на языке
Состояние аккумуляторов после выполнения стоящих над
ними инструкций
284
SIM
LIM
Установить маску прерывания
Считать маск
у
п
р
е
р
ывания
Маска прерывания выступает как интерфейс между системным математическим
обеспечением и аппаратной частью процессора. Посредством операции LIM
опрашиваются состояния аппаратной части, которые затем обрабатываются
системным матобеспечением. Операция SIM позволяет программным путем влиять
на аппаратную часть процессора.
Такое же действие вызывают в контроллерах S5-110S - S5-150K операции TIR с
адресом 65535 или "загрузка системных данных" BSl,3.
Использование этих инструкций целесообразно только в операционных системах
с соответствующей рамочной программой.
9.3 Организационные системные функции
Блочные функции
SPA абсолютный пе
р
еход
SPB условный переход
- OВ 0 - 39 к о
р
ганизационном
у
блок
у
С выполнением операции SPA прекращается линейная обработка программы с
продолжением в указанном организационном блоке. Операция не зависит от
логического результата и на него не влияет. При переходе логический результат
"забирается" вместе с ним и может обрабатываться условными операциями.
Инструкция опроса выступает как первый опрос блока или после его вызова -всегда
как первый опрос (см.раздел 3.1.5).
С операцией SPB линейная обработка программы прекращается только при
логическом результате "I" с продолжением в указанном организационном блоке.
При логическом результате "О" эта операция не выполняется и обработка
программы продолжается, при этом логический результат становится "I". Следует
избегать использования этих инструкций в прикладных программах, чтобы
исключить проблемы координации с системной программой.
285
UBE Конец об
р
аботки п
р
е
р
ывания
Операция UBE вызывает обратный перенос в регистры центрального процессора
информации, записанной при прерывании; при этом происходит "извлечение" из
стека прерываний в обратном порядке.
К прерываниям относятся:
> отключение сети > п
р
евышение в
р
емени
ц
икла
> переполнение стека > затребование DMA
> отключение батарей > обработка таймера
> задержка квити-
рования
> затребование тестового поля
> ошибка в замещении > сигналы тревоги от процесса
> срабатывание
выключателя СТОП
>
>
тревоги требований и тревоги
будильника
При прерывании (по инструкции МС 5 или при смене блока)
линейная обработка программы прекращается и происходит разветвление
системной программы по установленной процедуре прерываний. При этом
внутренние состояния центрального процессора, которые он имел на момент
распознания прерывания, записываются в системные данные (в стек прерываний).
Этими внутренними состояниями являются:
>
со
д
е
р
жания акк
у
м
у
лято
р
ов
>
содержание регистра команд
>
содержание счетчика адресов STEP 5
>
выделение стека блоков
>
исходный адрес текущего блока данных
>
выделение стека скобок
>
логическая индикация уровней скобок
>
индикация результатов и
>
индикация . рерываний.
В установленной процедуре прерываний принимается решение о том, как
реагировать на появление прерывания: переходом в СТОП или вызовом
организационного блока.
После обработки программы прерываний через операцию UBE производится
загрузка центрального процессора "старыми" данными и программа продолжается с
прерванного места (но не со СТОП!).
286
Использование этой инструкции оправданно только в операционной системе с
соответствующей рамочной программой.
Функции перехода
SPR -32768 -
+32767
Переход посредством
системного матобеспечения
Операция SPR выполняется всегда, т.е. независимо от каких-либо условий.
Линейная обработка программы прерывается и продолжается в том месте, которое
было определено дистанцией перехода.
Прочие организационные системные функции
В
ВI
BS 0 - 255 Обработать слово системных данных
Косвенная обработка параметра блока
При операции BBS содержание указанного слова системных данных загружается в
регистр команд и выполняется. Операция, подлежащая выполнению, должна быть
записана на языке МС 5 как однословная инструкция, в противном случае
центральный процессор определит ее как ошибку в замещении.
Операция BBS выполняется всегда независимо от логического результата.
Инструкция, находящаяся в данных системы, выполняется точно также, как если бы
она была запрограммирована отдельно.
Слово системных данных BS255 в контроллере S5-150A/K и BS 243 в S5-150S
системной программой (пока) не занято. Поэтому его можно использовать для этой
обработки. Например, требуется вызвать блок данных, установленный байтом
входов ЕВ 24 (в двоичном выражении):
287
: T BS 255
: B BS 255 Вызов выбранного блока данных
Ml: - Продолжение программы STEP-5
С помощью операции ВI можно обрабатывать параметры блока. Предварительно
необходимо загрузить в аккумулятор 1 номер параметра блока, подлежащего
обработке.
Если в качестве параметра блока указывается двоичный операнд, то при нем должна
предусматриваться операция И U (UND). Числовые операнды сопровождаются
операцией L (Laden)- загрузка. Операнды "блоки" должны сопровождаться
абсолютными операциями вызовов. Таймеры и счетчики относятся к двоичным
операндам.
Примеры:
Если в функциональном блоке FB 203
вышеуказанного примера будет дана следующая
последовательность инструкций, то выполняется
следующая инструкция
288
Определив параметр блока как константу и указав соответствующий код МС-5,
можно выполнить любую (однословную) инструкцию.
Пример:
Обработка операции STS микропрограммой процессора разветвляется на
микропрограммированные шлейфы стонов. Выйти из этих шлейфов можно только
через нажатие выключателя СТОП (на лицевой стороне блока процессора).
Примечание:
Операция STP (СТОП, вызываемый пользователем) вызывает только требование
стопа в системных данных. Обработка программы пользователя продолжается.
После изменения в системной программе происходит обработка этого требования
стопа и разветвление на микропрограммированные стоп-шлейфы. Операция STW
является внутрисистемной инструкцией стопа оперативного матобеспечения,
призванной оптимизировать обработку прерываний по времени.
Использовать эту инструкцию целесообразно только в операционной системе с
соответствующей рамочной программой.
289
9.5 ПРИМЕРЫ: СОЗДАНИЕ И КОПИРОВАНИЕ БЛОКА ДАННЫХ
Примеры этого раздела написаны для контроллеров S5-150A и S5-150K, однако
после изменения абсолютных адресов памяти (там, где это необходимо), их
можно использовать и в других контроллерах.
Этот пример приводится для иллюстрации работы с системными функциями.
Исходным пунктом в рассуждениях должна быть программа, полностью
находящаяся в области ППЗУ (EPROM) памяти контроллера. Эта программа
является энергонезависимой и сохраняется даже при смене плат памяти или блока
питания и может "загружаться" без помощи программирующего устройства простой
установкой модуля EPROM в предусмотренный для него разъем на плате ЗУ.
Однако во многих случаях требуется использовать и область памяти,
предназначенной для записи и считывания (область RAM),которая служит для
обработки блоков данных.
Это необходимо в тех случаях, когда область меток больше не может принять
предлагаемое количество переменных данных, или тогда, когда "индицируют", т.е.
работают с переменным параметром (в контроллерах S5-150A и S5-150K операция
BMW "Обработка слова меток" отсутствует).
В этих случаях при новом запуске контроллера необходимо организовать нужный
блок данных с помощью программы, записанной в области EPROM, и при
необходимости обеспечить его данными из этой области. "Организовать" в данном
случае значит обозначить в памяти место, которое необходимо для нового блока
данных:
написать заголовок блока, стереть содержание на необходимую длину и занести
в список адресов исходный адрес.
Задание
В области RAM программируемого контроллера требуется организовать блок
данных с переменным параметром (номером) и переменной длины. При этом
должны выдаваться распознанные ошибки с расшифровкой по видам. Кроме того,
во вновь организуемый блок требуется перенести содержание блока данных из
области EPROM. Требуется выполнить все необходимые проверки и сообщить о
распознанных ошибках.
290
Целесообразней всего решать эту задачу с помощью двух функциональных блоков:
одного для организации блока данных и одного - для копирования.
Функциональный блок для организации блока данных может, например, выглядеть
следующим образом:
С параметром NRLG двумя байтами вводится номер нового блока данных и его
длина. В параметре FEH готовится один байт с сообщениями об ошибках.
Функциональный блок для копирования блока данных мог бы выглядеть, например,
следующим образом:
С параметром ALT указывается номер копируемого блока данных (источник), с
параметром NEU - номер создаваемого блока данных (цель). В параметре FEH
подготавливается байт с сообщениями об ошибках.
Функциональный блок FB 211, DB-EINR
В функциональном блоке FB211 прежде всего должна производиться проверка,
определяющая наличие параметров, выходящих за пределы разрешенной области.
После этого в память заносится заголовок блока, дополняется список адресов и
стирается область под новый блок данных.
Представленная на следующих страницах программа имеет такую структуру с
комментариями, что можно отказаться от представления структурного плана.
Программа подробно разъясняется на отдельных схемах.