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

 

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

 

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

 

 

 

 

 

 

 

 

 

 

 

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

 

 

 

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

 

 

Глава

 5: 

Стандартные

 

команды

 RLL. 

5—157

 

» 

 

 

В

 

следующем

 

примере

когда

 X1 

включен

константа

 (K6) 

загружается

 

в

 

аккумулятор

используя

 

команду

 Load. 

Это

 

значение

 

определяет

 

длину

 

таблицы

 

и

 

помещается

 

в

 

первый

 

уровень

 

стека

 

после

 

того

как

 

команда

 Load 

Address 

будет

 

выполнена

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

 

адрес

 1400 (V1400) - 

начальная

 

ячейка

 

для

 

исходной

 

таблицы

 – 

загружается

 

в

 

аккумулятор

Помните

, V1400 

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

 

как

 

ячейка

 

указателя

и

фактически

не

 

часть

 

таблицы

 

как

 

источника

 

данных

Адрес

 

ячейки

 (V1500) 

определен

 

в

 Source To Table. 

Указатель

 

таблицы

 

будет

 

увеличен

 

на

 “1” 

после

 

каждого

 

выполнения

 

команды

 

 

Важно

 

понять

как

 

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

 

ячейки

 

таблицы

Если

 

Вы

 

рассмотрите

 

таблицу

 

в

 

примере

вы

 

увидите

что

 

первая

 

ячейка

 

данных

V1401, 

будет

 

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

когда

 

указатель

 

равен

 

нулю

и

 

снова

когда

 

указатель

 

равен

 

шести

Почему

Потому

что

 

указатель

 

равен

 

нулю

 

только

 

перед

 

самим

 

первым

 

выполнением

В

 

дальнейшем

он

 

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

 

от

 

одного

 

до

 

шести

и

 

затем

 

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

 

в

 

единицу

 

Наш

 

пример

также

 

использует

 

нормально

-

открытый

 

входной

 

контакт

 (X1), 

чтобы

 

управлять

 

выполнением

 

команды

Так

 

как

 

цикл

 

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

 

процессора

 

совершается

 

за

 

минимальное

 

время

то

 

и

 

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

 

увеличение

 

указателя

 

таблицы

 

в

 

цикле

 

произойдет

 

очень

 

быстро

Если

 

такое

 

положение

 

вещей

 

является

 

для

 

Вас

 

проблемой

то

 

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

 

командой

 

одиночного

 

импульса

 

(PD), 

чтобы

 

переместить

 

только

 

одно

 

значение

каждый

 

раз

когда

 

входной

 

в

 

контакт

 

переходит

 

из

 

состояния

 

выключено

 

в

 

состояние

 

включено

 

 

5—158

 

Глава

 5: 

Стандартные

 

команды

 RLL.

 

» 

 

 

На

 

следующем

 

рисунке

 

показаны

 

результаты

 

выполнения

 

нашего

 

примера

 

программы

 

в

 

каждом

 

цикле

Обратите

 

внимание

как

 

указатель

 

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

 

изменяется

 

в

 

цикле

 

от

 0 

до

 6, 

и

 

затем

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

 

в

 1 

вместо

 0. 

Также

обратите

 

внимание

что

 SP56 

включается

 

только

 

при

 

окончании

 

цикла

Хотя

 

наш

 

пример

 

не

 

показывает

 

этого

но

 

мы

 

предполагаем

что

 

имеется

 

другая

 

часть

 

программы

которая

 

изменяет

 

значение

 

