step7-pro
голосование
Чего не хватает сайту
поиска
новых статей
статей о подключении оборудования
примеров решения задач
форума
ничего не нужно
поиск


новости
Появился поиск по сайту. Обещаю его улучшить и сделать более адекватным
--------------11.10.11
Новая гостевая книга надеюсь избавит от спама. Еще немного и появится поис и многое другое
--------------11.07.11
C НАСТУПАЮЩИМ НОВЫМ ГОДОМ И РОЖДЕСТВОМ!
--------------30.12.10
Новые статьи по системным функциям и блокам
--------------25.12.10
Теперь у нас новый дизайн, конечно не супер но надеюсь всем понравиться
--------------05.12.10
Форум закрыт по причине ненадобности
--------------08.09.10
Гостевая книга временно отключена из спама
--------------15.10.10
Наш форум forum.step7-pro.ru общайтесь на здоровье!
--------------03.06.10
Наш сайт в twitter Вы сможете подписаться на рассылку новостей и узнавать о новых статьях на нашем сайте.
--------------20.03.10
После долгого перерыва наш сайт снова начал работать
--------------26.02.10
реклама

Элементы и блоки

Команды FUP состоят из элементов и блоков, графически объединяемых в сегменты. Элементы и блоки можно разделить на следующие группы:

Команды как элементы

STEP 7 представляет часть команд FUP в виде отдельных элементов, которые не нуждаются ни в адресах, ни в параметрах

Блок Описание Раздел в этом руководстве
Отрицание двоичного ввода

Команда как блок с адресом

STEP 7 представляет некоторые из команд FUP в виде блоков, для которых Вы должны указать адрес

Блок Описание Раздел в этом руководстве
Присвоить

Команда как блок с адресом и значением

STEP 7 представляет некоторые из команд FUP в виде блоков, для которых нужно указать адрес и значение (например, значение таймера или счетчика, см. рисунок ниже)

Блок Описание Раздел в этом руководстве
Таймер с задержкой включения с запоминанием

Команда как блок с параметрами

STEP 7 представляет некоторые из команд FUP в виде блоков с входами и выходами. Входы расположены слева от блока, а выходы справа. Вы указываете входные параметры и некоторые из выходных параметров. Большинство из выходных параметров предоставляется программным пакетом STEP 7. Для назначения параметров необходимо использовать специальную запись типов данных. Параметры EN (деблокировать вход) и ENO (деблокировать выход) описаны ниже.

Блок Описание Раздел в этом руководстве
Деление вещественных чисел

Параметры EN и ENO

Если параметр EN (деблокировать вход) блока FUP активизирован, то блок выполняет определенную функцию. Если эта функция выполняется блоком без ошибок, то активизируется параметр ENO (деблокировать выход). Параметры EN и ENO блока FUP относятся к типу данных BOOL и могут быть размещены в областях памяти I, Q, M, D или L (см. табл. ниже).
Как действуют EN и ENO, описано ниже:
• Если EN не активизирован (его сигнальное состояние равно 0), то блок не выполняет свою функцию и ENO не активизируется (его сигнальное состояние тоже равно 0).
• Если EN активизирован (его сигнальное состояние равно 1) и если блок выполняет свою функцию без ошибок, то ENO тоже активизируется (его сигнальное состояние тоже равно 1).
• Если EN активизирован (его сигнальное состояние равно 1) и если при исполнении блоком функции возникает ошибка, то ENO не активизируется (его сигнальное состояние остается равным 0).

Области памяти и их функции

Большинство адресов в FUP относятся к областям памяти. Следующая таблица показывает типы областей и их функции.

Таблица 5-1 Области памяти и их функции
Название
области
Функция области памяти Доступ к области через
единицы следующих размеров: Сокращние
Отображение процесса на входах В начале цикла операционная система читает входы с процесса и записывает значения в этой области. Программа использует эти значения при циклической обработке. Входной бит
Входной байт
Входное слово
Двойное входное слово
I
IB
IW
ID
Отображение
процесса на
выходах
Во время цикла программа рассчитывает выходные значения и сохраняет их в этой области. В конце цикла операционная система считывает рассчитанные выходные значения из этой области и пересылает их на выходы к процессу. Выходной бит
Выходной байт
Выходное слово
Двойное выходное слово
Q
QB
QW
QD
Маркеры Эта область предоставляет место в памяти для промежуточных результатов, рассчитанных программой. ( Не знаю почему ребята из сименса называют их меркеры, но я предпочитаю называть маркеры) Маркерный бит
Маркерный байт
Маркерное слово
Двойное маркерное слово
M
MB
MW
MD
Периферий-ная
область:
внеш. входы


