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
реклама

 

         Вызов FC/SFC без параметров

С помощью такой команды вы можете вызвать FC или SFC которые не имеют параметров. Вызов может быть условным или безусловным.

В кодовом разделе функции (FC) нельзя задавать никаких параметров типа
BLOCK_FC в качестве адреса для условного вызова. Но можно задать
параметр типа BLOCK_FC в качестве адреса в функциональном блоке (FB).

Условный вызов

Условный вызов выполняется только в том случае, если RLO равен 1. Если условный
вызов не выполняется, то RLO после команды вызова равен 0. Если команда
выполняется, то реализуются следующие функции:

Затем исполнение программы продалжаеться в ызванном блоке.

Блок FBD
параметры
тип данных
область памяти
описание
номер
BLOCK_FC
-
номер вашей функции (FC10 или SFC58*) Условный вызов с параметром типа BLOCK_FC в качестве адреса возможен только в FB, но не в FC.

 

Безусловный вызов

Безусловный вызов для FC10*, то команда CALL выполняет следующие действия

Пример исполнение программы продолжается в FC10. Если Вы хотите использовать функцию MCR в FC10, нужно ее там повторно ативизировать. Когда FC10 завершается, исполнение программы возвращается в вызывающий FB. Бит MA восстанавливается. DB10 и экземпляр блока данных определенного пользователем FB снова являются текущими DB независимо от того, какие DB были использованы в FC10. После возврата из FC10 состояние сигнала входа I0.0 присваивается выходу Q4.0. Вызов FC11 является условным. Он выполняется только тогда, когда состояние входа I0.1 равно 1. Если вызов исполняется, то происходит то же самое,
что и при вызове FC10. Биты слова состояния

Биты слова состояния
безусловный вызов BR СС1 СС0 OV OS OR STA RLO FC
записывает - - - 0 0 1 - 0  
условный вызов BR СС1 СС0 OV OS OR STA RLO FC
записывает - - - 0 0 1 1 0  

Вызов FB, FC, SFB, SFC и мультиэкземпляров

Эти блоки, функции и мультиэкземпляры можно вызвать выбирая их из списка ”Program Elements” (“Элементы программы”)*. Когда вы выбираете один из этих блоков, на экране появляется элемент с номером или символическим именем функции или функционального блока и принадлежащими ему параметрами.
Помните, что блок который вы вызываете уже должен быть скомпилирован и должен уже существовать в вашей программе, библиотеке или в CPU.

Если команда выполняется то она реализует следующие функции:

Когда сохраняются регистры DB и DI, возможно, что они не указывают на блоки данных, которые Вы открыли. Из-за механизма копирования для передачи параметров, особенно, когда это касается функциональных блоков, компилятор иногда переписывает регистр DB.
Затем исполнение программы продолжается в вызванном блоке.

Выход ENO блока FBD соответствует биту BR слова состояния. Когда вы пишете функциональный блок или функцию (не завивимо на каком языке вы ее пишете) которую хотите вызвать в FBD помните о бите BR. В бите BR сохраняется RLO с помощью команды SAVE в соответствии со следующими критериями:

Эти команды необходимо запрограммировать в конце FB или FC так, чтобы они были последними командами, исполняемыми в блоке.

Непреднамеренный сброс бита BR в 0
При записи FB и FC в FBD, если Вы не обрабатываете бит BR так, как описано выше, один FB или FC может переписать бит BR другого FB или FC. Во избежание этой проблемы сохраняйте RLO в конце каждого FB или FC, как описано выше.
Воздействие вызова на биты слова состояния
Биты слова состояния
условный вызов BR СС1 СС0 OV OS OR STA RLO FC
записывает x - - 0 0 1 x x  
безусловный вызов BR СС1 СС0 OV OS OR STA RLO FC
записывает - - - 0 0 x x x  

Параметры

Параметры определенные в разделе переменных* блока будут отражены в элементе FBD. Параметры зависят от типа блока следующим образом:

Для структурных параметров IN/OUT и параметров типов ”Pointer” (“Указатель”) и ”Array” (“Массив”) нужно сделать доступным фактический параметр (по крайней мере при первом вызове).
Каждый фактический параметр, который Вы делаете доступным при вызове
функционального блока должен иметь тот же тип данных, что и соответствующий
формальный параметр.

В таблице показан элемент FUP для вызова FB, FC, SFB, SFC и описаны параметры,
общие в элементе для всех этих блоков. Номер блока появляется автоматически в
верхней части элемента (номер FB, FC, SFB или SFC, например, FC10).

Элемент FBD
параметры
тип данных
область памяти
описание
DB no. BLOCK_DB - Номер блока данных. Эта
информация необходима
только для вызова FB.
EN BOOL I, Q, M, D, L, T, C Деблокировка входа
ENO BOOL I, Q, M, D, L Деблокировка выхода


пример деблокировки входа

