Программируемые управляющие устройства VersaMax (ПЛК Micro и ПЛК Nano). Руководство пользователя (2002 год) - часть 11

 

  Главная      Книги - Разные     Программируемые управляющие устройства VersaMax (ПЛК Micro и ПЛК Nano). Руководство пользователя (2002 год)

 

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

 

   

 

   

 

содержание      ..     9      10      11      12     ..

 

 

 

Программируемые управляющие устройства VersaMax (ПЛК Micro и ПЛК Nano). Руководство пользователя (2002 год) - часть 11

 

 

16
Функции битовых операций
Логическое "и" (AND), "или" (OR)
Во время каждого цикла, когда питание получено, функция логическое "и" (AND),
или логическое "или" (OR) анализирует каждый бит в битовой строке IN1 и
соответствующий бит в битовой строке IN2, начиная с наименее значимого бита в
каждой последовательности. Можно выбрать строку длиной до 256 слов.
Логическое "и" (AND)
Если оба проанализированных функцией логического "и" (AND) бита установлены
в 1, 1 ставится в соответствующее место в выходной строке Q. Если один или оба
бита установлены в 0, то на это место в строке Q ставится 0. Функция логического
"и" (AND) может быть использована для создания масок или экранов,
пропускающих только определенные биты (биты, соответствующие 1 в маске), а
все остальные биты устанавливающих в 0. Функция логическое "и" (AND) может
быть использована для очистки участка памяти с пословным обращением с
помощью операции логического умножения битов с другой битовой строкой
содержащей только 0. Битовые строки IN1 и IN2 могут перекрываться.
Логическое "или" (OR)
Если один или оба бита проанализированных функцией логического "или" (OR)
установлены в 1, 1 ставится в соответствующее место в выходной строке Q. Если
один или оба бита установлены в 0, то на это место в строке Q ставится 0. Функция
логическое "или" (OR) может использоваться для комбинирования строк или для
управления несколькими выходами с помощью одной простой логической
структуры. Функция логическое "или" (OR) эквивалентна двум параллельным
контактам реле, умноженным на количество бит в строке. Она может быть
использована для управления индикаторными лампами непосредственно от входов
или для наложения условий мигания ламп.
AND
Enable
OK
WORD
Вход 1
Выход
IN1
Q
Вход 2
IN2
16-4
16
Функции битовых операций
Логическое "и" (AND), "или" (OR)
Параметры функций логическое "и" (AND) и логическое "или" (OR)
Вход/
Варианты
Описание
выход
enable
питание
Операция выполняется, когда подано питание.
I1
I, Q, M, T, S, G, R, AI, AQ,
Константа или адрес первого слова первой строки.
константы
I2
I, Q, M, T, S, G, R, AI, AQ,
Константа или адрес первого слова второй строки
константы
ok
питание, отсутствие
Выход OK включен, если на выход enable подано
питания
питание.
Q
I, Q, M, T, SA, SB, SC (не
Выход Q содержит результат операции.
S), G, R, AI, AQ
Пример функции логического "и" (AND)
В примере, когда вход %I0001 установлен в 1, анализируются 16-битовые строки,
представленные WORD1 и WORD2. Результат логического "и" (AND) помещается
в выходную строку результата (RESULT)
%I0001
and
WORD1
0
0
0
1
1
1
1
1
1
1
0
0
1
0
0
0
WORD
WORD2
1
1
0
1
1
1
0
0
0
0
0
0
1
1
1
1
WORD1
IN1 Q
RESULT
WORD2
IN2
RESULT
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
Глава 16 Система команд
16-5
16
Функция битовых операций
"Исключающее или" (Exclusive OR)
Функция "исключающее или" (Exclusive OR) сравнивает каждый бит в строке IN1 с
соответствующим битом в строке IN2. Если биты отличаются, 1 устанавливается в
соответствующее место в выходной битовой строке.
Enable
xor
OK
WORD
Вход 1
IN1 Q
Выход
Вход 2
IN2
Во время каждого цикла, когда получено питание, функция "исключающее или"
(Exclusive OR) анализирует каждый бит в битовой строке IN1 и соответствующий
бит в битовой строке IN2, начиная с младшего бита в каждой строке. Для каждых
двух проверенных бит, если только один из них установлен в 1, 1 устанавливается в
соответствующее место в битовой строке Q. Функция исключающего "или"
(Exclusive OR) пропускает питание направо всякий раз, когда она его получает.
Если битовая строка I2 и выходная битовая строка Q начинаются по одному и тому
же адресу, 1, установленная в битовой строке I1, будет переключать
соответствующий бит в битовой строке I2 из 0 в 1 и обратно, изменяя состояние с
каждым циклом до тех пор пока получает питание. Более длинные циклы могут
быть запрограммированы подачей импульсов на вход питания. Частота импульсов
должна быть в два раза выше требуемой частоты включений. Длительность
импульса питания должна равняться одному циклу ПЛК (используйте катушку
перехода или самосбрасывающийся таймер)
Функция исключающее "или" (Exclusive OR) полезна для быстрого сравнивания
двух битовых строк или для мигания группы бит со скоростью одного включения в
два цикла.
Параметры функции "исключающее или" (Exclusive OR)
Вход/
Варианты
Описание
выход
enable
питание
Операция выполняется, когда подано питание.
IN1
I, Q, M, T, S, G, R, AI,
Константа или адрес первого слова для проведения
AQ, константы
операции исключающего "или"
IN2
I, Q, M, T, S, G, R, AI,
Константа или адрес второго слово для проведения
AQ, константы
операции исключающего "или".
ok
питание, отсутствие
Выход OK включен, если на выход enable подано
питания
питание.
Q
I, Q, M, T, SA, SB, SC
Выход Q содержит результат операции.
(не S), G, R, AI, AQ
16-6
16
Функция битовых операций
"Исключающее или" (Exclusive OR)
Пример
В этом примере всякий раз, когда %I0001 устанавливается в 1, битовая строка с
именем WORD3 очищается (все биты устанавливаются в 0).
%I0001
xor
WORD
WORD3
IN1 Q
WORD3
WORD3
IN2
IN1 (WORD3)
0
0
0
1
1
1
1
1
1
1
0
0
1
0
0
0
IN2 (WORD3)
0
0
0
1
1
1
1
1
1
1
0
0
1
0
0
0
Q (WORD3)
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Глава 16 Система команд
16-7
16
Функции битовых операций
Логическое инвертирование (NOT)
Функция логического инвертирования (NOT) устанавливает состояние для каждого
бита в выходной битовой строке Q в состояние, противоположное
соответствующим битам в битовой строке IN1.
В каждом цикле, когда подается питание, все биты изменяются, в результате чего
выходная строка Q становится логическим дополнением IN1. Функция пропускает
питание направо всякий раз, когда она его получает. Длина строки может быть до
256 слов.
Enable
not
OK
WORD
Вход 1
IN Q
Выход
Параметры функции логического инвертирования (NOT)
Вход/
Варианты
Описание
выход
enable
питание
Операция выполняется, когда подано питание.
IN
I, Q, M, T, S, G, R, AI,
Константа или адрес инвертируемого слова.
AQ, константы
ok
питание, отсутствие
Выход OK включен, если на выход enable подано
питания
питание.
Q
I, Q, M, T, SA, SB, SC
Выход Q содержит результат операции.
(не S), G, R, AI, AQ
Пример
В этом примере всякий раз, когда %I0001 устанавливается в 1, битовая строка с
именем TAC формируется как инверсия битовой строки CAT.
%I0001
not
WORD
CAT
IN Q
TAC
16-8
16
Функции битовых операций
Сдвиг бит влево/вправо (Shift Bits Left/Right)
Функция сдвига влево (Shift Left) смещает все биты в слове или в группе слов влево
на указанное количество позиций. Когда происходит сдвиг, указанное количество
бит смещается влево из выходной строки наружу. По мере того, как биты
вытесняются наружу с левого края строки, такое же количество бит добавляется с
правого края.
MSB
LSB
B2
1
1
0
1
1
1
1
1
1
1
0
0
1
0
0
0
B1
Функция сдвига вправо (Shift Right) смещает все биты в слове или в группе слов
вправо на указанное количество позиций. Когда происходит сдвиг, указанное
количество бит смещается вправо из выходной строки наружу. По мере того, как
биты вытесняются наружу с правого края строки, такое же количество бит
добавляется с левого края.
MSB
LSB
B1
1
1
0
1
1
1
1
1
1
1
0
0
1
0
0
0
B2
Для каждой функции можно выбрать длину строки от 1 до 256 слов.
Enable
SHIFTL
WORD
??
Последний
Вдвигаемое слово
IN B2
выдвигаемый бит
Количество бит
N Q
Выход
Вдвигаемый бит
B1
Если задан сдвиг количества бит (N), большего, чем количество бит в массиве *16,
массив Q заполняется копиями входного бита (В1), входной бит копируется на
выход (В2). Если задано нулевое смещение, сдвиг не выполняется, входной массив
копируется в выходной массив; входной бит (B1) копируется на выход (В2) .
Биты, подставляемые в начало строки, указываются во входном параметре B1. Если
сдвигается больше одного бита, каждому биту присваивается одно и тоже значение
(0 или 1). Это может быть:
Логический выход другой функции в программе.
Все 1. Для этого используйте на входе В1 специальную ячейку ALW_ON .
Все 0. Для этого используйте на входе В1 специальную ячейку ALW_OFF .
Функция пропускает питание направо, если для сдвига указано ненулевое
количество бит.
На выходе Q находится копия входной строки со сдвигом. Если Вы хотите
реализовать сдвиг во входной строке, выходной параметр Q должен занимать то же
самое место в памяти, что и входной параметр IN. Вся строка записывается со
сдвигом в каждом цикле, когда поступает питание. На выход В2 подается
последний вытесненный наружу бит. Например, если осуществляется сдвиг на 4
бита, В2 будет четвертым вытесненным битом.
Глава 16 Система команд
16-9
16
Функции битовых операций
Сдвиг битов влево/вправо (Shift Bits Left/Right)
Параметры функций сдвига влево/вправо (Shift bits Left/Right)
Вход/
Варианты
Описание
выход
enable
питание
Операция выполняется, когда подано питание.
IN
I, Q, M, T, S, G, R, AI,
IN содержит первое слово исходной строки.
AQ
N
I, Q, M, T, G, R, AI, AQ,
N содержит количество позиций (бит) на которые
константы
требуется сдвиг.
B1
питание
B1 содержит значение, подставляемое в массив.
B2
питание, отсутствие
B2 содержит значение последнего вытесненного из
питания
массива бита.
Q
I, Q, M, T, SA, SB, SC,
Вывод Q содержит первое слово массива со сдвигом.
G, R, AI, AQ
Пример
В этом примере всякий раз, когда вход %I0001 устанавливается в 1, в выходную
строку с именем WORD2 заносится копия входной строки WORD1. Выходная
последовательность сдвигается влево на 8 бит, как указано на входе LENGTH.
Освобождающимся в результате операции битам выходной строки присваивается
значение %I0002.
%I0001
SHIFTL
WORD
1
WORD1
IN B2
OUTBIT
LENGTH
8
N Q
WORD2
%I0002
B1
16-10
16
Функции битовых операций
Циклический сдвиг влево/вправо
(Rotate bits Left/Right)
Функция циклического сдвига влево (Rotate Left) смещает по кругу все биты в
строке влево на заданное количество мест. Когда производится сдвиг, заданное
количество бит во входной строке сдвигается из нее наружу слева и подставляется
обратно в нее справа.
Функция циклического вправо (Rotate Right) смещает по кругу вправо биты в строке
на заданное количество мест. Когда производится сдвиг, заданное количество бит
во входной строке сдвигается из нее наружу справа и подставляется обратно в нее
слева.
Для каждой функции можно выбрать длину строки от 1 до 256 слов. Количество мест
для сдвига должно быть больше чем 0 и меньше чем количество бит в строке.
Функция циклического сдвига пропускает питание направо, если количество мест
для сдвига не превышает длину строки и не отрицательно. Результат помещается в
выходную строку Q. Если вы хотите реализовать циклический сдвиг во входной
строке, выходной параметр Q должен использовать ту же самую ячейку памяти, что
и входной параметр IN. Вся строка со сдвигом записывается при каждом цикле,
когда поступает питание.
Enable
ROL
OK
WORD
??
Циклически
сдвигаемое слово
IN Q
Выход
Количество бит
N
Параметры функций циклического сдвига влево/вправо (Rotate bits
Left/Right)
Вход/
Варианты
Описание
выход
enable
питание
Операция выполняется, когда подано питание.
IN
I, Q, M, T, S, G, R, AI, AQ
IN содержит первое слово для циклического сдвига.
N
I, Q, M, T, G, R, AI, AQ,
N содержит количество мест в массиве для сдвига.
константы
ok
питание, отсутствие питания
Выход OK включен, когда подано питание и величина
сдвига не превышает размера массива.
Q
I, Q, M, T, SA, SB, SC, G, R, AI,
Вывод Q содержит первое слово массива с
AQ
циклическим сдвигом.
Глава 16 Система команд
16-11
16
Функции битовых операций
Циклический сдвиг влево/вправо
(Rotate bits Left/Right)
Пример
В этом примере всякий раз, когда выход %I0001 устанавливается в 1, входная
строка по адресу %R0001 циклически сдвигается на 3 бита. Результат помещается в
%R0002. Входная битовая строка %R0001 не изменяется функцией. Если те же
самые ячейки использовать для IN и Q, циклический сдвиг произойдет в исходной
строке.
%I0001
ROL
WORD
MSB
LSB
1
%R0001
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
%R0001
IN Q
%R0002
MSB
LSB
%R0002 после установки
CONST
%I0001
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
+00003
N
16-12
16
Функции битовых операций
Тест бита (Bit Test)
Функция тест бита (Bit Test) тестирует бит в строке для определения его значения в
данный момент (1 или 0). Результат теста помещается в выход Q.
В каждом цикле, когда поступает питание, функция тест бита переводит выход Q в
то же состояние, в котором находится указанный бит. Если номер бита указывается
регистром, а не константой, один и тот же функциональный блок может проверять
разные биты в последующих циклах. Если значение BIT находится за пределами
диапазона(1 < BIT < (16 * длина) ), Q устанавливается в 0.
Можно выбрать длину строки от 1 до 256 слов.
Enable
BITTEST
WORD
??
Тестируемый
бит
IN Q
Выход
Номер бита в IN
??
Параметры функции теста битов (Bit Test)
Вход/
Варианты
Описание
выход
enable
питание
Операция выполняется, когда подано питание.
IN
I, Q, M, T, S, G, R, AI, AQ
IN содержит первое слово данных для работы
функции.
Бит
I, Q, M, T, G, R, AI, AQ,
BIT содержит номер бита IN для тестирования.
константы
Допустимый диапазон (1 < BIT < (16 * длинна)).
Q
питание, отсутствие
Питание подается на вывод Q, если
питания
протестированный бит находится в 1.
Пример
В этом примере всякий раз, когда вход %I0001 устанавливается в 1, тестируется бит
по адресу PICKBIT. Бит является частью строки PRD_CDE. Если он установлен в
1, выход Q пропускает питание и катушка %Q0001 включается.
%I0001
BITTEST
WORD
1
%Q0001
PRD_CDE
(
)
IN
Q
PICKBIT
BIT
Глава 16 Система команд
16-13
16
Функции битовых операций
Установка и очистка бита (Bit Set/Clear)
Функция установки бита (Bit Set) устанавливает бит в строке в 1. Функция очистки
бита (Bit Clear) устанавливает бит в строке в 0.
В каждом цикле, когда поступает питание, функция устанавливает значение
указанному биту. Если для указания номера бита используется переменная
(регистр), а не константа, один и тот же функциональный блок может задавать
разные биты в последующих циклах.
Можно выбрать длину строки от 1 до 256 слов. Функция пропускает питание
направо, если значение BIT не выходит за пределы диапазона
(1 < BIT < (16 * длина) ). В противном случае OK устанавливается в 0.
Enable
SET BIT
OK
WORD
??
Первое слово
IN
Номер бита в IN
BIT
Параметры функции установки и очистки бита (Bit Set/Clear)
Вход/
Варианты
Описание
выход
enable
питание
Операция выполняется, когда подано питание.
IN
I, Q, M, T, SA, SB, SC,
IN содержит первое слово данных для работы функции.
G, R, AI, AQ
Бит
I, Q, M, T, G, R, AI, AQ,
BIT содержит номер бита IN который должен быть
константы
установлен или очищен.
Допустимый диапазон (1 < BIT < (16 * длинна) ).
ok
питание, отсутствие
Питание на выход ОК подается, когда значение на входе
питания
BIT находится в допустимом диапазоне и подано питание
на вход enable.
Пример
В этом примере всякий раз, когда вход %I0001 устанавливается в 1, бит 12 строки,
начинающейся с ячейки %R0040, устанавливается в 1.
%I0001
BIT SET
WORD
1
%R0040
IN Q
CONST
Bit
00012
16-14
16
Функции битовых операций
Маскированное сравнение (Masked Compare)
Функция маскированного сравнения (Masked Compare) сравнивает содержание двух
битовых строк. Она предоставляет возможность маскировать выбранные биты.
Входная битовая строка 1 может содержать состояния выходов, таких, как
соленоиды и пускатели двигателей. Входная битовая строка 2 может содержать
состояния входов, обеспечивающих обратную связь, таких, как концевые
выключатели или контакты.
Enable
MASK
COMP
WORD
1
Несовпадение
Вход 1
IN1 MC
Вход 2
IN2
Q
Выход
Битовая строка
M
BN
Номер бита последнего
сравнения
Номер бита
BIT
Когда функция получает питание, она начинает сравнивать биты первой битовой
строки с соответствующими битами второй битовой строки. Сравнение
продолжается или до обнаружения несовпадения, или до окончания строки.
Вход BIT сохраняет номер бита, с которого должно начаться следующее сравнение
(0 обозначает первый бит в строке). Выход BN сохраняет номер бита, с которого
началось последнее сравнение (1 означает первый бит в строке). Использование
одинаковых ячеек для BIT и BN начинает сравнение со следующей позиции после
несовпадающей позиции; или, если сравнение всех битов прошло успешно перед
следующим запуском функционального блока, сравнение начинается сначала.
Если Вы хотите, чтобы следующее сравнение началось с какого-нибудь другого
места в строке, то Вам надо ввести разные адреса для BIT и BN. Если значение,
установленное для BIT, находится за пределами строки, то BIT устанавливается в 0
перед началом следующего сравнения.
Глава 16 Система команд
16-15
16
Функции битовых операций
Маскированное сравнение (Masked Compare)
Параметры функции маскированного сравнения (Masked Compare)
Вход/
Варианты
Описание
выход
enable
питание
Разрешающая логика для функции.
IN1
R, AI, AQ
Адрес первой битовой строки для сравнения.
Для WORD только: I, Q, M, T, S, G
IN2
R, AI, AQ
Адрес второй битовой строки для сравнения.
Для WORD только: I, Q, M, T, S, G
M
R, AI, AQ
Адрес битовой маски строки.
Для WORD только: I, Q, M, T, SS, SB,
SC, G
Бит
I, Q, M, T, S, G, R, AI, AQ, константы
Адрес номера бита начала следующего сравнения.
MC
питание, отсутствие питания
Пользовательская логика для определения
возникшего несовпадения.
Q
R, AI, AQ
Выходная копия битовой строки маски (M).
Для WORD только: I, Q, M, T, SA, SB,
SC, G
BN
I, Q, M, T, S, G, R, AI, AQ
Номер бита, где обнаружено последнее
несовпадение.
Длина
константа
Количество слов в битовой строке. Максимальное
количество 4095 для WORD и 2047 для DWORD.
16-16
16
Функции битовых операций
Маскированное сравнение (Masked Compare)
Принцип работы маскированного сравнения (Masked Compare)
Если все соответствующие биты в строках IN1 и IN2 совпадают, то функция
устанавливает выход MC “miscompare (несовпадения)” в 0 и BN в самый большой
номер бита во входных строках. После чего сравнение останавливается. При
следующем вызове Masked Compare Word, он устанавливается в 0. Если два
сравниваемых бита неодинаковы, то функция проверяет бит с соответствующим
номером в строке M (маска). Если бит маски установлен в 1, то сравнение
продолжается до обнаружения другого несовпадения или до окончания входных
строк. Если обнаружено несовпадение, и соответствующий бит маски установлен в 0,
то функция выполняет следующие действия:
1.
Устанавливает соответствующий бит маски в строке M в 1.
2.
Устанавливает выход несовпадения (MC) в 1.
3.
Обновляет выходную строку Q так, чтобы она совпадала с новым содержимым
строки маски M.
4.
Устанавливает на выходе номера бита (BN) номер несовпадающего бита.
5.
Останавливает сравнение.
Пример
В этом примере выполняется функция маскированного сравнения (Masked
Compare). Она сравнивает %M0001-16 с %M0017-32. Маска содержится в
%M0033-48. Значение в %R0001 определяет в двух входных строках позицию
бита, с которого начнется сравнение.
FST_SCN
MASK
|
|
COMP
WORD
1
%Q0001
%M0001
IN1 MC
(S)
%M0017
IN2
Q
%M0033
%M0033
M
BN
%R0001
%R0001
BIT
Перед выполнением функционального блока, содержимое указанных выше ячеек:
(IN1 ) - %M0001 = 6C6Ch =
0
1
1
0
1
1
0
0
0
1
1
0
1
1
0
0
(IN2) - %M0017 = 606Fh
=
0
1
1
0
1
1
0
1
0
1
1
0
1
1
1
1
(M/Q) - %M0033 = 000Fh =
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
(BIT/BN) - %R0001
=
0
(MC) - %Q0001
=
OFF
Глава 16 Система команд
16-17
16
Функции битовых операций
Маскированное сравнение (Masked Compare)
После выполнения функционального блока, содержимое указанных выше ячеек
будет:
(IN1) - %M0001
= (то же)
0
1
1
0
1
1
0
0
0
1
1
0
1
1
0
0
(IN2) - %M0017
= (то же)
0
1
1
0
1
1
0
1
0
1
1
0
1
1
1
1
(M/Q) - %M0033 (BIT/BN) - %R0001
= 8
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
1
(MC) - %Q0001
= ON
В этом примере контакт %T1 и катушка %M100 вызывают одно и только одно
выполнение функции, иначе функция будет повторяться с непредсказуемым
результатом.
16-18
16
Функции битовых операций
Позиция бита (Bit Position)
Функция позиции бита (Bit Position) .
Во время каждого цикла, когда получено питание, функция проверяет битовую
строку, начиная с IN. Функция заканчивает проверку, если был обнаружен бит,
равный 1, или вся последовательность была опрошена.
POS устанавливается на место первого ненулевого бита в строке; POS
устанавливается в 0, если таковых найдено не было.
Можно выбрать длину строки от 1 до 256 слов. Функция пропускает питание
направо всегда, когда на вход enable подано питание.
Enable
BIT POS
OK
WORD
??
Первое
слово
IN
Позиция ненулевого бита
POS
или 0
Параметры функции позиции бита (Bit Position)
Вход/
Варианты
Описание
выход
enable
питание
Операция выполняется, когда подано питание.
IN
I, Q, M, T, S, G, R,
IN содержит первое слово данных для работы
AI, AQ
функции.
ok
питание, отсутствие
Выход OK включен, если на выход enable подано
питания
питание.
POS
I, Q, M, T, G, R, AI,
Позиция первого ненулевого бита в строке, или 0, если
AQ
таковых найдено не было .
Глава 16 Система команд
16-19
16
Функции битовых операций
Позиция бита (Bit Position)
Пример
В этом примере всякий раз, когда %I0001 устанавливается в 1, битовая строка
начиная с %M0001 проверяется до тех пор, пока не будет обнаружен бит, равный 1.
Катушка %Q0001 включена. Если бит, равный 1, обнаружен, то его положение в
строке записывается в %AQ0001. Если %I0001 установлен в 1, бит %M0001
установлен в 0, и бит %M0002 установлен в 1, то значение 2 записывается в
%AQ0001.
%I0001
%Q0001
BIT POS
(
)
WORD
1
%M0001
IN
POS
%AQ0001
16-20
16
Функции битовых операций
Одноконтактный командоаппарат (Bit Sequencer)
Функция одноконтактного командоаппарата Bit Sequencer выполняет смещение
порядка битов в массиве.
Enable
BIT SEQ
OK
??
Reset
R
Direction
DIR
Number
STEP
Начальный
ST
адрес
Адрес
Работа функции зависит от предыдущего значения параметра EN:
R Текущий
EN Предыдущий
EN Текущий
шаг
шаг
шаг
Выполнение Bit Sequencer
0
0
0
Не выполняется.
0
0
1
+/- 1.
0
1
0
Не выполняется.
0
1
1
Не выполняется.
1
1/0
1/0
Возвращается в исходное положение.
Вход сброса (R) игнорирует вход разрешения Enable (EN) и всегда возвращает
командоаппарат в исходное положение. Когда вход R активен, текущему номеру
шага устанавливается значение параметра номера шага. Если номер шага
отсутствует, шаг устанавливается в 1. Все биты командоаппарата устанавливаются
в 0, кроме бита, на который указывает текущий шаг, который устанавливается в 1.
Когда вход Enable установлен в 1, а вход Reset - в 0, бит, указанный текущим
номером шага, очищается. Текущий номер шага увеличивается/уменьшается на 1 в
зависимости от значения параметра направления. Затем бит, указанный номером
нового шага, устанавливается в 1.
Параметр ST не является обязательным. Если он не используется, функция
одноконтактного командоаппарата (Bit Seqencer) работает, как описано выше, кроме
того, что биты не устанавливаются и не очищаются. Функция просто циклически
изменяет номер текущего шага в допустимом диапазоне.
Глава 16 Система команд
16-21
16
Функции битовых операций
Одноконтактный командоаппарат (Bit Sequencer)
Память, требуемая Одноконтактному командоаппарату (Bit Sequencer)
Каждый одноконтактный командоаппарат использует три слова (регистра) памяти
%R для хранения информации:
слово 1
номер текущего шага
слово 2
длина последовательности (в
битах)
слово 3
управляющее слово
Слово 3 (управляющее слово) сохраняет состояние логических входов и выходов
связанного с ним функционального блока, в следуюшем формате:
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
Резерв
OK (выход статуса)
EN (вход разрешения)
Параметры функции Одноконтактный командоаппарат (Bit Sequencer)
Вход/
Варианты
Описание
выход
адрес
R
Адрес хранения текущего шага, длины, и последнего
статуса OK и Enable одноконтактного
командоаппарата.
enable
питание
Когда на вход enable подано питание, при условии, что
в предыдущем цикле питание на него не подавалось и
на вход R питание не подано, выполняется сдвиг
битовой строки.
R
питание
Когда на вход R подано питание, номеру шага
одноконтактного командоаппарата присваивается
значение STEP (по умолчанию = 1), и одноконтактный
командоаппарат заполняется нулями, кроме бита
номера текущего шага.
DIR
питание
Когда на вход DIR подано питание, перед сдвигом
увеличивается номер шага одноконтактного
командоаппарата. В противном случае, он
уменьшается.
STEP
I, Q, M, T, G, R, AI, AQ,
Если на вход R подано питание, номер шага
константы, отсутствие
устанавливается в это значение.
питания
ST
I, Q, M, T, SA, SB, SC, G,
ST содержит первое слово одноконтактного
R, AI, AQ, отсутствие
командоаппарата. Необязательно.
питания
ok
питание, отсутствие
Выход OK включен, когда на вход enable подано
питания
питание.
16-22
16
Функции битовых операций
Одноконтактный командоаппарат (Bit Sequencer)
Пример
Например, одноконтактный командоаппарат (Bit Sequencer) работает с памятью
регистров %R0001. Его статические данные хранятся в регистрах %R0010-12.
Когда вход CLEAR установлен в 1, командоаппарат устанавливается в исходное
состояние, и номер текущего шага устанавливается в значение 3. Первые восемь
бит регистра %R0001 устанавливаются в 0.
Когда вход NXT_CYC установлен в 1, а вход CLEAR установлен в 0, бит номера
шага 3 очищается, и устанавливается бит номера шага 2 или 4 (в зависимости от
состояния входа DIR).
NXT CYC
BIT SEQ
12
CLEAR
R
DIRECT
DIR
CONST
STEP
00003
%R0001
ST
%R0010
Глава 16 Система команд
16-23
16
Функции управления
В этом разделе описаны функции управления, с помощью которых можно
ограничивать выполнение программы и изменять выполнение прикладной
программы ЦПУ.
Выполнить ввод-вывод (В/В): DO I/O
Перейти к блоку подпрограммы: CALL
Временное окончание программы: END
Принудительно выполнить группу звеньев логики без подачи питания: MCR
Перейти в указанное место программы: JUMP, LABEL
Поместить текстовое пояснение в логику программы: COMMENT
Предопределенная схема включения/выключения для установки шестнадцати
дискретных выводов аналогично механическому командоаппарату.
Более сложные функции управления - системный запрос (Service Request) и
алгоритмы ПИД (PID) описаны в других главах настоящей инструкции
пользователя.
16-24
16
Функции управления
Выполнить В/В (Do I/O)
Функция Выполнить В/В (Do I/O) обновляет входы или выходы в течение одного
цикла во время работы программы. Функцию выполнить В/В (Do I/O) можно также
использовать для обновления выбранных входов/выходов во время выполнения
программы в дополнение к обычному опросу В/В.
enable
do io
OK
Начальный адрес
ST
Конечный адрес
END
ALT
Выполнение функции продолжается до тех пор пока все входы не предоставили
данные и не были обслужены все выходы модулей В/В в выбранном диапазоне.
Затем выполнение программы переходит к следующей функции.
Функция пропускает питание направо всегда, когда получено питание, за
исключением:
Не все сылки указанного типа присутствуют в выбранном диапазоне.
ПЛК Micro не может корректно обработать временный список В/В, созданный
функцией.
В указанном диапазоне имеются модули, с которыми связана ошибка “Loss of
I/O".
Использование функции выполнить В/В (DO I/O) с блоками расширения
Функция Выполнить В/В (Do I/O) всегда корректно обновляет адреса
опрашиваемого В/В, даже если некоторые адреса были пропущены при
автоконфигурировании ПЛК. При автоконфигурировании ПЛК Micro на 14 каналов
с подключенными блоками расширения В/В, адреса В/В с I0009 по I0016 и с Q0009
по Q0016 пропускаются, и адреса В/В первого блока расширения начнутся с I0017 и
Q0017. Функция Выполнить В/В (Do I/O) корректно обновляет эти адреса В/В без
резервирования пропущенных областей памяти. В параметре ALT функции
Выполнить В/В (Do I/O) содержатся 16 точек данных: 8 точек для модуля и 8 точек
для блока расширения.
Глава 16 Система команд
16-25
16
Функции управления
Выполнить В/В (Do I/O)
Параметры функции Выполнить В/В (Do I/O)
Вход/
Варианты
Описание
выход
enable
питание
Ограниченный опрос входов/выходов выполняется, когда
подано питание.
ST
I, Q, AI, AQ
Начальный адрес обслуживаемых входов/выходов.
END
I, Q, AI, AQ
Конечный адрес обслуживаемых входов/выходов.
ALT
I, Q, M, T, G, R, AI,
При опросе входов параметр ALT указывает, по какому
AQ, нет
адресу сохранять значения опрошенных входных
точек/слов. При опросе выходов параметр ALT
указывает, с какого адреса брать значения выходных
точек/слов. Если для ALT указана константа, она
игнорируется.
ok
питание, отсутствие
Выход OK включен, если опрос выполнен без ошибок.
питания
16-26
16
Функции управления
Выполнить В/В (Do I/O)
Выполнить В/В (Do I/O) для Входов
Если указаны входные ячейки, то, когда функция получает питание, ПЛК опрашивает
входные каналы с начального адреса (ST) до конечного адреса (END). Если указана
ячейка для параметра ALT, копии новых входных значений помещаются в память,
начиная с этой ячейки, а действительные значения не обновляются. Параметр ALT
должен быть той же размерности, что и опрашиваемые ячейки. Если для ST и END
используются дискретные ячейки, параметр ALT тоже должен быть дискретным.
Если для параметра ALT ячейки не указаны, обновляются действительные входные
значения. Это предоставляет возможность опрашивать входы несколько раз во
время выполнения программы в цикле CPU.
Пример функции выполнить В/В (Do I/O) для входов:
В этом примере при получении функцией питания, ПЛК опрашивает ячейки
%I0001-64 и включается ячейка %Q0001. Копии опрошенных входов помещаются
во внутреннюю память %M0001-64. Т.к. указана ячейка для параметра ALT,
действительные входы не обновляются. Это позволяет сравнивать текущие
значения входов с их значениями в начале цикла.
%I0001
%Q0001
DO IO
%I0001
ST
%I0064
END
%M0001
ALT
Выполнить В/В (Do I/O) для выходов
Если указаны выходные ячейки, то, когда функция получает питание, ПЛК
записывает в выходы последние выходные значения с начальной ячейки ST до
ячейки END. Если выходные данные нужно записать из внутренней памяти, а не из
%Q или %AQ, в параметре ALT может быть указана начальная ячейка.
Глава 16 Система команд
16-27
16
Функции управления
Выполнить В/В (Do I/O)
Пример Выполнить В/В (Do I/O) для выходов:
В данном примере, когда функция получает питание, ПЛК записывает значения из
ячеек %R0001-0004 в аналоговые выходные каналы %AQ001-004 и включается
выход %Q0001. Т.к. введена ячейка для параметра ALT, значения из ячеек памяти
%AQ001-004 не записываются в выходы.
%I0001
%Q0001
DO IO
%AQ001
ST
%AQ004
END
%R0001
ALT
Если бы для параметра ALT ячейка не была указана, ПЛК записал бы значения
ячеек %AQ001-004 в выходные аналоговые каналы.
16-28
16
Функции управления
Вызов (Call)
Функция Вызов (Call) перемещает выполнение программы в указанную
подпрограмму.
CALL
(подпрограмма)
Когда функция Вызова (Call) получает питание, цикл немедленно перемещается в
блок подпрограммы и выполняет его. После выполнения блока подпрограммы
управление возвращается в место в логике сразу после команды вызова (Call).
Пример
%I0004
%T0001
%I0006
CALL
(подпрограмма)
%Q0010
%I0003
%I0010
%I0001
Глава 16 Система команд
16-29
16
Функции управления
Окончание логики (End of Logic)
Функция Окончания Логики (End of Logic) обеспечивает временное окончание
логики. Программа выполняется от первого до последнего звена или до функции
Окончания Логики (End of Logic) в зависимости от того, что встретится раньше.
Функция Окончания Логики (End of Logic) безусловно завершает выполнение
программы. После функции окончания логики (End of Logic) в звене ничего не
может находиться. После функции окончания логики (End of Logic) логика не
выполняется, и управление переходит в начало программы в следующем цикле.
Функция Окончания Логики (End of Logic) полезна для целей отладки, т.к. она
блокирует выполнение любой последующей логики.
В инструментальном программном обеспечении имеется маркер [END OF
PROGRAM LOGIC] для указания окончания выполнения программы. Этот маркер
используется, если функция окончания логики (End of Logic) не применяется в
логике.
[ END ]
Пример
В данном примере функция окончания логики (End of Logic) установлена для
завершения текущего цикла.
[ STOP ]
[ END ]
16-30
16
Функции управления
Принудительное исполнение (MCR)/
окончание принудительного исполнения (End MCR)
Все звенья между активной функцией принудительно исполнения (MCRN) и
соответствующей ей функцией окончания принудительного исполнения
(ENDMCRN) выполняются без подачи питания на катушки. Функция окончания
принудительного исполнения (ENDMCRN), связанная с функцией
принудительного исполнения, используется для возобновления нормального
выполнения программы. В отличие от функций Перехода (Jump), функции
принудительного исполнения могут действовать только вперед; функция окончания
принудительного исполнения (ENDMCRN) должна находиться после
соответствующей команды принудительного исполнения в программе.
Вложенная функция принудительного исполнения (MCRN)
Функция принудительного исполнения может быть полностью вложена в другую
пару MCRN/ENDMCRN.
Несколько функций принудительного исполнения можно использовать с одной
ENDMCRN.
У функции принудительного исполнения есть вход enable и имя. Это имя заново
используется функцией окончания принудительного исполнения (ENDMCRN).
Функция принудительного исполнения не имеет выходов, и после нее в звене
ничего не может находиться.
(имя)
enable
MCR
Функциональные блоки в зоне действия функции принудительного исполнения
выполняются без питания, и катушки выключаются.
Функция окончания принудительного исполнения (ENDMCRN) должна быть
соединена с шиной питания, и перед ней в звене не может быть логики. Имя
функции окончания принудительного исполнения (ENDMCRN) связывает ее с
соответствующей функцией(ями) принудительного исполнения. Функция
ENDMCR не имеет выходов, и после нее в звене ничего не может находиться.
(имя)
ENDMCR
Глава 16 Система команд
16-31
16
Функции управления
Принудительное исполнение (MCR)/
окончание принудительного исполнения (End MCR)
Пример функций принудительного исполнения (MCR) и окончания
принудительного исполнения (ENDMCRN)
В этом примере при включении контакта %I0002, включается функция
принудительного исполнения (MCR). Когда функция принудительного исполнения
(MCR) включена - даже если контакт %I0001 включен - функциональный блок
сложения выполняется без подачи питания (т.е., он не прибавляет 1 к %R0001), и
катушка %Q0001 выключена.
Если контакты %I0003 и %I0004 включены, катушка %Q0003 выключена, а катушка
%Q0004 остается включенной.
%I0002
FIRST
MCRN
%I0001
%Q0001
ADD INT
%R0001
IN1 Q
%R0001
1
IN2
%I0003
%Q0003
%I0004
%Q0004
S
FIRST
ENDMCRN
16-32
16
Функции управления
Переход (Jump), Метка (Label)
Вложенная команда перехода (Jump) позволяет пропускать часть логики
программы. Выполнение программы продолжается с указанной метки (Label).
Когда функция переход (Jump) активна, все катушки в области ее действия остаются
в исходном состоянии. Это относится, в том числе, и к катушкам, связанным с
таймерами, счетчиками, триггерами и реле.
Вложенная команда перехода (Jump) имеет вид----->>Метка 01, где Метка 01
является именем соответствующей вложенной инструкции Метка (Label).
Вложенную команду переход (Jump) можно поместить в любом месте программы.
Несколько вложенных команд переход (Jump) могут соответствовать одной
вложенной команде Метка (Label). Вложенные команды Переход (Jump) могут
совершать переходы вперед или назад.
В звене после команды Переход (Jump) не может ничего находиться. Питание
переходит напрямую от команды к звену, помеченному меткой.
Предостережение
Для избежания бесконечного цикла с функциями перехода
(Jump) назад и вперед, функция перехода назад должна
иметь возможность становиться условной.
Метка (Label)
Команда Метка (Label) является целью команды Переход (Jump). Используйте
команду Метка (Label) для возобновления нормального выполнения программы. В
программе каждая метка (Label) должна иметь индивидуальное имя.
Команда Метка (Label) не имеет входов и выходов, и в звене не может находиться
ничего ни перед, ни после команды Метка (Label).
Глава 16 Система команд
16-33
16
Функции управления
Переход (Jump), Метка (Label)
Пример команд Метка (Label) и Переход (Jump)
В этом примере, когда команда переход (Jump) TEST1 активна, питание передается
на метку (Label) TEST1.
При использовании команды перехода (Jump) все функциональные блоки между
командами перехода (Jump) и командой метки (Label) не выполняются, и катушки
остаются в исходном состоянии. В этом примере, когда вход %I0002 включен,
происходит переход (Jump). Т.к. логика между командами перехода (Jump) и метки
(Label) не выполняется, %Q0001 остается в исходном положении (если была
включена, то и остается включенной; если была выключена, то и остается
выключенной).
%I0001
>>TEST1
%I0001
%Q0001
ADD
INT
%R0001
IN1
Q
%R0001
1
IN2
>>TEST1
16-34
16
Функции управления
Комментарий (Comment)
Функция Комментарий (Comment) используется для ввода в программу
комментария (пояснения звена) Комментарий может содержать до 2048 символов
текста. Более длинный текст можно включать в распечатки с помощью текстового
файла аннотации.
Комментарий отображается в релейно-контактной логике как показано ниже:
(* COMMENT *)
Глава 16 Система команд
16-35
16
Функции управления
Имитатор Командоаппарата (Drum Sequencer)
Функция Имитатор Командоаппарата (Drum Sequencer) является элементом
программы с принципом действия как у механического командоаппарата. Имитатор
командоаппарата (Drum Sequencer) пошагово перебирает набор потенциальных
выходных битовых шаблонов и выбирает один, исходя из своих входных данных.
Выбранное значение копируется в группу из 16 дискретных выходных ячеек.
Enable
DRUM
OK
Step
Control Block
Out
Length
Reset
Drum Coil
Pattern
Dwell Timeout
Dwell Time
Timeout Fault
Fault Timeout
First Follower
При подаче питания на вход Enable имитатор командоапарата (Drum Sequencer)
копирует содержимое выбранной ячейки в выходную ячейку OUT.
При подаче питания на вход Reset или на вход Step происходит выбор ячейки для
копирования.
Вход Control Block является начальной ячейкой блока параметров функции
имитатора командоаппарата (Drum Sequencer) и содержит информацию,
используемую функцией.
16-36
16
Функции управления
Имитатор Командоаппарата (Drum Sequencer)
Параметры функции Имитатора Командоаппарата (Drum Sequencer )
Вход/
Варианты
Описание
выход
enable
питание
Вход Enable управляет выполнением функции.
STEP
питание
Вход Step можно использовать для перехода вперед на один шаг. При подаче питания на
вход Enable и при переходе входа Step из 0 в 1, имитатор командоаппарата (Drum
Sequencer) перемещается на 1 шаг вперед. Когда вход Reset активен, функция игнорирует
вход Step.
Reset
питание
Вход Reset можно использовать для выбора определенного шага. Когда входы Enable и
Reset получают питание, функция копирует значение начального положения (Preset Step)
из управляющего блока в ячейку текущего шага (Active Step), также находящуюся в
управляющем блоке. Затем функциональный блок копирует значение, хранящееся по
адресу, на котоый указывает ячейка предустановленного шага (Preset Step), в ячейку Out.
Когда вход Reset активен, функция игнорирует вход Step.
Pattern
R, AI, AQ
Начальный адрес массива слов, каждое из которых представляет собой один шаг
имитатора команоаппарата (Drum Sequencer). Значение каждого слова представляет собой
желаемую комбинацию выходов для определенного значения Active Step. Количество
элементов массива равно длине входа.
Dwell
R, AI, AQ,
Этот необязательный входной массив слов содержит один элемент для каждого элемента в
Time
отсутствие
массиве шаблонов. Каждое значение в массиве представляет время задержки для
параметра
соответствующего шага имитатора командоаппарата (Drum Sequencer). Когда время
задержки для данного шага истекает, устанавливается бит тайм-аута задержки шага (Dwell
Timeout).
Если время задержки указано, имитатор командоаппарата не может перейти к следующему
шагу до тех пор, пока не истечет время задержки.
Fault
R, AI, AQ,
Этот необязательный входной массив слов содержит один элемент для каждого элемента в
Timeout
отсутствие
массиве шаблонов. Каждое значение в массиве представляет собой ошибку тайм-аута для
параметра
соответствующего шага имитатора командоаппарата (Drum Sequencer). При истечении
тайм-аута ошибки устанавливается бит тайм-аута ошибки (Fault Timeout bit)
Control
R
Адрес начальной ячейки блока параметров функции. Длина управляющего блока (Control
Block
Block) пять слов. Более подробное описание содержания блока приведено ниже.
Длина
CONST
Значение от 1 до 128, указывающее количество шагов.
ok
питание,
На выход OK подается питание, если вход Enable включен и не зафиксировано никаких
отсутствие
ошибок. Если вход Enable выключен, выход OK будет тоже выключен.
питания
OUT
I, Q, M, T, G,
Слово в памяти, содержащее элемент массива шаблонов, соответствующий текущему шагу
R, AI, AQ
(Active Step).
Drum
I, Q, M, T, G,
Эта необязательная битовая ячейка устанавливается, когда на функциональный блок
Coil
отсутствие
подано питание, и текущий шаг не равен начальному положению.
питания
Dwell
I, Q, M, T, G,
Эта необязательная битовая ячейка устанавливается, если превышено время задержки
Timeout
отсутствие
данного шага.
питания
Timeout
I, Q, M, T, G,
Эта необязательная битовая ячейка устанавливается, если имитатор командоаппарата
Fault
отсутствие
находится на определенном шаге дольше, чем это разрешено уставкой тайм-аута.
питания
First
I, Q, M, T, G,
Этот необязательный битовый массив содержит один элемент для каждого шага имитатора
Follower
отсутствие
командоаппарата (Drum Sequencer). В любой момент времени в массиве не может быть
питания
больше одного бита, установленного в 1, и этот бит соответствует значению данного шага.
Глава 16 Система команд
16-37
16
Функции управления
Имитатор Командоаппарата (Drum Sequencer)
Блок параметров функции Имитатора Командоаппарата (Drum Sequencer)
Блок параметров (управляющий блок) функции имитатора командоаппарата (Drum
Sequencer) содержит информацию, нужную для работы функции.
адрес
Текущий шаг (Active Step)
адрес + 1
Начальное значение (Preset Step)
адрес + 2
Управление переходом (Step Control)
адрес + 3
Управление таймером (Timer Control)
Текущий шаг (Active Step) Значение текущего шага указывает на элемент в
массиве шаблонов, выбранный для копирования в выходную ячейку памяти Out. Он
используется в качестве указателя в массивах шаблона (Pattern), длины шага (Dwell
Time), ошибки тайм-аута (Fault Timeout), и синхронизации (First Follower).
Начальное положение (Preset Step) Входное слово, которое копируется в выход
Active Step, когда вход Reset включен.
Управление переходом (Step Control)
Слово, используемое для
обнаружения перехода входов Step и Enable из 0 в 1. Слово управления переходом
(Step Control) зарезервировано для использования функциональным блоком;
пользователь не должен вносить в него изменения.
Управление таймером (Timer Control)
Два слова данных, которые содержат
значения для работы таймера. Эти значения зарезервированы для использования
функциональным блоком; пользователь не должен вносить в него изменения.
Примечания по использованию функции имитатора командоаппарата (Drum
Sequencer)
1.
Выходной бит тайм-аута задержки очищается, как только командоаппарат
переходит на новый шаг. Это выполняется:
При переходе командоаппарата на новый шаг по изменению параметра
текущего шага (Active Step) или в результате использования входа Step.
Независимо от значения массива времени задержки, связанного с шагом
(даже если оно равно 0).
При инициализации параметра текущего шага (Active Step) во время
первого цикла.
2.
Для того, чтобы имитатор командоаппарата (Drum Sequencer) мог работать или
пропускать через себя питание, должны быть инициализированы параметры
текущего шага (Active Step) и начального положения (Preset Step)
16-38
16
Функции управления
Имитатор Командоаппарата (Drum Sequencer)
управляющего блока имитатора командоаппарата (Drum Sequencer). Даже если
параметр текущего шага (Active Step) находится в допустимом диапазоне (между 1
и значением длины массива шаблона (Pattern)), а параметр начального положения
(Preset Step) не используется, командоаппарат не будет работать, если значение
параметра начального положения не находится в допустимом диапазоне.
Глава 16 Система команд
16-39
16
Функции Пересылки Данных
Функции пересылки данных системы команд обеспечивают основные операции
пересылки данных.
Пересылка данных (Move Data). Эта функция копирует данные как отдельные
биты, поэтому новое место не обязательно должно иметь тот же тип данных.
Пересылка блока (Block Move). Эта функция помещает костанты в 7 указанных
ячеек памяти.
Очистка блока (Block Clear). Эта функция заполняет область памяти нулями.
Сдвиг регистра (Shift Register). Эта функция сдвигает одно или несколько слов
данных или бит данных с их первоначального адреса в указанную область
памяти. Данные, уже находящиеся в данной области, выдвигаются из нее.
Запрос связи (COMMREQ). Эта важная функция позволяет CPU связываться с
интеллектуальными модулями системы, например, с коммуникационными
модулями. Основной формат функции запроса связи (COMMREQ) приведен в
этой главе. Параметры, необходимые для программирования специфических
коммуникационных задач, подробно рассмотрены в документации на каждый
модуль.
16-40
16
Функции Пересылки Данных
Пересылка данных (Move Data)
Функция пересылки (Move) копирует данные как отдельные биты с одного места в
другое. Так как данные копируются в битовом формате, новое место не обязательно
должно быть того же типа данных, что и первоначальное.
Когда на функцию пересылки (Move) подается питание, она копирует данные из
входного параметра IN в выходной параметр Q как биты. Если данные
пересылаются из одной области дискретной памяти в другую (например, из памяти
%I в память %T), информация о переходе, связанная с элементами дискретной
памяти, обновляется, чтобы отобразить, вызвала ли операция пересылки (Move)
изменение состояния элементов дискретной памяти. Входные данные не
изменяются, если нет наложения областей источника и назначения.
Enable
MOVE
OK
INT
??
Пересылаемое
значение
IN Q
Выход
Обратите внимание, что, если битовый массив данных, указанный в параметре Q, не
включает всех битов в байте, биты перехода, связанные с этим байтом (не входящие
в массив) очищаются, когда на функцию пересылки (Move) подается питание.
Вход IN может быть ячейкой пересылаемых данных или константой. Если указана
константа, тогда значение константы помещается в область памяти, определенную
выходным адресом. Например, если для входа IN указано значение константы 4, то
4 помещается в ячейку памяти, указанную в Q. Если длина больше 1и указана
константа, то константа помещается в ячейку памяти, указанную в Q и в ячейки
памяти следующие за ней по всей указанной длине. Наложение параметров IN и Q
не допускается.
Результат пересылки зависит от типа данных, выбранных для функции, как
показано ниже. Например, если для IN указано значение константы 9 и длина 4, то 9
помещается в ячейку памяти битов, указанную Q, и три последующие ячейки:
MOVE BOOL
MOVE WORD
Enable
move
OK
Enable
move
OK
BOOL
WORD
4
4
9
IN Q
Выход
msb
lsb
9
IN
Q
Выход
1
0
0
1
9
(Длина = 4 бита)
9
9
9
(Длина = 4 слова)
Функция пропускает питание направо всякий раз, когда она его получает.
Глава 16 Система команд
16-41
16
Функции Пересылки Данных
Пересылка данных (Move Data)
Параметры функции пересылки данных (Move Data)
Вход/
Варианты
Описание
выход
enable
питание
Пересылка выполняется, когда подано питание.
Длина
Количество бит, слов или двойных слов копируемых данных.
Это длина IN. Длина может быть от 1 до 256 для всех типов,
кроме BOOL. Если IN - константа и Q битового типа, длина
должна быть от 1 до 16. Если IN битового типа, длина
должна быть от 1 до 256 бит.
IN
I, Q, M, T, G, R, AI, AQ,
IN содержит пересылаемое значение. Для MOVE_BOOL
константы
могут использоваться любые дискретные ячейки;
выравнивание по байтам не требуется. Однако, в режиме
Только для данных типа бит
online отображаются 16 бит, начинающиеся с указанной
или слово: S
ячейки памяти.
Для данных с плавающей
точкой: R, AI, AQ
ok
питание, отсутствие питания
Выход OK включен, когда на вход enable подано питание.
Q
I, Q, M, T, G, R, AI, AQ,
При выполнении пересылки значение из IN записывается в
Для данных бит/ слово: SA, SB,
Q. Для MOVE_BOOL могут использоваться любые
SC
дискретные ячейки; выравнивание по байтам не требуется.
Для данных с плавающей
Однако, в режиме online отображаются 16 бит,
точкой: R, AI, AQ
начинающиеся с указанной ячейки памяти.
16-42
16
Функции Пересылки Данных
Пересылка блока (Block Move)
Функция пересылки блока (Block Move) копирует блок из семи констант в
указанную область памяти. Когда на функцию пересылки блока (Block Move)
подается питание, она копирует значения констант в последовательные ячейки
памяти, начиная с указанной в выходе Q. Функция пропускает питание направо
всякий раз, когда она его получает.
Enable
BLKMV
OK
INT
Константа
IN1 Q
Выход
Константа
IN2
Константа
IN3
Константа
IN4
Константа
IN5
Константа
IN6
Константа
IN7
Параметры функции пересылки блока (Block Move)
Вход/
Варианты
Описание
выход
enable
питание
Пересылка блока выполняется, когда подано питание.
от IN1 до IN7
константа
Входы IN1 - NI7 содержат значения семи констант.
ok
питание, отсутствие питания
Выход OK включен, когда на вход enable подано питание.
Q
I, Q, M, T, G, R, AI, AQ,
Выход Q содержит первый элемент пересылаемого
Для слов данных: SA, SB, SC
массива. Вход IN1 пересылается в Q.
Для данных с плавающей
точкой: R, AI, AQ
Глава 16 Система команд
16-43
16
Функции Пересылки Данных
Пересылка блока (Block Move)
Пример
В примере всякий раз, когда вход разрешения FST_SCN устанавливается в 1,
функция пересылки блока (Block Move) копирует входные константы в область
памяти %R0010-16.
FST_SCN
|
|
BLKMV
INT
CONST
IN1
Q
%R010
+32767
CONST
IN2
-32768
CONST
IN3
+00001
CONST
IN4
+00002
CONST
IN5
-00002
CONST
IN6
-00001
CONST
IN7
+00001
16-44
16
Функции Пересылки Данных
Очистка блока (Block Clear)
Функция очистки блока (Block Clear) заполняет указанный блок данных нулями.
Когда на функцию подано питание, она записывает нули в область памяти,
начинающуюся с ячейки, указанной в IN. При очистке данных дискретной памяти
(%I, %Q, %M, %G или %T), информация о переходах, связанная с ячейками, также
очищается.
Функция пропускает питание направо всякий раз, когда она его получает.
Enable
blkclr
OK
WORD
IN
Очищаемое слово
Параметры функции очистки блока (Block Clear)
Вход/
Варианты
Описание
выход
enable
питание
Массив очищается, когда подано питание.
IN
I, Q, M, T, SA, SB, SC, G,
Вход IN содержит первое слово очищаемого массива.
R, AI, AQ
Длина IN должна быть от 1 до 256 слов.
Длина
Количество очищаемых слов. Это длина IN.
ok
питание, отсутствие
Выход OK включен, когда на вход enable подано
питания
питание.
Пример
В этом примере при включении контроллера, 32 слова в памяти %Q (512 точек),
начиная с %Q0001, заполняются нулями. %Q определяется как данные типа WORD
при длине 32.
FST_SCN
|
|
blkclr
WORD
%Q0001
IN
Глава 16 Система команд
16-45
16
Функции Пересылки Данных
Регистр сдвига (Shift Register)
Функция регистра сдвига сдвигает одно или несколько слов данных или бит данных
с исходного места в указанную область памяти. Например, одно слово может быть
сдвинуто в область памяти с заданной длиной 5 слов. В результате этого сдвига,
другое слова данных будет выдвинуто за пределы участка памяти.
Вход сброса (R) имеет приоритет перед входом разрешения (enable) функции.
Когда вход сброса (R) включен, все ячейки регистра сдвига, начиная с ячейки,
указанной входом ST, и по всей длине, указанной LEN, заполняются нулями.
Если на функцию подано питание и вход R выключен, каждый бит или слово
регистра сдвига пересылаются в соседнюю старшую ячейку. Последний элемент
регистра сдвига сдвигается в Q. Самая старшая ячейка IN сдвигается в
освободившееся место, начинающееся с ST. Содержимое регистра сдвига доступно
во время выполнения программы, т. к. оно находится в ячейках адресуемой памяти.
Enable
SHFR
OK
WORD
??
Reset
R
Q
Выход
Сдвигаемое
IN
значение
(первый бит слова) ST
Параметры функции регистра сдвига
Вход/
Варианты
Описание
выход
enable
питание
Сдвиг выполняется, когда на вход разрешения (enable) питание
подано, а на вход R нет.
Длина
от 1 до 256 бит или
Длина регистра сдвига в битах или словах. Длина определяется
слов.
как длина IN.
R
питание
Когда на вход R подано питание, регистр сдвига начинающийся
с ST заполняется нулями.
IN
I, Q, M, T, S, G, R, AI,
IN содержит значение, сдвигаемое в первый бит или первое
AQ, константы
слово регистра сдвига. Для SHFR_BIT могут использоваться
любые дискретные ячейки; выравнивание по байтам не
требуется.
ST
I, Q, M, T, SA, SB, SC,
ST содержит первый бит или первое слово регистра сдвига.
G, R, AI, AQ
Для SHFR_BIT могут использоваться любые дискретные ячейки;
выравнивание по байтам не требуется.
ok
питание, отсутствие
Выход OK включается, когда вход разрешения включен, а вход
питания
R выключен.
Q
I, Q, M, T, SA, SB, SC,
Выход Q содержит бит или слово, выдвигаемые из регистра
G, R, AI, AQ
сдвига. Для SHFR_BIT могут использоваться любые
дискретные ячейки; выравнивание по байтам не требуется.
16-46
16
Функции Пересылки Данных
Регистр сдвига (Shift Register)
ПРЕДОСТЕРЕЖЕНИЕ: не рекомендуется допускать перекрытие диапазонов
адресов входных и выходных ячеек в функциях, обрабатывающих несколько слов;
это может привести к непредсказуемым последствиям.
Глава 16 Система команд
16-47
16
Функции Пересылки Данных
Регистр сдвига (Shift Register)
Пример 1:
В примере регистр сдвига работает с памятью %R0001 - %R0100. (Регистр %R0001
определен как данные типа Word при длине 100). Когда ячейка сброса CLEAR
включена, слова регистра сдвига заполняются нулями.
Когда включена ячейка NXT_CYC, а ячейка CLEAR выключена, слово %Q0033 из
таблицы состояния выходов сдвигается в ячейку %R0001 регистра сдвига. Слово,
сдвигаемое из ячейки %R0100 регистра сдвига, сохраняется в выходе %M0005.
NXT_CYC
SHFR
|
|
WORD
100
CLEAR
|
|
R Q
%M0005
%Q0033
IN
%R0001
ST
Пример 2:
В этом примере регистр сдвига работает с памятью %M0001 - %M0100. (Ячейка
%M0001 определена как данные типа Boolean при длине 100). Когда ячейка сброса
CLEAR включена, функция регистра сдвига заполняет нулями ячейки с %M0001 по
%M0100.
Когда включена ячейка NXT_CYC, а ячейка CLEAR выключена, функция регистра
сдвига сдвигает данные ячеек %M0001 - %M0100 вниз на один бит. Бит %Q0033
сдвигается в ячейку %M0001, а бит, сдвигаемый из ячейки %M0100, записывается в
ячейку %M0200.
NXT_CYC
SHFR BIT
|
|
100
CLEAR
|
|
R Q
%M0200
%Q0033
IN
%M0001
ST
16-48
16
Функции Пересылки Данных
Запрос связи (COMMREQ)
Функция запроса связи (COMMREQ) используется для специальных коммуникаций.
Существует несколько типов запросов связи (COMMREQ). Информация,
приведенная ниже, описывает только основной формат функции.
Когда функция получает питание, командный блок данных пересылается в
указанный модуль. После посылки запроса связи (COMMREQ) программа может
приостановить выполнение и ожидать ответа в течение максимального периода
ожидания, указанного командой, или немедленно продолжить выполнение.
Enable
COMM
REQ
Первое слово командного
блока
IN
FT
Размещение
SYSID
Указатель задачи
TASK
Параметры функции COMMREQ
Вход/
Варианты
Описание
выход
enable
питание
Запрос связи выполняется, когда функция включена.
IN
R, AI, AQ
IN содержит первое слово командного блока.
SYSID
I, Q, M, T, G, R, AI,
SYSID содержит номер крейта (старший байт) и номер слота
AQ, константы
(младший байт) устройства.
TASK
R AI, AQ,
TASK содержит идентификационный номер задачи процесса
константа
приемного устройства.
FT
питание,
Выход FT включается, если при выполнении COMMREQ
отсутствие
обнаружены ошибки:
питания
1.
Отсутствует указанный целевой адрес (SYSID).
2.
Указанная задача не применима для устройства (TASK).
3.
Длина данных равна 0.
4.
Адрес указателя состояния устройства (в командном
блоке) не существует.
Глава 16 Система команд
16-49
16
Функции Пересылки Данных
Запрос связи (COMMREQ)
Командный блок для функции COMMREQ
Командный блок начинается с адреса, указанного в параметре IN функции
COMMREQ. Размер командного блока зависит от количества данных, передаваемых
устройству.
Командный блок содержит данные обмена с другим устройством и информацию,
касающуюся выполнения функции запроса связи COMMREQ. Командный блок
имеет следующую структуру:
адрес
Длина (в словах)
адрес + 1
Флаг Wait/No Wait (ждать/не ждать)
адрес + 2
Область памяти статуса
адрес + 3
Смещение области статуса
адрес + 4
Значение тайм-аута простоя
адрес + 5
Максимальное время связи
адрес + 6 -
Блок данных
адрес + 133
Пример
В примере всякий раз, когда вход разрешения %M0020 включен, командный блок,
начинающийся с адреса %R0016, выполняет задачу связи с устройством,
расположенным в крейте 1, слоте 2 ПЛК. При возникновении ошибки в процессе
выполнения запроса связи (COMMREQ) катушка %Q0100 устанавливается в 1.
%M0020
|
|
COMM
REQ
%Q0100
%R0016
IN
FT
(
)
CONST
SYSID
0102
CONST
TASK
00001
16-50
16
Функции Преобразования Типов Данных
Функции преобразования типов данных используются для изменения типа элемента
данных. Многие команды программы, такие как математические функции, должны
использоваться с данными одного типа.
Преобразовать данные в формат BCD-4
Преобразовать данные в формат целого числа со знаком (INT)
Преобразовать данные в формат целого числа двойной точности (DINT)
Преобразовать данные в формат вещественного числа (REAL)
Преобразовать данные в формат слова (WORD)
Округление вещественного числа (TRUN)
Глава 16 Система команд
16-51
16
Функции Преобразования Типов Данных
Преобразовать целые данные со знаком в формат BCD-4
Функция преобразования в формат BCD-4 выводит 4-значный двоично-десятичный
(BCD) эквивалент целого числа со знаком. Исходные данные этой функцией не
изменяются. Выходные данные могут непосредственно использоваться как входные
в других функциях программы.
Данные могут преобразовываться в формат BCD для управления двоично-
десятичными светодиодными дисплеями или для предустановки внешних
устройств, таких, как высокоскоростные счетчики.
Когда функция получает питание, она выполняет преобразование, выводя результат
на выход Q. Функция пропускает питание всякий раз, когда она его получает, если
значение результата указанного преобразования не выходит из диапазона 0 - 9999.
Enable
INT TO
OK
BCD4
Преобразуемое
значение
IN Q
Выход
Параметры функции преобразования в формат BCD-4
Вход/
Варианты
Описание
выход
enable
питание
Преобразование выполняется, когда подано
питание.
IN
I, Q, M, T, G, R, AI, AQ,
IN содержит ячейку с целым числом,
константы
преобразуемым в BCD-4.
OK
питание, отсутствие
Выход OK включается, когда функция
питания
выполняется без ошибок.
Q
I, Q, M, T, G, R, AI, AQ
Выход Q содержит BCD-4 форму исходного
значения IN.
16-52
16
Функции Преобразования Типов Данных
Преобразовать целые данные со знаком в формат BCD-4
Пример
В примере всякий раз, когда вход %I0002 устанавливается в 1 и отсутствуют
ошибки, целое число, находящееся в ячейках с %I0017 по %I0032, преобразуется в
четыре двоично-десятичные (BCD) цифры, и результат сохраняется в ячейках с
%Q0033 по %Q0048. Катушка %Q1432 используется для контроля успешности
преобразования.
%I0002
%Q1432
INT TO
BCD4
%I0017
IN Q
%Q0033
Глава 16 Система команд
16-53

 

 

 

 

 

 

 

содержание      ..     9      10      11      12     ..