Руководство пользователя контроллера DL06. Номер руководства D0-06USER-M-RUS - 23

 

  Главная      Учебники - Разные     Руководство пользователя контроллера DL06. Номер руководства D0-06USER-M-RUS (часть 1)

 

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

 

 

 

 

 

 

 

 

 

 

 

содержание      ..     21      22      23      24     ..

 

 

 

Руководство пользователя контроллера DL06. Номер руководства D0-06USER-M-RUS - 23

 

 

Глава

 5: 

Стандартные

 

команды

 RLL. 

5—141

 

» 

 

Табличные

 

команды

 

Move (MOV) 

 

Команда

 Move 

перемещает

 

значения

 

из

 

одной

 

таблицы

 V-

памяти

 

в

 

другую

 

таблицу

 V-

памяти

 

с

 

такой

 

же

 

длиной

. 

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

 

параметры

 

загружаются

 

в

 

первый

 

уровень

 

стека

 

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

 

и

 

в

 

аккумулятор

 

двумя

 

дополнительными

 

командами

. 

Ниже

 

показаны

 

шаги

, 

необходимые

 

для

 

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

 

функции

 Move. 

 

Шаг

 1:

 

загрузите

 

число

 

перемещаемых

 

ячеек

 V-

памяти

 

в

 

первый

 

уровень

 

стека

 

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

. 

Этот

 

параметр

 

должен

 

быть

 

шестнадцатиричным

 

значением

. 

Шаг

 2:

 

загрузите

 

начальную

 

ячейку

 V-

памяти

 

для

 

ячеек

, 

перемещаемых

 

в

 

аккумулятор

. 

Этот

 

параметр

 

должен

 

быть

 

шестнадцатеричным

 

значением

. 

Шаг

 3:

 

вставьте

 

команду

 Move, 

которая

 

указывает

 

стартовую

 

ячейку

 V-

памяти

 

(Vaaa) 

для

 

таблицы

 

места

 

назначения

. 

Полезная

 

подсказка

:

 

Для

 

параметров

, 

которые

 

требуют

 

шестнадцатиричных

 

значений

 

при

 

ссылке

 

на

 

ячейки

 

памяти

, 

может

 

быть

 

использована

 

команда

 

LDA 

для

 

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

 

восьмеричного

 

адреса

 

в

 

шестнадцатиричный

 

эквивалент

 

и

 

загрузки

 

значения

 

в

 

аккумулятор

. 

 

Тип

 

данных

 

операнда

 DL06 

Диапазон

 

 A

aaa 

V-

память

 

V

Смотри

 

карту

 

памяти

 

Указатель

 

P

Смотри

 

карту

 

памяти

 

 

Флаги

  

Описание

 

SP53 «1», 

когда

 

значение

 

операнда

 

больше

, 

чем

 

значение

, 

с

 

которым

 

может

 

работать

 

аккумулятор

 

 

 

В

 

следующем

 

примере

, 

когда

 

Х

1 

включен

, 

константа

  (

К

6) 

загружается

 

в

 

аккумулятор

, 

используя

 

команду

 Load. 

Это

 

значение

 

указывает

 

длину

 

таблицы

 

и

 

помещается

 

в

 

первой

 

ячейке

 

стека

 

после

 

выполнения

 

команды

 

Load Address. 

Восьмеричный

 

адрес

 2000 (V2000), 

который

 

является

 

начальной

 

ячейкой

 

для

 

исходной

 

таблицы

, 

загружается

 

в

 

аккумулятор

. 

Ячейка

 

таблицы

 

места

 

назначения

 (V2030) 

указывается

 

в

 

команде

 Move. 

5—142

 

Глава

 5: 

Стандартные

 

команды

 RLL.

 

» 

 

Move Memory Cartridge(MOVMC) /Load Label (LDLBL) 

 

Команда

 Move Memory Cartridge 

используется

 

для

 

копирования

 

данных

 

между

 V-

памятью

 

и

 

памятью

 

программы

. 

Команда

 Load Label 

используется

 

только

 

с

 

командой

 MOVMC 

при

 

копировании

 

данных

 

из

 

памяти

 

программы

 

в

 V-

память

.  

Чтобы

 

копировать

 

данные

 

между

 V-

памятью

 

и

 

памятью

 

программы

, 

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

 

параметры

 

загружаются

 

в

 

первые

 

два

 

уровня

 

стека

 

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

 

и

 

аккумулятор

 

двумя

 

дополнительными

 

командами

. 

Ниже

 

показаны

 

шаги

, 

необходимые

 

для

 

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

 

функций

 Move Memory Cartridge 

и

 Load Label. 

 

 

 

Шаг

 1:

 

загрузите

 

число

 

копируемых

 

слов

 

во

 

второй

 

уровень

 

стека

 

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

. 

Шаг

 2:

 

загрузите

 

смещение

 

для

 

области

 

метки

 

данных

 

в

 

памяти

 

программы

 

и

 

начальный

 

блок

 V-

памяти

 

в

 

первый

 

уровень

 

стека

 

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

. 

Шаг

 3:

 

загрузите

 

исходную

 

метку

 

данных

 (LDLBL Kaaa) 

в

 

аккумулятор

 

при

 

копировании

 

данных

 

из

 

памяти

 

программы

 

в

 V-

память

. 

Загрузите

 

исходный

 

адрес

 

в

 

аккумулятор

 

при

 

копировании

 

данных

 

из

 V-

памяти

 

в

 

память

 

программы

. 

Это

 

адрес

, 

откуда

 

значение

 

будет

 

скопировано

. 

Если

 

исходный

 

адрес

 

является

 

ячейкой

 V-

памяти

, 

то

 

значение

 

должно

 

быть

 

введено

 

в

 

шестнадцатиричном

 

коде

. 

Шаг

 4:

 

вставьте

 

команду

 MOVMC, 

