Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Список инструкций контроллера РК5100



Инструкция «Начало сегмента { НСТ00…НСТ17 }» выполняется, если сегмент находится в состоянии «вычисления», если в состоянии «обнуления» то все выходные инструкции { -() --ххххх } принимают значение логического нуля; по включению питания нулевой сегмент { НСТОО } становится активным; управляются сегменты инструкциями { ССТ, ЗСТ, ОСТ }.

Примечание: жирным шрифтом указано обозначение инструкции на языке РКС.

Инструкция «Начало блока { НБЛ000…НБЛ377 }» выполняется, если предшествующий набор входных инструкций создает условие «истинности» на входе данной инструкции (åи = 1), в этом случае выполняются все команды данного блока.

Инструкция «Перейти на блок { ПБЛ000…ПБЛ377 }» выполняется, если предшествующий набор входных инструкций создает условие «истинности» на входе данной инструкции (åи = 1), в этом случае выполняются переход на данный блок.

Инструкция «Вызвать блок { ВБЛ000…ВБЛ377}» выполняется, если предшествующий набор входных инструкций создает условие «истинности» на входе данной инструкции (åи = 1), в этом случае выполняется вызов данного блока { НБЛХХХ…КОН }. По инструкции { КОН } идет возврат из вызванного блока.

Инструкция «Закрыть сегмент { ЗСТ01…ЗСТ17 }» выполняется, если предшествующий набор входных инструкций создает условие «истинности» на входе данной инструкции (åи = 1), в этом случае сегмент переводится в состояние игнорирования (за исключением нулевого сегмента).

Инструкция «Открыть сегмент { ОСТ01…ОСТ17 }» выполняется, если предшествующий набор входных инструкций создает условие «истинности» на входе данной инструкции (å и 1), в этом случае сегмент переводиться в состояние «вычисления» (за исключением нулевого сегмента).

Инструкция «Сбросить сегмент { ССТ01…ССТ17 }» выполняется, если предшествующий набор входных инструкций создает условие «истинности» на входе данной инструкции (åи =1), в этом случае сегмент переходит в состояние работы с номера блока, следующего за инструкцией начало сегмента { НСТХХХ…}, за исключением нулевого сегмента.

Инструкция «Программный останов процессора { ЗСТ77 }» выполняется, если предшествующий набор входных инструкций создает условие «истинности» на входе данной инструкции (åи = 1), в этом случае идет останов процессора и сброс его готовности.

Инструкция «Установить номер сектора { УНС000…УНС177 }» выполняется, если предшествующий набор входных инструкций создает условие «истинности» на входе данной инструкции (åи = 1), что обеспечивает доступ к 32-х килобайтному адресному пространству.

Инструкция «Вызвать подпрограмму { ВПП000…ВПП377 }» выполняется, если предшествующий набор входных инструкций создает условие «истинности» на входе данной инструкции (åи = 1), в этом случае выполняется вызов данной подпрограммы { НППХХХ…КОН }. По инструкции { КОН } идет возврат из подпрограммы.

Инструкция «Начало подпрограммы { НПП000...НПП377 }» объявляет номер подпрограммы (нельзя применять инструкции структурирования внутри подпрограмм).

Инструкция «Конец { КОН }» объявляет конец блока или конец подпрограммы или общий конец программы, кроме последней команды { КОН }, концом блока или подпрограммы может быть любая из инструкций { НСТХХХ, НБЛХХХ, НППХХХ } в конце блока или подпрограммы.

Инструкция «Холостая операция { НОП }», используется для резервирования мест в программе или для формирования малых временных задержек.

Инструкция «Загрузить константу {ККК8} в младший байт аккумулятора { КБМ ККК8 }». Выполняется загрузка {ККК8,}, если предшествующий набор входных инструкций создает условие «истинности» на входе данной инструкции (åи = 1).

Инструкция «Загрузить константу {ККК8} в старший байт аккумулятора { КБС ККК8 }». Выполняется загрузка {ККК8,}, если предшествующий набор входных инструкций создает условие «истинности» на входе данной инструкции (åи = 1).

