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) или системную функцию (SFC), не имеющую параметров. В зависимости от предшествующей связи вызов является условным или безусловным.

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

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

После всего этого обработка программы продолжается в вызванном блоке. Информацию о передаче параметров смотрите в Оперативной справке STEP 7.

Блок LAD Параметры Тип данных Область памяти Описание
номер BLOCK_FC - Номер FC или SFC (например, FC10 или SFC59). Набор доступных SFC зависит от вашего
CPU. В случае условного вызова вы не можете внутри функции (FC) вводить параметры типа BLOCK_FC. Однако внутри функционального блока вы можете вводить BLOCK_FC как тип параметра.

Пример и биты слова состояния вызова FC/SFC из катушки

Если выполняется безусловный вызов FC10, то команда CALL выполняет следующие функции: Сохраняет адрес, в котором нуждается для того, чтобы возвратиться в текущий FB. Сохраняет селекторы для DB10 и для экземплярного блока данных FB. Помещает бит MA, установленный в 1 в команде MCRA, в стек блоков (BSTACK) и сбрасывает этот бит в 0 для вызываемого FC10.
Обработка программы продолжается в FC10. Если вы хотите использовать функцию MCR в FC10, то вы должны снова активизировать ее там. Когда FC10 завершается, обработка программы возвращается в вызывающий FB.
Бит MA восстанавливается, и DB10 и экземплярный блок данных определяемого пользователем FB снова являются текущими DB, независимо от того, какие DB использовал FC10. После возврата из FC10 состояние сигнала входа I 0.0 присваивается выходу Q 4.0. Вызов FC11 – это условный вызов. Он выполняется только тогда, когда состояние сигнала входа I 0.0 равно 1. Если вызов выполняется, то реализуются такие же функции, как при вызове FC10.
Биты слова состояния
Безусловный вызов BR CC 1 CC 0 OV OS OR STA RLO FC
Запись -
- - - 0 0 1 - 0
Условный вызов BR CC 1 CC 0 OV OS OR STA RLO FC
Запись -
- - - 0 0 1 1 0

 

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

Вы можете вызывать функциональные блоки (FB), функции (FC), системные функциональные блоки (SFB), системные функции (SFC) и мультиэкземпляры, выбирая их из списка "Program Elements [Элементы программы]". Они находятся в конце списка семейств команд под следующими названиями:

Когда вы выбираете один из этих блоков, на вашем экране появляется прямоугольник с номером или символическим именем функции или функционального блока и принадлежащими ему параметрами. Вызываемый вами блок должен быть скомпилирован и уже существовать в вашем программном файле, библиотеке или в CPU.Если команда вызова FB, FC, SFB, SFC и мультиэкземпляров выполняется, то она выполняет следующие функции:

Примечание
Когда сохраняются регистры DB и DI, они не могут указывать на блоки данных, которые вы открыли. Из-за механизма передачи входных и выходных параметров, особенно там, где дело касается функциональных блоков, компилятор иногда перезаписывает регистр DB. Подробности сморите в Оперативной справке STEP 7.

Разрешающий выход

Разрешающий выход (ENO) блока LAD соответствует биту BR слова состояния (см. раздел 2.3). При записи функционального блока или функции, которую вы хотите вызывать из LAD, независимо от того, записываете ли вы FB или FC в форме STL или LAD, вы несете ответственность за управление битом BR. Вы должны использовать команду SAVE (в STL) или катушку --- (SAVE) (в LAD), чтобы сохранить RLO в бите BR в соответствии со следующими критериями:

Вы должны программировать эти команды в конце FB или FC так, чтобы они были последними командами, которые выполняются в блоке.

Внимание
Возможен непреднамеренный сброс бита BR в 0. Если при записи FB и FC в форме KOP вы обрабатываете бит BR не так, как описано выше, то один FB или FC может перезаписать бит BR другого FB или FC. Чтобы избежать этой проблемы, сохраняйте RLO в конце каждого FB или FC так, как описано выше.

Влияние вызова на биты слова состояния

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

Параметры

Параметры, определенные в разделе VAR блока, будут отображаться в блоке LAD. Снабжение блока параметрами различается в зависимости от типа блока следующим образом:

Структурным параметрам IN/OUT и параметрам типа «Pointer [указатель]» и типа «Array [массив]» вы должны предоставить в распоряжение фактический параметр (по крайней мере, во время первого вызова). Каждый фактический параметр, который вы предоставляете в распоряжение при вызове функционального блока, должен иметь такой же тип данных, как его формальный параметр.