Фактические адеса, значения которых копируються в экземпляр блока данных DB13 перед обработкой FB10 Вызывает FB10 (используя
экземпляр DB13)
Значение этого параметра копируется из DB13 в M 2.1 после обработки FB10


Формальные параметры FB



Возврат

Команду возврат используют для выхода из блока по условию
У данной команды отсутствуют параметры, тип данных и область памяти

         Если состояние сигнала на входе I0.0 равно 1, то блок покидается.

Биты слова состояния
условный возврат (возврат, если RLO=1)
BR
СС1
СС0
OV
OS
OR
STA
RLO
FC
записывает
x - - 0 0 1 x x  




Команды Master Control Relay

Master Control Relay

Master Control Relay (MCR см.также следующий раздел)- главное управляющее реле используется для активизации и деактивизации потока сигнала.Деактивированный поток сигнала соответствует последовательности команд, которая записывает нулевое значение вместо рассчитанного значения, или последовательности команд, которая оставляет неизменным существующее значение памяти. Операции, запускаемые командами, описанными в следующей таблице, зависят от MCR.

Команды Присвоить и Коннектор

Команды Присвоить и Коннектор записывают в память 0, если MCR равно 0. Команды Установить выход и Сбросить выход оставляют существующее значение неизменным

 

Элемент FBD  Описание Раздел FBD
Коннектор (промежуточный выход) 8,9
Присваение 8.8
Установка выхода 8.11
Сброс выхода 8.12
SR-триггер 8.25
RS-триггер 8.26
Передача значения 14


Команды, зависящие от MCR, и их реакция на его состояние

состояние сигнала MCR присвоение, коннектор

установка или сброс выхода
        
        
передача значения