Параметр слово { ПРС0000…ПРС7777 } – в пределах страницы 0 указывается адрес ячейки памяти.

Параметр константа { ПРК0000…ПРК4095 } – указывает константу в пределах числа 0…409510.

Инструкция «Чтение регистра { ЧТР NMP}». Если предшествующий набор входных инструкций создает условие «истинности» на входе данной инструкции (åи = 1), то из регистра NMP в аккумулятор читается число (N – номер каркаса 0…3, M – номер места модуля 0…7, P – номер регистра модуля 0…7).

Инструкция «Запись в регистр { ЗПР NMP }». Если предшествующий набор входных инструкций создает условие «истинности» на входе данной инструкции (åи = 1), то в регистр NMP из аккумулятора читается число (N – номер каркаса 0…3, M – номер места модуля 0…7, P – номер регистра модуля 0…7).

Инструкция «Преобразовать число из двоичной системы в двоичнодесятичный (BCD) код { ПБД000…ПБД377 }». Если предшествующий набор входных инструкций создает условие «истинности» на входе данной инструкции (å и = 1), то из ячейки 000 – 377 число преобразуется в BCD код и записывается в аккумулятор.

Инструкция «Преобразовать двоично-десятичный (BCD) код в двоичный { ПДБ000ПДБ377 }». Если предшествующий набор входных инструкций создает условие «истинности» на входе данной инструкции (åи = 1), то из аккумулятора в ячейку 000…377 преобразуется число из BCD кода в двоичный код.

Инструкция «Деление»:

ДЕЛ {000…377} – (000…377 адрес делителя Д),

ПРС {0000…7777} – (0000…7777 адрес остатка О).

Если предшествующий набор входных инструкций создает условие «истинности» на входе данной инструкции (åи = 1), то аккумулятор делиться на делитель, а остаток деления посылается по адресу остатка.

Инструкция «Умножение:»:

УМН {000… 377} – (000…377 адрес множителя М),

ПРС {0000…7777} – (0000…7777 адрес переполнения P).

Если предшествующий набор входных инструкций создает условие «истинности» на входе данной инструкции (åи = 1), то аккумулятор умножается на множитель, а переполнение (старший байт результата) записывается по адресу переполнения.

Входная инструкция «Сравнение на равно»:

РВН {000…377},

ПРС {0000…7777}/ПРК КККК (или константа меньше 4095).

Если число в ячейке (000…377) равно содержимому слова (0000…7777) или константы (указывается слово или константа), то инструкция логически истинна.

Входная инструкция «Сравнение на принадлежность пределам»:

ПРН {000…377},

ПРС {0000…7777}/ПРК КККК (или константа меньше 4095) – X,

ПРС{0000*…7777*}/ПРК КККК* (или константа меньше 4095) – X*.

Если число в ячейке (000…377) соответствует выражению приведенному ниже, то она истинна:

X ≤ (000…377) ≤ X*,

где: X – первое слово или константа сравнения;

X*– второе слово или константа сравнения.

Входная инструкция «Сравнение на меньше»:

МНШ {000…377} ;

ПРС {0000….777}/ПРК КККК (или константа меньше 4095).

Если число в ячейке (000…377) соответствует выражению, приведенному ниже, то она истинна:

X > (000…377),

где: X – слово или константа сравнения.

Входная инструкция «Сравнение на больше»:

БЛШ {000…377} ;

ПРС {0000…7777}/ПРК КККК (или константа меньше 4095).

Если число в ячейке (000…377) соответствует выражению приведенному ниже, то она истинна:

X < (000…377),

где: X – слово или константа сравнения.

Входная инструкция «Прямой опрос входа»:

-] [ - - 100.06(SQ3).

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

Входная инструкция «Сравнение на инверсный опрос входа»:

-] / [ - - 100.06(SQ3)или знак ^, что обозначается ^SQ3.

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

Инструкции «Ветвления», для программирования параллельных логических ветвей с вложением до восьми ветвей имеют вид:

– начало ветвления или знак (

– переход в начало ветвления или знак +

– конец ветвления или знак).

Приведем пример инструкций ветвления с алгоритмом цепи на языке РКС:

-] [ - - 100.06(SQ3)

       
 
 
   


-] [ - - 100.07(SQ4)

 
 


-] / [ - - 100.10(SQ5)

       
   
 
 


- --() - - 000.00(HL1)

Алгоритм цепи: если сработан датчик SQ3 и одновременно сработает датчик SQ4 или будет выключен датчик SQ5, то сработает выходная инструкция активации лампочки HL1.

Примечание: Операция логического сложения (ИЛИ) в SAP32 обозначается: +, логического умножения: *, логической инверсии сигнала: ^.

Выходная инструкция «Включение выхода без фиксации»:

- --() - - 000.00(HL1).

Если предшествующий набор входных инструкций создает условие «истинности» на входе данной инструкции (åи = 1), то выход (лампочка HL1) будет активирован, то есть, будет установлен бит 000.00 таблицы обмена, который будет передан на соответствующий выходной модуль, замаскированный в словах 10000…10003, а при пропадании истинности на входе данной инструкции, выходной бит и лампочка HL1 будут выключены.

Выходные инструкция «Фиксация (S) выхода» и «Расфиксация (R) выхода»:

- --(S) - - 000.00(HL1), или - --(R) - - 000.00(HL1).

Если предшествующий набор входных инструкций создает однократное условие «истинности» на входе данной инструкции (åи =1), то выход (лампочка HL1) будет активирован (включен) или деактивирован (выключен), то есть будет установлен (сброшен) бит 000.00 таблицы обмена, который будет передан на соответствующий выходной модуль, замаскированный в словах 10000…10003. Выходной бит фиксируется однократно и не изменяется (изменение состояния такого выхода возможно только взаимно исключающими инструкциями -(S)- и ----(R)-).

Выходная инструкция «Переместить файл в модуль»:

ПФМ {000…377} (Асчф – адрес счетчика файла А),

[УНС{000…177}] (Номер сектора, если файл А не в 0 – странице),

ПРС{0000…1777} (Нач. адрес файла А из 0 – страницы.),

ПРС MPYZ (Нач. адрес памяти модуля: М = 0…7 – место модуля.

NK = 0…3 – номер каркаса; P = X+2* NK;

XYZ = 000 … 177 – нач. адрес памяти модуля).

ПРК LLLL – длина файла А,

ПРК VVVV – число перемещаемых слов файла А за скан.

Если предшествующий набор входных инструкций создает условие «истинности» на входе данной инструкции (åи = 1), то файла А из таблицы данных перемещается в память модуля, после перемещения включается 16 бит слова, на котором запущен счетчик файла Асчф.

Выходная инструкция. «Переместить из модуля в файл»:

ПМФ {000…377} (Асчф – адрес счетчика файла А),

ПРС{0000…1777} (Нач. адрес файла А из 0 – страницы),

ПРС MPYZ (Нач. адрес памяти модуля: М = 0…7– место модуля).

NK = 0…3–номер каркаса; P = X + 2* NK;

XYZ = 000…177 – нач. адрес памяти модуля.)

ПРК LLLL – длина файла А,

ПРК VVVV – число перемещаемых слов файла А за скан.

Если предшествующий набор входных инструкций создает условие «истинности» на входе данной инструкции (åи = 1), то файл из модуля перемещается в файла А таблицы данных, после перемещения включается 16 бит слова, на котором запущен счетчик файла Асчф.

Выходная инструкция. «Читать слово из файла»:

ЧСФ {000…377} (Асчф – адрес счетчика файла А),

[УНС{000…177}] (Номер сектора, если файл А не в 0 – странице),

ПРС{0000…1777} (Нач. адрес файла А из 0 – страницы),

ПРС{0000…1777} (АС – Адрес слова),

ПРК LLLL – длина файла А.