Следующая таблица показывает блок для вызова FB, FC, SFB, SFC и мультиэкземпляров и описывает общие для всех этих блоков параметры блока вызова. Когда вы вызываете свой блок из браузера команд, в верхней части блока автоматически появляется номер блока (номер FB, FC, SFB или SFC, например, FC10).

Блок LAD Параметры Тип данных Область памяти Описание
DB No. BLOCK_DB - Номер экземплярного блока данных. Вам нужно вводить эту информацию только для вызова FB.
  EN BOOL I, Q, M, D, L Разрешающий вход
  ENO BOOL I, Q, M, D, L Разрешающий выход

 

Вызов FB в виде блока KOP

 

Возврат

Команда Возврат используется для выхода из блоков. Из блока можно выйти по условию. Возврат сохраняет RLO в бите BR слова состояния. Если выход из блока происходит вследствие условного возврата, то состояние сигнала битов RLO и BR в блоке, которому возвращается управление программой, равно 1.

Блок LAD Параметры Тип данных Область памяти Описание
Нет - - -

Пример и биты слова состояния функции возврата

Если состояние сигнала входа I 0.0 равно 1, то происходит выход из блока. Тогда бит BR слова состояния имеет такое же состояние сигнала, как вход I 0.0 (= 1).
Биты слова состояния
Безусловный вызов BR CC 1 CC 0 OV OS OR STA RLO FC
Запись х
- - - х 0 1 1 0

 

Важные замечания относительно использования функций MCR

Будьте осторожны с блоками, в которых главное управляющее реле было активизировано посредством MCRA:

 

Программируемый контроллер находится в состоянии STOP или имеют место неопределенные характеристики во время выполнения!
Для вычисления адресов компилятор использует также доступ на запись к локальным данным, которые скрываются за временными переменными, определенными в VAR_TEM.

Обращение к формальным параметрам

Передача параметров

KOP/FUP

Исправление:
Устраните зависимость вышеупомянутых команд от MCR:

  1. Деактивизируйте главное управляющее реле при помощи команды Деактивизировать главное управляющее реле перед рассматриваемым оператором или сегментом.
  2. Активизируйте снова главное управляющее реле при помощи команды Активизировать главное управляющее реле после рассматриваемого оператора или сегмента.

 

 

Команды главного управляющего реле

Определение главного управляющего реле
Главное управляющее реле (Master Control Relay, MCR, см. также ющий раздел) – это главный выключатель Американской системы электроавтоматики (контактного плана, LAD) для подачи питания и прерывания потока энергии (пути тока). Прерванный путь тока соответствует последовательности команд, которая записывает нулевое значение вместо расчетного значения, или последовательности команд, которая оставляет существующее значение в памяти неизменным. Операции, запускаемые командами, показанными в таблице 15–4, зависят от MCR. Команды Выходная катушка и Промежуточный выход (коннектор) записывают в память 0, если MCR равен 0. Команды Установить выход и Сбросить выход оставляют существующее значение неизменным

Таблица 16–4.

Элемент или имя в блоке
Имя команды
Раздел в этом руководстве
Промежуточный выход (коннектор)
Выходная катушка
——( S)
Установка выхода
——( R)
Сброс выхода
Установка-сброс триггера
Сброс-установка триггера
Присвоить значение
Таблица 16–5. Операции, зависящие от MCR, и их реакция на его состояние сигнала
Состояние сигнала MCR
Иcходная катушка или промежуточный выход
Установка или сброс выхода
Присвоить значение

MOVE
0 Записывает 0

(Имитирует реле, которое при снятии напряжения переходит в свое состояние покоя)
Не записывает

(Имитирует реле с механической блокировкой, которое при снятии напряжения остается в своем текущем состоянии)
Записывает 0


(Имитирует компонент, который при потере напряжения, выдает значение 0)
1 Нормальное выполнение Нормальное выполнение Нормальное выполнение

 

 

Активизация/деактивизация главного управляющего реле

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

Блок LAD Параметры Тип данных Область памяти Описание
Нет - - Активизирует функцию MCR

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

Блок LAD Параметры Тип данных Область памяти Описание
Нет - - Деактивизирует функцию MCR