0 записывает 0 (имитирует реле, которое отпадает при отключении питания ничего не записывает ( имитирует реле с защелкой, которое остается в текущем состоянии при отключении питания записывает 0 (имитирует элемент, который выдает значение 0 при отключении питания)
1 Нормальное исполнение Нормальное исполнение Нормальное исполнение



Активизация/деактивизация Master Control Relay

 

Команда Активизировать Master Control Relay

Командой Активизировать Master Control Relay (MCR) вы создаете последовательность команд зависящих от MCR. После ввода этой команды вы можете запрограммировать с помощью этих команд зоны MCR ( см. следующий раздел). Когда Ваша программа активизирует область MCR, все действия MCR зависят от содержимого стека MCR (см. рис.1).

Команда Деактивизировать MCR

Команда Деактивизировать MCR последовательность команд более не зависит от MCR. После этой команды вы не можете больше программировать зоны MCR. Если Ваша программа деактивизирует область MCR, то MCR всегда пропускает поток сигнала независимо от записей в стеке MCR.

Элемент FBD параметры тип данных область памяти описание
Отсутствуют - - Активизирует MCR
Отсутствуют - - Деактивизирует MCR

Стек MCR и бит, контролирующий его зависимость (бит МА), относятся к отдельным уровням и должны быть сохранены и извлечены всякий раз, когда Вы изменяете уровень последовательности. Они предварительно устанавливаются в начале каждого уровня последовательности (входные биты MCR с 1 по 8 устанавливаются 1, указатель стека MCR устанавливается в 0, и бит МА устанавливается в 0).

Стек MCR передается из блока в блок, а бит МА сохраняется и устанавливается в всякий раз, как блок вызывается. Он извлекается обратно в конце блока.

MCR может быть реализован таким образом, что он оптимизирует время выполнения CPU, генерирующего код. Причина этого состоит в том, что последовательность команд, зависящая от MCR, не выполняется блоком; она должна быть явно активизирована командой MCR. CPU, генерирующий код, распознает эту команду и генерирует дополнительный код, необходимый для оценки стека MCR, пока он не распознает команду MCR или не достигнет конца блока. Для команд вне диапазона MCRА/ MCRD время исполнения не увеличивается.

Команды MCRА и MCRD всегда должны использоваться парами внутри Вашей программы.

Рис 1. Активизация и деактивизация области MCR

Операции, запрограммированные между MCRA и MCRD, зависят от состояния бита
MCR. Операции, запрограммированные вне последовательности MCRA–MCRD, не
зависят от состояния бита MCR. Если команда MCRD отсутствует, то команды,
запрограммированные между командами MCRA и BEU, зависят от бита MCR.

Команда MCRA активизирует функцию MCR до следующего MCRD. Команды между MCR<  и  MCR> обрабатываются в зависимости от бита MA (здесь I0.0):
Если состояние сигнала на входе I0.0 равно 1:
  • Выход Q4.0 устанавливается в 1, если состояние сигнала на входе I0.3 равно 1.
  • Выход Q4.0 остается неизменным, если состояние сигнала на входе I0.3 равно 0.
  • Состояние сигнала на входе I0.4 присваивается выходу Q4.1.
Если состояние сигнала на входе I0.0 равно 0:
  • Выход Q4.0 остается неизменным независимо от состояния сигнала на входе I0.3.
  • Выход Q4.1 равен 0 независимо от состояния сигнала на входе I0.4.

биты слова состояния

Биты слова состояния
  BR СС1 СС0 OV OS OR STA RLO FC
записывает - - - - - - - -  

Зависимость FC и FB вы должны запрограммировать в блоке сами. Если эта функция или функциональный блок вызывается из последовательности MCRA/MCRD, то не все команды внутри этой последовательности автоматически зависят от бита MCR. Чтобы достичь этого, используйте команду MCRА вызванного блока.

ВНИМАНИЕ
Риск травмирования людей и повреждения оборудования. Никогда не используйте команду MCR для АВАРИЙНОГО ВЫКЛЮЧЕНИЯ или в качестве предохранительного приспособления для персонала.MCR не является заменой для аппаратного главного управляющего реле. !



Включение/выключение Master Control Relay

Команда Включить Master Control Relay

Команда Включить Master Control Relay (MCR<) запускает операцию, которая сохраняет RLO в стеке MCR и открывает зону действия MCR. На команды, показанные в следующей таблице, оказывает влияние RLO, сохраненное в стеке MCR, когда зона действия MCR открыта. Стек MCR работает по принципу буфера LIFO (Last In, First Out - последний вошел, первый вышел). Возможны только восемь записей. Если стек уже полон, команда Включить Master Control Relay генерирует ошибку стека MCR (MCRF).

Команда Выключить Master Control Relay

Команда Выключить Master Control Relay (MCR>) закрывает зону действия MCR, открытую последней. Эта команда делает это путем удаления записи RLO из стека MCR. RLO было сохранено командой Включить Master Control Relay. Запись, освобождаемая на другом конце LIFO-стека MCR, устанавливается в 0. Если стек уже пуст, команда Выключить Master Control Relay генерирует ошибку стека MCR (MCRF).

Элемент FBD параметры тип данных область памяти описание
Отсутствуют - - Открывает зону MCR
Отсутствуют - - Закрывает зону MCR, которая была открыта последней

MCR управляется стеком шириной в один бит и глубиной восемь записей (см. рис. 2). MCR активизировано, пока все восемь записей в стеке равны 1. Команда MCR< копирует RLO в стек MCR. Команда MCR> удаляет последнюю запись из стека и устанавливает освобожденный адрес стека в 1. Если происходит ошибка, например, если в последовательности имеется более восьми команд MCR> или Вы пытаетесь выполнить команду MCR>, когда стек пуст, активизируется сообщение об ошибке MCRF. Контроль стека MCR основан на указателе стека (MSP: 0 = пуст, 1 = одна запись, 2 = две записи, ..., 8 = восемь записей).


Рис.2 Стек Master Control Relay

Команды MCR< и MCR> внутри Вашей программы всегда должны использоваться парами. Команда MCR< принимает состояние RLO и копирует его в бит MCR. Команда MCR> устанавливает бит MCR в 1 безусловно. Вследствие этого все остальные команды между командами MCRА и MCRD выполняются независимо от бита MCR (сведения о MCRА и MCRD см. выше).

Вложение команд MCR<  и  MCR>

Данные команды могут быть вложенными, глубина вложения может достигать 8, иначе говоря можно написать MCR< 8 раз прежде чем поставить MCR>. Соблюдайте парность вложения (должно быть одинаковое количество MCR<  и  MCR>).

Если производится вложение команд MCR<, то формируется бит MCR более низкого
уровня вложенности. Затем команда MCR< комбинирует текущее RLO с текущим
битом MCR в соответствии с таблицей истинности для И.

Когда команда MCR> завершает уровень вложения, она извлекает бит MCR из
следующего более высокого уровня.

Когда команда MCRA активизирует функцию MCR, Вы можете создать до 8 вложенных зон MCR. В данном примере имеется две зоны MCR. Первая команда MCR> действует совместно с второй командой MCR<. Все команды внутри второго набора скобок MCR (MCR) принадлежат второй зоне MCR. Операции выполняются следующим образом:
  • Если I0.0 = 1: состояние сигнала на входе I0.4 присваивается выходу Q4.1.
  • Если I0.0 = 0: состояние сигнала на выходе Q4.1 равно 0 независимо от состояния сигнала на входе I0.4. Выход Q4.0 остается неизменным независимо от состояния сигнала на входе I0.3.
  • Если I0.0 и I0.1 = 1: выход Q4.0 устанавливается в 1, если  I0.3 = 1 и Q4.1 = I0.4.
  • Если I0.1 = 0: выход Q4.0 остается неизменным независимо от состояния сигнала на входе I0.3 и входе I0.0.

биты слова состояния

Биты слова состояния
  BR СС1 СС0 OV OS OR STA RLO FC
записывает - - - - 0 1 - 0  



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