которая

 

указывает

 

адрес

 

назначения

 

(Aaaa). 

Это

 

адрес

, 

куда

 

значение

 

будет

 

скопировано

. 

 

 

 

 

 

Тип

 

данных

 

операнда

 DL06 

Диапазон

 

 A

aaa 

V-

память

 

V

Смотри

 

карту

 

памяти

 

 

Глава

 5: 

Стандартные

 

команды

 RLL. 

5—143

 

» 

 

Копирование

 

данных

 

из

 

области

 

меток

 

данных

 

в

 V-

память

 

 

В

 

следующем

 

примере

 

данные

 

копируются

 

из

 

области

 

меток

 

данных

 (Data 

Label Area) 

в

 V-

память

. 

Когда

 

Х

1 

включен

, 

константа

  (

К

4) 

загружается

 

в

 

аккумулятор

, 

используя

 

команду

 Load. 

Это

 

значение

 

указывает

 

длину

 

таблицы

 

и

 

помещается

 

во

 

второй

 

ячейке

 

стека

 

после

 

выполнения

 

следующих

 

команд

 Load 

и

 Load Label (LDLBL). 

Константа

 (

К

0) 

загружается

 

в

 

аккумулятор

, 

используя

 

команду

 Load. 

Это

 

значение

 

указывает

 

смещение

 

для

 

исходной

 

таблицы

 

и

 

адресата

, 

и

 

помещается

 

в

 

первую

 

ячейку

 

стека

 

после

 

выполнения

 

команды

 LDLBL. 

Исходный

 

адрес

, 

откуда

 

копируются

 

данные

, 

загружается

 

в

 

аккумулятор

, 

используя

 

команду

 LDLBL. 

Команда

 MOVMC 

указывает

 

стартовую

 

ячейку

 

адресата

 

и

 

выполняет

 

копирование

 

данных

 

из

 

области

 

метки

 

данных

 

в

 V-

память

. 

 

 

 

5—144

 

Глава

 5: 

Стандартные

 

команды

 RLL.

 

» 

 

SETBIT 

 

Команда

 Set Bit 

устанавливает

 

отдельный

 

бит

 

в

 

единицу

 

в

 

указанном

 

диапазоне

 V-

памяти

. 

RSTBIT 

 

Команда

 Reset Bit 

сбрасывает

 

отдельный

 

бит

 

в

 

ноль

 

в

 

указанном

 

диапазоне

 V-

памяти

. 

 

Следующее

 

описание

 

подходит

 

к

 

обоим

 

табличным

 

командам

 Set Bit 

и

 Reset Bit . 

 

Шаг

 1:

 

загрузите

 

длину

 

таблицы

( 

число

 

ячеек

 V-

памяти

) 

в

 

первый

 

уровень

 

стека

 

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

. 

Этот

 

параметр

 

должен

 

быть

 

шестнадцатиричным

 

значением

 

в

 

пределах

 

от

 0 

до

 FF.  

Шаг

 2:

 

загрузите

 

адрес

 

начальной

 

ячейки

 

таблицы

 

в

 V-

памяти

. 

Этот

 

параметр

 

должен

 

быть

 

шестнадцатиричным

 

значением

. 

Вы

 

можете

 

использовыать

 

команду

 

LDA 

для

 

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

 

восьмиричного

 

адреса

 

в

 

шестнадцатиричный

. 

Шаг

 3:

 

вставьте

 

команду

 Set Bit 

или

 Reset Bit. 

Значение

 

по

 

данному

 

адресу

 

в

 

команде

   

определяет

 

номер

 

бита

, 

который

 

Вы

 

хотите

 

установить

 

или

 

сбросить

. 

Номер

 

бита

 

должен

 

быть

 

восьмиричным

 

числом

 

и

 

первый

 

бит

 

в

 

таблице

 

имеет

 

номер

 «0». 

Полезный

 

совет

:

 — 

Помните

, 

что

 

каждая

 

ячейка

 V-

памяти

 

содержит

 16 

бит

. 

Таким

 

образом

, 

биты

 

первого

 

слова

 

таблицы

 

пронумерованы

 

от

 0 

до

 17 

в

 

восьмеричном

 

виде

. 

Например

, 

если

 

длина

 

таблицы

 - 

шесть

 

слов

, 

то

 6 

слов

 = (6 x 16) 

бит

, = 

96(

десятичное

 

число

)  

бит

, 

или

 140(

восьмеричное

). 

Допустимый

 

диапазон

 

числа

 

бит

 

для

 

данной

 

ссылки

 

был

 

бы

 

от

 0 

до

 137(

восьмеричное

 

число

). SP 53 

будет

 

установлен

, 

если

 

указанный

 

бит

 

будет

 

находится

 

вне

 

диапазона

 

таблицы

. 

 

Тип

 

данных

 

операнда

 DL06 

Диапазон

 

 A

aaa 

V-

память

 

V

Смотри

 

карту

 

памяти

 

 

Флаги

  

Описание

 

SP53 «1», 

когда

 

значение

 

операнда

 

больше

, 

чем

 

значение

, 

с

 

которым

 

может

 

работать

 

аккумулятор

 

 

 

ПРИМЕЧАНИЕ

. 

Флаги

 

состояния

 

действительны

 

только

 

до

 

того

 

момента

, 

когда

 

будет

 

выполнена

 

другая

 

команда

, 

использующая

 

те

 

же

 

самые

 

флаги

. 

 

 

 

Например

, 

предположим

, 

что

 

мы

 

имеем

 

таблицу

, 

начинающуюся

 

с

 V3000, 

и

 

длиной

 

в

 

два

 

слова

, 

как

 

показано

 

справа

 

Каждое

 

слово

 

в

 

таблице

 

содержит

 16 

битов

, 

или

 

от

 

0 

до

 17 

в

 

восьмеричном

 