Периферий-ная
область:
внеш. выходы
Эта область дает Вашей программе возможность прямого доступа к модулям ввода и вывода (периферийные входы и выходы). Периферийный входной
байт
Периферийное входное
слово
Периферийное двойное
входное слово


Периферийный выходной
байт
Периферийное выходное
слово
Периферийное двойное
выходное слово
PIB

PIW

PID



PQB

PQW

PQD
Таймеры Таймеры - это функциональные элементы в FUP. Эта областьпредоставляет место в памяти для таймерных ячеек. В этой области датчик импульсов времени обращается к таймерным ячейкам для их актуализации путем уменьшения значения времени. Таймерные операции обращаются к этим ячейкам. Таймер (T) T
Счетчики Счетчики - это функциональные элементы в FUP. Эта область предоставляет место в памяти для счетчиков. К ней обращаются операции счета. Счетчик (C) C
Блок данных В этой области содержатся данные, к которым можно обратиться из любого блока. Если Вам нужно одновременно открыть два различных блока данных, то Вы можете один из них открыть командой ”OPN DB”, а другой - командой ”OPN DI”. Нотация операндов, напр., L DBWi и L DIWi , определяет, к какому блоку данных производится обращение. Хотя командой ”OPN DI” Вы можете обратиться к любому блоку данных. эта команда применяется главным образом для открытия экземпляров блоков данных, поставленных в соответствие функциональным блокам (FB) и системным функциональным блокам (SFB). Блок данных, открытый
командой ”OPN DB”:
Бит данных
Байт данных
Слово данных
Двойное слово данных


Блок данных, открытый
командой ”OPN DI”:
Бит данных
Байт данных
Слово данных
Двойное слово данных


DBX
DBB
DBW
DBD




DIX
DIB
DIW
DID
Локальные данные Эта область содержит временные данные логического блока(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
Периферийная область внешние входы



Периферийная область внешние выходы


Периферийный входной байт
Периферийное входное слово
Периферийное двойное входное слово



Периферийный выходной байт
Периферийное выходное слово
Периферийное двойное выходное слово

PIB
PIW
PID



PQB
PQW
PQD

от 0 до 65 535
от 0 до 65 534
от 0 до 65 532



от 0 до 65 535
от 0 до 65 534
от 0 до 65 532
Таймеры Таймер Т от 0 до 255
Счетчики Счетчик С от 0 до 255
Блок данных Блок данных, открытый командой DB [OPN]
Бит данных в блоке данных
Байт данных
Слово данных
Двойное слово данных


Блок данных, открытый командой DI [OPN]
Бит данных в экземпляре DB
Байт данных
Слово данных
Двойное слово данных


DBX
DBB
DBW
DBD




DIX
DIB
DIW
DID


от 0.0 до 65 535.7
от 0 до 65 535
от 0 до 65 534
от 0 до 65 532




от 0.0 до 65 535.7
от 0 до 65 535
от 0 до 65 534
от 0 до 65 532
Локальные данные* Времен. бит локальных данных
Времен. байт локальных данных
Времен. слово локальных данных
Времен. двойное слово локальных данных
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. Если хотя бы на одном входе будет ноль, то на выходе тоже будет ноль.

Условие удовлетворяется, когда сигнальное состояние равно 1 на входах I1.0 И I1.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 в командах

Регистры помогают CPU выполнять логические и арифметические операции, а также операции сдвига и преобразования. Эти регистры описаны ниже. Аккумуляторы - это регистры общего назначения, которые используются для обработки байтов, слов и двойных слов. Аккумуляторы имеют длину 32 бита.

Слово состояния содержит биты, к которым Вы можете обращаться в операндах битовых логических операций. Следующие разделы объясняют значения битов с 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
1 0 Результат > 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 0 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, так чтобы они были последними командами, выполняемыми в блоке.

Предупреждение
Бит BR может быть сброшен в 0 непреднамеренно. Если Вы пишете FB или FC в FUP и не обрабатываете бит BR, как это описано выше, FB или FC может переписать бит BR другого FB или другой FC. Во избежание этой ошибки сохраняйте RLO в конце 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.

 

<--Предыдущая статья   Следующая статья-->
сделано djoni политика конфидициальности Rambler's Top100