Если предшествующий набор входных инструкций создает условие «истинности» на входе данной инструкции (åи = 1), то файл А из таблицы данных перемещается в память по адресу слова АС и включается 16 бит слова, на котором запущен счетчик файла Асчф, после перемещения всего файла А длинной LLLL, начиная с адреса АС.

Выходная инструкция. «Записать слово в файл»:

ЗСФ {000…377} (Асчф – адрес счетчика файла А),

ПРС{0000…1777} (Нач. адрес файла А из 0 – страницы),

ПРС{0000…1777} (АС – Адрес слова),

ПРК LLLL – длина файла А.

Если предшествующий набор входных инструкций создает условие «истинности» на входе данной инструкции (åи = 1), то из массива по адресу АС в файла А переноситься LLLL слов и включается 16 бит слова, на котором запущен счетчик файла Асчф, после перемещения LLLL слов.

Выходная инструкция. «Переместить файл»:

ПФФ {000…377} (Асчф – адрес счетчика),

ПРС{0000…1777} (Нач. адрес файла А),

ПРС{0000…1777} (Нач. адрес файла В),

ПРК LLLL – длина L файла А,.

ПРК VVVV – скорость перемещения V.

Если предшествующий набор входных инструкций создает условие «истинности» на входе данной инструкции (åи = 1), то VVVV слов за один скан перемещается из файла А в файл В и включается 16 бит слова, на котором запущен счетчик, после перемещения LLLL слов файла А.

Выходная инструкция «Читать из регистра»:

ЧТР NKМР º ЧТР{000…377} (NK = 0….3 – номер каркаса; М = 0…7–место модуля, модуля, P = 0…7 – номер регистра модуля).

Если предшествующий набор входных инструкций создает условие «истинности» на входе данной инструкции (åи = 1), то содержимое регистра модуля переносится в аккумулятор.

Выходная инструкция «Записать в регистр»:

ЗПР NKМР º ЗПР {000…377}. (NK = 0…3 – номер каркаса; М = 0…7–место модуля, P = 0…7 – номер регистра модуля).

Если предшествующий набор входных инструкций создает условие «истинности» на входе данной инструкции (åи = 1), то содержимое аккумулятора переносится в регистр модуля.

Выходная инструкция «Сбросить слово»:

СБС{000…377}.

Если предшествующий набор входных инструкций создает условие «истинности» на входе данной инструкции (åи = 1), то содержимое слова по адресу (000…377) сбрасывается.

Выходная инструкция «Чтение слова»:

ЧТС{000…377}.

Если предшествующий набор входных инструкций создает условие «истинности» на входе данной инструкции (åи = 1), то содержимое слова по адресу (000…377) записывается в аккумулятор.

Выходная инструкция «Запись слова»:

ЗПС{000…377}.

Если предшествующий набор входных инструкций создает условие «истинности» на входе данной инструкции (åи = 1), то аккумулятор записывается в содержимое слова по адресу (000…377).

Выходная инструкция «Поразрядно умножить слово»:

ПУС{000…377}.

Если предшествующий набор входных инструкций создает условие «истинности» на входе данной инструкции (åи = 1), то аккумулятор логически умножается на содержимое слова по адресу (000…377), а результат записывается в аккумулятор.

Выходная инструкция «Поразрядно сравнить слово»:

ПСС{000…377}.

Если предшествующий набор входных инструкций создает условие «истинности» на входе данной инструкции (åи = 1), то аккумулятор суммируется по модулю 2 с инверсным содержимым слова по адресу (000…377), а результат записывается в аккумулятор.

Выходная инструкция «Записать байт младший»:

ЗБМ{000…377}.

Если предшествующий набор входных инструкций создает условие «истинности» на входе данной инструкции (åи = 1), то младший байт аккумулятора записывается в младший байт слова по адресу (000…377).

Выходная инструкция «Записать байт старший»:

ЗБС{000…377}.