виде

. 

Чтобы

 

устанавливать

 

бит

 12 

в

 

втором

 

слове

, 

мы

 

используем

 

восьмеричную

 

ссылку

 (

бит

 14). 

Затем

 

мы

 

вычисляем

 

восьмеричный

 

адрес

 

бита

 

от

 

начала

 

таблицы

, 

как

 17+14=34 

(

восьмеричное

). 

На

 

следующей

 

странице

 

показана

 

программа

, 

устанавливающая

 

этот

 

бит

 

в

 “1”. 

Глава

 5: 

Стандартные

 

команды

 RLL. 

5—145

 

» 

 

 

В

 

этом

 

примере

 

релейной

 

схемы

, 

мы

 

используем

 

вход

 X0, 

чтобы

 

начать

 

выполнение

 

операцию

 

по

 

установки

 

бита

. 

Сначала

, 

мы

 

загрузим

 

длину

 

таблицы

 (2 

слова

) 

в

 

стек

 

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

. 

Затем

, 

мы

 

загружаем

 

начальный

 

адрес

 

в

 

аккумулятор

. 

Затем

, 

используя

 

команду

 LDA, 

преобразуем

 V3000, 

восьмиричное

 

число

, 

в

 

шестнадцатеричный

 

вид

. 

И

 

в

 

заключение

, 

мы

 

используем

 

команду

 Set Bit (

или

 Reset Bit) 

и

 

указываем

 

восьмеричный

 

адрес

 

бита

 (

бит

 34), 

как

 

ссылку

 

на

 

таблицу

. 

 

5—146

 

Глава

 5: 

Стандартные

 

команды

 RLL.

 

» 

 

Fill (FILL) 

 

Команда

 Fill 

заполняет

 

таблицу

 

до

 255 

ячеек

 V-

памяти

 

значением

 (Aaaa), 

который

 

является

 

ячейкой

 V-

памяти

 

или

 4-

х

 

разрядной

 

константой

. 

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

 

параметры

 

загружены

 

в

 

первый

 

уровень

 

стека

 

и

 

аккумулятор

 

двумя

 

дополнительными

 

командами

. 

 

Ниже

 

даны

 

шаги

 

необходимые

 

при

 

использовании

 

функции

 Fill. 

Шаг

 1:—

 

Загрузите

 

число

 

ячеек

 V-

памяти

 

который

 

необходимо

 

заполнить

 

в

 

первый

 

уровень

 

стека

 

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

. 

Этот

 

параметр

 

должен

 

быть

 

шестнадцатиричным

 

числом

 

в

 

пределах

 

от

 0 

до

 FF. 

Шаг

 2:—

 

Загрузите

 

начальный

 

адрес

 

ячейки

 V-

памяти

 

для

 

таблицы

 

в

 

аккумулятор

. 

Этот

 

параметр

 

должен

 

быть

 

шестнадцатиричным

 

числом

. 

Шаг

 3:—

 

Вставьте

 

команду

 Fill, 

которая

 

определяет

 

значение

 

для

 

заполнения

 

таблицы

.  

Полезный

 

совет

: — 

Вы

 

можете

 

использовать

 

команду

 LDA 

для

 

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

 

восьмиричного

 

адреса

 

в

 

шестнадцатиричный

. 

 

Тип

 

данных

 

операнда

 

Диапазон

 DL06 

 A 

aaa 

V-

память

 

V 

Смотри

 

карту

 

памяти

 

Указатель

 P 

Смотри

 

карту

 

памяти

 

Константа

 

K 0-FFFF 

 

 

В

 

следующем

 

примере

, 

когда

 X1 

включен

, 

константа

 

загружается

 

в

 

аккумулятор

, 

используя

 

команду

 Load. 

Это

 

значение

 

определяет

 

длину

 

таблицы

 

и

 

помещается

 

в

 

первый

 

уровень

 

стека

 

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

, 

когда

 

команда

 

Load Address 

будет

 

выполнена

. 

Восьмеричный

 

адрес

 1600 (V1600) - 

начальная

 

ячейка

 

таблицы

, 

загружается

 

в

 

аккумулятор

, 

используя

 

инструкцию

 

Load Address. 

Значение

 

для

 

заполнения

 

таблицы

 (V1400) 

определяется

 

в

 

команде

 Fill. 

Глава

 5: 

Стандартные

 

команды

 RLL. 

5—147

 

» 

 

Find (FIND) 

 

Команда

 Find 

используется

 

для

 

поиска

 

заданной

 

величины

 

в

 

таблице

 

до

 255 

ячеек

 V-

памяти

. 

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

 

параметры

 

загружены

 

в

 

первый

 

и

 

второй

 

уровни

 

стека

 

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

 

и

 

сам

 

аккумулятор

 

тремя

 

дополнительными

 

командами

. 

Ниже

 

перечислены

 

шаги

 

необходимые

 

при

 

использовании

 

функции

 Find. 

 

Шаг

 1:—

 

Загрузите

 

число

 

ячеек

 V-

памяти

 

во

 

второй

 

уровень

 

стека

 

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

. 

Этот

 

параметр

 

должен

 

быть

 

шестнадцатиричным

 

числом

 

в

 

пределах

 

от

 0 

до

 FF. 

Шаг

 2:—

 

Загрузите

 

начальный

 

адрес

 

ячейки

 V-

памяти

 

для

 

таблицы

 

в

 

первый

 

уровень

 

стека

 

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

. 

Этот

 

параметр

 

должен

 

быть

 

шестнадцатиричным

 

числом

. 

Шаг

 3:—

 

Загрузите

 

в

 

аккумулятор

 

смещение

 

ячейки

, 

с

 

которой

 

начинается

 

поиск

. 

Этот

 

параметр

 

должен

 

быть

 

шестнадцатиричным

 

числом

. 

Шаг

 4:—

 