Стек MCR и бит, управляющий зависимостью от него (бит MA), относятся к соответствующему уровню и должны сохраняться и выбираться каждый раз, когда переключается уровень последовательности команд. Они предварительно устанавливаются в начале каждого уровня последовательности (биты входов MCR с 1 по 8 устанавливаются в 1, указатель вершины стека MCR устанавливается в 0, и бит MA устанавливается в 0). Стек MCR передается от блока к блоку, а бит MA сохраняется и устанавливается в 0, каждый раз, когда блок вызывается. Он извлекается обратно в конце блока. MCR может быть реализован таким способом, что он оптимизирует продолжительность работы CPU, генерирующих код. Причиной этого является то, что зависимость от MCR не передается блоком дальше; она должна явно активизироваться командой MCR. CPU, генерирующий код, распознает эту команду и генерирует дополнительный код, необходимый для оценивания стека MCR до тех пор, пока он не распознает команду MCR или не достигнет конца блока. В случае команд, лежащих вне области MCRA/MCRD, нет увеличения времени выполнения. Команды MCRA и MCRD должны использоваться в пределах вашей программы всегда попарно.

 

Рисунок 15.5

 

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

Пример и биты слова состояния активации и деактивизации главного управляющего реле

Команда --- (MCRA) активизирует функцию MCR до ближайшей команды MCRD. Команды между --- (MCR <) и --- (MCR >) обрабатываются в зависимости от бита MA (здесь I 0.0): Если состояние сигнала входа I 0.0 = 1, то могут существовать следующие условия: Выход Q 4.0 устанавливается в 1, если состояние сигнала входа I 0.3 равно 1. Выход Q 4.0 остается неизменным, если состояние сигнала входа I 0.3 равно 0. Состояние сигнала входа I 0.4 присваивается выходу Q 4.1. Если состояние сигнала входа I 0.0 = 0, то существуют следующие условия: Выход Q 4.0 остается неизменным независимо от состояния сигнала входа I 0.3. Выход Q 4.1 равен 0 независимо от состояния сигнала I 0.4.
Биты слова состояния
Безусловный вызов BR CC 1 CC 0 OV OS OR STA RLO FC
Запись -
- - - - - - - -

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

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

 

Включение/выключение главного управляющего реле

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

Блок LAD Параметры Тип данных Область памяти Описание
Нет - - Открывает зону MCR

Выключение MCR
Команда Выключить главное управляющее реле (MCR>) закрывает зону MCR, которая была открыта последней. Команда делает это, удаляя запись RLO из стека MCR. RLO был помещен туда командой Включить главное управляющее реле. Ячейка, освободившаяся на другом конце стека MCR, работающего по принципу LIFO (Last In, First Out [последним вошел – первым вышел]), устанавливается в 1. Если стек уже пуст, то команда Выключить главное управляющее реле выдает ошибку стека MCR (MCRF).

Блок LAD Параметры Тип данных Область памяти Описание
Нет - - Закрывает зону MCR, которая
была открыта последней

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

Вложение команд (MCR<) и (MCR>)
Вы можете вкладывать пары команд --(MCR<) и --(MCR>) друг в друга. Максимальная глубина вложения равна восьми, то есть вы можете записать максимум восемь команд --(MCR<) одну за другой перед тем, как вставить команду --(MCR>). Вы должны программировать одинаковое количество команд --(MCR<) и --(MCR>). Если команды --(MCR<) вкладываются друг в друга, то формируется бит MCR более низкого уровня вложенности. Тогда команда --(MCR<) связывает текущий RLO с текущим битом MCR в соответствии с таблицей истинности логической операции И. Когда команда --(MCR>) завершает уровень вложенности, она извлекает бит MCR из следующего более высокого уровня.

Пример и биты слова состояния включения и выключения главного управляющего реле

Когда команда MCRA активизирует функцию MCR, вы можете создавать до восьми вложенных зон MCR. В примере имеются две зоны MCR. Первая команда MCR> работает совместно со второй командой MCR< . Все команды в пределах второго комплекта скобок MCR (MCR< MCR>) принадлежат второй зоне MCR. Операции выполняются следующим образом: Если состояние сигнала входа I 0.0 = 1, то состояние сигнала входа I 0.4 присваивается выходу Q 4.1. Если состояние сигнала входа I 0.0 = 0, то состояние сигнала выхода Q 4.1 равно 0, независимо отсостояния сигнала входа I 0.4. Выход Q 4.0 остается неизменным, независимо от состояния сигнала входа I 0.3. Если состояние сигнала входа I 0.0 и I 0.1 = 1, то выход Q 4.0 устанавливается в 1, если состояние сигнала входа I 0.3 равно 1 и выход Q 4.1 = входу I 0.4. Если состояние сигнала входа I 0.1 = 0, то выход Q 4.0 остается неизменным, независимо от состояния сигнала входа I 0.3 и входа I 0.0.
Биты слова состояния
Безусловный вызов BR CC 1 CC 0 OV OS OR STA RLO FC
Запись -
- - - - 0 1 - 0

 

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