opn pib что это
Элементы и блоки
Команды FUP состоят из элементов и блоков, графически объединяемых в сегменты. Элементы и блоки можно разделить на следующие группы:
Команды как элементы
STEP 7 представляет часть команд FUP в виде отдельных элементов, которые не нуждаются ни в адресах, ни в параметрах
Блок | Описание | Раздел в этом руководстве | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Блок | Описание | Раздел в этом руководстве | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Блок | Описание | Раздел в этом руководстве | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Блок | Описание | Раздел в этом руководстве | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Таблица 5-1 Области памяти и их функции | |||
---|---|---|---|
Название области | Функция области памяти | Доступ к области через | |
единицы следующих размеров: | Сокращние | ||
Отображение процесса на входах | В начале цикла операционная система читает входы с процесса и записывает значения в этой области. Программа использует эти значения при циклической обработке. | Входной бит Входной байт Входное слово Двойное входное слово | I IB IW ID |
Отображение процесса на выходах | Во время цикла программа рассчитывает выходные значения и сохраняет их в этой области. В конце цикла операционная система считывает рассчитанные выходные значения из этой области и пересылает их на выходы к процессу. | Выходной бит Выходной байт Выходное слово Двойное выходное слово | Q QB QW QD |
Маркеры | Эта область предоставляет место в памяти для промежуточных результатов, рассчитанных программой. ( Не знаю почему ребята из сименса называют их меркеры, но я предпочитаю называть маркеры) | Маркерный бит Маркерный байт Маркерное слово Двойное маркерное слово | M MB MW MD |
Периферий-ная область: внеш. входы Периферий-ная | Эта область дает Вашей программе возможность прямого доступа к модулям ввода и вывода (периферийные входы и выходы). | Периферийный входной байт Периферийное входное слово Периферийное двойное входное слово Периферийный выходной | PIB DIX |
Локальные данные | Эта область содержит временные данные логического блока(FB или FC). Этот тип данных называется также динамическими локальными данными. Эта область используется как буфер. Когда логический блок закрывается, эти данные теряются. Эти данные расположены в стеке локальных данных (L-stack). | Врем. локальный бит Врем. локальный байт Врем. локальное слово Врем. локальное двойное слово | L LB LW LD |
В таблице 5–2 перечислены максимальные диапазоны адресов для различных областей памяти.
Области памяти и их диапазоны адресов | |||
---|---|---|---|
Название области | Доступ к области через | Максимальный диапазон адресов | |
единицы следующих размеров: | Сокр. | ||
Отображение процесса на входах | Входной бит Входной байт Входное слово Двойное входное слово | I IB IW ID | 0 от 0.0 до 65 535.7 от 0 до 65 535 от 0 до 65 534 от 0 до 65 532 |
Отображение процесса на выходах | Выходной бит Выходной байт Выходное слово Двойное выходное слово | Q QB QW QD | от 0.0 до 65 535.7 от 0 до 65 535 от 0 до 65 534 от 0 до 65 532 |
Маркеры | Маркерный бит Маркерный байт Маркерное слово Двойное маркерное слово | M MB MW MD | от 0.0 до 255.7 от 0 до 255 от 0 до 254 от 0 до 252 |
Периферийная область внешние входы Периферийная область внешние выходы | Периферийный входной байт Периферийное входное слово Периферийное двойное входное слово Периферийный выходной байт | от 0 до 65 535 от 0 до 65 534 от 0 до 65 532 от 0 до 65 535 | |
Таймеры | Таймер | Т | от 0 до 255 |
Счетчики | Счетчик | С | от 0 до 255 |
Блок данных | Блок данных, открытый командой DB [OPN] Бит данных в блоке данных Байт данных Слово данных Двойное слово данных Блок данных, открытый командой DI [OPN] | ||
Локальные данные* | Времен. бит локальных данных Времен. байт локальных данных Времен. слово локальных данных Времен. двойное слово локальных данных | L LB LW LD | от 0.0 до 65 535.7 от 0 до 65 535 от 0 до 65 534 от 0 до 65 532 |
* С командами FUP Вы можете использовать адрес в области памяти L только тогда, когда Вы описали его как VAR_TEMP в таблице описания переменных.
Булева логика и таблицы истинности
Язык программирования FUP основан на двоичной логике булевой алгебры, в которой переменные могут принимать значения “истина” (1) или “ложь” (0). Каждая логическая команда проверяет состояние сигнала переменной на равенство 1 (истина, удовлетворяется) или 0 (ложь, не удовлетворяется) и генерирует результат. Затем команда или сохраняет результат, или использует его для выполнения булевой логической операции. Результат логической операции называется RLO
Для представления логики используются логические блоки, известные из булевой алгебры.
Результаты логических операций для всех возможных комбинаций логических переменных перечисляются в таблицах истинности. Правила булевой логики иллюстрируются ниже на примере логических операций И, ИЛИ и исключающее ИЛИ.
Логическая операция И
В логической операции И опрашиваются сигнальные состояния двух или более указанных адресов. Если на всех входах сигнал равен 1 то на выходе будет 1. Если хотя бы на одном входе будет ноль, то на выходе тоже будет ноль.
Возможные результаты логической операции И могут быть представлены в таблице истинности (табл. 5–3). Здесь 1 означает “удовлетворяется”, а 0 означает “не удовлетворяется”.
результат опроса сигнального состояния по адресу I1.0 равен | результат опроса сигнального состояния по адресу I1.1 равен | результат логической операции имеет cледующее значение: |
---|---|---|
1 | 1 | 1 |
0 | 1 | 0 |
1 | 0 | 0 |
0 | 0 | 0 |
Логическая операция ИЛИ
В логической операции ИЛИ опрашиваются сигнальные состояния двух или более указанных адресов. Если хотя бы на 1 входе сигнал равен 1 то и на выходе будет единица.
равно 1 сгнальное состояние на
входе I1.0 или I1.1.
результат опроса сигнального состояния по адресу I1.0 равен | результат опроса сигнального состояния по адресу I1.1 равен | результат логической операции имеет cледующее значение: |
---|---|---|
1 | 0 | 1 |
0 | 1 | 1 |
1 | 1 | 1 |
0 | 0 | 0 |
Логическая операция исключающее ИЛИ
В логической операции исключающее ИЛИ опрашиваются сигнальные состояния двух или более указанных адресов. Если сигнальное состояние одного из адресов равно 1, то условие удовлетворяется, и команда дает результат 1. Если сигнальные состояния всех адресов равны 0 или 1, то условие не удовлетворяется, и операция результат равен 0.
сигнальное состояние равно 1
только на входе I1.0 или I1.1
(т.е. не на обоих одновременно).
результат опроса сигнального состояния по адресу I1.0 равен | результат опроса сигнального состояния по адресу I1.1 равен | результат логической операции имеет cледующее значение: |
---|---|---|
1 | 0 | 1 |
0 | 1 | 1 |
1 | 1 | 0 |
0 | 0 | 0 |
Значение регистров CPU в командах
Слово состояния содержит биты, к которым Вы можете обращаться в операндах битовых логических операций. Следующие разделы объясняют значения битов с 0 по 8.
Изменение битов в слове состояния
Значение | Смысл |
---|---|
0 | устанавливает состояние сигнала в 0 |
1 | устанавливает состояние сигнала в 1 |
x | изменяет состояние |
1 | состояние остается неизменным |
Первичный опрос
Если честно, я сам иногда не совсем понимаю зачем надо было все так усложнять, но тем не менее биты состояния всегда приводятся, но я их прячу за всплывающие окна, поэтому кому интересно может учить целиком, кому нет, тот может и вовсе не смотреть, но отрицать их существования нельзя тем более что это важно!
Бит 0 слова состояния называется битом первичного опроса (бит FC, см. рис. выше). В начале сегмента FUP сигнальное состояние бита FC всегда равно 0, если только предыдущий сегмент не был завершен блоком SAVE.
Каждая логическая операция опрашивает сигнальное состояние бита FC, а также сигнальное состояние адреса, к которому обращается команда. Сигнальное состояние бита FC определяет последовательность выполнения цепи логических сопряжений. Если бит FC равен 0 (в начале сегмента FUP), то команда сохраняет результат в бите
результата логической операции (RLO) слова состояния и устанавливает бит FC в 1. Это называется первичным опросом. Результат “1” или “0”, сохраняемый после первичного опроса в бите RLO, называют результатом первичного опроса. Если сигнальное состояние бита FC равно 1, то операция логически сопрягает результат опроса состояния сигнала по обрабатываемому адресу с RLO, сформированным после первичного опроса, и сохраняет результат в бите RLO. Логическая цепочка, составленная из команд FUP, всегда заканчивается операцией над выходом (например, установить выход, сбросить выход, присвоить значение) или командой перехода в зависимости от результата логической операции (RLO). Эти команды сбрасывают бит FC в 0.
Результат логической операции
Бит 1 слова состояния называется битом результата логической операции (бит RLO, см. рис. выше). Этот бит сохраняет результат цепи логических операций или операций сравнения. Сигнальное состояние бита RLO дает информацию о потоке сигнала. Первая команда в сегменте FUP опрашивает сигнальное состояние адреса и выдает результат 1 или 0. Эта команда сохраняет результат опроса в бите RLO. Вторая команда в цепи логических операций также опрашивает сигнальное состояние некоторого адреса и формирует результат. Теперь команда комбинирует этот результат со значением бита RLO слова состояния в соответствии с правилами
булевой логики (см. выше Первичный опрос). Этот результат логической операции сохраняется в бите RLO слова состояния, заменяя предыдущее значение в бите RLO. Каждая следующая команда в цепи логических операций комбинирует два значения: результат опроса сигнала по указанному адресу и текущее значение RLO. Вы можете, например, присвоить RLO во время первичного опроса состояние некоторого меркерного бита или запустить команду перехода.
Бит состояния
Бит 2 слова состояния называется битом состояния (бит STA, ). Бит состояния сохраняет значение того бита, к которому производится обращение. Состояние логической операции, выполняющей чтение из памяти, всегда совпадает со значением бита, который опрашивается этой командой (бита, над которым выполняется логическая операция). Состояние битовой операции, которая записывает в память (установить выход, сбросить выход или присвоить), совпадает со значением бита, в который эта команда осуществляет запись. Если запись не производится, то значение совпадает со значением бита, к которому обращается команда. Бит состояния не имеет значения для битовых операций, которые не обращаются к памяти. Эти команды устанавливают бит состояния в 1 (STA=1). Бит состояния не опрашивается командами. Он интерпретируется только во время тестирования программы (статус программы).
Бит OR
Бит 3 слова состояния называется битом OR. Бит OR необходим для выполнения логической операции И перед ИЛИ. Логическая операция И может содержать команды И и И-НЕ. Бит OR показывает этим командам, что ранее
выполненная логическая операция И дала значение 1, так что результат логической операции ИЛИ уже определен. Любые другие команды, обрабатывающие биты, сбрасывают бит OR.
Бит переполнения
Бит 5 слова состояния называется битом переполнения (бит OV, ). Бит OV указывает на наличие ошибки. Он устанавливается арифметической операцией или операцией сравнения чисел с плавающей точкой после возникновения ошибки (переполнение, недопустимая команда, недопустимое число с плавающей точкой). Этот бит устанавливается или сбрасывается в соответствии с результатом выполнения арифметической операции или операции сравнения (ошибка).
Бит переполнения с сохранением
Бит 4 слова состояния называется битом переполнения с сохранением (бит OS). Бит OS устанавливается вместе с битом OV, когда возникает ошибка. Так как бит OS не меняется, когда арифметические операции выполняются без ошибок (в отличие от бита OV), он показывает, произошла или нет ошибка в ранее выполненных операциях. Бит OS сбрасывают следующие команды: JOS (перейти, если бит переполнения с сохранением = 1, должна программироваться на AWL), вызовы блоков и команды конца блока.
CC1 и CC0
Биты 7 и 6 слова состояния называются кодом условия 1 и кодом условия 0 (СС1 и СС0). Биты СС1 и СС0 предоставляют информацию о следующих результатах или битах:
• результат арифметической операции
• результат операции сравнения
• результат цифровой операции
• биты, которые были выдвинуты из операнда операцией сдвига или циклического сдвига.
В таблицах ниже представлены значения битов CC1 и CC0 после выполнения программой определенных операций.
CC1 и CC0 после арифметических операций, без переполнения | ||
---|---|---|
CC1 | CC0 | Объяснение |
0 | 0 | Результат = 0 |
0 | 1 | Результат 0 |
CC1 и CC0 после арифметических операций над целыми числами, с переполнением | ||
---|---|---|
CC1 | CC0 | Объяснение |
0 | 0 | Переполнение в отрицательной области при сложении целых и двойных целых чисел |
0 | 1 | Переполнение в отрицательной области при умножении целых и двойных целых чисел Переполнение в положительной области при сложении целых чисел, вычитании целых чисел, сложении двойных целых чисел, вычитании двойных целых чисел, получении дополнения до 2 целого числа и получении дополнения до 2 двойного целого числа |
1 | 0 | Переполнение в положительной области при умножении целых чисел и двойных целых чисел, делении целых чисел и двойных целых чисел Переполнение в отрицательной области при сложении целых чисел, вычитании целых чисел, сложении двойных целых чисел, вычитании двойных целых чисел |
1 | 1 | Деление на 0 при делении целых чисел, при делении двойных целых чисел и при получении остатка от деления двойных целых чисел. |
CC1 и CC0 после арифметических операций над числами с плавающей точкой, с переполнением | ||
---|---|---|
CC1 | CC0 | Объяснение |
0 | 0 | Ступенчатая потеря значимости |
0 | 1 | Переполнение отрицательной области |
1 | 0 | Переполнение положительной области |
1 | 1 | Недопустимое число с плавающей точкой |
CC1 и CC0 после операций сравнения | ||
---|---|---|
CC1 | CC0 | Объяснение |
0 | 0 | IN2 = IN1 |
0 | 1 | IN2 IN1 |
1 | 1 | IN1 или IN2 недопустимое число с плавающей точкой |
CC1 и CC0 после операций сдвига и циклического сдвига | ||
---|---|---|
CC1 | CC0 | Объяснение |
0 | 0 | Последний сдвинутый бит = 0 |
1 | 0 | Последний сдвинутый бит = 1 |
CC1 и CC0 после поразрядных логических операций со словами | ||
---|---|---|
CC1 | CC0 | Объяснение |
0 | 0 | Результат = 0 |
1 | 0 | Результат <> 0 |
Бит двоичного результата
Бит 8 слова состояния называется битом двоичного результата (бит BR, ). Бит BR образует связь между обработкой битов и слов. Этот бит позволяет эффективно интерпретировать результат операции над словами как двоичный результат и включать этот результат в цепочку логических операций. Бит BR предтавляет собой бит
внутренней памяти, в котором может быть сохранен результат логической операции RLO перед выполнением операции над словами, изменяющей RLO, так что старое значение RLO снова доступно после операции, когда возобновляется прерванная последовательность битовых операций. С помощью бита BR Вы можете, например, запрограммировать функциональный блок (FB) или функцию (FC) на языке AWL и вызвать FB или FC в FUP.
Если Вы хотите написать функциональный блок или функцию, которые Вы хотите вызвать в FUP, независимо от того, пишете Вы FB или FC на AWL или на FUP, Вы должны принять во внимание бит BR. Бит BR соответствует параметру ENO (деблокировать выход) блока FUP. RLO сохраняется в бите BR с помощью команды SAVE (в AWL) или блока FUP SAVE в соответствии со следующими критериями:
• Сохранить RLO, равный 1, в бите BR, когда FB или FC обрабатывается без ошибок.
• Сохранить RLO, равный 0, в бите BR, если при обработке FB или FC возникает ошибка.
Запрограммируйте эти команды в конце FB или FC, так чтобы они были последними командами, выполняемыми в блоке.
Значение EN/ENO
Параметры EN (деблокировать вход) и ENO (деблокировать выход) блока FUP функционируют следующим образом:
• Если EN не активизирован (т.е. состояние сигнала равно ”0”), то блок свою функцию не выполняет, и ENO не активизируется (т.е. состояние сигнала тоже равно ”0”).
• Если EN активизирован (т.е. состояние сигнала равно ”1”) и соответствующий блок выполняет свою функцию без ошибок, то ENO тоже активизируется (т.е. состояние сигнала тоже равно ”1”).
• Если EN активизирован (т.е. состояние сигнала равно ”1”) и при обработке функции возникает ошибка, то ENO не активизируется (т.е. состояние сигнала равно ”0”).
Если Вы в своей программе вызываете системный функциональный блок (SFB) или системную функцию (SFC), то SFB или SFC указывает через сигнальное состояние бита BR, выполнил ли CPU эту функцию без ошибок или с ошибкой:
• Если при исполнении возникает ошибка, то бит BR устанавливается в 0.
• Если функция была обработана без ошибок, то бит BR равен 1.
- с днем рождения стрекоза
- патрисия пилар бразильская актриса