Вставьте

 

команду

 Find 

определяющую

 

значение

, 

которое

 

должно

 

быть

 

найдено

 

в

 

таблице

.  

Результат

:—

  

Смещение

 

от

 

начального

 

адреса

 

до

 

первой

 

ячейки

 V-

памяти

, 

которая

 

содержит

 

значение

 

поиска

  (

шестнадцатиричное

 

значение

),  

возвращается

 

в

 

аккумулятор

. SP53 

будет

 

установлен

 

на

 

том

 

случае

, 

если

 

адрес

 

в

 

смещении

 

определен

 

вне

 

таблицы

, 

или

 

значение

 

не

 

найдено

. 

Если

 

значение

 

не

 

найдено

 

в

 

аккумулятор

 

будет

 

возвращено

 

значение

 «0». 

Полезный

 

совет

: — 

Вы

 

можете

 

использовать

 

команду

 LDA 

для

 

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

 

восьмиричного

 

адреса

 

в

 

шестнадцатиричный

. 

 

Тип

 

данных

 

операнда

 

Диапазон

 DL06 

 A 

aaa 

V-

память

 

V 

Смотри

 

карту

 

памяти

 

Указатель

 P 

Смотри

 

карту

 

памяти

 

Константа

 

K 0-FFFF 

 

Флаги

  

Описание

 

SP53 «1», 

когда

 

не

 

найдено

 

искомое

 

значение

 

в

 

указанной

 

таблице

 

 

 

ПРИМЕЧАНИЕ

. 

Флаги

 

состояния

 

действительны

 

только

 

до

 

того

 

момента

, 

когда

 

будет

 

выполнена

 

другая

 

команда

, 

использующая

 

те

 

же

 

самые

 

флаги

. 

Указатель

 

для

 

этой

 

команды

 

может

 

начинаться

 

с

 0 

и

 

сохраняется

 

в

 

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

 

 

 

В

 

следующем

 

примере

, 

когда

 X1 

включен

, 

константа

 

загружается

 

в

 

аккумулятор

, 

используя

 

команду

 Load. 

Это

 

значение

 

определяет

 

длину

 

таблицы

 

и

 

помещается

 

во

 

второй

 

уровень

 

стека

, 

при

 

выполнении

 

следующих

 

команд

 Load Address 

и

 Load. 

Восьмеричный

 

адрес

 1400 (V1400) - 

начальная

 

ячейка

 

таблицы

 

загружается

 

в

 

аккумулятор

. 

Это

 

значение

 

помещается

 

в

 

первый

 

уровень

 

стека

 

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

, 

при

 

выполнении

 

следующей

 

команды

 

Load. 

Смещение

 (K2) 

загружается

 

в

 

младшие

 16 

бит

 

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

, 

используя

 

команду

 Load. 

Значение

, 

которое

 

будет

 

найдено

 

в

 

таблице

 

определено

 

в

 

команде

 Find. 

Если

 

найдено

 

значение

 

равное

 

значению

 

поиска

, 

смещение

 (

от

 

начальной

 

ячейки

 

таблицы

), 

где

 

значение

 

размещено

,  

сохраняется

 

в

 

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

. 

5—148

 

Глава

 5: 

Стандартные

 

команды

 RLL.

 

» 

 

 

 

 

Find Greater Than (FDGT) 

 

Команда

 Find Greater Than 

используется

 

для

 

поиска

, 

первого

 

местонахождение

 

значения

 

в

 

таблице

 V-

памяти

, 

которое

 

является

 

больше

 

заданной

 

величины

 (Aaaa), 

которая

 

может

 

быть

 

или

 

ячекой

 V-

памяти

 

или

 4-

разрядная

 

константа

. 

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

 

параметры

 

загружены

 

в

 

первый

 

уровень

 

стека

 

и

 

аккумулятор

 

двумя

 

дополнительными

 

инструкциями

. 

Ниже

 

перечислены

 

шаги

, 

необходимые

 

для

 

работы

 

с

 

командой

 Find Greater Than.

 

 

Шаг

 1:—

 

Загрузите

 

длину

 

таблицы

 

в

 V-

памяти

 

в

 

первый

 

уровень

 

стека

 

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

. 

Этот

 

параметр

 

должен

 

быть

 

шестнадцатиричным

 

числом

 

в

 

пределах

 

от

 0 

до

 FF. 

Шаг

 2:—

 

Загрузите

 

начальный

 

адрес

 

ячейки

 V-

памяти

 

для

 

таблицы

 

в

 

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

. 

Этот

 

параметр

 

должен

 

быть

 

шестнадцатиричным

 

числом

. 

Шаг

 3:—

 

Вставьте

 

команду

 FDGT 

определяющую

 

значение

 

больше

 

указанного

.  

Результат

:—

 

Смещение

 

от

 

начального

 

адреса

 

до

 

первой

 

ячейки

 V-

памяти

, 

которая

 

содержит

 

значение

 

больше

, 

чем

 

указанное

  (

шестнадцатиричное

 

значение

), 

возвращается

 

в

 

аккумулятор

. SP53 

будет

 

установлен

 

в

 

том

 

случае

, 

если

 

адрес

 

в

 

смещении

 

определен

 

вне

 

таблицы

, 

или

 

значение

 

не

 

найдено

. 

Если

 

значение

 

не

 

найдено

 

в

 

аккумулятор

 

будет

 

возвращено

 

значение

 «0». 

Полезный

 

совет

: — 

Вы

 

можете

 

использовать

 

команду

 LDA 

для

 

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

 

восьмиричного

 

адреса

 

в

 

шестнадцатиричный

. 

 

 

ПРИМЕЧАНИЕ

. 

Эта

 

команда

 

не

 

имеет

 

смещения

, 

типа

, 

требуемого

 

для

 

команды

 Find. 

Глава

 5: 

Стандартные

 

