06_InstructionSet_r (1087186), страница 24
Текст из файла (страница 24)
Системное руководствоКоманда управления диагностическим светодиодомЕсли входной параметр IN имеет значение ноль, тодиагностический светодиод выключается. Если входнойпараметр IN имеет значение больше нуля, тодиагностический светодиод включается (желтый).Светодиод CPU, обозначенный SF/ DIAG, может бытьсконфигурирован таким образом, что он загораетсяжелтым светом, когда выполняются условия, указанныев системном блоке данных или когда выполняетсякоманда DIAG_LED с параметром IN, отличным от нуля.Триггерные кнопки для системного блока данных(конфигурирование светодиода):светодиод SF/ DIAG включен (желтый), еслинекоторый элемент в CPU управляетсяпринудительносветодиод SF/ DIAG LED включен (желтый), если вмодуле имеет место ошибка ввода-вводаДеактивизируйте обе опции для такогоконфигурирования светодиода, чтобы желтым светомсветодиода управляла только команда DIAG_LED.Системная ошибка CPU (SF) отображается краснымсветом.Таблица 6–60.
Допустимые операнды для команды управления диагностическим светодиодомВходы/выходыТипыданныхОперандыINBYTEVB, IB, QB, MB, SB, SMB, LB, AC, константа, *VD, *LD, *ACПример 1 для команды управления диагностическим светодиодомДиагностический светодиод мигает при обнаружении ошибки.Диагностический светодиод мигает каждый раз, когда распознается одна из 5 сбойных ситуаций.Network 1LDSM1.3OSM 2.0OSM4.1OSM4.2OSM5.0ASM0.5=V100.0Network 2LDSM0.0DLEDVB100Пример 1 для команды управления диагностическим светодиодомДиагностический светодиод включается, когда появляется ошибка.Диагностический светодиод включается, когда в VB100 появляется код ошибкиNetwork 1LDSM0.0DLEDVB100180Набор команд S7–200Глава 6Команды сдвига и циклического сдвига Marker 35Команды сдвига вправо и сдвига влевоКоманды сдвига сдвигают входную величину IN вправоили влево на число разрядов, указанное в N, изагружают результат в выход OUT.Команды сдвига заполняют позиции выдвигаемых битовнулями.
Если величина сдвига (N) больше или равнамаксимально допустимому значению (8 для операций сбайтами, 16 для операций со словами и 32 дляопераций с двойными словами), то сдвиг производитсяна максимально возможную величину для даннойоперации. Если величина сдвига больше 0, то битпереполнения (SM1.1) принимает значение последнеговыдвинутого бита. Бит нулевого значения (SM1.0)устанавливается, если результат операции сдвигаравен нулю.Байтовые операции являются беззнаковыми. Дляопераций со словами и двойными словами знаковый битсдвигается, если вы используете типы данных сознаком.Сбойные состояния,устанавливающие ENO = 0■ 0006 (косвенный адрес)Биты специальнойпамяти, на которыедействует команда:■ SM1.0 (ноль)■ SM1.1 (переполнение)Команды циклического сдвига вправо ициклического сдвига влевоКоманды циклического сдвига циклически сдвигаютвходную величину (IN) вправо или влево на числоразрядов, указанное в (N), и загружают результат поадресу (OUT).
Циклический сдвиг является кольцевым.Если величина сдвига больше или равна максимальнодопустимому значению (8 для операций с байтами, 16для операций со словами и 32 для операций сдвойными словами), то S7–200 выполняет операцию помодулю с величиной сдвига (получение остатка отделения заданного сдвига на максимально допустимый),чтобы получить действительную величину циклическогосдвига. Результатом является величина сдвига от 0 до 7для операций с байтами, от 0 до 15 для операций сословами и от 0 до 31 для операций с двойнымисловами.Если величина сдвига равна нулю, то циклический сдвиг не производится. Еслициклический сдвиг выполняется, то значение последнего циклически сдвинутого битакопируется в бит переполнения (SM1.1).Если величина сдвига не является целым кратным 8 (для операций с байтами), 16 (дляопераций со словами) или 32 (для операций с двойными словами), то последнийциклически выдвинутый бит копируется в бит переполнения (SM1.1).
Бит нулевогозначения (SM1.0) устанавливается, если подлежащая циклическому сдвигу величинаравна нулю.Операции с байтами являются беззнаковыми. Для операций со словами и двойнымисловами знаковый бит сдвигается, если вы используете типы данных со знаком.Сбойные состояния,устанавливающие ENO = 0■ 0006 (косвенный адрес)Биты специальной памяти, на которые действует команда:■ SM1.0 (ноль)■ SM1.1 (переполнение)181Программируемый контроллер S7-200.
Системное руководствоТаблица 6–61. Допустимые операнды для команд сдвига и циклического сдвигаВходы/выходыТипыданныхОперандыINBYTEWORDDWORDIB, QB, VB, MB, SMB, SB, LB, AC, *VD, *LD, *AC, константаIW, QW, VW, MW, SMW, SW, T, C, LW, AC, AIW, *VD, *LD, *AC,константаID, QD, VD, MD, SMD, SD, LD, AC, HC, *VD, *LD, *AC, константаOUTBYTEWORDDWORDIB, QB, VB, MB, SMB, SB, LB, AC, *VD, *LD, *ACIW, QW, VW, MW, SMW, SW, T, C, LW, AC, *VD, *LD, *ACID, QD, VD, MD, SMD, SD, LD, AC, *VD, *LD, *ACNBYTEIB, QB, VB, MB, SMB, SB, LB, AC, *VD, *LD, *AC, константаПример: Команды сдвига и циклического сдвигаNetwork 1LDI4.0RRWAC0, 2SLWVW200, 3ЦиклическийПеред циклическим сдвигом ПереполнениесдвигAC00100 0000 0000 0001После 1-го сдвигаAC01010 0000 0000 0000После 2-го сдвигаAC00101 0000 0000 0000xСдвигVW200Переполнение11110 0010 1010 1101VW200VW200Бит нулевого результата (SM1.0) = 0Бит переполнения (SM1.1) = 0После 2-го сдвигаПереполнение1000 1010 1011 01000001 0101 0110 1000Бит нулевого результата (SM1.0) = 0Бит переполнения (SM1.1) = 1182x1100 0101 0101 1010После 3-го сдвигаVW200ПереполнениеПереполнение1После 1-го сдвигаПереполнение0Перед сдвигом1Переполнение1Набор команд S7–200Глава 6Команда перемещения значения бита в регистр сдвига Marker 36Команда перемещения значения бита в регистр сдвигаперемещает значение в регистр сдвига.
Эта командапредоставляет в распоряжение простой методупорядочения и управления потоком изделий илиданных. С помощью этой команды вы можете сдвигатьвесь регистр на один бит каждый цикл.Команда перемещения значения бита в регистр сдвигавдвигает значение DATA в регистр сдвига. S_BITуказывает на младший бит регистра сдвига. N задаетдлину регистра сдвига и направление сдвига(положительный сдвиг = N, отрицательный сдвиг = -N).Каждый бит, выдвинутый из регистра командой SHRB,помещается в бит переполнения (SM1.1).Эта команда определяется младшим битом регистрасдвига (S_BIT) и количеством битов, задаваемыхдлиной (N).Сбойные состояния, устанавливающие ENO = 0■ 0006 (косвенный адрес)■ 0091 (операнд вышел за пределы допустимого диапазона)■ 0092 (ошибка в поле счета)Биты специальной памяти, на которые действует команда:■ SM1.1 (переполнение)Таблица 6–62. Допустимые операнды для команды перемещения значения бита в регистр сдвигаВходы/выходыТипы данныхОперандыDATA, S_BitBOOLI, Q, V, M, SM, S, T, C, LNBYTEIB, QB, VB, MB, SMB, SB, LB, AC, *VD, *LD, *AC, константа183Программируемый контроллер S7-200.
Системное руководствоАдрес старшего бита регистра сдвига (MSB.b) можно рассчитать с помощью следующегоуравнения:MSB.b = [(байт параметра S_BIT) + ([N] - 1 + (бит параметра S_BIT)) / 8] . [остаток отделения на 8]Например: если S_BIT – это V33.4, и N = 14, тоследующий расчет показывает, что MSB.b – этоV35.1.MSB.bОтрицательный сдвиг,длина = -14MSB= V33 + ([14] - 1 +4)/8= V33 + 17/8= V33 + 2 с остатком 1= V35.1При отрицательном сдвиге, который задаетсяотрицательным значением длины (N), входныеданные (DATA) вдвигаются на место старшегобита регистра сдвига и выдвигают из регистрамладший бит (S_BIT). Данные, выдвинутые изрегистра, помещаются в бит переполнения(SM1.1).V337V347V357S_BITLSB40010Старший бит регистра сдвигаПоложительный сдвиг,MSBдлина = 14V337V347S_BITLSB400При положительном сдвиге, который задаетсяV3571 0положительным значением длины (N), входныеданные (DATA) вдвигаются на место младшегобита регистра сдвига, указываемого параметромСтарший бит регистра сдвигаS_BIT, и выдвигают из регистра сдвига старшийРис.
6–36. Ввод и удаление данных избит. Данные, выдвинутые из регистра,регистра сдвигапомещаются в бит переполнения (SM1.1).Максимальная длина регистра сдвига(положительная или отрицательная) равна 64битам. На рис. 6–36 показан сдвиг битов приотрицательном и положительном значении N.Пример: Команда перемещения значения бита в регистр сдвигаNetwork 1LDI0.2EUSHRBI0.3, V100.0, +47 (MSB)Временная диаграммаПеред 1-м сдвигом V100I0.2Переполнение (SM1.1)0 (LSB)S_BIT01I0.311I0.310I0.3xS_BITНарастающийфронт (P)После 1-го сдвигаI0.3V100Переполнение (SM1.1)1-й сдвиг2-й сдвигПосле 2-го сдвигаV100Переполнение (SM1.1)1840 11 00S_BIT0 11Набор команд S7–200Глава 6Команда перестановки байтов в словеКоманда перестановки байтов меняет местами старшийи младший байты слова IN.Сбойные состояния, устанавливающие ENO = 0■ 0006 (косвенный адрес)Таблица 6–63.