Если предшествующий набор входных инструкций создает условие «истинности» на входе данной инструкции (åи = 1), то младший байт аккумулятора записывается в старший байт слова по адресу (000…377).

Выходная инструкция «Читать байт младший»:

ЧБМ{000…377}.

Если предшествующий набор входных инструкций создает условие «истинности» на входе данной инструкции (åи = 1), то младший байт слова по адресу (000…377) записывается в младший байт аккумулятора (в старший байт аккумулятора заносятся нули).

Выходная инструкция «Читать байт старший»:

ЧБС{000…377}.

Если предшествующий набор входных инструкций создает условие «истинности» на входе данной инструкции (åи = 1), то старший байт слова по адресу (000…377) записывается в младший байт аккумулятора (в старший байт аккумулятора заносятся нули).

Выходная инструкция «Обменять байтами»:

ПББ{000…377}.

Если предшествующий набор входных инструкций создает условие «истинности» на входе данной инструкции (åи = 1), то старший байт слова по адресу (000…377) и младший байт слова по адресу (000…377) меняются местами.

Выходная инструкция «Сдвиг циклически влево к старшим битам»:

СЦС {000…377}.

Если предшествующий набор входных инструкций создает условие «истинности» на входе данной инструкции (åи = 1), то слово по адресу (000…377) сдвигается на один разряд влево к старшим битами, а 17 бит при сдвиге заносится в 0 разряд.

Выходная инструкция «Сдвиг циклически вправо к младшим битам»:

СЦМ {000….377}.

Если предшествующий набор входных инструкций создает условие «истинности» на входе данной инструкции (åи = 1), то слово по адресу (000…377) сдвигается на один разряд вправо к младшим битами, а 0 бит при сдвиге заносится в 17 разряд.

Выходная инструкция «Сложить арифметически слово»:

САС{000…377}.

Если предшествующий набор входных инструкций создает условие «истинности» на входе данной инструкции (åи = 1), то аккумулятор арифметически складывается с содержимым слова по адресу (000…377), а результат записывается в аккумулятор, если результат больше числа 4 095, то устанавливается 14 бит аккумулятора.

Выходная инструкция «Вычесть арифметически слово»:

ВАС{000…377}.

Если предшествующий набор входных инструкций создает условие «истинности» на входе данной инструкции (åи = 1), то из аккумулятора арифметически вычитается содержимое слова по адресу (000…377), а результат записывается в аккумулятор, если результат меньше нуля, то устанавливается 14 бит аккумулятора.

Выходная инструкция «Счетчик циклов»:

СЧЦ{000…377} (Асчф – адрес счетчика),

ПРС{0000…7777} / ПРК КККК.

Если предшествующий набор входных инструкций создает условие «истинности» на входе данной инструкции (åи =1), то в каждом скане содержимое по адресу счетчика (Асчф) увеличивается на единицу и при достижении уставки, заданной в ПРС…или в ПРК…, 16 бит адреса счетчика (Асчф) устанавливается в единицу. Сбрасывается счетчик инструкцией СБС Асчф.

Выходная инструкция «Счетчик на сложение»:

СЧС{000…377} (Асчф – адрес счетчика).

ПРС{0000…7777}/ПРК КККК.

Если предшествующий набор входных инструкций создает условия перехода из нулевого состояния в единичное, то содержимое по адресу счетчика (Асчф) увеличивается на единицу и при достижении уставки, заданной в ПРС…или в ПРК…, 16 бит адреса счетчика (Асчф) устанавливается в единицу. Сбрасывается счетчик инструкцией СБС Асчф. Бит 15 счетчика включается, когда на входе счетчика условия цепи истинны, а 14 бит включается, когда число, накопленное по адресу счетчика Асчф, превысит значение 4095.

Выходная инструкция «Счетчик на вычитание»:

СЧВ{000…377} (Асчф – адрес счетчика),

ПРС{0000…7777}/ПРК КККК.