команды

 RLL. 

5—149

 

» 

 

Тип

 

данных

 

операнда

 

Диапазон

 DL06 

 A 

aaa 

V-

память

 

V 

Смотри

 

карту

 

памяти

 

Константа

 

K 0-FFFF 

 

Флаги

  

Описание

 

SP53 «1», 

когда

 

не

 

найдено

 

значение

 

больше

 

искомого

 

в

 

указанной

 

таблице

 

 

 

ПРИМЕЧАНИЕ

. 

Флаги

 

состояния

 

действительны

 

только

 

до

 

того

 

момента

, 

когда

 

будет

 

выполнена

 

другая

 

команда

, 

использующая

 

те

 

же

 

самые

 

флаги

. 

Указатель

 

для

 

этой

 

команды

 

может

 

начинаться

 

с

 0 

и

 

сохраняется

 

в

 

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

 

 

 

В

 

следующем

 

примере

, 

когда

 X1 

включен

, 

константа

 

К

6 

загружается

 

в

 

аккумулятор

, 

используя

 

команду

 Load. 

Это

 

значение

 

определяет

 

длину

 

таблицы

 

и

 

помещается

 

в

 

первый

 

уровень

 

стека

, 

при

 

выполнении

 

следующей

 

команд

 Load Address. 

Восьмеричный

 

адрес

 1400 (V1400) - 

начальная

 

ячейка

 

таблицы

 

загружается

 

в

 

аккумулятор

. 

Ячейка

, 

значение

 

которой

 

будет

 

больше

 

указанного

 

определяется

 

в

 

команде

 Find Greater Than. 

Если

 

найдено

 

значение

 

больше

 

искомого

, 

смещение

  (

от

 

начальной

 

ячейки

 

таблицы

), 

где

 

значение

 

размещено

, 

сохраняется

 

в

 

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

. 

Если

 

значение

 

больше

 

искомого

 

не

 

найдено

, 

в

 

аккумулятор

 

помещается

 0 

и

 

устанавливается

 SP53 . 

 

5—150

 

Глава

 5: 

Стандартные

 

команды

 RLL.

 

» 

 

Table to Destination (TTD) 

 

Команда

 Table To Destination 

перемещает

 

значение

 

из

 

таблицы

 V-

памяти

 

в

 

ячеки

 V-

памяти

 

и

 

увеличивает

 

указатель

 

таблицы

 

на

 1. 

Первая

 

ячейка

 V-

памяти

 

в

 

таблице

 

содержит

 

указатель

 

таблицы

, 

который

 

указывает

 

следующую

 

ячейку

 

в

 

таблице

, 

которая

 

будет

 

перемещена

. 

Инструкция

 

будет

 

выполнена

, 

только

 

если

 

в

 

данном

 

цикле

 

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

 

вход

 

включен

. 

Указатель

 

таблицы

 

сбросится

 

в

 1, 

когда

 

значение

 

равно

 

последней

 

ячейке

 

в

 

таблице

. 

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

 

параметры

 

загружаются

 

в

 

первый

 

уровень

 

стека

 

и

 

аккумулятор

 

двумя

 

дополнительными

 

инструкциями

. 

Ниже

 

перечислены

 

шаги

, 

необходимые

 

для

 

использования

 

команды

 Table To Destination

 

 

Шаг

 1:—

 

Загрузите

 

длину

 

таблицы

 (

число

 

ячеек

 V-

памяти

) 

в

 

первый

 

уровень

 

стека

 

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

. 

Этот

 

параметр

 

должен

 

быть

 

шестнадцатиричным

 

числом

 

в

 

пределах

 

от

 0 

до

 FF. 

Шаг

 2:—

 

Загрузите

 

начальный

 

адрес

 

ячейки

 V-

памяти

 

для

 

таблицы

 

в

 

аккумулятор

( 

помните

, 

что

 

начальная

 

ячейка

 

используется

 

как

 

указатель

 

таблицы

). 

Этот

 

параметр

 

должен

 

быть

 

шестнадцатиричным

 

числом

. 

Шаг

 3:—

 

Вставьте

 

команду

 TTD, 

которая

 

определяет

 

адрес

 

ячейки

 V-

памяти

 

(Vaaa). 

Полезный

 

совет

: — 

Вы

 

можете

 

использовать

 

команду

 LDA 

для

 

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

 

восьмиричного

 

адреса

 

в

 

шестнадцатиричный

 

и

 

загрузки

 

его

 

в

 

аккумулятор

. 

Полезный

 

совет

: —

 

Инструкция

 

будет

 

выполнятся

 

каждый

 

цикл

 

сканирования

, 

если

 

входная

 

логика

 

включена

. 

Если

 

Вы

 

не

 

хотите

, 

чтобы

  

инструкция

 

выполнилась

 

для

 

более

 

чем

 

одно

 

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

, 

используйте

  

команду

 

одиночного

 

импульса

 PD 

во

 

входной

 

логике

.

 

Полезный

 

совет

: —

 

Ячейка

 

указателя

 

должна

 

быть

 

установлена

 

в

 

значение

 

начальной

 

ячейки

 

для

 

работы

 

с

 

таблицей

. 

Необходимо

 

использовать

 

специальное

 

реле

 SP0 

или

 

команду

 

одиночного

 

импульса

 PD, 

в

 

этом

 

случае

 

значение

 

будет

 

установлено

 

только

 

в

 

одном

 

цикле

 

сканирования

 

и

 

не

 

будет

 

влиять

 

на

 

работу

 

команды

. 

 

 

 

Тип

 

данных

 

операнда

 

Диапазон

 DL06 

 A 

aaa 

V-

память

 

V 

Смотри

 

карту

 

памяти

 

 

Флаги

  

Описание

 

SP56 «1», 

когда

 

значение

 

указателя

 

таблицы

 

равно

 

длине

 

