Руководство по программированию 6 profinet 7 Двухточечная связь (PointtoPoint, PtP) 8
Скачать 3.76 Mb.
|
6.1.9 Логические операции Команды AND (И), OR (ИЛИ) и XOR (исключающее ИЛИ) AND: Логическое И для типов данных BYTE, WORD и DWORD OR: Логическое ИЛИ для типов данных BYTE, WORD и DWORD XOR: Логическое исключающее ИЛИ для типов данных BYTE, WORD и DWORD Щелкните под именем блока и выберите тип данных из ниспадающего меню. Параметр Тип данных Описание IN1, IN2 Byte, Word, DWord Логические входы OUT Byte, Word, DWord Логический выход Выбором типа данных параметры IN1, IN2 и OUT устанавливаются на один и тот же тип данных. Соответствующие битовые значения IN1 и IN2 логически сопрягаются, формируя логический двоичный результат в параметре OUT. После выполнения этих команд ENO всегда принимает значение ИСТИНА. Команда инвертирования Команда INV используется для получения двоичного дополнения до единицы параметра IN. Дополнение до единицы образуется инвертированием значения каждого бита параметра IN (замена каждого 0 на 1 и каждой 1 на 0). После выполнения этой команды ENO всегда принимает значение ИСТИНА. Щелкните под именем блока и выберите тип данных из ниспадающего меню. Параметр Тип данных Описание IN SInt, Int, DInt, USInt, UInt, UDInt, Byte, Word, DWord Элемент данных, подлежащий инвертированию OUT SInt, Int, DInt, USInt, UInt, UDInt, Byte, Word, DWord Инвертированный выход Руководство по программированию 6.1 Основные команды Программируемый контроллер S7-1200 Системное руководство, 11/2009, A5E02669003-02 147 Команды кодирования и декодирования Команда ENCO преобразует (кодирует) битовый образ в двоичное число. Команда DECO преобразует (декодирует) двоичное число в битовый образ. Щелкните под именем блока и выберите тип данных из ниспадающего меню. Параметр Тип данных Описание IN ENCO: Byte, Word, DWord DECO: UInt ENCO: Бит образ для кодирования DECO: Значение для декодирования OUT ENCO: Int DECO: Byte, Word, DWord ENCO: Закодированное значение DECO: Декодированный битовый образ Команда ENCO преобразует параметр IN в двоичное число, соответствующее положению самого младшего установленного бита параметра IN, и возвращает результат в параметр OUT. Если параметр IN равен 0000 0001 или 0000 0000, то в OUT возвращается значение 0. Если значение параметра IN равно 0000 0000, то ENO устанавливается в ЛОЖЬ. Команда DECO декодирует двоичное число из параметра IN, устанавливая соответствующую битовую позицию в параметре OUT в 1 (все остальные биты устанавливаются в 0). После выполнения команды DECO ENO всегда принимает значение ИСТИНА. Выбором типа данных Byte, Word или DWord для параметра OUT команды DECO ограничивается полезный диапазон параметра IN. Если значение параметра IN выходит за пределы полезного диапазона, то выполняется операция modulo для извлечения младших значащих битов, как показано ниже. Битовый диапазон для параметра IN команды DECO: ● 3 бита (значения 0-7) IN используются для установки 1 битовой позиции в байте OUT ● 4 бита (значения 0-15) IN используются для установки 1 битовой позиции в слове OUT ● 5 битов (значения 0-31) IN используются для установки 1 битовой позиции в двойном слове OUT Значение IN для DECO Значение OUT для DECO (декодирование позиции отдельного бита) Byte OUT (8 битов): мин. IN 0 00000001 макс. IN 7 10000000 Word OUT (16 битов): мин. IN 0 0000000000000001 макс. IN 15 1000000000000000 DWord OUT: (32 бита): мин. IN 0 00000000000000000000000000000001 макс. IN 31 10000000000000000000000000000000 Состояние ENO Условие Результат (OUT) 1 Нет ошибки Допустимый номер бита 0 IN равно нулю OUT устанавливается в ноль Руководство по программированию 6.1 Основные команды Программируемый контроллер S7-1200 148 Системное руководство, 11/2009, A5E02669003-02 Команды выбора (SEL) и мультиплексирования (MUX) • Команда SEL присваивает одно из двух входных значений параметру OUT, в зависимости от значения параметра G. • Команда MUX присваивает одно из нескольких входных значений параметру OUT, в зависимости от значения параметра K. Если значение параметра K выходит за пределы допустимого диапазона, то параметру OUT присваивается значение параметра ELSE. Щелкните под именем блока и выберите тип данных из ниспадающего меню. SEL Тип данных Описание G Bool Селекторный переключатель: • ЛОЖЬ для IN0 • ИСТИНА для IN1 IN0, IN1 SInt, Int, DInt, USInt, UInt, UDInt, Real, Byte, Word, DWord, Time, Char Входы OUT SInt, Int, DInt, USInt, UInt, UDInt, Real, Byte, Word, DWord, Time, Char Выход MUX Тип данных Описание K UInt Значение переключателя: • 0 для IN0 • 1 для IN1 • ... IN0, IN1,.... SInt, Int, DInt, USInt, UInt, UDInt, Real, Byte, Word, DWord, Time, Char Входы ELSE SInt, Int, DInt, USInt, UInt, UDInt, Real, Byte, Word, DWord, Time, Char Заменяющее входное значение (факультативно) OUT SInt, Int, DInt, USInt, UInt, UDInt, Real, Byte, Word, DWord, Time, Char Выход Руководство по программированию 6.1 Основные команды Программируемый контроллер S7-1200 Системное руководство, 11/2009, A5E02669003-02 149 Входные переменные и выходная переменная должны быть одного и того же типа данных. ● Команда SEL всегда осуществляет выбор между двумя значениями IN. ● Команда MUX после ее вставки в программном редакторе всегда имеет два параметра IN, но она может быть расширена добавлением еще нескольких параметров IN. Для добавления и удаления входных параметров команды MUX действуйте следующим образом: ● Для добавления входа щелкните правой клавишей мыши у одного из имеющихся параметров IN и выберите команду "Insert input [Вставить вход]". ● Для удаления входа щелкните правой клавишей мыши у одного из имеющихся параметров IN (если имеется более чем два первоначальных входа) и выберите команду "Delete [Удалить]". Коды условий: ENO всегда принимает значение ИСТИНА после выполнения команды SEL. Состояние ENO (MUX) Условие MUX Результат выполнения MUX в OUT 1 Нет ошибки Выбранное значение IN присваивается параметру OUT 0 K больше или равно числу параметров IN Параметр ELSE не задан: OUT не меняется ELSE задан: значение ELSE присваивается параметру OUT Руководство по программированию 6.1 Основные команды Программируемый контроллер S7-1200 150 Системное руководство, 11/2009, A5E02669003-02 6.1.10 Операции сдвига и циклического сдвига Команда сдвига Команды сдвига используются для смещения битового образа параметра IN. Результат присваивается параметру OUT. Параметр N определяет битовых позиций, на которые осуществляется сдвиг: • SHR: Сдвинуть битовый образ вправо • SHL: Сдвинуть битовый образ влево Щелкните под именем блока и выберите тип данных из ниспадающего списка. Параметр Тип данных Описание IN Byte, Word, DWord Битовый образ, подлежащий сдвигу N UInt Число битовых позиций, на которые осуществляется сдвиг OUT Byte, Word, DWord Битовый образ после операции сдвига ● При N=0 сдвиг не производится, и значение IN присваивается параметру OUT. ● Битовые позиции, которые освобождаются операцией сдвига, заполняются нулями. ● Если число позиций, на которые осуществляется сдвиг, (N) превышает число битов в целевом значении (8 для байта, 16 для слова, 32 для двойного слова), то все первоначальные значения битов бит выдвигаются и заменяются нулями (выходу OUT присваивается нулевое значение). ● Для операций сдвига ENO всегда принимает значение ИСТИНА. Пример SHL для размера данных Word: Вставка нулей на освободившиеся позиции IN 1110 0010 1010 1101 Значение OUT перед первым сдвигом: 1110 0010 1010 1101 После первого сдвига: 1100 0101 0101 1010 После второго сдвига: 1000 1010 1011 0100 После третьего сдвига: 0001 0101 0110 1000 Руководство по программированию 6.1 Основные команды Программируемый контроллер S7-1200 Системное руководство, 11/2009, A5E02669003-02 151 Команда циклического сдвига С помощью команд циклического сдвига вы можете циклически сдвигать битовый образ параметра IN. Результат присваивается параметру OUT. Параметр N определяет число битовых позиций, на которое осуществляется циклический сдвиг. • ROR: Циклический сдвиг битового образа вправо • ROL: Циклический сдвиг битового образа влево Щелкните под именем блока и выберите тип данных из ниспадающего меню. Параметр Тип данных Описание IN Byte, Word, DWord Битовый образ, подлежащий циклическому сдвигу N UInt Число битовых позиций, на которое должен быть произведен циклический сдвиг OUT Byte, Word, DWord Битовый образ после операции циклического сдвига ● При N=0 циклический сдвиг не производится, и значение IN присваивается параметру OUT. ● Битовые данные, выдвигаемые с одной стороны целевого значения, вдвигаются с другой стороны целевого значения, так что ни одно из первоначальных битовых значений не теряется. ● Если число битовых позиций, на которое осуществляется циклический сдвиг, (N) превышает число битов в целевом значении (8 для байта, 16 для слова, 32 для двойного слова), то циклический сдвиг все равно выполняется. ● ENO всегда принимает значение ИСТИНА после выполнения команд циклического сдвига. Пример ROR для данных размера WORD размер: Биты, выдвигаемые с правой стороны, вдвигаются с левой стороны IN 0100 0000 0000 0001 Значение OUT перед первым циклическим сдвигом: 0100 0000 0000 0001 После первого циклического сдвига вправо: 1010 0000 0000 0000 После второго циклического сдвига вправо: 0101 0000 0000 0000 Руководство по программированию 6.2 Расширенные команды Программируемый контроллер S7-1200 152 Системное руководство, 11/2009, A5E02669003-02 6.2 Расширенные команды 6.2.1 Общие параметры ошибок для расширенных команд Описания расширенных команд содержат сведения об ошибках этапа исполнения, которые могут произойти для каждой команды. Кроме этих ошибок, возможны также общие ошибки, приведенные ниже. Если при исполнении кодового блока происходит одна из общих ошибок, то CPU переходит в состояние STOP, если вы не используете внутри этого кодового блока команду GetError или GetErrorID для формирования запрограммированной реакции на эту ошибку. Значение кода ошибки (W#16#....) Описание 8022 Область для ввода слишком мала 8023 Область для вывода слишком мала 8024 Недопустимая область ввода 8025 Недопустимая область вывода 8028 Недопустимое назначение входного бита 8029 Недопустимое назначение выходного бита 8030 Областью вывода является DB, защищенный от записи 803A DB не существует Руководство по программированию 6.2 Расширенные команды Программируемый контроллер S7-1200 Системное руководство, 11/2009, A5E02669003-02 153 6.2.2 Команды для часов и календаря Команды для часов и календаря Команды для часов и календаря используются для расчетов, связанных с календарем и временем. ● T_CONV преобразует тип данных значения времени: (Time to DInt [Время в двойное целое]) или (DInt to Time [Двойное целое во время]) ● T_ADD складывает значения Time и DTL: (Time + Time = Time) или (DTL + Time = DTL) ● T_SUB вычитает значения Time и DTL: (Time - Time = Time) или (DTL - Time = DTL) ● T_DIFF выдает разность между двумя значениями DTL как значение Time: DTL - DTL = Time Тип данных Размер (в битах) Допустимые диапазоны Time [Время] 32 Хранится как от T#-24d_20h_31m_23s_648ms до T#24d_20h_31m_23s_647ms от -2 147 483 648 мс до +2 147 483 647 мс Структура данных DTL Год: UInt 16 от 1970 до 2554 Месяц: USInt 8 от 1 до 12 День: USInt 8 от 1 до 31 День недели: USInt 8 от 1=воскресенье до 7=суббота Час: USInt 8 от 0 до 23 Минута: USInt 8 от 0 до 59 Секунда: USInt 8 от 0 до 59 Наносекунды: UDInt 32 от 0 до 999,999,999 T_CONV (преобразование времени) преобразует тип данных Time в тип данных DInt, или осуществляет обратное преобразование из типа данных DInt в тип данных Time. Параметр Тип параметра Тип данных Описание IN IN DInt, Time Входное значение типа Time или Dint OUT OUT DInt, Time Преобразованное значение типа DInt или Time Выберите типы данных IN и OUT из ниспадающих списков под именем команды. T_ADD (сложение времен) складывает входное значение IN1 (типа данных DTL или Time) с входным значением IN2 (тип Time). Параметр OUT выдает результат в виде значения типа DTL или Time. Руководство по программированию 6.2 Расширенные команды Программируемый контроллер S7-1200 154 Системное руководство, 11/2009, A5E02669003-02 Возможны операции с двумя типами данных: ● Time + Time = Time ● DTL + Time = DTL Параметр Тип параметра Тип данных Описание IN1 IN DTL, Time Значение типа DTL или Time IN2 IN Time Значение типа Time, которое нужно прибавить OUT OUT DTL, Time Сумма типа DTL или Time Выберите тип данных IN1 из ниспадающего списка под списком команды. Выбор типа данных IN1 устанавливает также тип данных параметра OUT. T_SUB (вычитание времени) вычитает значение типа Time в IN2 из IN1 (значение типа DTL или Time). Параметр OUT выдает значение разности, используя тип данных DTL или Time. Возможны операции с двумя типами данных: ● Time - Time = Time ● DTL - Time = DTL Параметр Тип параметра Тип данных Описание IN1 IN DTL, Time Значение типа DTL или Time IN2 IN Time Значение типа Time, которое нужно вычесть OUT OUT DTL, Time Разность типа DTL или Time Выберите тип данных IN1 из ниспадающего списка под именем команды. Выбор типа данных IN1 устанавливает также тип данных параметра OUT. T_DIFF (разность времен) вычитает значение типа DTL в IN2 из значения типа DTL в IN1. Параметр OUT выдает значение разности, используя тип данных Time. • DTL - DTL = Time Параметр Тип параметра Тип данных Описание IN1 IN DTL Значение типа DTL IN2 IN DTL Значение типа DTL, которое нужно вычесть OUT OUT Time Разность типа Time Коды условий: ENO = 1 означает, что ошибки не произошло. ENO = 0 и параметр OUT = 0 – ошибки: ● Недопустимое значение DTL ● Недопустимое значение Time Руководство по программированию 6.2 Расширенные команды Программируемый контроллер S7-1200 Системное руководство, 11/2009, A5E02669003-02 155 Команды для работы с часами Команды для работы с часами позволяют устанавливать и считывать системные часы ПЛК. Для вывода значений даты и времени используется тип данных DTL. Структура DTL Размер Допустимые диапазоны Год: UInt 16 битов от 1970 до 2554 Месяц: USInt 8 битов от 1 до 12 День: USInt 8 битов от 1 до 31 День недели: USInt 8 битов от 1=Sunday до 7=Saturday Час: USInt 8 битов от 0 до 23 Минута: USInt 8 битов от 0 до 59 Секунда: USInt 8 битов от 0 до 59 Наносекунды: UDInt 32 бита от 0 до 999,999,999 WR_SYS_T (запись системного времени) устанавливает часы истинного времени ПЛК с помощью значения типа данных DTL в параметре IN. Это значение времени не учитывает ни местного часового пояса, ни переходов на зимнее время и обратно. Параметр Тип параметра Тип данных Описание IN IN DTL Истинное время, подлежащее установке в системных часах ПЛК RET_VAL OUT Int Код условия выполнения RD_SYS_T (считывание системного времени) считывает текущее системное время из ПЛК. Это значение времени не учитывает ни местного часового пояса, ни переходов на зимнее время и обратно. Параметр Тип параметра Тип данных Описание RET_VAL OUT Int Код условия выполнения OUT OUT DTL Текущее системное время ПЛК RD_LOC_T (считывание местного времени) предоставляет текущее местное время ПЛК как тип данных DTL. Параметр Тип параметра Тип данных Описание RET_VAL OUT Int Код условия выполнения OUT OUT DTL Местное время Руководство по программированию 6.2 Расширенные команды Программируемый контроллер S7-1200 156 Системное руководство, 11/2009, A5E02669003-02 ● Для расчета местного времени используются часовой пояс и времена переключения на зимнее время и обратно, которые вы ввели в конфигурации устройств для часов CPU. ● Часовой пояс представляет собой смещение по отношению к скоординированному универсальному времени (Universal Time Coordinated, UTC). ● Для переключения на летнее время необходимо ввести месяц, неделю, день и час, когда осуществляется перевод. ● Для переключения на зимнее время также необходимо ввести месяц, неделю, день и час, когда осуществляется перевод. ● Разность часовых поясов относительно системного времени действует всегда. Переключение на летнее время действует только тогда, когда этот переход имеет место. |