Если предшествующий набор входных инструкций создает условия перехода из нулевого состояния в единичное, то содержимое по адресу счетчика (Асчф) уменьшается на единицу и если счетчик начинает работу, когда накопленное значение меньше уставки, заданной в ПРС… или в ПРК…, то 16 бит адреса счетчика (Асчф) устанавливается в единицу после достижения уставки, если наоборот, то 16 бит адреса счетчика (Асчф) устанавливается в единицу после обнуления счетчика, после чего устанавливается 14 бит и счетчик начинает считать с числа 4095. Сбрасывается счетчик инструкцией СБС Асчф. Бит 17 счетчика включается, когда на входе счетчика условия цепи истинны.

Выходная инструкция «Таймер с задержкой на включение десятичный»:

Д – дискрета 0,1с,

ТВД{000…377} (Асчф – адрес счетчика),

ПРС{0000…7777}/ПРК КККК.

Выходная инструкция. «Таймер с задержкой на включение секундный»:

С – дискрета 1с.

ТВС{000…377} (Асчф – адрес счетчика),

ПРС{0000…7777}/ПРК КККК.

Если предшествующий набор входных инструкций создает условия «истинности» на входе таймера, то содержимое по адресу счетчика (Асчф) увеличивается на единицу через каждую дискрету (Д – 0,1c или С – 1с) и при достижении уставки, заданной в ПРС… или в ПРК…, 16 бит адреса счетчика (Асчф) устанавливается в единицу. Сбрасывается счетчик инструкцией СБС Асчф. Бит 17 счетчика включается, когда на входе счетчика условия цепи истинны, 15 бит счетчика отражает дискрету счета. Если условия истинности на входе счетчика пропадут, то счетчик автоматически сбрасывается.

Выходная инструкция. «Таймер накапливающий десятичный»:

Д – дискрета 0,1с.

ТНД(000…377} (Асчф – адрес счетчика),

ПРС{0000…7777}/ПРК ККК.

Выходная инструкция. «Таймер накапливающий секундный»:

С – дискрета 1с.

ТНС{000…377} (Асчф – адрес счетчика),

ПРС{0000…7777}/ПРК КККК.

Если предшествующий набор входных инструкций создает условия истинности на входе таймера, то содержимое по адресу счетчика (Асчф) увеличивается на единицу через каждую дискрету счета (Д – 0,1c или С – 1с) и при достижении уставки, заданной в ПРС… или в ПРК…, 16 бит адреса счетчика (Асчф) устанавливается в единицу. Сбрасывается счетчик инструкцией СБС Асчф. Бит 17 счетчика включается, когда на входе счетчика условия цепи истинны, 15 бит счетчика отражает дискрету счета. Если условия истинности на входе счетчика пропадут, то счетчик не сбрасывается и сохраняет накопленное значение даже при потере питания, то есть, он измеряет суммарное время истинного состояния цепи.

Выходная инструкция. «Таймер с задержкой на отключение десятичный»:

Д – дискрета 0,1с.

ТОД{000…377} (Асчф – адрес счетчика),

ПРС{0000…7777}/ПРК КККК.

Выходная инструкция. «Таймер с задержкой на отключение секундный»:

С – дискрета 1с.

ТОС{000…377} (Асчф–адрес счетчика),

ПРС{0000…7777}/ПРК КККК.

Если предшествующий набор входных инструкций создает ложные условия на входе таймера, то содержимое по адресу счетчика (Асчф) увеличивается на единицу через каждую дискрету счета (Д – 0,1c или С – 1с) и при достижении уставки, заданной в ПРС… или в ПРК…, 16 бит адреса счетчика (Асчф) устанавливается в единицу. Сбрасывается счетчик инструкцией СБС Асчф. Бит 17 счетчика включается, когда на входе счетчика условия цепи ложны, 15 бит счетчика отражает дискрету счета. Если ложные условия на входе счетчика пропадут, то счетчик не сбрасывается и сохраняет накопленное значение даже при потере питания, то есть, он измеряет суммарное время ложного состояния цепи.





Дата публикования: 2015-04-09; Прочитано: 303 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.029 с)...