таблицы

. 

 

 

ПРИМЕЧАНИЕ

. 

Флаги

 

состояния

 (SP) 

не

 

только

 

допустимы

 

до

 

исполнения

 

другой

 

команды

, 

которая

 

использует

,  

те

 

же

 

самые

 

флаги

, 

или

 

конца

 

цикла

 

сканирования

, 

но

, 

и

 

указатель

 

для

 

этих

 

команд

 

сначала

 

равен

 0 

и

 

сбрасывается

, 

когда

 

достигнута

 

длина

 

таблицы

. 

На

 

первый

 

взгляд

 

может

 

показаться

, 

что

 

указатель

 

должен

 

сброситься

 

в

 0. 

Однако

, 

он

 

сбрасывается

 

в

 1. 

 

Глава

 5: 

Стандартные

 

команды

 RLL. 

5—151

 

» 

 

 

В

 

следующем

 

примере

, 

когда

 X1 

включен

, 

константа

 (K6) 

загружается

 

в

 

аккумулятор

, 

используя

 

команду

 Load. 

Это

 

значение

 

определяет

 

длину

 

таблицы

 

и

 

помещается

 

в

 

первый

 

уровень

 

стека

 

после

 

того

, 

как

 

команда

 Load 

Address 

будет

 

выполнена

. 

Восьмеричный

 

адрес

 1400 (V1400) - 

начальная

 

ячейка

 

для

 

исходной

 

таблицы

 – 

загружается

 

в

 

аккумулятор

. 

Помните

, V1400 

используется

 

как

 

ячейка

 

указателя

, 

и

, 

фактически

, 

не

 

часть

 

таблицы

 

как

 

источника

 

данных

. 

Адрес

 

ячейки

 (V1500) 

определен

 

в

 

команде

 Table to 

Destination. 

Указатель

 

таблицы

  (

в

 

этом

 

случае

 V1400) 

будет

 

увеличен

 

на

 “1” 

после

 

каждого

 

выполнения

 TTD 

инструкции

. 

 

 

Важно

 

понять

, 

как

 

пронумерованы

 

ячейки

 

таблицы

. 

Если

 

Вы

 

рассмотрите

 

таблицу

 

в

 

примере

, 

вы

 

увидите

, 

что

 

первая

 

ячейка

 

данных

, V1401, 

будет

 

использоваться

, 

когда

 

указатель

 

равен

 

нулю

, 

и

 

снова

, 

когда

 

указатель

 

равен

 

шести

. 

Почему

? 

Потому

, 

что

 

указатель

 

равен

 

нулю

 

только

 

перед

 

самим

 

первым

 

выполнением

. 

В

 

дальнейшем

, 

он

 

увеличивается

 

от

 

одного

 

до

 

шести

, 

и

 

затем

 

сбрасывается

 

в

 

единицу

. 

 

Наш

 

пример

, 

также

 

использует

 

нормально

-

открытый

 

входной

 

контакт

 (X1), 

чтобы

 

управлять

 

выполнением

 

команды

. 

Так

 

как

 

цикл

 

сканирования

 

процессора

 

совершается

 

за

 

минимальное

 

время

, 

то

 

и

 

автоматическое

 

увеличение

 

указателя

 

таблицы

 

в

 

цикле

 

произойдет

 

очень

 

быстро

. 

Если

 

такое

 

положение

 

вещей

 

является

 

для

 

Вас

 

проблемой

, 

то

 

воспользуйтесь

 

специальным

 

реле

 SP56 

или

 

командой

 

одиночного

 

импульса

 (PD) 

с

 

защелкой

  (

например

 C1), 

чтобы

 

таблица

 

циклически

 

прошла

 

все

 

ячейки

 

и

 

затем

 

останавилась

. 

Логика

, 

показанная

 

здесь

 

не

 

обязательна

, 

и

 

дана

 

как

 

пример

.

 

5—152

 

Глава

 5: 

Стандартные

 

команды

 RLL.

 

» 

 

 

На

 

следующем

 

рисунке

 

показаны

 

результаты

 

выполнения

 

нашего

 

примера

 

программы

 

в

 

каждом

 

цикле

. 

Обратите

 

внимание

, 

как

 

указатель

 

автоматически

 

изменяется

 

в

 

цикле

 

от

 0 

до

 6, 

и

 

затем

, 

сбрасывается

 

в

 1 

вместо

 0. 

Также

, 

обратите

 

внимание

, 

что

 SP56 

включается

 

только

 

при

 

окончании

 

цикла

.  

 

 

Глава

 5: 

Стандартные

 

команды

 RLL. 

5—153

 

» 

 

Remove from Bottom (RFB) 

 

Команда

 Remove From Bottom 

перемещает

 

значение

 

из

 

таблицы

 V-

памяти

 

в

 

ячеки

 V-

памяти

 

и

 

уменьшает

 

указатель

 

таблицы

 

на

 1. 

Первая

 

ячейка

 V-

памяти

 

в

 

таблице

 

содержит

 

указатель

 

таблицы

, 

который

 

указывает

 

следующую

 

ячейку

 

в

 

таблице

, 

которая

 

будет

 

перемещена

. 

Инструкция

 

будет

 

выполнена

, 

только

 

если

 

в

 

данном

 

цикле

 

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

 

вход

 

включен

. 

Команда

 

окончит

 

свое

 

выполнение

 

в

 

тот

 

момент

, 

когда

 

указатель

 

таблицы

 

станет

 

равным

 0. 

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

 

параметры

 

загружаются

 

в

 

первый

 

уровень

 

стека

 

и

 

аккумулятор

 

двумя

 

дополнительными

 

командами

. 

Ниже

 

перечислены

 

шаги

, 

необходимые

 

для

 

использования

 

команды

 Remove From Bottom

 

 

Шаг

 1:—

 

Загрузите

 

длину

 