в

 V1500 (

источник

 

данных

до

 

выполнения

 STT 

инструкции

Это

 

выполнять

 

не

 

обязательно

но

 

при

 

этом

 

легче

 

показать

 

процедуру

 

копирования

 

источника

 

данных

 

в

 

таблицу

 

 

Глава

 5: 

Стандартные

 

команды

 RLL. 

5—159

 

» 

 

Remove from Table (RFT) 

 

Команда

 Remove From Table 

удаляет

 

значение

 

из

 

таблицы

 V-

памяти

 

и

 

сохраняет

 

его

 

в

 

ячейке

 V-

памяти

Когда

 

значение

 

удалено

 

из

 

таблицы

то

 

все

 

остальные

 

значения

 

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

 

вверх

 

на

 

ячейку

Первая

 

ячейка

 V-

памяти

 

в

 

таблице

 

содержит

 

счетчик

 

длины

 

таблицы

Каждый

 

раз

 

при

 

выполнении

 

команды

 

этот

 

счетчик

 

уменьшается

 

на

 1. 

Если

 

счетчик

 

длины

 

равен

 

нулю

 

или

 

больше

 

максимальной

 

длины

 

таблицы

 

(

определенной

 

в

 

первом

 

уровне

 

стека

команда

  

не

 

выполняется

и

 SP56 

будет

 

включен

.

 

 

Команда

 

выполняется

только

если

 

в

 

данном

 

цикле

 

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

 

вход

 

включен

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

 

параметры

 

загружаются

 

в

 

первый

 

уровень

 

стека

 

и

 

аккумулятор

 

двумя

 

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

 

командами

Ниже

 

перечислены

 

шаги

необходимые

 

для

 

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

 

команды

 Remove From Table.

 

 

Шаг

 1:—

 

Загрузите

 

длину

 

таблицы

 (

число

 

ячеек

 V-

памяти

в

 

первый

 

уровень

 

стека

 

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

Этот

 

параметр

 

должен

 

быть

 

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

 

числом

 

в

 

пределах

 

от

 0 

до

 FF. 

Шаг

 2:—

 

Загрузите

 

начальный

 

адрес

 

ячейки

 V-

памяти

 

для

 

таблицы

 

в

 

аккумулятор

  (

помните

что

 

начальная

 

ячейка

 

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

 

как

 

указатель

 

таблицы

). 

Этот

 

параметр

 

должен

 

быть

 

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

 

числом

Шаг

 3:—

 

Вставьте

 

команду

 RFT, 

которая

 

определяет

 

адрес

 

ячейки

 V-

памяти

 

(Vaaa). 

Эта

 

ячейка

 

памяти

 

куда

 

будет

 

удалено

 

значение

Полезный

 

совет

: — 

Вы

 

можете

 

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

 

команду

 LDA 

для

 

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

 

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

 

адреса

 

в

 

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

 

и

 

загрузки

 

его

 

в

 

аккумулятор

Полезный

 

совет

: —

 

Инструкция

 

будет

 

выполнятся

 

каждый

 

цикл

 

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

если

 

входная

 

логика

 

включена

Если

 

Вы

 

не

 

хотите

чтобы

  

команда

 

выполнялась

 

более

 

чем

 

один

 

цикл

 

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

используйте

  

команду

 

одиночного

 

импульса

 PD 

во

 

входной

 

логике

.

 

Полезный

 

совет

: —

 

Значение

 

счетчика

 

таблицы

 

должно

 

быть

 

установлено

 

в

 

значение

 

начальной

 

ячейки

 

для

 

работы

 

с

 

таблицей

При

 

этом

он

 

должен

 

быть

 

установлено

 

в

 

значение

которое

 

находится

 

в

 

пределах

 

длины

 

таблицы

Например

если

 

длина

 

таблицы

 - 6 

слов

то

 

допустимый

 

диапазон

 

значений

которые

 

могли

 

бы

 

быть

 

в

 

указателе

 

между

 1 

и

 6. 

Если

 

значение

 

находится

 

за

 

границами

 

этого

 

диапазона

данные

 

не

 

будут

 

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

Также

необходимо

 

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

 

команду

 

одиночного

 

импульса

 PD, 

в

 

этом

 

случае

 

значение

 

будет

 

установлено

 

только

 

в

 

первом

 

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

 

и

 

будет

 

не

 

влиять

 

на

 

работу

 

команды

 

Тип

 

данных

 

операнда

 

Диапазон

 DL06 

 A 

aaa 

V-

память

 

Смотри

 

карту

 

памяти

 

 

Флаги

  

Описание

 

SP56 «1», 

когда

 

счетчик

 

таблицы

 

равен

 0. 

 

 

ПРИМЕЧАНИЕ

Флаги

 

состояния

 (SP) 

не

 

только

 

допустимы

 

до

 

исполнения

 

другой

 

команды

которая

 

использует

те

 

же

 

самые

 

флаги

или

 

конца

 

цикла

 

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

но

и

 

указатель

 

для

 

данной

 

команды

 

должен

 

быть

 

установлен

 

до

 

начала

 

выполнения

Указатель

 

не

 

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

 

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

Вы

 

должны

 

загрузить

 

значение

 

в

 

указатель

 

где

-

нибудь

 

в

 

вашей

 

программе

 

5—160

 

Глава

 5: 

Стандартные

 

команды

 RLL.

 

» 

 

 

В

 

следующем

 

примере

когда

 X1 

включен

константа

 (K6) 

загружается

 

в

 

аккумулятор

используя

 

команду

 Load. 

Это

 

значение

 

определяет

 

длину

 

таблицы

 

и

 

помещается

 

в

 

первый

 

уровень

 

стека

 

после

 

того

как

 

команда

 Load 

Address 

будет

 

выполнена

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

 

адрес

 1400 (V1400) - 

начальная

 

ячейка

 

для

 

исходной

 

таблицы

 – 

загружается

 

в

 

аккумулятор

Помните

, V1400 

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

 

как

 

ячейка

 

указателя

и

фактически

не

 

часть

 

таблицы

 

как

 

источника

 

данных

Адрес

 

ячейки

 (V1500) 

определен

 

в

 

команде

 Remove From 

Table. 

Указатель

 

таблицы

 (

в

 

этом

 

случае

 V1400) 

будет

 

уменьшен

 

на

 “1” 

после

 

каждого

 

выполнения

 

команды

 

 

Так

 

как

 

счетчик

 

таблиц

 

определяет

 

диапазон

 

данных

которые

 

будут

 

удалены

 

из

 

таблицы

важно

 

понять

как

 

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

 

ячейки

 

таблицы

Если

 

Вы

 

рассмотрите

 

таблицу

 

в

 

примере

вы

 

увидите

что

 

ячейки

 

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

 

сверху

 

вниз

Например

если

 

счетчик

 

таблицы

равен

 6, 

то

 

все

 

шесть

 

из

 

ячеек

 

будут

 

удалены

 

при

 

выполнения

 

команды

 

 

Наш

 

пример

также

 

использует

 

нормально

-

открытый

 

входной

 

контакт

 (X1), 

чтобы

 

управлять

 

выполнением

 

команды

Так

 

как

 

цикл

 

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

 

процессора

 

совершается

 

за

 

минимальное

 

время

то

 

и

 

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

 

уменьшение

 

указателя

 

таблицы

 

в

 

цикле

 

произойдет

 

очень

 

быстро

Если

 

такое

 

положение

 

вещей

 

является

 

для

 

Вас

 

проблемой

то

 

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

 

командой

 

одиночного

 

импульса

 (PD), 

чтобы

 

удалить

 

одно

 

значение

каждый

 

раз

когда

 

входной

 

в

 

контакт

 

переходит

 

из

 

состояния

 

выключено

 

в

 

состояние

 

включено

.

 

Глава

 5: 

Стандартные

 

команды

 RLL. 

5—161

 

» 

 

 

На

 

следующем

 

рисунке

 

показаны

 

результаты

 

выполнения

 

нашего

 

примера

 

программы

 

в

 

каждом

 

цикле

В

 

нашем

 

примере

 

мы

 

показываем

 

счетчик

 

таблицы

 

первоначально

 

установленный

 

в

 4. (

Не

 

забудьте

Вы

 

можете

 

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

 

счетчик

 

таблиц

 

в

 

любое

 

значение

 

в

 

пределах

 

длины

 

таблицы

.) 

Счетчик

 

таблицы

 

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

 

уменьшается

 

от

 4 

до

 0, 

при

 

выполнении

 

команды

Обратите

 

внимание

как

 

последние

 

две

 

ячейки

 

таблицы

, 5 

и

 6, 

не

 

удаляются

 

из

 

таблицы

Также

обратите

 

внимание

что

 SP56 

включается

 

только

 

при

 

счетчике

 

таблице

 

равном

 

нулю

в

 

конце

 

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

 

таблицы

.  

 

 

 

5—162

 

Глава

 5: 

Стандартные

 

команды

 RLL.

 

» 

 

Add to Top (ATT) 

 

Команда

 Add To Top 

сохраняет

 

значение

 

из

 

ячейки

 V-

памяти

 

в

 

таблицу

 V-

памяти

Когда

 

значение

 

добавляется

 

в

 

таблицу

то

 

все

 

остальные

 

значения

 

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

 

вниз

 

на

 1 

ячейку

 

 

Команда

 

выполняется

только

если

 

в

 

данном

 

цикле

 

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

 

вход

 

включен

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

 

параметры

 

загружаются

 

в

 

первый

 

уровень

 

стека

 

и

 

аккумулятор

 

двумя

 

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

 

командами

Ниже

 

перечислены

 

шаги

необходимые

 

для

 

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

 

команды

 Add To Top.

 

 

Шаг

 1:—

 

Загрузите

 

длину

 

таблицы

 (

число

 

ячеек

 V-

памяти

в

 

первый

 

уровень

 

стека

 

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

Этот

 

параметр

 

должен

 

быть

 

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

 

числом

 

в

 

пределах

 

от

 0 

до

 FF. 

Шаг

 2:—

 

Загрузите

 

начальный

 

адрес

 

ячейки

 V-

памяти

 

для

 

таблицы

 

в

 

аккумулятор

  (

помните

что

 

начальная

 

ячейка

 

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

 

как

 

указатель

 

таблицы

). 

Этот

 

параметр

 

должен

 

быть

 

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

 

числом

Шаг

 3:—

 

Вставьте

 

команду

 ATT, 

которая

 

определяет

 

адрес

 

ячейки

 V-

памяти

 

(Vaaa). 

Эта

 

ячейка

 

памяти

 

откуда

 

будет

 

вставлено

 

значение

Полезный

 

совет

: —

 

Инструкция

 

будет

 

выполнятся

 

каждый

 

цикл

 

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

если

 

входная

 

логика

 

включена

Если

 

Вы

 

не

 

хотите

чтобы

  

команда

 

выполнялась

 

более

 

чем

 

один

 

цикл

 

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

используйте

  

команду

 

одиночного

 

импульса

 PD 

во

 

входной

 

логике

Полезный

 

совет

: — 

Вы

 

можете

 

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

 

команду

 LDA 

для

 

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

 

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

 

адреса

 

в

 

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

 

и

 

загрузки

 

его

 

в

 

аккумулятор

Полезный

 

совет

: —

 

Значение

 

счетчика

 

таблицы

 

должно

 

быть

 

установлено

 

в

 

значение

 

начальной

 

ячейки

 

для

 

работы

 

с

 

таблицей

При

 

этом

он

 

должен

 

быть

 

установлен

 

в

 

значение

которое

 

находится

 

в

 

пределах

 

длины

 

таблицы

Например

если

 

длина

 

таблицы

 - 6 

слов

то

 

допустимый

 

диапазон

 

значений

которые

 

могли

 

бы

 

быть

 

в

 

указателе

 

между

 1 

и

 6. 

Если

 

значение

 

находится

 

за

 

границами

 

этого

 

диапазона

 

или

 

равно

 0, 

то

 

данные

 

не

 

будут

 

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

 

в

 

таблицу

Также

необходимо

 

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

 

команду

 

одиночного

 

импульса

 PD, 

в

 

этом

 

случае

 

значение

 

будет

 

установлено

 

только

 

в

 

первом

 

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

 

и

 

не

 

будет

 

влиять

 

на

 

работу

 

команды

 

Тип

 

данных

 

операнда

 

Диапазон

 DL06 

 A 

aaa 

V-

память

 

Смотри

 

карту

 

памяти

 

 

Флаги

  

Описание

 

SP56 «1», 

когда

 

счетчик

 

таблицы

 

равен

 

длине

 

таблице

 

 

ПРИМЕЧАНИЕ

Флаги

 

состояния

 (SP) 

не

 

только

 

допустимы

 

до

 

исполнения

 

другой

 

команды

которая

 

использует

те

 

же

 

самые

 

флаги

или

 

конца

 

цикла

 

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

но

и

 

указатель

 

для

 

данной

 

команды

 

должен

 

быть

 

установлен

 

до

 

начала

 

выполнения

Указатель

 

не

 

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

 

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

Вы

 

должны

 

загрузить

 

значение

 

в

 

указатель

 

где

-

нибудь

 

в

 

вашей

 

программе

 

Глава

 5: 

Стандартные

 

команды

 RLL. 

5—163

 

» 

 

 

В

 

следующем

 

примере

когда

 X1 

включен

константа

 (K6) 

загружается

 

в

 

аккумулятор

используя

 

команду

 Load. 

Это

 

значение

 

определяет

 

длину

 

таблицы

 

и

 

помещается

 

в

 

первый

 

уровень

 

стека

 

после

 

того

как

 

команда

 Load 

Address 

будет

 

выполнена

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

 

адрес

 1400 (V1400) - 

начальная

 

ячейка

 

для

 

исходной

 

таблицы

 

и

 

счетчик

 

таблицы

 – 

загружается

 

в

 

аккумулятор

Адрес

 

ячейки

 (V1500) 

определен

 

в

 

команде

 Add To Top. 

Счетчик

 

таблицы

 

будет

 

увеличен

 

на

 “1” 

после

 

каждого

 

выполнения

 

команды

 

 

Для

 

команды

 ATT, 

счетчик

 

таблиц

 

определяет

 

число

 

добавлений

которые

 

могут

 

быть

 

сделаны

 

прежде

чем

 

команда

 

остановит

 

свое

 

выполнение

Поэтому

полезно

 

понять

как

 

система

 

использует

 

этот

 

счетчик

чтобы

 

управлять

 

выполнением

 

команды

 

Например

если

 

счетчик

 

таблиц

 

был

 

установлен

 

в

 2, 

и

 

длина

 

таблицы

 

была

 

бы

 6 

слов

то

 

возможно

 

произвести

 

только

 4 

добавления

 

данных

 

прежде

чем

 

выполнение

 

будет

 

остановлено

Это

 

можно

 

вычислить

 

по

 

формуле

:

 

 

 

Длина

 

таблицы

 - 

Счетчик

 

таблицы

 = 

Число

 

выполнений

 

 

 

Наш

 

пример

также

 

использует

 

нормально

-

открытый

 

входной

 

контакт

 (X1), 

чтобы

 

управлять

 

выполнением

 

команды

Так

 

как

 

цикл

 

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

 

процессора

 

совершается

 

за

 

минимальное

 

время

то

 

и

 

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

 

увеличение

 

счетчика

 

таблицы

 

в

 

цикле

 

произойдет

 

очень

 

быстро

Если

 

такое

 

положение

 

вещей

 

является

 

для

 

Вас

 

проблемой

то

 

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

 

командой

 

одиночного

 

импульса

 (PD), 

чтобы

 

удалить

 

одно

 

значение

каждый

 

раз

когда

 

входной

 

в

 

контакт

 

переходит

 

из

 

состояния

 

выключено

 

в

 

состояние

 

включено

.

 

5—164

 

Глава

 5: 

Стандартные

 

команды

 RLL.

 

» 

 

 

На

 

следующем

 

рисунке

 

показаны

 

результаты

 

выполнения

 

нашего

 

примера

 

программы

 

в

 

каждом

 

цикле

Счетчик

 

таблицы

 

первоначально

 

установленный

 

в

 2, 

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

 

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

 

от

 2 

до

 6 

при

 

выполнении

 

команды

Обратите

 

внимание

что

 SP56 

включается

когда

 

счетчик

 

таблицы

 

равен

 6, 

т

.

е

равен

 

длине

 

таблице

Хотя

 

наш

 

пример

 

не

 

показывает

 

этого

но

 

мы

 

предполагаем

что

 

имеется

 

другая

 

часть

 

программы

которая

 

изменяет

 

значение

 

в

 V1500 (

источник

 

данных

до

 

выполнения

 

команды

 

А

TT. 

 

 

 

Глава

 5: 

Стандартные

 

команды

 RLL. 

5—165

 

» 

 

Table Shift Left (TSHFL) 

 

Команда

 Table Shift Left 

сдвигает

 

все

 

биты

 

в

 

таблице

 V-

памяти

 

влево

на

 

определенное

 

число

 

разрядов

.

 

Table Shift Right (TSHFR) 

 

Команда

 Table Shift Right 

сдвигает

 

все

 

биты

 

в

 

таблице

 V-

памяти

 

вправо

на

 

определенное

 

число

 

разрядов

.

 

 

 

 

 

Следующее

 

описание

 

применяется

 

к

 

командам

и

 Table Shift Left, 

и

 Table Shift 

Right. 

Таблица

 – 

это

 

только

 

диапазон

 

ячеек

 V-

памяти

Команды

 Table Shift Left 

и

 Table Shift Right 

сдвигают

 

биты

 

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

 

по

 

всей

 

таблице

Биты

 

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

 

из

 

конец

 

одного

 

слова

 

и

 

в

 

противоположный

 

конец

 

следующего

 

слова

В

 

конце

 

таблицы

биты

 

или

 

отбрасываются

или

 

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

 

в

 

нули

Пример

 

таблицы

 

приведенной

 

ниже

 

имеет

 

длину

 

четыре

 

слова

 

 

Шаг

 1:—

 

Загрузите

 

длину

 

таблицы

 (

число

 

ячеек

 V-

памяти

в

 

первый

 

уровень

 

стека

 

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

Этот

 

параметр

 

должен

 

быть

 

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

 

числом

 

в

 

пределах

 

от

 0 

до

 FF. 

Шаг

 2:—

 

Загрузите

 

начальный

 

адрес

 

ячейки

 V-

памяти

 

для

 

таблицы

 

в

 

аккумулятор

Этот

 

параметр

 

должен

 

быть

 

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

 

числом

Вы

 

можете

 

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

 

команду

 LDA, 

чтобы

 

преобразовать

 

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

 

адрес

 

в

 

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

Шаг

 3:—

 

Вставьте

 

команду

 Table Shift Left 

или

 Table shift Right, 

которая

 

определяет

 

число

 

бит

 

на

 

которое

 

производится

 

сдвиг

Число

 

бит

 

должно

 

быть

 

в

 

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

 

числом

Полезный

 

совет

: —

 

Не

 

забудьте

что

 

каждая

 

ячейка

 V-

памяти

 

содержит

 16 

бит

Так

биты

 

первого

 

слова

 

таблицы

 

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

 

от

 0 

до

 17 

в

 

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

 

виде

Если

 

Вы

 

хотите

 

сдвинуть

 

всю

 

таблицу

 

на

 20 

бит

то

 

используйте

 

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

 

число

 24. SP53 

будет

 

установлен

если

 

число

 

бит

которые

 

будут

 

перемещены

 

большее

 

чем

 

общее

 

число

 

бит

содержащееся

 

в

 

таблице

Флаг

 67 

будет

 

установлен

если

 

последний

 

перемещенный

 

бит

 

(

перед

 

отброшенным

равен

 “1”. 

 

Тип

 

данных

 

операнда

 

Диапазон

 DL06 

 A 

aaa 

V-

память

 

Смотри

 

карту

 

памяти

 

5—166

 

Глава

 5: 

Стандартные

 

команды

 RLL.

 

» 

 

Флаги

  

Описание

 

SP53 «1», 

когда

 

число

 

сдвигаемых

 

бит

 

больше

 

общего

 

числа

 

бит

 

таблицы

SP67 «1», 

когда

 

последний

 

перемещенный

 

бит

 (

перед

 

отброшенным

равен

 “1”. 

 

 

ПРИМЕЧАНИЕ

.

 

Флаги

 

состояния

 

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

 

только

 

до

 

того

 

момента

когда

 

будет

 

выполнена

 

другая

 

команда

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

 

те

 

же

 

самые

 

флаги

 

 

Пример

 

таблицы

  c

права

 

содержит

 BCD 

данные

Предположим

что

 

мы

 

хотим

 

выполнить

 

сдвиг

 

таблицы

 

вправо

 

на

 3 BCD-

цифры

 (12 

бит

). 

При

 

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

 

к

 

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

 12 

бит

 

равно

 

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

 

числу

 14. 

При

 

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

 

команды

 Table Shift Right 

с

 

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

 

параметром

 14, 

мы

 

имеем

 

возникающую

 

в

 

результате

 

таблицу

показанную

 

правее

Обратите

 

внимание

что

 

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

 

цифр

 2-3-4 

была

 

отброшена

и

 

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

 

цифр

 0-0-0 

была

 

записана

 

в

 

нижней

 

часте

 

таблице

 

 

 

 

Следующий

 

пример

 

релейной

 

программы

 

предполагает

что

 

данные

 

в

 

ячейках

 

от

 V3000 

до

 V3004 

уже

 

существуют

 

как

 

показано

 

выше

Мы

 

используем

 

вход

 X0, 

чтобы

 

начать

 

работу

 

команды

 Table Shift Right. 

Сначала

мы

 

загрузим

 

длину

 

таблицы

 (5 

слов

в

 

стек

 

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

Затем

мы

 

загружаем

 

в

 

аккумулятор

 

начальный

 

адрес

Поскольку

 V3000 - 

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

 

число

то

 

мы

 

должны

 

преобразовать

 

его

 

в

 

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

,  

используя

 

команду

 LDA. 

В

 

заключение

мы

 

используем

 

команду

 Table Shift Right 

и

 

определяем

 

число

 

бит

на

 

которое

 

будут

 

смещены

 

данные

 (

десятичное

 

число

 

12), 

т

.

е

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

 

число

 14. 

 

Глава

 5: 

Стандартные

 

команды

 RLL. 

5—167

 

» 

 

AND Move (ANDMOV) 

 

Команда

 AND Move 

копирует

 

данные

 

из

 

таблицы

 

в

 

определенную

 

ячейку

 

памяти

осуществляя

 

операцию

 

И

 

каждого

 

слова

 

с

 

данными

записанными

 

в

 

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

.

 

OR Move (ORMOV) 

 

Команда

 Or Move 

копирует

 

данные

 

из

 

таблицы

 

в

 

определенную

 

ячейку

 

памяти

осуществляя

 

операцию

 

ИЛИ

 

каждого

 

слова

 

с

 

данными

записанными

 

в

 

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

.

 

Exclusive OR Move (XORMOV) 

 

Команда

 Or Move 

копирует

 

данные

 

из

 

таблицы

 

в

 

определенную

 

ячейку

 

памяти

осуществляя

 

операцию

 

исключающего

 

ИЛИ

 

каждого

 

слова

 

с

 

данными

записанными

 

в

 

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

.

 

 

Следующее

 

описание

 

применяется

 

к

 

командам

 AND Move, OR Move, 

и

 

Exclusive OR Move. 

Таблица

 – 

это

 

только

 

диапазон

 

ячеек

 V-

памяти

Эти

 

команды

 

копируют

 

данные

 

таблицы

 

в

 

другую

 

указанную

 

ячейку

предварительно

 

выполняя

 

логическую

 

операцию

 

над

 

каждым

 

словом

 

с

 

содержимым

 

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

записывая

 

новую

 

таблицу

 

Шаг

 1:—

 

Загрузите

 

длину

 

таблицы

 (

число

 

ячеек

 V-

памяти

в

 

первый

 

уровень

 

стека

 

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

Этот

 

параметр

 

должен

 

быть

 

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

 

числом

 

в

 

пределах

 

от

 0 

до

 FF. 

Шаг

 2:—

 

Загрузите

 

начальный

 

адрес

 

ячейки

 V-

памяти

 

для

 

таблицы

 

в

 

аккумулятор

Этот

 

параметр

 

должен

 

быть

 

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

 

числом

Вы

 

можете

 

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

 

команду

 LDA, 

чтобы

 

преобразовать

 

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

 

адрес

 

в

 

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

Шаг

 3:— 

Загрузите

 BCD/hex 

комбинацию

 

бит

 

в

 

аккумулятор

которая

 

будет

 

логически

 

комбинироваться

 

с

 

записываемым

 

содержанием

 

таблицы

.

 

Шаг

 4:—

 

Вставьте

 

команду

 AND Move, OR Move, 

или

 XOR Move, 

которая

 

определяет

 

начальную

 

ячейку

 

в

 

которую

 

копируется

 

создаваемая

 

таблица

Эта

 

новая

 

таблица

 

будет

 

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

 

иметь

 

такую

 

же

 

длину

как

 

и

 

первоначальная

 

таблица

 

Тип

 

данных

 

операнда

 

Диапазон

 DL06 

 A 

aaa 

V-

память

 

Смотри

 

карту

 

памяти

 

 

 

Пример

 

таблицы

  c

права

 

содержит

 BCD 

данные

Предположим

что

 

мы

 

хотим

 

переместить

 

таблицу

 

из

 

двух

 

слов

 

начиная

 

с

 V3000 

и

 

выполнить

 

операцию

 

И

 

с

 

константой

 K6666. 

Копия

 

таблицы

 

начиная

 

с

 V3100 

показывает

 

результат

 

операции

 

И

 

для

 

каждого

 

слова

.

 

 

Программа

 

на

 

следующей

 

странице

 

выполняет

 

команду

 ANDMOV 

в

 

примере

 

приведенном

 

выше

Предположим

что

 

данные

 

в

 

таблице

 V3000 - V3001 

уже

 

существуют

Сначала

 

мы

 

загружаем

 

длину

 

таблицы

  (

два

 

слова

в

 

аккумулятор

Затем

 

мы

 

загружаем

 

начальный

 

адрес

 

исходной

 

таблицы

используя

 

команду

 LDA. 

Затем

 

мы

 

загружаем

 

данные

с

 

которыми

 

должна

 

выполнятся

 

операция

 

И

в

 

аккумулятор

В

 

команде

 ANDMOV, 

мы

 

определяем

 

адрес

 

таблицы

 

результата

 V3100. 

5—168

 

Глава

 5: 

Стандартные

 

команды

 RLL.

 

» 

 

 

Пример

 

справа

 

показывает

 

таблицу

 

из

 

двух

 

слов

 

начиная

 

с

 V3000 

и

 

и

 

выполнение

 

операции

 

ИЛИ

 

с

 

константой

 K8888. 

Копия

 

таблицы

 

начиная

 

с

 

V3100 

показывает

 

результат

 

операции

 

ИЛИ

 

для

 

каждого

 

слова

 

 

 

Программа

 

сверху

 

выполняет

 

команду

 ORMOV 

в

 

примере

 

приведенном

 

выше

Предположим

что

 

данные

 

в

 

таблице

 V3000 - V3001 

уже

 

существуют

Сначала

 

мы

 

загружаем

 

длину

 

таблицы

 (

два

 

слова

в

 

аккумулятор

Затем

 

мы

 

загружаем

 

начальный

 

адрес

 

исходной

 

таблицы

используя

 

команду

 LDA. 

Затем

 

мы

 

загружаем

 

данные

с

 

которыми

 

должна

 

выполнятся

 

операция

 

ИЛИ

в

 

аккумулятор

В

 

команде

 ORMOV, 

мы

 

определяем

 

адрес

 

таблицы

 

результата

 

V3100. 

 

 

Пример

 

справа

 

показывает

 

таблицу

 

из

 

двух

 

слов

 

начиная

 

с

 V3000 

и

 

и

 

выполнение

 

операции

 

исключающего

 

ИЛИ

 

с

 

константой

 K3333. 

Копия

 

таблицы

 

начиная

 

с

 V3100 

показывает

 

результат

 

операции

 

исключающего

 

ИЛИ

 

для

 

каждого

 

слова

 

 

Пример

 

релейной

 

программы

 

для

 

команды

 XORMOV 

подобен

 

данному

 

выше

 

для

 ORMOV. 

Только

 

используйте

 

команду

 XORMOV. 

На

 

ручном

 

программаторе

Вы

 

должны

 

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

 

клавишу

 SHFT 

и

 

записать

 

“XORMOV” 

по

 

буквам

 

 

 

 

Глава

 5: 

Стандартные

 

команды

 RLL. 

5—169

 

» 

 

Find Block (FINDB) 

 

Команда

 Find Block 

выполняет

 

поиск

 

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

 

определенного

 

блока

 

значений

 

в

 

таблице

 V-

памяти

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

 

параметры

 

загружены

 

в

 

первый

 

и

 

второй

 

уровни

 

стека

 

и

 

аккумулятор

 

тремя

 

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

 

командами

Если

 

блок

 

найден

начальный

 

адрес

 

будет

 

сохранен

 

в

 

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

Если

 

блок

 

не

 

найден

флаг

 SP53 

будет

 

установлен

 

Тип

 

данных

 

операнда

 

Диапазон

 DL06 

 A 

aaa 

V-

память

 

Смотри

 

карту

 

памяти

 

Указатель

 P 

Смотри

 

карту

 

памяти

 

 

Флаги

 

Описание

 

SP53

 

«1», 

когда

 

команда

 Find Block 

не

 

нашла

 

блок

 

в

 

указанной

 

таблице

 V-

памяти

 

 

Ниже

 

показаны

 

необходимые

 

шаги

 

для

 

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

 

функции

 Find Block.

 

Шаг

 1:— 

Загрузите

 

число

 

байт

 

располагаемых

 

в

 

блоке

Этот

 

параметр

 

должен

 

быть

 

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

 

числом

 

в

 

пределах

 

от

 0 

до

 FF

 

Шаг

 2:—

 

Загрузите

 

длину

 

таблицы

 (

число

 

ячеек

 V-

памяти

в

 

первый

 

уровень

 

стека

 

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

Этот

 

параметр

 

должен

 

быть

 

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

 

числом

 

в

 

пределах

 

от

 0 

до

 FF. 

Шаг

 3:—

 

Загрузите

 

конечный

 

адрес

 

для

 

всех

 

таблиц

 

в

 

аккумулятор

Этот

 

параметр

 

должен

 

быть

 

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

 

числом

Вы

 

можете

 

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

 

команду

 LDA, 

чтобы

 

преобразовать

 

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

 

адрес

 

в

 

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

Шаг

 4:—

 

Загрузите

 

начальный

 

адрес

 

для

 

всех

 

таблиц

 

в

 

аккумулятор

Этот

 

параметр

 

должен

 

быть

 

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

 

числом

Вы

 

можете

 

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

 

команду

 LDA, 

чтобы

 

преобразовать

 

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

 

адрес

 

в

 

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

Шаг

 5:—

 

Вставьте

 

команду

 Find Block, 

которая

 

определяет

 

начальную

 

ячейку

 

блока

 

данных

для

 

попытки

 

поиска

5—170

 

Глава

 5: 

Стандартные

 

команды

 RLL.

 

» 

 

Swap (SWAP) 

 

Команда

 Swap 

обменивает

 

данные

 

в

 

двух

 

таблицах

 

равной

 

длины

 

 

Шаг

 1:—

 

Загрузите

 

длину

 

таблицы

 (

число

 

ячеек

 V-

памяти

в

 

первый

 

уровень

 

стека

 

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

Этот

 

параметр

 

должен

 

быть

 

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

 

числом

 

в

 

пределах

 

от

 0 

до

 FF. 

Помните

что

 

таблицы

 

должны

 

быть

 

одинаковой

 

длины

Шаг

 2:—

 

Загрузите

 

начальный

 

адрес

 

ячейки

 V-

памяти

 

для

 

таблицы

 

в

 

аккумулятор

Этот

 

параметр

 

должен

 

быть

 

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

 

числом

Вы

 

можете

 

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

 

команду

 LDA 

для

 

конвертации

 

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

 

адреса

 

в

 

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

 

число

Шаг

 3:—

 

Вставьте

 

команду

 Swap, 

которая

 

определяет

 

начальный

 

адрес

 

второй

 

таблицы

 V-

памяти

Этот

 

параметр

 

должен

 

быть

 

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

 

числом

Вы

 

можете

 

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

 

команду

 LDA 

для

 

конвертации

 

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

 

адреса

 

в

 

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

 

число

Полезный

 

совет

: —

 

Инструкция

 

будет

 

выполнятся

 

каждый

 

цикл

 

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

если

 

входная

 

логика

 

включена

Если

 

Вы

 

не

 

хотите

чтобы

  

команда

 

выполнялась

 

более

 

чем

 

один

 

цикл

 

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

используйте

  

команду

 

одиночного

 

импульса

 PD 

во

 

входной

 

логике

Полезный

 

совет

: — 

Вы

 

можете

 

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

 

команду

 LDA 

для

 

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

 

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

 

адреса

 

в

 

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

 

и

 

загрузки

 

его

 

в

 

аккумулятор

Полезный

 

совет

: —

 

Перестановка

 

данных

 

выполняется

 

в

 

пределах

 

одного

 

цикла

 

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

Если

 

инструкция

 

выполняется

 

в

 

течении

 

нескольких

 

последовательных

 

циклов

 

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

то

 

будет

 

трудно

 

знать

 

фактическое

 

содержание

 

любой

 

таблицы

 

в

 

заданный

 

момент

 

времени

Таким

 

образом

не

 

забудьте

что

 

применять

 

эту

 

команду

 

следует

 

только

 

в

 

одном

 

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

Тип

 

данных

 

операнда

 

Диапазон

 DL06 

 A 

aaa 

V-

память

 

Смотри

 

карту

 

памяти

 

 

Пример

 

справа

 

показывает

 

таблицу

 

из

 

двух

 

слов

 

при

 V3000. 

Мы

 

будем

 

менять

 

содержание

 

с

 

другой

 

таблицей

 

из

 

двух

 

слов

 

начиная

 

с

 3100,  

используя

 

команду

 Swap. 

Требуемая

 

релейная

 

программа

 

дана

 

ниже

 

Пример

 

программы

приведенный

 

ниже

 

использует

 

контакт

 PD (

одиночный

 

импульс

 

для

 

перехода

 

входа

 

от

 

выключено

 

в

 

включено

). 

Сначала

мы

 

загружаем

 

длину

 

таблиц

  (

два

 

слова

в

 

аккумулятор

Затем

 

мы

 

загружаем

 

адрес

 

первой

 

таблицы

 (V3000) 

в

 

аккумулятор

используя

 

команду

 LDA, 

преобразовывающую

 

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

 

адрес

 

в

 

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

 

число

Обратите

 

внимание

что

 

это

 

не

 

имеет

 

значения

какую

 

таблицу

 

мы

 

объявляем

 

первой

потому

 

что

 

результаты

 

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

 

будут

 

одинаковы

 

Глава

 5: 

Стандартные

 

команды

 RLL. 

5—171

 

» 

 

Команды

 

Часы

 / 

Календарь

 

Date (DATE) 

 

Команда

 Date 

может

 

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

чтобы

 

установить

 

дату

 

в

 

процессоре

 

микроконтроллера

Инструкция

 

требует

 

двух

 

последовательных

 

ячеек

 V-

памяти

 (Vaaa), 

чтобы

 

установить

 

дату

Если

 

значения

 

в

 

определенных

 

ячейках

 

не

 

допустимы

то

 

дата

 

не

 

будет

 

установлена

Текущая

 

дата

 

может

 

читаться

 

из

 4 

последовательных

 

ячеек

 V-

памяти

 (V7771-

V7774). 

 

 

 

 

В

 

следующем

 

примере

когда

 C0 

включен

константа

 (K94010301) 

загружается

 

в

 

аккумулятор

используя

 

команду

 Load Double (C0 

должен

 

быть

 

контактом

 

связанным

 

с

 

командой

 

одиночного

 (PD)). 

Значение

 

в

 

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

 

выводится

 

в

 V2000, 

используя

 

команду

 Out Double. 

Команда

 Date 

использует

 

значение

 

в

 

V2000, 

чтобы

 

установить

 

дату

 

в

 

процессоре

 

микроконтроллера

 

Дата

 

Диапазон

 

Ячейка

 V-

памяти

 (BCD) 

(

Только

 

для

 

чтения

Год

 0-99  V7774 

Месяц

 1-12 

V7773 

День

 1-31 

V7772 

День

 

Недели

 0-06 

V7771 

Значения

введенные

 

для

 

дня

 

недели

: 0 = 

воскресенье

, 1 = 

понедельник

, 2 = 

вторник

, 3

среда

, 4 = 

четверг

, 5 = 

пятница

, 6 = 

суббота

 

 

Тип

 

данных

 

операнда

 

Диапазон

 DL06 

 A 

aaa 

V-

память

 

Смотри

 

карту

 

памяти

 

 

 

5—172

 

Глава

 5: 

Стандартные

 

команды

 RLL.

 

» 

 

Time (TIME) 

 

Команда

 Time

 

может

 

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

для

 

того

 

чтобы

 

установить

 

время

 (24 

часа

в

 

процессоре

 

микроконтроллера

Инструкция

 

требует

 

двух

 

последовательных

 

ячеек

 V-

памяти

 (Vaaa), 

чтобы

 

установить

 

время

Если

 

значения

 

в

 

определенных

 

ячейках

 

не

 

допустимы

то

 

время

 

не

 

будет

 

установлено

Текущее

 

время

 

может

 

читаться

 

из

 4 

последовательных

 

ячеек

 V-

памяти

 

V7747 

и

 V7766-V7770. 

 

Дата

 

Диапазон

 

Ячейка

 V-

памяти

 (BCD) 

(

Только

 

для

 

чтения

1/100 

секунды

 (10

мс

) 0-99 

V7747 

Секунды

 0-59 

V7766 

Минуты

 0-59 

V7767 

Час

 0-23 

V7770 

 

Тип

 

данных

 

операнда

 

Диапазон

 DL06 

 A 

aaa 

V-

память

 

Смотри

 

карту

 

памяти

 

 

 

В

 

следующем

 

примере

когда

 C0 

включен

константа

 (K73000)  

загружается

 

в

 

аккумулятор

используя

 

команду

 Load Double (C0 

должен

 

быть

 

контактом

 

связанным

 

с

 

командой

 

одиночного

 (PD)). 

Значение

 

в

 

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

 

выводится

 

в

 V2000, 

используя

 

команду

 Out Double. 

Команда

 TIME 

использует

 

значение

 

в

 V2000, 

чтобы

 

установить

 

время

 

в

 

процессоре

 

микроконтроллера

 

 

 

 

 

 

 

 

 

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