таблицы

 (

число

 

ячеек

 V-

памяти

) 

в

 

первый

 

уровень

 

стека

 

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

. 

Этот

 

параметр

 

должен

 

быть

 

шестнадцатиричным

 

числом

 

в

 

пределах

 

от

 0 

до

 FF. 

Шаг

 2:—

 

Загрузите

 

начальный

 

адрес

 

ячейки

 V-

памяти

 

для

 

таблицы

 

в

 

аккумулятор

  (

помните

, 

что

 

начальная

 

ячейка

 

используется

 

как

 

указатель

 

таблицы

). 

Этот

 

параметр

 

должен

 

быть

 

шестнадцатиричным

 

числом

. 

Шаг

 3:—

 

Вставьте

 

команду

 RFB, 

которая

 

определяет

 

адрес

 

ячейки

 V-

памяти

 

(Vaaa). 

Полезный

 

совет

: — 

Вы

 

можете

 

использовать

 

команду

 LDA 

для

 

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

 

восьмиричного

 

адреса

 

в

 

шестнадцатиричный

 

и

 

загрузки

 

его

 

в

 

аккумулятор

. 

Полезный

 

совет

: —

 

Инструкция

 

будет

 

выполнятся

 

каждый

 

цикл

 

сканирования

, 

если

 

входная

 

логика

 

включена

. 

Если

 

Вы

 

не

 

хотите

, 

чтобы

  

команда

 

выполнялась

 

более

 

чем

 

один

 

цикл

 

сканирования

, 

используйте

  

команду

 

одиночного

 

импульса

 PD 

во

 

входной

 

логике

.

 

Полезный

 

совет

: —

 

Ячейка

 

указателя

 

должна

 

быть

 

установлена

 

в

 

значение

 

начальной

 

ячейки

 

для

 

работы

 

с

 

таблицей

. 

Необходимо

 

использовать

 

специальное

 

реле

 SP0 

или

 

команду

 

одиночного

 

импульса

 PD, 

в

 

этом

 

случае

 

значение

 

будет

 

установлено

 

только

 

в

 

одном

 

цикле

 

сканирования

 

и

 

не

 

будет

 

влиять

 

на

 

работу

 

команды

. 

 

 

 

 

Тип

 

данных

 

операнда

 

Диапазон

 DL06 

 A 

aaa 

V-

память

 

V 

Смотри

 

карту

 

памяти

 

 

Флаги

  

Описание

 

SP56 «1», 

когда

 

указатель

 

таблицы

 

равен

 0. 

 

 

ПРИМЕЧАНИЕ

. 

Флаги

 

состояния

 (SP) 

не

 

только

 

допустимы

 

до

 

исполнения

 

другой

 

команды

, 

которая

 

использует

, 

те

 

же

 

самые

 

флаги

, 

или

 

конца

 

цикла

 

сканирования

, 

но

, 

и

 

указатель

 

для

 

данной

 

команды

 

должен

 

быть

 

установлен

 

до

 

начала

 

выполнения

. 

Указатель

 

не

 

устанавливается

 

автоматически

. 

Вы

 

должны

 

загрузить

 

значение

 

в

 

указатель

 

где

-

нибудь

 

в

 

вашей

 

программе

. 

 

5—154

 

Глава

 5: 

Стандартные

 

команды

 RLL.

 

» 

 

 

В

 

следующем

 

примере

, 

когда

 X1 

включен

, 

константа

 (K6) 

загружается

 

в

 

аккумулятор

, 

используя

 

команду

 Load. 

Это

 

значение

 

определяет

 

длину

 

таблицы

 

и

 

помещается

 

в

 

первый

 

уровень

 

стека

 

после

 

того

, 

как

 

команда

 Load 

Address 

будет

 

выполнена

. 

Восьмеричный

 

адрес

 1400 (V1400) - 

начальная

 

ячейка

 

для

 

исходной

 

таблицы

 – 

загружается

 

в

 

аккумулятор

. 

Помните

, V1400 

используется

 

как

 

ячейка

 

указателя

, 

и

, 

фактически

, 

не

 

часть

 

таблицы

 

как

 

источника

 

данных

. 

Адрес

 

ячейки

 (V1500) 

определен

 

в

 

команде

 Remove From 

Bottom. 

Указатель

 

таблицы

  (

в

 

этом

 

случае

 V1400) 

будет

 

уменьшен

 

на

 “1” 

после

 

каждого

 

выполнения

 RFB 

инструкции

. 

 

 

Важно

 

понять

, 

как

 

пронумерованы

 

ячейки

 

таблицы

. 

Если

 

Вы

 

рассмотрите

 

таблицу

 

в

 

примере

, 

вы

 

увидите

, 

что

 

первая

 

ячейка

 

данных

, V1401, 

будет

 

использоваться

, 

когда

 

указатель

 

равен

 

единице

. 

Вторая

 

ячейка

 

данных

, V1402, 

будет

 

использоваться

, 

когда

 

указатель

 

равен

 

двойке

 

и

 

т

.

д

.

 

 

 

Наш

 

пример

, 

также

 

использует

 

нормально

-

открытый

 

входной

 

контакт

 (X1), 

чтобы

 

управлять

 

выполнением

 

команды

. 

Так

 

как

 

цикл

 

сканирования

 

процессора

 

совершается

 

за

 

минимальное

 

время

, 

то

 

и

 

автоматическое

 

увеличение

 

указателя

 

таблицы

 

в

 

цикле

 

произойдет

 

очень

 

быстро

. 

Если

 

такое

 

положение

 

вещей

 

является

 

для

 

Вас

 

проблемой

, 

то

 

воспользуйтесь

 

командой

 

одиночного

 

импульса

 (PD), 

чтобы

 

удалить

 

одно

 

значение

, 

каждый

 

раз

, 

когда

 

входной

 

в

 

контакт

 

переходит

 

из

 

состояния

 

выключено

 

в

 

состояние

 

включено

.

 

 

Глава

 5: 

Стандартные

 

команды

 RLL. 

5—155

 

» 

 

 

На

 

следующем

 

рисунке

 

показаны

 

результаты

 

выполнения

 

нашего

 

примера

 

программы

 

в

 

каждом

 

цикле

. 

Обратите

 

внимание

, 

как

 

указатель

 

автоматически

 

изменяется

 

в

 

цикле

 

от

 6 

до

 0. 

Также

, 

обратите

 

внимание

, 

что

 SP56 

включается

 

только

 

при

 

окончании

 

цикла

.  

 

 

5—156

 

Глава

 5: 

Стандартные

 

команды

 RLL.

 

» 

 

Source to Table (STT) 

 

Команда

 Source To Table 

перемещает

 

значения

 

из

 

ячеек

 V-

памяти

 

в

 

таблицу

 V-

памяти

 

и

 

увеличивает

 

указатель

 

таблицы

 

на

 1. 

Когда

 

указатель

 

таблицы

 

достигает

 

конца

 

таблицы

, 

то

 

он

 

сбрасывается

 

в

 1. 

Первая

 

ячейка

 V-

памяти

 

в

 

таблице

 

содержит

 

указатель

 

таблицы

, 

указывающий

 

на

 

следующую

 

ячейку

 

в

 

таблице

, 

в

 

которой

 

будет

 

сохранено

 

значение

. 

Инструкция

 

будет

 

выполнена

, 

только

 

если

 

в

 

данном

 

цикле

 

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

 

вход

 

включен

. 

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

 

параметры

 

загружаются

 

в

 

первый

 

уровень

 

стека

 

и

 

аккумулятор

 

двумя

 

дополнительными

 

командами

. 

Ниже

 

перечислены

 

шаги

, 

необходимые

 

для

 

использования

 

команды

 

Source To Table

 

 

Шаг

 1:—

 

Загрузите

 

длину

 

таблицы

 (

число

 

ячеек

 V-

памяти

) 

в

 

первый

 

уровень

 

стека

 

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

. 

Этот

 

параметр

 

должен

 

быть

 

шестнадцатиричным

 

числом

 

в

 

пределах

 

от

 0 

до

 FF. 

Шаг

 2:—

 

Загрузите

 

начальный

 

адрес

 

ячейки

 V-

памяти

 

для

 

таблицы

 

в

 

аккумулятор

( 

помните

, 

что

 

начальная

 

ячейка

 

используется

 

как

 

указатель

 

таблицы

). 

Этот

 

параметр

 

должен

 

быть

 

шестнадцатиричным

 

числом

. 

Шаг

 3:—

 

Вставьте

 

команду

 STT, 

которая

 

определяет

 

начальный

 

адрес

 

ячейки

 

V-

памяти

 (Vaaa). 

Из

 

которой

 

начинается

 

перемещение

 

данных

 

в

 

таблицу

. 

Полезный

 

совет

: — 

Вы

 

можете

 

использовать

 

команду

 LDA 

для

 

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

 

восьмиричного

 

адреса

 

в

 

шестнадцатиричный

 

и

 

загрузки

 

его

 

в

 

аккумулятор

. 

Полезный

 

совет

: —

 

Инструкция

 

будет

 

выполнятся

 

каждый

 

цикл

 

сканирования

, 

если

 

входная

 

логика

 

включена

. 

Если

 

Вы

 

не

 

хотите

, 

чтобы

  

инструкция

 

выполнилась

 

более

 

чем

 

один

 

цикл

 

сканирования

 

всей

 

таблицы

, 

то

 

используйте

  

команду

 

одиночного

 

импульса

 PD 

во

 

входной

 

логике

.

 

Полезный

 

совет

: —

 

Значение

 

счетчика

 

таблицы

 

должно

 

быть

 

установлено

 

в

 

значение

 

начальной

 

ячейки

 

для

 

работы

 

с

 

таблицей

. 

При

 

этом

, 

он

 

должен

 

быть

 

установлено

 

в

 

значение

, 

которое

 

находится

 

в

 

пределах

 

длины

 

таблицы

. 

Например

, 

если

 

длина

 

таблицы

 - 6 

слов

, 

то

 

допустимый

 

диапазон

 

значений

, 

которые

 

могли

 

бы

 

быть

 

в

 

указателе

 

между

 0 

и

 6. 

Если

 

значение

 

находится

 

за

 

границами

 

этого

 

диапазона

, 

данные

 

не

 

будут

 

перемещаться

. 

Также

, 

необходимо

 

использовать

 

команду

 

одиночного

 

импульса

 PD, 

в

 

этом

 

случае

 

значение

 

будет

 

установлено

 

только

 

в

 

первом

 

сканировании

 

и

 

будет

 

не

 

влиять

 

на

 

работу

 

команды

. 

 

Тип

 

данных

 

операнда

 

Диапазон

 DL06 

 A 

aaa 

V-

память

 

V 

Смотри

 

карту

 

памяти

 

 

Флаги

  

Описание

 

SP56 «1», 

когда

 

указатель

 

таблицы

 

равен

 

длине

 

таблицы

. 

 

 

ПРИМЕЧАНИЕ

. 

Флаги

 

состояния

 (SP) 

допустимо

 

использовать

 

до

 

исполнения

 

другой

 

команды

, 

которая

 

использует

,  

те

 

же

 

самые

 

флаги

, 

или

 

конца

 

цикла

 

сканирования

. 

Указатель

 

для

 

этих

 

команд

 

сначала

 

равен

 0 

и

 

автоматически

 

сбрасывается

 

в

 1, 

когда

 

достигнута

 

длина

 

таблицы

.  

 

 

 

 

 

 

 

 

содержание      ..     21      22      23      24     ..