WWW.DISS.SELUK.RU

БЕСПЛАТНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА
(Авторефераты, диссертации, методички, учебные программы, монографии)

 

Pages:     | 1 |   ...   | 3 | 4 || 6 | 7 |   ...   | 12 |

«Автоматизация посредством STEP 7 с использованием STL и SCL и программируемых контроллеров SIMATIC S7-300/400 (Automating with STEP 7 in STL and SCL by Hans Berger) Перевод по изданию 2-му, исправленному 2001 SIMATIC ...»

-- [ Страница 5 ] --

Обычно приоритет функции Set (Установка бита) используется, например, для выставления сигнала отказа, в случае когда несмотря на подтверждение на входе Reset (Сброс), текущий сигнал отказа должен поддерживать определенный бит в установленном состоянии с использованием операций с 5.3.3 Операции с памятью в сочетании с двоичными логическими В языке программирования STL Вы можете свободно использовать операции с памятью. С их помощью можно сохранять результат логической операции RLO в любом месте программы, чтобы в дальнейшем можно было его На рис. 5.2 показано, как можно вместо использования вложенных выражений использовать временное хранение результата логической операции RLO.

Автоматизация посредством STEP с использованием STL и SCL Рис. 5.2 Пример: промежуточный буфер для хранения значения бита Здесь внутри вложенного выражения используется RS-триггер.

Состояние его сигнала используется в дальнейшем. Поэтому необходимо опросить состояние RS-триггера в конце вложенного выражения для получения состояния сигнала RS-триггера перед оператором закрытия скобки. Если этот оператор отсутствует, то состояние сигнала логической операции перед входом сброса будет в этом случае обрабатываться в Внутри скобок Вы можете запрограммировать любое STL-выражение; однако, перед закрытием скобок Вы должны убедиться в том, что Вы получили во вложенном выражении требуемое значение результата логической операции Промежуточные двоичные результаты Почти все биты могут использоваться для временного хранения двоичных • Биты из области временных локальных данных, являющиеся наиболее подходящим вариантом, если Вам необходимо сохранять промежуточные результаты только внутри блока. Все кодовые блоки имеют области • Биты из области статических локальных данных, доступные только в функциональных блоках и при этом сохраняющие заданные состояния 5. Операции с памятью • Биты из области меркеров, предоставляющие повсеместный доступ.

Количество меркеров определяется типом CPU. Для четкости работы программы избегайте "множественного" использования меркеров (т.е.

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

• Биты в блоках глобальных данных, также предоставляющие повсеместный доступ в программе. Но для того, чтобы их можно было использовать, необходимо сначала открыть соответствующий блок данных (даже если для этого используется полная адресация).

Вы можете заменить "сверхоперативную память" ("scratch-pad memory"), используемую в STEP 5, на область временных локальных данных, которая предоставляется в каждом блоке.

5.4 Функция Edge Evaluation (Проверка наличия фронта сигнала) Функция проверки наличия отрицательного или заднего (убывающего) Функция проверки наличия переднего или заднего фронта сигнала есть функция для определения наличия изменений в состоянии сигнала (изменения его уровня). Наличие переднего фронта сигнала свидетельствует о переходе сигнала от уровня "0" к уровню "1". Соответственно, наличие заднего фронта сигнала свидетельствует о переходе сигнала от уровня "1" к В логических переключающих схемах эквивалентом функции проверки наличия фронта сигнала является "контактный формирователь импульса" ("pulse contact element"). При включении реле этот формирователь импульса генерирует импульс, свидетельствующий о наличии возрастающего фронта сигнала. При выключении реле этот формирователь импульса генерирует импульс, свидетельствующий о наличии убывающего фронта сигнала.

К биту, указанному как операнд в функции проверки наличия фронта сигнала, обращаются как к "меркеру фронта" ("edge memory bit") (хотя фактически этот бит может быть и не из области меркеров). Тем не менее, он должен быть таким битом, состояние сигнала которого может быть проверено в любой момент в последующих циклах сканирования программы, и который не используется в программе каким-либо другим образом. Битом в функции проверки наличия фронта сигнала может быть меркер, бит из блока глобальных данных или бит из статических локальных данных в функциональных блоках. (В дальнейшем рассматриваемый бит именуется для определенности "меркером фронта").

Итак, вышеупомянутый меркер фронта сохраняет "старое" значение RLO, которое CPU использовал при последней проверке наличия фронта сигнала.

Автоматизация посредством STEP с использованием STL и SCL При каждой новой проверке наличия фронта сигнала CPU сравнивает текущее значение RLO с состоянием меркера фронта. Фронт сигнала будет обнаружен, если эти два сигнала будут иметь различные состояния. В случае обнаружения фронта сигнала CPU обновляет состояние меркера фронта, посредством назначения последнему текущего значения RLO, и устанавливает для RLO значение "1" после положительного или отрицательного фронта сигнала, в зависимости от инструкции функции проверки наличия фронта сигнала. В том случае, если CPU не определяет присутствия фронта сигнала, он устанавливает для RLO значение "0".

Таким образом, состояние бита, равное "1", означает факт обнаружения фронта сигнала. Это состояние бита сохраняется короткое время, как правило, в течение одного цикла сканирования программы. Это происходит из-за того, что CPU не обнаруживает фронта сигнала при следующей проверке наличия фронта сигнала (если значение проверяемого бита не изменяется). Поэтому CPU вновь возвращает RLO значение "0" при следующей проверке наличия фронта.

Вы можете использовать RLO сразу после выполнения проверки наличия фронта сигнала или можете сохранить его значение в бите, называемом "меркер импульса" ("pulse memory bit"). Используйте для сохранения RLO меркер импульса, если Вы должны обработать значение RLO в другом месте программы; это удобный буфер хранения сигнала о наличии фронта сигнала.



В качестве "меркера импульса" также может использоваться собственно меркер, бит из блока глобальных данных, а также бит из временных или бит из статических локальных данных.

Непосредственно после выполнения функции обнаружения фронта сигнала Вы можете использовать полученное значение RLO с помощью функций проверки AND (И), OR (ИЛИ) или Exclusive OR (Исключающее ИЛИ).

Проверьте реакцию функции обнаружения фронта сигнала после включения CPU. Для обнаружения фронта сигнала нужно, чтобы RLO до выполнения функции обнаружения фронта и состояние меркера фронта были одинаковыми. При определенных обстоятельствах меркер фронта должен быть сброшен при запуске (в зависимости от требуемой реакции функции проверки наличия фронта, а также от используемого бита).

В следующих примерах показано, как выполняется функция проверки наличия фронта сигнала. На упрощенной схеме показаны вход, начиная с момента времени до начала выполнения проверки наличия фронта синала и меркер импульса ("pulse memory bit"). Понятно, что функции проверки наличия фронта сигнала могут предшествовать, а также после нее могут выполняться двоичные логические операции.

5.4.1 Положительный фронт сигнала CPU определяет положительный (возрастающий) фронт сигнал, когда до начала выполнения функции проверки наличия фронта результат логической операции изменяется от уровня "0" к уровню "1". Процесс обработки сигналов показан на верхней половине рис. 5.3.

На рисунке 5.3 меркеры импульса имеют имена PulseMerkerX, а меркеры фронта, соответственно, имеют имена FrontMerkerX.

5. Операции с памятью Функция проверки наличия положительного фронта сигнала Network 1 (Сегмент 1) = PulseMerker0;

Функция проверки наличия отрицательного фронта сигнала Network 2 (Сегмент 2) = PulseMerker1;

Рис. 5.3 Функция проверки наличия фронта сигнала На рис. 5.3 показана следующая последовательность циклов сканирования:

1 Сначала состояния и входа Input0, и меркера фронта FrontMerker соответствуют уровню "0". Меркер импульса PulseMerker0 также сброшен, т.е.

На 2-ом цикле сканирования состояние входа Input0 изменяется с "0" на "1".

CPU обнаруживает это изменение при сравнении текущего значения RLO с состоянием меркера фронта FrontMerker0. Если Input0 равен "1", а меркер фронта FrontMerker0 равен "0", то значение меркера фронта устанавливается (становится равным "1"). Текущее значение PulseMerker0 также равен "1".

На 3-ем цикле сканирования при сравнении текущего значения RLO с состоянием меркера фронта FrontMerker0 CPU обнаруживает, что они имеют один уровень. Поэтому он устанавливает для PulseMerker0 значение "0".

4 На 4-ом цикле при оставшихся с предыдущего цикла сканирования значениях текущего RLO и сигнала меркера фронта FrontMerker0 CPU оставляет для PulseMerker0 значение "0", а для меркера фронта FrontMerker0 значение "1".

На 5-ом цикле сканирования состояние входа Input0 изменяется с "1" на "0".

CPU обнаруживает это изменение и изменяет состояние меркера фронта FrontMerker0 с "1" на "0". При этом не изменяется значение PulseMerker (PulseMerker0 остается равным "0"). Таким образом, восстановлено исходное состояние рассматриваемых битов.

Автоматизация посредством STEP с использованием STL и SCL 5.4.2 Отрицательный фронт сигнала CPU определяет отрицательный (убывающий) фронт сигнал, когда до начала выполнения функции проверки наличия фронта результат логической операции изменяется от уровня "1" к уровню "0". Процесс обработки сигналов На на нижней половине рис. 5.3 показана следующая последовательность Сначала состояния входа Input1 и меркера фронта FrontMerker соответствуют уровню "0". Меркер импульса PulseMerker1 также сброшен, т.е.

уровень его сигнала равен "0".

На 2-ом цикле сканирования состояние входа Input1 изменяется с "0" на "1".

CPU обнаруживает это изменение при сравнении текущего значения RLO с состоянием меркера фронта FrontMerker1. Если Input1 равен "1", а меркер фронта равен "0", то меркер фронта устанавливается (становится равным "1"). PulseMerker1 остается равным "0".

На 3-ем цикле сканирования пока нет разницы между значениями уровней Input1 и FrontMerker1, PulseMerker1 сохраняет значение "0", а меркер фронта FrontMerker1 имеет состояние "1".

На 4-ом цикле состояние входа Input1 изменяется с "1" на "0". Обнаружив это, CPU изменяет состояние меркера фронта FrontMerker1 с "1" на "0" и устанавливает для PulseMerker1 значение "1".

На 5-ом цикле сканирования не изменяется состояние Input1 и FrontMerker1.

CPU устанавливает значение "0" для PulseMerker1. Таким образом, восстановлено исходное состояние битов.

5.4.3 Проверка меркера импульса Наблюдение за состоянием меркеров импульсов (pulse memory bits) с помощью средств тестирования (тест-функций) программатора PG является трудной задачей, так как эти меркеры остаются в установленном состоянии (состояние сигнала "1") в течение только одного цикла сканирования Выход также не подходит для такой роли как меркер импульса, так как усилители сигнала выходного модуля или приводы не способны достаточно быстро реагировать на изменения входного сигнала.

С помощью "схемы быстрого перезапуска" ("flying restart circuit"), тем не менее, Вы можете записывать чрезвычайно короткие изменения сигналов меркеров импульсов, используя RS-триггер. Меркер импульса устанавливает RS-триггер, тем самым фиксируя факт прихода фронта сигнала, т.е. RSтриггер запоминает сигнал "Фронт сигнала обнаружен". После проверки этого сигнала Вы можете "сбросить" триггер.

5. Операции с памятью Таким образом, после проверки "сохраненного фронта" Вы можете вновь 5.4.4 Проверка наличия фронта в двоичной логической операции Проверка наличия фронта в двоичной логической операции может служить для решения практической задачи, если Вы используете сигнал, полученный в результате проверки ("импульс") для управления таймером, счетчиком или операцией с памятью. Двоичные операции проверки могут располагаться между операцией проверки наличия фронта и запускаемой функцией.

В примере выход Output15 устанавливается в момент, когда выполняется ORИЛИ-) условие (когда бит в OR- [ИЛИ-] выражении переходит от состояния "0" к состоянию "1") и вход Input5 установлен (равен "1"). Выход Output сбрасывается в момент, когда приходит отрицательный фронт на вход Input6.

Функция проверки наличия фронта сигнала является "первичным опросом" ("first check"), так как результат логической операции RLO, который генерируется функцией, может быть использован для последующей обработки. Это также означает, что логическая операция до момента начала проверки наличия фронта считается "завершенной" ("completed") (выполненное OR- [ИЛИ-] условие не сохранено). Функция проверки наличия фронта сигнала не влияет на обработку вложенных инструкций.

5.4.5 Двоичный делитель (Binary Scaler) Двоичный делитель (Binary Scaler) имеет один вход и один выход. Если сигнал на входе двоичного делителя меняет свое состояние, например, с состояния "0" на состояние "1", то выходной сигнал также будет менять свое состояние в соответствии с рис. 5.4.

Рис. 5.4 Схема, поясняющая принцип работы двоичного делителя Автоматизация посредством STEP с использованием STL и SCL В нашем примере новое состояние выходной сигнал сохраняет до появления нового положительного фронта сигнала на входе делителя. Только при этом условии выходной сигнал делителя изменяет свое состояние. Это означает, что в этом случае частота выходного сигнала составляет половину частоты переменного входного сигнала.

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

В нижеследующей программе для первого варианта приняты обозначения:

EMembit - меркер фронта, PMembit - меркер импульса.

Второе решение использует условный переход JCN для проверки наличия фронта. Если CPU не обнаруживает фронта сигнала, RLO имеет значение"0" и сканирование программы продолжается с метки перехода.

В случае обнаружения положительного фронта сигнала CPU не выполняет переход к метке, а выполняет следующие два выражения. Здесь, если выход был сброшен (имел состояние "0"), то он устанавливается (получает уровень "1"), если выход был установлен (имел состояние "1"), то он сбрасывается (получает уровень "0). Хотя оператор присвоения управляет выходом, эти последние операторы как бы обладают "свойством запоминания", так как выполняются только при обнаружении положительного фронта сигнала.

5. Операции с памятью 5.5 Пример системы управления ленточным конвейером Очень простая система управления ленточным конвейером используется в этом разделе в качестве примера для демонстрации двоичных логических операций и операций с памятью для входов, выходов и меркеров.

Описание функций Детали должны переноситься лентой конвейера; один поддон на ленте.

Особые характеристики представлены ниже:

• Если на ленте конвейера нет деталей, контроллер сообщает об этом с помощью сигнала "readyload" ("готов к загрузке").

• Сигнал "Start" ("запуск") включает движение ленты конвейера для • Если на оконечном участке конвейера датчик "end-of-belt" ("конец конвейера"), например, фотоэлемент, обнаруживает присутствие деталей, то контроллер сообщает об этом сигналом "ready_rem" ("готов к выгрузке") и останавливает мотор транспортера конвейера.

• По сигналу "Continue" ("продолжить") лента конвейера с деталями продолжает движение, пока датчик "end-of-belt" ("конец конвейера") не Функциональная блок-схема системы управления ленточным конвейером показана на рис. 5.5. В примере запрограммированы входы, выходы и меркеры. Он может быть загружен в любое место любого блока. В примере функция без функционального значения была выбрана в качестве блока.

В главе 19 "Параметры блока" такой же пример запрограммирован в функциональном блоке с параметрами; функциональный блок может вызываться многократно (в том числе для нескольких ленточных конвейеров).

Сигналы и символы дополнительных сигналов:

устанавливает контроллер в исходное состояние.

активирует движение ленты транспортера, несмотря ни на какие условия.

останавливает движение ленты транспортера, как только появляется сигнал "0" (датчик в виде нормальнозамкнутого контакта, "zero active" обеспечивает сигнал о достижении деталью конца транспортера.

аварийный сигнал от двигателя привода транспортера (например, предохранительный выключатель двигателя); конструкция датчика "zero active" ("активный ноль") обеспечивает аварийный сигнал также и при других видах сбоев, таких, например, как обрыв провода (датчика).

Автоматизация посредством STEP с использованием STL и SCL Start Light_barrier1 >= Basic_st Light_barrier1 >= Basic_st Рис. 5.5 Пример системы управления ленточным конвейером Если необходимо использовать символьную адресацию, т.е. адресацию посредством символьных имен (символов), то необходимо сгенерировать таблицу символов Symbol Table (см. табл. 5.1) до момента компиляции или инкрементного ввода программы. Эта таблица должна содержать используемые в программе входы, выходы, меркеры и блоки.

5. Операции с памятью Таблица 5.1 Таблица символов Symbol Table для примера системы управления ленточным конвейером Symbol (Символ) Address (Адрес) Data Type (Тип) Comment (Комментарий) Программа Пример программы для системы управления ленточным конвейером расположен в функции без параметров. Эту функцию можно вызывать, например, в организационном блоке OB1 следующим образом:

Ниже на рис. 5.6 представлен исходный текст программы с символьной адресацией для нашего примера системы управления конвейером.

Автоматизация посредством STEP с использованием STL и SCL FUNCTION Belt_control : VOID TITLE = Control of a conveyor belt //Пример двоичных логических операций и операций с памятью (без параметров) AUTHOR : Berger FAMILY : STL_Book VERSION : 01. BEGIN

NETWORK

TITLE = Load parts //В этом сегменте выполняется команда "Load", которая начинает перенос //деталей транспортером O Light_barrier1; //Детали достигают конца ленты ON "/Mfault1"; //Предохранительный выключатель мотора

NETWORK

TITLE = Parts ready for removal //Когда детали достигли конца конвейера, они могут быть сняты

NETWORK

TITLE = Remove parts //Команда "Remove" инициирует снятие деталей с транспортера A Continue; //Включатель реверса конвейера ON Light_barrier1; //Детали сняты с ленты ON "/Mfault1"; //Предохранительный выключатель мотора

NETWORK

TITLE = Belt ready for loading //Когда детали сняты с конвейера, можно поставить на ленту новые

NETWORK

TITLE = Control belt motor //Двигатель привода включается и выключается в данном сегменте O Man_on; //Запуск с помощью "Man_on" (без реманентности) (см. продолжение программы на следующей странице) 5. Операции с памятью ON "/Mfault1"; //Предохранительный выключатель мотора

NETWORK

TITLE = Block end

END_FUNCTION

Рис. 5.6 Пример программы для системы управления ленточным конвейером Глобальные символы могут также использоваться без кавычек (без апострофа), если они не содержат специальных символов. Если же символ (символьное имя) содержит специальный символ (например, пробел [space]), то такое имя должно быть заключено в кавычки. В компилированных блоках редактор STL отображает все глобальные символы в кавычках.

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

Автоматизация посредством STEP с использованием STL и SCL 5 - 18 Automating with STEP 7 in STL and SCL Автоматизация посредством STEP 6 Функции пересылки данных (move functions) В данной главе рассматриваются функции для языка программирования STL, с помощью которых выполняются операции обмена данными с помощью аккумуляторов (регистров). К ним относятся следующие функции:

• Функции Load (функции загрузки данных в аккумулятор) Функции загрузки используются для загрузки данных в аккумуляторы для последующей обработки (выполнение функций обработки чисел - "digital functions" - операций сравнения, арифметических операций и т.д.) • Функции Transfer (функции выгрузки данных из аккумулятора) Функции выгрузки используются для выгрузки численных результатов из аккумулятора accumulator1 в память CPU, например, в область меркеров.

• Accumulator functions (функции аккумуляторов) Функции аккумулятора в другой или перемещать информацию внутри аккумулятора Функции Load (функции загрузки данных в аккумулятор) Вам также могут потребоваться для задания начальных значений для таймеров и счетчиков или для обработки текущих значений таймеров и счетчиков.

Системные функции SFC 20 BLKMOV, SFC 81 UBLKMOV и SFC 21 FILL используются для копирования больших объемов информации в памяти или Функции Load (функции загрузки данных в аккумулятор) и функции Transfer (функции выгрузки данных из аккумулятора) также могут потребоваться для адресации модулей с использованием области данных пользователя; если для адресации модулей Вы используете область системных данных, Вы должны использовать системные функции для передачи записей данных.

Эти системные функции также можно использовать для параметризации Примеры для этой главы Вы найдете на прилагаемой дискете в библиотеке STL_Book в разделе "Basic Functions" в функциональном блоке FB 106 или в 6.1 Общие замечания по поводу операций загрузки и выгрузки данных Функции Load (функции загрузки данных в аккумулятор) и функции Transfer (функции выгрузки данных из аккумулятора) позволяют производить обмен между различными областями памяти. Такой обмен данными не может производиться непосредственно, а только с использованием аккумулятора Автоматизация посредством STEP с использованием STL и SCL accumulator 1. Аккумулятор - это специальный регистр в процессоре, который выполняет функции промежуточного буфера.

Во время обмена информацией направление, в котором происходит передача данных, указывается в используемой для передачи инструкции. Данные, направляемые из памяти в аккумулятор accumulator 1, называются загружаемыми (loading), тогда как данные, пересылаемые в обратном направлении, называются выгружаемыми (transferring) (содержимое аккумулятора "выгружается" ["transferred"] в область памяти).

Операции загрузки данных в аккумулятор и выгрузки данных из аккумулятора являются предопределенными операциями для выполнения функций обработки чисел (digital functions), с помощью которых осуществляется управление численными значениями (digital value) (например, операция сдвига или преобразования) или комбинирование двух чисел (например, операция сложения или сравнения). Для одновременной обработки двух численных значений требуются два промежуточных буфера. В роли таких буферов выступают аккумулятор accumulator 1 и аккумулятор accumulator 2.

Все CPU имеют такие специальные регистры. Кроме того, S7-400 CPU имеют два дополительных промежуточных буфера - аккумулятор accumulator 3 и аккумулятор accumulator 4, которые используются преимущественно в арифметических операциях.

Несколько функций, называемых функциями аккумуляторов (accumulator functions), используются для копирования содержимого одного аккумулятора На рис. 6.1 графически показаны соотношения между функциями пересылки данных и области их применения.

Функции загрузки (load) пересылают информацию из системной памяти (system memory), рабочей памяти (work memory) и периферии (I/O) в аккумулятор accumulator 1, смещая при этом "старое" (точнее сказать, "текущее") значение аккумулятора accumulator 1 в аккумулятор accumulator 2.

Функции обработки чисел (digital functions) позволяют управлять содержимым аккумулятора accumulator 1 или комбинировать численные значения, содержащиеся в аккумуляторах accumulator 1 и accumulator 2, с последующей записью результата в аккумулятор accumulator 1.

Функции аккумуляторов (accumulator functions) позволяют получить доступ к содержимому всех аккумуляторов. Источником для пересылки (transfer) информации в системную память (system memory), рабочую память (work memory) и в периферию (I/O) может служить лишь только аккумулятор accumulator 1.

Каждый аккумулятор содержит 32 разряда, тогда как все области памяти имеют байтовую структуру (byte-oriented). Обмен информацией между областями памяти и аккумулятором accumulator 1 может происходить побайтно, по 1 машинному слову и по 1 двойному машинному слову.

В данной главе функции Load (функции загрузки данных в аккумулятор) и функции Transfer (функции выгрузки данных из аккумулятора) обсуждаются в применении к адресным областям входов, выходов, меркеров, периферии (I/O) и для загрузки констант.

6. Функции пересылки данных Функции выгрузки Функции обработки чисел (Transfer functions) (Digital functions) Таблицы входов и Слово состояния Рис. 6.1 Области памяти для функций загрузки и выгрузки данных Автоматизация посредством STEP с использованием STL и SCL Функции Load (функции загрузки данных в аккумулятор) и функции Transfer (функции выгрузки данных из аккумулятора) могут быть также применены со следующими адресными областями:

• области таймеров и счетчиков (глава 7 "Функции таймеров", глава 8 "Функции счетчиков") • области временных локальных данных (L-стек, раздел 18.1.5 "Временные локальные данные") • области адресов данных, длина и число блоков данных (глава 18.2 "Функции для блоков данных") • адресные регистры и указатели (глава 25 "Косвенная адресация") (глава 26 "Прямой доступ к переменным") 6.2 Функции Load (функции загрузки данных в аккумулятор) 6.2.1 Общее представление о функциях загрузки Load Функция загрузки состоит из оператора L (код операции загрузки) и константы, переменной или адреса с идентификатором адреса, содержимое которого функция будет загружать в аккумулятор accumulator 1.

CPU выполняет функцию загрузки независимо от результата логической операции RLO и битов состояния. Функция загрузки не влияет на результат логической операции и не влияет на биты состояния.

Влияние на аккумулятор accumulator Функция Load (функция загрузки данных в аккумулятор) влияет на содержимое аккумулятора accumulator 2. В то время как значение адреса, константы или переменной, определенное в операторе загрузки загружается в аккумулятор accumulator 1, текущее содержимое аккумулятора accumulator 1 пересылается в аккумулятор accumulator 2. Функция загрузки Load полностью пересылает содержимое аккумулятора accumulator 1 в аккумулятор accumulator 2. Предыдущее содержимое аккумулятора accumulator 2 при этом теряется.

При использовании S7-400 CPU функция загрузки данных не влияет на содержимое аккумуляторов accumulator 3 и accumulator 4.

6. Функции пересылки данных Общая информация об операции загрузки Адрес числа, определенный в функции загрузки Load, может иметь размер байта (byte), слова (word) или двойного слова (duoble word) (см. рис. 6.2).

Операнды (адреса) функции загрузки Load Операнды (адреса) функции выгрузки Transfer Рис. 6.2 Загрузка и выгрузка байтов, слов, двойных слов Загрузка байта При загрузке байта его содержимое считывается в аккумулятор accumulator с выравниванием вправо. Неиспользуемые байты заполняются нулями.

Загрузка слова При загрузке слова его содержимое считывается в аккумулятор accumulator с выравниванием вправо. При этом старший байт слова (n+1) располагается в аккумуляторе с выравниванием вправо, тогда как младший байт слова (n) располагается в аккумуляторе вплотную слева от байта (n+1).

Неиспользуемые байты заполняются нулями.

Загрузка двойного слова При загрузке двойного слова его содержимое считывается в аккумулятор accumulator 1 с выравниванием вправо. При этом младший байт двойного Автоматизация посредством STEP с использованием STL и SCL слова (n) занимает крайний левый байт аккумулятора, а самый старший байт двойного слова (байт n+3) занимает крайний правый байт аккумулятора.

6.2.2 Загрузка в аккумулятор из памяти Загрузка данных из области входов В некоторых типах CPU загрузка данных от входов разрешена, только если к соответствующим входным модулям имеется доступ (см. разд. 1.5. "Отображение процесса").

Загрузка данных из области выходов В некоторых типах CPU загрузка данных от выходов разрешена, только если к соответствующим выходным модулям имеется доступ (см. разд. 1.5. "Отображение процесса").

Загрузка данных из периферии (I/O) L PIB n Загрузка данных из периферийного входного байта L PIW n Загрузка данных из периферийного входного слова L PID n Загрузка данных из периферийного входного двойного слова При загрузке данных от области I/O входные модули адресуются как периферийные входы (PI). При этом доступны только существующие входные Надо отметить, что при непосредственной загрузке данных от I/O модуля пересылаемое значение может отличаться от значения, загружаемого из области входов образа процесса с тем же адресом, так как эти значения одинаковы лишь в начале цикла сканирования программы (когда CPU обновляет отображение процесса). Непосредственная же загрузка данных от I/O модулей позволяет записать в аккумулятор "текущие" значения сигналов Загрузка данных из меркеров Загрузка данных из области меркеров всегда разрешена, так как такая область целиком расположена в CPU. Надо отметить, однако, что разные типы CPU могут иметь разные по размерам области меркеров.

6. Функции пересылки данных 6.2.3 Загрузка констант в аккумулятор Загрузка констант простых типов непосредственно в аккумулятор. При этом для улучшения читаемости программы Вы можете выбирать для констант подходящее представление, использовать различные форматы. В главе 3 "SIMATIC S7-программа" Вы можете найти обзор разрешенных форматов для констант. Все константы, которые могут быть загружены в аккумулятор являются константами простых L B#16#F1 Загрузка двухразрядного шестнадцатеричного числа В главе 24 "Типы данных" описывается назначение битов констант (показана Загрузка указателей Указатели - это специальная форма констант, которая используется для вычисления позиции в памяти. Вы можете загружать следующие указатели в Вы не сможете загрузить указатель DB (DB pointer) или указатель ANY (ANY pointer) в аккумулятор, так как длина этих указателей превышает 32 бита.

В главе 25 "Косвенная адресация" и в главе 26 "Прямой доступ к переменным" Вы найдете дополнительную информацию по данной теме.

6.3 Функции Transfer (функции выгрузки данных из аккумулятора) 6.3.1 Общее представление о функциях выгрузки Transfer Функция выгрузки состоит из оператора T (код операции выгрузки) и адреса в области памяти, по которому должны быть отправлены данные из аккумулятора accumulator 1.

Автоматизация посредством STEP с использованием STL и SCL CPU выполняет функцию выгрузки независимо от результата логической операции RLO и битов состояния. Функция выгрузки не влияет на результат логической операции и не влияет на биты состояния.

Функция выгрузки пересылает содержимое аккумулятора accumulator 1 по одному байту, или по одному слову, или по одному двойному слову в заданный адрес. При этом содержимое аккумулятора accumulator 1 остается неизменным, что делает возможным многократную пересылку данных из аккумулятора accumulator 1.

Функция выгрузки возможна только с помощью аккумулятора accumulator 1.

Если есть необходимость передать данные из другого аккумулятора, то Вы должны сначала передать эти данные в аккумулятор accumulator 1, используя функции аккумуляторов, и лишь затем переслать их с помощью функции выгрузки Transfer по требуемому адресу в память.

Общая информация об операции выгрузки Адрес числа, определенный в функции выгрузки Transfer, может иметь размер байта (byte), слова (word) или двойного слова (duoble word) (см. рис.

Выгрузка байта При выгрузке байта содержимое крайнего правого байта аккумулятора accumulator 1 пересылается в байт по указанному в выражении адресу.

Выгрузка слова При выгрузке слова содержимое крайнего правого слова аккумулятора accumulator 1 пересылается в слово по указанному в выражении адресу. При этом содержимое старшего байта слова (n+1) в аккумуляторе переносится в слово назначения, где заполняет старший байт (n+1), тогда как младший байт слова (n) в аккумуляторе переносится в слово назначения, где заполняет Выгрузка двойного слова При выгрузке двойного слова его содержимое считывается из аккумулятора accumulator 1 пересылается в двойное слово по указанному в выражении адресу. При этом содержимое младшего байта двойного слова (n) из аккумулятора занимает младший байт (n) двойного слова назначения, а самый старший байт двойного слова (n+3) из аккумулятора занимает самый старший байт двойного слова назначения (n+3).

6.3.2 Выгрузка данных из аккумулятора в различные области памяти Выгрузка данных во входы В некоторых типах CPU выгрузка данных в входы разрешена, только если к соответствующим входным модулям имеется доступ (см. разд. 1.5. "Отображение процесса").

6. Функции пересылки данных Пересылка во входы влияет только на биты в области отображения процесса, также как и операции установки и сброса этих битов (входов "inputs").

Возможное применение для таких операций заключается в инициализации значений входов в целях отладки или для запуска с определенными начальными значениями: если Вы запускаете программу на выполнение с заданными значениями входов, то программа начинает выполняться именно с заданными Вами новыми значениями, а не со значениями, полученными от Выгрузка данных в выходы В некоторых типах CPU выгрузка данных в выходы разрешена, только если к соответствующим выходным модулям имеется доступ (см. разд. 1.5. "Отображение процесса").

Выгрузка данных в периферийные выходы При выгрузке данных в область I/O выходные модули адресуются как периферийные выходы (PQ). При этом доступны только существующие Надо отметить, что при непосредственной выгрузке данных в область I/O выходных модулей, связанных с таблицей выходов образа процесса, данные в этой таблице обновляются, ибо нет никакой разницы (в рассматриваемом контексте) между выходом (из области отображения процесса) и периферийным выходом с одинаковым адресом.

Выгрузка данных в область меркеров Выгрузка данных в область меркеров всегда разрешена, так как такая область целиком расположена в CPU. Надо отметить, однако, что разные типы CPU могут иметь разные по размерам области меркеров.

6.4 Функции аккумуляторов (Accumulator Functions) Функции аккумуляторов (Accumulator Functions) позволяют пересылать значения из одного аккумулятора в другой или перемещать байты внутри аккумулятора accumulator 1. На выполнение функций аккумуляторов не влияют ни результат логической операции RLO ни биты состояния. Также и результат выполнения этих функций не оказывает влияния ни на RLO, ни на Автоматизация посредством STEP с использованием STL и SCL 6.4.1 Прямая пересылка данных между аккумуляторами Первые три функции PUSH, POP и TAK используются в CPU, имеющих только два аккумулятора (S7-300 CPU). Все пять функций используются в CPU, имеющих четыре аккумулятора (S7-400 CPU). Схематически выполнение перечисленных выше функций показано на рис. 6.3.

Содержимое аккумуляторов после выполнения операций:

TAK PUSH POP ENT LEAVE

Accumulator 4 Accumulator 4 Accumulator 3 Accumulator 4 Accumulator 3 Accumulator Accumulator 3 Accumulator 3 Accumulator 2 Accumulator 4 Accumulator 2 Accumulator Accumulator 2 Accumulator 1 Accumulator 1 Accumulator 3 Accumulator 2 Accumulator Accumulator 1 Accumulator 2 Accumulator 1 Accumulator 2 Accumulator 1 Accumulator Функции, применяемые в S7-300 (за исключением CPU 318) Рис. 6.3 Прямая пересылка данных между аккумуляторами в CPU S7-300 и S7- PUSH Функция PUSH вызывает сдвиг содержимого аккумуляторов вдоль цепочки accumulator 1, accumulator 2, accumulator 3 и accumulator 4. При этом происходит перемещение данных из аккумулятора accumulator 3 в accumulator 4, данных из аккумулятора accumulator 2 в accumulator 3 и копирование данных из аккумулятора accumulator 1 в accumulator (содержимое аккумулятора accumulator 1 остается неизменным).

6. Функции пересылки данных Таким образом, Вы можете использовать функцию PUSH для внесения одного и того же значения в несколько аккумуляторов.

POP Функция POP вызывает сдвиг содержимого вдоль цепочки аккумуляторов accumulator 4, accumulator 3, accumulator 2 и accumulator 1. При этом происходит перемещение данных из аккумулятора accumulator 4 в accumulator 3, данных из аккумулятора accumulator 3 в accumulator 2 и данных из аккумулятора accumulator 2 в accumulator 1 (содержимое аккумулятора accumulator 4 при этом остается неизменным).

Таким образом, Вы можете использовать функцию POP для переноса значений из аккумуляторов accumulator 4, accumulator 3 и accumulator 2 в accumulator 1, откуда эти значения могут быть пересланы в память в TAK Функция TAK вызывает обмен содержимым между аккумуляторами accumulator 1 и accumulator 2. При этом содержимое аккумуляторов accumulator 3 и accumulator 4 остается неизменным.

ENT Функция ENT вызывает сдвиг содержимого аккумуляторов вдоль цепочки accumulator 2, accumulator 3 и accumulator 4. При этом происходит перемещение данных из аккумулятора accumulator 3 в accumulator 4 и копирование данных из аккумулятора accumulator 2 в accumulator 3. При этом содержимое аккумуляторов accumulator 1 и accumulator 2 остается Если сразу за функцией ENT следует функция загрузки Load, то последняя вызывает вызывает сдвиг содержимого аккумуляторов вдоль цепочки accumulator 1, accumulator 2, accumulator 3 и accumulator 4 (аналогично функции PUSH); при этом новое значение будет располагаться в аккумуляторе accumulator 1.

LEAVE Функция LEAVE вызывает сдвиг содержимого аккумуляторов вдоль цепочки accumulator 4, accumulator 3 и accumulator 2. При этом происходит перемещение данных из аккумулятора accumulator 3 в accumulator 2 и копирование данных из аккумулятора accumulator 4 в accumulator 3. При этом содержимое аккумуляторов accumulator 4 и accumulator 1 остается Арифметические функции используют функцию LEAVE. Используя данную функцию Вы можете также смоделировать некоторые функциональные возможности других логических операций (например, в логических операциях с операндами формата слова [Word]).

Будучи записанной после логической операции с числами (digital logic operation), функция LEAVE помещает содержимое аккумуляторов accumulator 4 и accumulator 3 соответственно в аккумуляторы accumulator 3 и accumulator 2. При этом результат логической операции с числами (digital logic operation) остается неизменным в аккумуляторе accumulator 1.

Автоматизация посредством STEP с использованием STL и SCL 6.5 Функции обмена байтами в аккумуляторе accumulator Функция CAW меняет местами два байта в младшем слове в аккумуляторе accumulator 1. При этом байты старшего слова аккумулятора остаются Функция CAD меняет местами все байты в аккумуляторе accumulator 1. При этом самый старший байт становится самым младшим по номеру, а средние два байта меняются местами.

Схематически результат выполнения перечисленных выше функций показано Рис. 6.4. Обмен байтов местами в аккумулятре accumulator 6.6 Системные функции для пересылки данных Системная функция копирования области данных Системная функция вставки данных в область назначения Системная функция непрерывного копирования области данных 6. Функции пересылки данных Каждая из этих системных функций имеет два параметра типа ANY (см. табл.

6.1). Теоретически каждый из этих параметров может определять произвольный адрес, переменную или абсолютный адрес в памяти.

Таблица 6.1 Параметры для системных функций SFC 20, 21 и SFC

BLK OUTPUT ANY

Если Вы определяете переменную сложного типа, она должна быть определена целиком ("complete variable"); поэтому компоненты переменной (например, отдельные компоненты массива или структуры) не допускаются (как параметры). Для абсолютной адресации Вы можете использовать указатель ANY; такие указатели рассматриваются в разделе 25.1 "Указатели".

Вы можете также использовать функции для копирования отдельных переменных типа STRING. Тем не менее, в этом случае редактор STLпрограмм и редактор SCL-программ ведут себя по-разному (см. разд. 6.6. "Копирование переменных типа STRING").

Если Вы используете временные локальные данные в виде фактического параметра блока типа ANY, редактор принимает такой параметр, как параметр со структурой указателя ANY. В таком случае Вы можете создать указатель ANY на временные локальные данные, которые могут быть изменены во время работы программы, что означает, что Вы можете создать "область переменной" ("variable area"). В главе 26 "Прямой доступ к переменным" показано, как использовать такие "указатели ANY переменной".

6.6.1 Копирование области данных Системная функция SFC 20 BLKMOV позволяет выполнить копирование содержания области данных в направлении возрастания (инкрементного) их адресов (параметр SRCBLK) в область назначения (параметр DSTBLK).

Автоматизация посредством STEP с использованием STL и SCL При этом могут быть определены следующие фактические параметры:

• любые переменные из адресных областей входов (I), выходов (Q), меркеров (M) и блоков данных (переменные блоков глобальных данных и экземплярных блоков данных), • переменные из области временных локальных данных (особо для данных • области данных с абсолютной адресацией посредством указателя ANY.

Используя функцию SFC 20 BLKMOV Вы не можете копировать значения таймеров и счетчиков или передавать информацию как из модулей, так и в модули (область I/O), а также с помощью этой функции нельзя передавть информацию из/в системные блоки данных (SDB).

Что касается входов и выходов (области образа процесса), заданные области могут копироваться вне зависимости от того, определены ли здесь адреса входных или выходных модулей. Вы можете также определить переменную или адрес области в блоке данных в загрузочной (load) памяти (блок данных с ключевым словом UNLINKED [несвязанный]).

При использовании функции SFC 20 BLKMOV область-источник и областьприемник не должны перекрываться. Если область-источник и областьприемник имеют разную длину, то наименьшая по размеру из них будет определять объем данных, переданный в область-приемник.

Пример: Переменная Frame (например, структурированная переменная пользовательского типа) в блоке данных "Rec_mailb" должна быть скопирована в переменную Frame1 (такого же типа как и переменная Frame) в блоке данных "Buffer". Значение функции должно быть введено в переменную Copyerror в блоке данных "Evaluation".

RET_VAL := Evaluation.Copyerror, 6.6.2 Непрерывное копирование из области данных Системная функция SFC 81 UBLKMOV позволяет копировать содержимое исходной области данных (параметр SRCBLK) в область назначения (параметр DSTBLK) в направлении возрастания (инкрементного) адресов данных. Операция копирования не может прерываться, поэтому в соответствующих условиях время ожидания обработки прерывания может возрастать. Объем копируемых данных может достигать 512 байт.

Для этой функции могут быть определены следующие фактические • любые переменные из адресных областей входов (I), выходов (Q), меркеров (M) и блоков данных (переменные блоков глобальных данных и экземплярных блоков данных), 6. Функции пересылки данных • переменные из области временных локальных данных (особо для данных • области данных с абсолютной адресацией посредством указателя ANY.

Используя функцию SFC 81 BLKMOV Вы не можете копировать значения таймеров и счетчиков или передавать информацию как из модулей, так и в модули (область I/O). Также с помощью этой функции нельзя передавть информацию из/в системные блоки данных (SDB) и из/в блоки данных в загрузочной (load) памяти (блок данных с ключевым словом UNLINKED Что касается входов и выходов (области образа процесса), заданные области могут копироваться вне зависимости от того, определены ли здесь адреса входных или выходных модулей.

При использовании функции SFC 81 BLKMOV область-источник и областьприемник не должны перекрываться. Если область-источник и областьприемник имеют разную длину, то наименьшая по размеру из них будет определять объем данных, переданный в область-приемник.

Пример: Из блока данных "Buffer" первый компонент массива Data должен быть скопирован в переменную Frame в блоке данных "Send_mailb". Значение функции должно быть сохранено в переменной Copyerror в блоке данных

CALL UBLKMOV (

6.6.3 Вставка данных в область назначения Системная функция SFC 21 FILL позволяет копировать содержимое исходной области данных (параметр BVAL) в область назначения (параметр BLK) в направлении возрастания (инкрементного) адресов данных. Операция копирования продолжается до полного заполнения области назначения (при условии превышения размера области назначения над областью-источником возможно многократное копирование исходных данных).

Для этой функции могут быть определены следующие фактические • любые переменные из адресных областей входов (I), выходов (Q), меркеров (M) и блоков данных (переменные блоков глобальных данных и • переменные из области временных локальных данных (особо для данных • области данных с абсолютной адресацией посредством указателя ANY.

Автоматизация посредством STEP с использованием STL и SCL Используя функцию SFC 21 FILL Вы не можете копировать значения таймеров и счетчиков или передавать информацию как из модулей, так и в модули (область I/O). Также с помощью этой функции нельзя передавть информацию из/в системные блоки данных (SDB).

Что касается входов и выходов (области образа процесса), заданные области могут копироваться вне зависимости от того, определены ли здесь адреса входных или выходных модулей.

При использовании функции SFC 21 FILL область-источник и областьприемник не должны перекрываться. Если область-источник больше областиприемника, то объем данных, переданный в область-приемник будет соответствовать размеру последнего; если же область-источник меньше области-приемника, то в область-приемник будут записываться (возможно многократно) копируемые данные до его полного заполнения (даже, если размеры рассматриваемых областей не кратны друг другу).

Пример: Блок данных DB 13 содержит 128 байт. Необходимо скопировать во все эти байты содержимое байта меркеров MB 80.

6.6.4 Копирование переменных типа STRING Вы можете копировать отдельные переменные типа STRING с использованием системных функций SFC 20 BLKMOV и SFC 81 UBLKMOV.

Редакторы STL-программ и SCL-программ ведут себя по-разному при этом.

Редактор STL-программ обрабатывает переменную типа STRING как массив байтов, так что SFC передает отдельные байты один к одному (включая два первые байта со спецификацией размера). Если, например, Вы пересылаете массив байтов в переменную типа STRING, то Вы должны задать правильную длину в первых двух байтах STRING-переменной ("length bytes") в соответствии с передаваемым массивом.

Редактор SCL-программ записывает переменную типа STRING в указатель ANY. При этом SFC передает только соответствующие позиции символов строки STRING-переменной. Если STRING-переменная является областью назначения, то при необходимости фактическая длина ее корректируется.

Таким образом Вы можете, например, легко пересылать STRING-переменную в массив данных типа CHAR и наоборот.

Тем не менее, оба редактора - и для STL-программ, и для SCL-программ копируют STRING-переменную в другую STRING-переменную вполне 7 Функции таймеров (Timer Functions) Функции таймеров используются для управления по времени, например, для обеспечения заданного времени ожидания (waiting) или мониторинга (monitoring time), для измерения отрезков времени или для генерации В данной главе рассматриваются выражения, содержащие функции таймеров для использования в языке программирования STL. Для языка SCL функции таймеров включены в состав стандартных функций (см. разд. 30.1 "Функции таймеров" ["Timer Functions"]).

Пользователю доступны следующие типы таймеров:

• Таймер с управляемым импульсом (Pulse timer) • Таймер с расширенным импульсом (Extended pulse timer) • Таймер с задержкой включения (On-delay timer) • Таймер с задержкой включения с памятью (Retentive On-delay timer) • Таймер с задержкой выключения (Off-delay timer) При запуске таймера Вы можете задавать динамические характеристики (dynamic response), длительность (duration), длительность задержки запуска/выключения таймера. Вы также можете выключить или включить функцию перезапуска ("retrigger") таймеров. Для опроса таймеров используются двоичные логические операции. Функции загрузки (Load) используются для пересылки текущего значения времени в двоичном или BCD-коде в аккумулятор accumulator 1.

Примеры, рассматриваемые в данной главе, и вызовы IEC-таймеров Вы можете найти на прилагаемой дискете в библиотеке STL_Book library в разделе "Basic Functions" в функциональном блоке FB 107 или в исходном Автоматизация посредством STEP с использованием STL и SCL 7.1 Программирование функций таймеров 7.1.1 Запуск таймера Таймер запускается (т.е. начинает выполняться функция таймера), если перед переходом CPU к инструкции запуска таймера произошло изменение значения результата логической операции RLO. При этом для таймера с задержкой выключения ("Off-delay timer") RLO должен изменить свое состояние со значения "1" на "0", а для всех остальных типов таймеров RLO должен изменить свое состояние со значения "0" на "1".

Вы можете запустить на выполнение любой из пяти возможных таймеров (см.

Таймер с управляемым (импульсный) (Pulse timer) Таймер с расширенным (Extended pulse timer) Таймер с задержкой (On-delay timer) Таймер с задержкой (Retentive on-delay timer) Таймер с задержкой (Off-delay timer) Рис. 7.1 Инструкции запуска для таймеров 7.1.2 Задание временных параметров таймера При запуске таймера из аккумулятора accumulator 1 выбирается время запуска (running time) или длительность работы (duration). Как и когда в accumulator 1 поступают временные параметры таймера не имеет значения.

Для обеспечения лучшей читаемости программы наилучшим будет вариант, когда эти параметры загружаются в аккумулятор accumulator непосредственно перед запуском функции таймера или в виде константы (непосредственно заданная величина), или в виде переменной (например, слово в памяти, содержащее значение).

7. Функции таймеров аккумулятор accumulator 1 должен содержать корректное значение, даже если отсчет времени не начинается при выполнении инструкции запуска.

Определение длительности работы (импульса) таймера с помощью константы В базовых языках STL, LAD и FBD параметры "время запуска" (running time) и "длительность работы (импульса)" (duration) может быть определены в часах, минутах, секундах и миллисекундах. Диапазон задания временных параметров простирается от S5TIME#10ms до S5TIME#2h46m30s (что соответствует диапазону времени, равному 9990 с). При этом Вы можете использовать как формат S5TIME#, так и формат S5T# для определения временных параметров с помощью константы.

Определение длительности работы (импульса) таймера с помощью переменной Структура параметра "длительность работы (импульса) таймера" (duration) Внутренняя структура временного параметра "длительность работы (импульса)" ("duration") состоит из "значения времени" ("time value") и "временной базы" ("time base"). Длительность работы (импульса) таймера равна произведению этих величин:

"длительность работы (импульса)" = "значение времени" "временная база".

Длительность работы (импульса) таймера - это период времени, в течение которого таймер находится в активном состоянии ("timer running"). Значение времени ("time value") представляет собой число отрезков времени в сумме дающих полный период времени, в течение которого таймер должен находиться в активном состоянии ("timer running"). Величина такого отрезка времени равна значению "временной базы" ("time base") и является величиной шага по времени, которая используется операционной системой CPU для "декрементирования" таймера (рис. 7.2).

7.2 Назначение битов параметра "длительность работы" ("duration") Автоматизация посредством STEP с использованием STL и SCL Вы можете непосредственно задать параметр "длительность работы" ("duration") в машинном слове. Наименьшее возможное значение для "временной базы" ("time base") обеспечивает более точное исчисление промежутков времени с помощью таймера. Например, если необходимо задать для таймера отрезок времени, равный 1 с, то можно при этом использовать одно из трех значений для "временной базы" ("time base") и, соответственно, для каждого из этих значений Вы получите свое значение длительности работы функции таймера (фактически, значение функции "Временная база" ("time base") = 1 с; "Длительность работы" ("duration") = 2001hex "Временная база" ("time base") = 100 мс; "Длительность работы" ("duration") = 1010 hex "Временная база" ("time base") = 10 мс; "Длительность работы" ("duration") = 0100 hex Последний из трех вариантов является предпочтительным для данного При запуске таймера CPU использует заданное значение времени ("time value") как период времени, в течение которого таймер находится в активном состоянии ("timer running"). Операционная система обновляет таймеры через фиксированные интервалы времени независимо от процесса сканирования программы пользователя. То есть, CPU производит ступенчатое уменьшение значения функции таймера в соответствии с заданным значением для "временной базы" ("time base").

Когда значение функции таймера достигает уровня "0", это означает, что отсчитываемое таймером время истекло. При этом CPU изменяет состояние (статус) таймера (состояние сигнала в "0" или "1", в зависимости от выбранного типа таймера), при этом функция таймера перестает быть активной до следующего запуска таймера.

Если для функции таймера было задано значение времени ("time value"), равное нулю (0), то таймер остается активным, пока при обработке функции таймера CPU не обнаружит, что время заданное для таймера "истекло".

Таймеры обновляются асинхронно по отношению к процессу сканирования программы пользователя. Следовательно, возможно, что состояние таймера в начале цикла сканирования отличается от его состояния в конце цикла.

Если Вы используете функцию таймера только в одном месте программы и придерживаетесь нижеследующих рекомендаций, то не возникнет ошибок изза асинхронного обновления таймера в программе.

7.1.3 Сброс таймера (Resetting a timer) Следующая инструкция Таймер сбрасывается, при результате логической операции RLO, равном "1", при появлении вышеуказанной инструкции. Пока RLO равен "1", проверки таймера на состояние "1" возвращают результат проверки "0"; проверки таймера на состояние "0" возвращают результат проверки "1".

7. Функции таймеров Сброс таймера устанавливает для значения времени ("time value") и для "временной базы" ("time base") нулевые значения (0).

Сброс функции таймера не сбрасывает внутренний меркер фронта для запуска. Для повторного запуска CPU должен обработать инструкцию запуска таймера при RLO, равном "0", и только после этого при появлении фронта сигнала в соответствующем меркере фронта функция таймера сможет 7.1.4 Разблокировка таймера (Enabling a timer) Инструкция FR используется для перезапуска таймера, находящегося в активном состоянии (т.е., когда функция таймера находится в активном Таймер перезапускается, если инструкция FR обрабатывается при положительном (возрастающем) фронте сигнала. При этом внутренний меркер фронта сбрасывается для обеспечения возможности запуска таймера. Если после этого результат логической операции RLO становится равным "1" перед появлением вышеуказанной инструкции, то таймер запускается, даже если при этом не определяется фронт сигнала.

Сброс таймера вызывает изменение величин времени ("time value") и "временной базы" ("time base") на нулевые значения (0).

Данная инструкция разблокировки функции таймера не требуется для запуска или сброса таймера, т.е., инструкция не является необходимой для обычных 7.1.5 Проверка (опрос) таймера (Checking a timer) Проверка (опрос) состояния таймера Автоматизация посредством STEP с использованием STL и SCL ON Tn проверка сигнала на состояние "0" и комбинирование с RLO в XN Tn проверка сигнала на состояние "0" и комбинирование с RLO в Вы можете опрашивать таймер, как если бы это был, например, вход (input), и в дальнейшем использовать результат этой проверки. В зависимости от типа таймера проверка (опрос) сигнала на состояние "1" вызывает разное поведение сигнала (импульса) таймера во времени (см. далее описание динамических характеристик).

Как и в случае с опросом входа (input) проверка (опрос) сигнала на состояние "0" возвращает результат проверки таймера с точностью до наоборот по сравнению с опросом на состояние "1" - результат проверки инвертируется.

Проверка (опрос) значения таймера (time value) L Tn загружает двоичное значение времени ("time value") таймера, LC Tn загружает значение времени ("time value") таймера в двоичнодесятичном формате (BCD).

Функции загрузки L T и LC T считывают определенное значение времени ("time value") таймера и пересылают его в аккумулятор accumulator 1. При этом инструкция L загружает значение времени ("time value") в двоичном, а инструкция LC загружает значение времени таймера в двоично-десятичном формате. Значение времени ("time value") таймера, пересылаемое в аккумулятор accumulator 1, представляет собой текущее значение, соответствующее моменту времени, когда производится опрос таймера (если функция таймера находится в активном состоянии, то значение времени, которое загружается в аккумулятор, будет одним из значений, полученным CPU при декрементировании заданного исходного значения в сторону Непосредственная загрузка значения таймера (time value) Значение времени ("time value"), определенное с помощью инструкции таймера, имеет двоичный формат, и может быть переслано в аккумулятор accumulator 1 в этом же (двоичном) формате. В этом случае "временная база" ("time base") будет потеряна и на ее месте в аккумуляторе accumulator 1 будут Следовательно, в аккумуляторе будет значение, которое соответствует положительному целому (INT) числу и которое может быть обработано в дальнейшем с помощью, например, функций сравнения.

Это значение таймера не есть "заданная длительность работы" ("duration").

7. Функции таймеров Загрузка значения таймера (загрузка в формате BCD ["coded load"]) Вы можете также использовать инструкцию для т.н. "кодированной" пересылки ("coded load") в аккумулятор двоичного значения времени ("time value") таймера. В этом случае и значение времени ("time value") и "временная база" ("time base") будут иметь формат BCD (двоичнодесятичный). При этом также как и в предыдущем случае в содержимом аккумулятора accumulator 1 в левое машинное слово (в старшее слово) будут T MW 122; //сохранение текущего значения времени ("time value") 7.1.6 Последовательность инструкций при использовании функций При программировании таймера Вам нет необходимости использовать все возможные выражения для активации функций таймеров. Вы должны использовать только те из функций, которые Вам необходимо выполнить.

Обычно используется таймер с заданной длительностью импульса и двоичный опрос состояния таймера.

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

В таблице 7.1 показан оптимальный порядок для всех операторов при программировании функций таймера.

Таблица 7.1 Последовательность операторов для таймера Разблокировка таймера (Enable timer) Автоматизация посредством STEP с использованием STL и SCL При использовании операторов выбирайте те, которые необходимы Вам, и просто пропускайте ненужные.

Если таймер запускается и сбрасывается "одновременно" (как в показанной последовательности операторов), то функция таймера сначала будет запущена на выполнение, а следующее выражение немедленно сбросит таймер. Следовательно, если после этого таймер будет проверен (опрошен), то факт запуска таймера останется незамеченным.

7.1.7 Пример часового генератора (генератора часов) Пример показывает, как запрограммировать часовой генератор с разным отношением импульс/пауза с помощью отдельного таймера.

Со входа Start_Input обеспечивается запуск часового генератора. Если еще не начался отсчет времени или отсчет закончился, генератор запускается в режиме расширенного импульса (extended pulse). При каждом запуске двоичный делитель Output меняет состояние сигнала и при этом определяется длительность работы (duration).

7.2 Таймер с управляемым импульсом (Pulse timer) Ниже представлен пример законченной программы на STL для запуска таймера в режиме "управляемого импульса" (Pulse timer):

7. Функции таймеров Программа на SCL для вызова таймера в режиме "управляемого импульса" Запуск таймера с управляемым импульсом (Starting a pulse timer) На рисунке 7.3 показаны динамические характеристики таймера, запускаемого в режиме управляемого импульса (Pulse), и реакция на сброс.

сигнала на входе Start_input Состояние сигнала на входе Reset_input Состояние сигнала на входе Enable_input Внутреннее состояние таймера (internal) Cостояние (статус) таймера cогласно опросу (на состояние "1") Рис. 7.3 Отклик таймера с управляемым импульсом на сигналы запуска и сброса Автоматизация посредством STEP с использованием STL и SCL Показанное на рис. 7.3 поведение таймера будет соответствовать действительности, если Вы будете придерживаться рекомендованной выше последовательности операторов для STL (сначала запуск, затем сброс, затем опрос таймера). Обычно операция разблокирования (Enabling a timer) не требуется, и для программы на SCL она также не является необходимой.

1 Функция таймера запускается, когда состояние сигнала на входе Start_input меняется от состояния "0" к состоянию "1" (положительный фронт). Таймер работает, пока состояние сигнала на входе Start_input остается равным "1".

Проверки (опросы) таймера на состояние "1" (timer status) возвращают результат проверки "1", пока функция таймера активна.

Убывающее значение времени (как значение таймера) отсчитывается от некоторого заданного начального (initial) значения с заданным шагом, равным заданной величине "временной базы" (time base).

Функция таймера перестает быть активной, когда состояние сигнала на входе Start_input меняется от состояния "1" к состоянию "0" (отрицательный фронт), если даже это происходит до момента истечения заданного времени работы (длительности - "duration"). После этого проверки (опросы) таймера на состояние "1" (timer status) возвращают результат проверки "0". Значение времени (как значение таймера) показывает время, оставшееся до окончания заданного периода работы (длительности - "duration"), обозначая точку на временной оси, в которой произошло преждевременное прерывание работы Сброс таймера с управляемым импульсом (Resetting a pulse timer) Операция сброса (Resetting a pulse timer) имеет статический эффект и имеет приоритет перед запуском таймера (см. рис. 7.3).

Состояние сигнала на входе Reset_input, равное "1", вызывает сброс таймера, если он был до этого активен. После этого проверки (опросы) таймера на состояние "1" (timer status) возвращают результат проверки "0".

Значение времени (time value) и значение "временной базы" (time base) также сбрасываются и становятся равными "0". Отрицательный фронт сигнала (т.е.

переход его от состояния "1" к "0") на входе Reset_input в то время, пока на входе Start_input присутствует состояние "1", никак не сказывается на режиме Если функция таймера не активна, то присутствие состояния "1" на входе Reset_input также никак не сказывается на режиме таймера.

5 Если сигнал на входе Start_input изменяет свое состояние с "0" на "1" (присутствует положительный фронт сигнала), в то время, как на входе Reset_input присутствует состояние "1", то таймер запускается, но последующая инструкция сброса немедленно его сбрасывает (на рис. 7.3 это показано жирной вертикальной чертой). Если проверки (опросы) таймера на состояние "1" (timer status) следуют по времени после сброса таймера, то короткое время работы таймера после его запуска не скажется на результатах проверки - результат проверки будет равен "0".

Разблокировка таймера с управляемым импульсом (Enabling a pulse timer) На рисунке 7.4 показана функция разблокировки таймера, запускаемого в режиме управляемого импульса (Pulse).

7. Функции таймеров Функция разблокировки таймера (Enabling a pulse timer) позволяет вновь запускать (в том числе и уже активный таймер) посредством приложения ко входу Enabling_input положительного фронта сигнала (переход сигнала от Функция разблокировки таймера (Enabling a pulse timer) доступна для использования только в языке программирования STL.

Состояние сигнала на входе Start_input Состояние сигнала на входе Reset_input Состояние сигнала на входе Enable_input Внутреннее состояние таймера (internal) Cостояние (статус) таймера cогласно опросу (на состояние "1") Рис. 7.4 Функция разблокировки (Enabling) таймера с управляемым импульсом Если функция таймера активна и состояние сигнала на входе Enable_input меняется от состояния "0" к состоянию "1" (положительный фронт), то таймер будет перезапущен, если состояние сигнала на входе Start_input остается равным "1". При этом заданное значение длительности работы ("duration") будет вновь взято как исходное значение в момент перезапуска таймера.

Последующее изменение сигнала на входе Enable_input от состояния "1" к состоянию "0" (отрицательный фронт) не изменяет режима таймера.

Если состояние сигнала на входе Start_input все еще остается равным "1", а функция таймера пассивна, то в момент изменения сигнала на входе Enable_input от состояния "0" к состоянию "1" (положительный фронт) таймер будет вновь запущен в режиме управляемого импульса (pulse timer). При этом заданное значение длительности работы ("duration") будет взято как Если состояние сигнала на входе Start_input равно "0", то изменение сигнала на входе Enable_input от состояния "0" к состоянию "1" (положительный фронт) не будет иметь никакого эффекта.

Автоматизация посредством STEP с использованием STL и SCL 7.3 Таймер с расширенным импульсом (Extended pulse timer) Ниже представлен пример законченной программы на STL для запуска таймера в режиме "расширенного импульса" (Extended pulse timer):

Программа на SCL для вызова таймера в режиме "расширенного импульса" (Extended pulse timer):

Запуск таймера с расширенным импульсом (Starting an extended pulse timer) На рисунке 7.5 показаны динамические характеристики таймера, запускаемого в режиме "расширенного импульса" (Extended pulse timer), и его Показанное на рис. 7.5 поведение таймера будет соответствовать действительности, если Вы будете придерживаться рекомендованной выше последовательности операторов для STL (сначала запуск, затем сброс, затем опрос таймера). Обычно операция разблокирования (Enabling a timer) не требуется для работы таймера в программе STL, и для программы на SCL она также не является необходимой.

7. Функции таймеров Состояние сигнала на входе Start_input Состояние сигнала на входе Reset_input Состояние сигнала на входе Enable_input Внутреннее состояние таймера (internal) Cостояние (статус) таймера cогласно опросу (на состояние "1") Функция таймера запускается, когда состояние сигнала на входе Start_input меняется от состояния "0" к состоянию "1" (положительный фронт). Таймер работает до момента истечения заданного времени работы (длительности duration"), даже если до этого момента состояние сигнала на входе Start_input изменится снова от состояния "1" к состоянию "0". Проверки (опросы) таймера на состояние "1" (timer status) возвращают результат Убывающее значение времени (как значение таймера) отсчитывается от некоторого заданного начального (initial) значения с заданным шагом, равным заданной величине "временной базы" (time base).

Если состояние сигнала на входе Start_input меняется от состояния "0" к состоянию "1" (положительный фронт), в то время, пока функция таймера активна, то таймер будет перезапущен. При этом заданное значение длительности работы ("duration") будет вновь взято как исходное значение в Таким образом таймер может быть перезапущен столько раз, сколько требуется для нормальной работы программы, невзирая на время, Автоматизация посредством STEP с использованием STL и SCL Сброс таймера с режимом "расширенного импульса" (Extended pulse timer) Операция сброса таймера с режимом "расширенного импульса" (Extended pulse timer) имеет статический эффект и имеет приоритет перед запуском Состояние сигнала на входе Reset_input, равное "1", вызывает сброс таймера, если он был до этого активен. После этого проверки (опросы) таймера на состояние "1" (timer status) возвращают результат проверки "0".

Значение времени (time value) и значение "временной базы" (time base) также сбрасываются и становятся равными "0". Отрицательный фронт сигнала (т.е.

переход его от состояния "1" к "0") на входе Reset_input в то время, пока на входе Start_input присутствует состояние "1", никак не сказывается на режиме Если функция таймера не активна, то присутствие состояния "1" на входе Reset_input также никак не сказывается на режиме таймера.

Если сигнал на входе Start_input изменяет свое состояние с "0" на "1" (присутствует положительный фронт сигнала), в то время, как на входе Reset_input присутствует состояние "1", то таймер запускается, но последующая инструкция сброса немедленно его сбрасывает (на рис. 7.5 это показано жирной вертикальной чертой). Если проверки (опросы) таймера на состояние "1" (timer status) следуют по времени после сброса таймера, то короткое время работы таймера после его запуска не скажется на результатах проверки - результат проверки будет равен "0".

Разблокировка таймера с режимом "расширенного импульса" (Extended pulse timer) Функция разблокировки таймера (Anabling extended pulse timer) позволяет вновь запускать (в том числе и уже активный таймер) посредством приложения ко входу Enabling_input положительного фронта сигнала (переход сигнала от состояния "0" к состоянию "1").

Функция разблокировки таймера (Anabling a pulse timer) доступна для использования только в языке программирования STL.

1 Если функция таймера активна и состояние сигнала на входе Enable_input меняется от состояния "0" к состоянию "1" (положительный фронт), то таймер будет перезапущен, если состояние сигнала на входе Start_input остается равным "1". При этом заданное значение длительности работы ("duration") будет вновь взято как исходное значение в момент перезапуска таймера.

Последующее изменение сигнала на входе Enable_input от состояния "1" к состоянию "0" (отрицательный фронт) не изменяет режима таймера.

2 Если состояние сигнала на входе Start_input все еще остается равным "1", а функция таймера пассивна, то в момент изменения сигнала на входе Enable_input от состояния "0" к состоянию "1" (положительный фронт) таймер будет вновь запущен в режиме "расширенного импульса" (extended pulse timer). При этом заданное значение длительности работы ("duration") будет Если состояние сигнала на входе Start_input равно "0", то изменение сигнала на входе Enable_input от состояния "0" к состоянию "1" (положительный фронт) не будет иметь никакого эффекта.

7. Функции таймеров На рисунке 7.6 показана функция разблокировки таймера, запускаемого в режиме "расширенного импульса" (Extended pulse timer).

Состояние сигнала на входе Start_input Состояние сигнала на входе Reset_input Состояние сигнала на входе Enable_input Внутреннее состояние таймера (internal) Cостояние (статус) таймера cогласно опросу (на состояние "1") Рис. 7.6 Функция разблокировки (Enabling) таймера с режимом 7.4 Таймер с задержкой включения (On-delay timer) Ниже представлен пример законченной программы на STL для запуска таймера с задержкой включения (On-delay timer):

Автоматизация посредством STEP с использованием STL и SCL Запуск таймера с задержкой включения (On-delay timer) сигнала на входе Start_input Состояние сигнала на входе Reset_input Состояние сигнала на входе Enable_input Внутреннее состояние таймера (internal) Cостояние (статус) таймера cогласно опросу (на состояние "1") Рис. 7.7 Отклик таймера с задержкой включения (On-delay timer) на сигналы запуска 7. Функции таймеров 1 Функция таймера запускается, когда состояние сигнала на входе Start_input меняется от состояния "0" к состоянию "1" (положительный фронт). Таймер работает, до момента истечения заданного времени работы (длительности duration"). Проверки (опросы) таймера на состояние "1" (timer status) возвращают результат проверки "1", если до момента истечения заданного времени работы таймера (длительности - "duration") не сбрасывался в состояние "0" сигнал на входе Start_input, и пока состояние сигнала на входе Start_input остается равным "1", не появится сигнал, равный "1", на входе Reset_input, вызывающий сброс таймера.

Убывающее значение времени (как значение таймера) отсчитывается от некоторого заданного начального (initial) значения с заданным шагом, равным заданной величине "временной базы" (time base).

2 Функция таймера перестает быть активной, когда состояние сигнала на входе Start_input меняется от состояния "1" к состоянию "0" (отрицательный фронт), если даже это происходит до момента истечения заданного времени работы (длительности - "duration"). После этого проверки (опросы) таймера на состояние "1" (timer status) возвращают результат проверки "0". Значение времени (как значение таймера) показывает время, оставшееся до окончания заданного периода работы (длительности - "duration"), обозначая точку на временной оси, в которой произошло преждевременное прерывание работы Сброс таймера с задержкой включения (Resetting an on-delay timer) Операция сброса таймера с задержкой включения (Resetting an on-delay timer) имеет статический эффект и имеет приоритет перед запуском таймера Состояние сигнала на входе Reset_input, равное "1", вызывает сброс функции таймера, кончился ли отсчет заданного времени таймера или нет.

После этого проверки (опросы) таймера на состояние "1" (timer status) возвращают результат проверки "0", даже если отсчет заданного времени таймера закончился и на входе Start_input присутствует состояние "1".

Значение времени (time value) и значение "временной базы" (time base) также сбрасываются и становятся равными "0".

Отрицательный фронт сигнала (т.е. переход его от состояния "1" к "0") на входе Reset_input в то время, пока на входе Start_input присутствует состояние "1", никак не сказывается на режиме таймера.

Результат логической операции RLO, равный "1", на входе Reset_input также сбрасывает таймер, даже если отсчет заданного времени таймера закончился. После этого проверки (опросы) таймера на состояние "1" (timer status) возвращают результат проверки "0" Если сигнал на входе Start_input изменяет свое состояние с "0" на "1" (положительный фронт сигнала), в то время, как на входе Reset_input присутствует состояние "1", то таймер запускается, но последующая инструкция сброса немедленно его сбрасывает (на рис. 7.7 это показано жирной вертикальной чертой). Если проверки (опросы) таймера на состояние "1" (timer status) следуют по времени после сброса таймера, то короткое время работы таймера после его запуска не скажется на результатах проверки - результат проверки будет равен "0".

Автоматизация посредством STEP с использованием STL и SCL Разблокировка таймера с задержкой включения (Anabling an on-delay timer) Состояние сигнала на входе Start_input Состояние сигнала на входе Reset_input Состояние сигнала на входе Enable_input Внутреннее состояние таймера (internal) Cостояние (статус) таймера cогласно опросу (на состояние "1") Рис. 7.8 Функция разблокировки (Enabling) таймера с задержкой включения (On-delay 7. Функции таймеров 3 4 Если состояние сигнала на входе Start_input все еще остается равным "1", а функция таймера была деактивирована сигналом на входе сброса Reset_input, то в момент изменения сигнала на входе Enable_input от состояния "0" к состоянию "1" (положительный фронт) таймер будет вновь запущен в режиме с задержкой включения (On-delay timer). При этом заданное значение длительности работы ("duration") будет взято как Если состояние сигнала на входе Start_input равно "0", то изменение сигнала на входе Enable_input от состояния "0" к состоянию "1" (положительный фронт) не будет иметь никакого эффекта.

7.5 Таймер с задержкой включения с памятью (Retentive On-delay Ниже представлен пример законченной программы на STL для запуска таймера с задержкой включения с памятью (Retentive On-delay timer):

Программа на SCL для вызова таймера с задержкой включения с памятью (Retentive On-delay timer):

Автоматизация посредством STEP с использованием STL и SCL Запуск таймера с задержкой включения с памятью (Retentive On-delay timer) Состояние сигнала на входе Start_input Состояние сигнала на входе Reset_input Состояние сигнала на входе Enable_input Внутреннее состояние таймера (internal) Cостояние (статус) таймера cогласно опросу (на состояние "1") Рис. 7.9 Отклик таймера с задержкой включения с памятью (Retentive Ondelay timer) на сигналы запуска и сброса 7. Функции таймеров Если состояние сигнала на входе Start_input меняется от состояния "0" к состоянию "1" (положительный фронт), в то время, пока функция таймера активна, то таймер будет перезапущен. При этом заданное значение длительности работы ("duration") будет вновь взято как исходное значение в момент перезапуска таймера.

Таким образом таймер может быть перезапущен столько раз, сколько требуется для нормальной работы программы, невзирая на время отсчета, оставшееся в предыдущем рабочем периоде таймера.

Сброс таймера с задержкой включения с памятью (Retentive On-delay timer) Операция сброса таймера с задержкой включения с памятью (Retentive Ondelay timer) имеет статический эффект и имеет приоритет перед запуском Состояние сигнала на входе Reset_input, равное "1", вызывает сброс таймера, если он был до этого активен и вне зависимости от состояния сигнала на входе Start_input. После этого проверки (опросы) таймера на состояние "1" (timer status) возвращают результат проверки "0". Значение времени (time value) и значение "временной базы" (time base) также сбрасываются и становятся равными "0".

6 Если сигнал на входе Start_input изменяет свое состояние с "0" на "1" (положительный фронт сигнала), в то время, как на входе Reset_input присутствует состояние "1", то таймер запускается, но последующая инструкция сброса немедленно его сбрасывает (на рис. 7.9 это показано жирной вертикальной чертой). Если проверки (опросы) таймера на состояние "1" (timer status) следуют по времени после сброса таймера, то короткое время работы таймера после его запуска не скажется на результатах проверки - результат проверки будет равен "0".

Разблокировка таймера с задержкой включения с памятью (Anabling a retentive ondelay timer) Функция разблокировки таймера (Anabling a retentive on-delay timer) позволяет вновь запускать отсчет времени (или перезапускать сначала отсчет времени уже активного таймера) посредством приложения ко входу Enabling_input положительного фронта сигнала (переход сигнала от состояния "0" к Функция разблокировки таймера (Anabling a retentive on-delay timer) доступна для использования только в языке программирования STL.

На рисунке 7.10 показана функция разблокировки таймера, запускаемого в режиме с задержкой включения с памятью (Retentive On-delay timer).

Автоматизация посредством STEP с использованием STL и SCL Состояние сигнала на входе Start_input Состояние сигнала на входе Reset_input Состояние сигнала на входе Enable_input Внутреннее состояние таймера (internal) Cостояние (статус) таймера cогласно опросу (на состояние "1") Рис. 7.10 Функция разблокировки (Enabling) таймера с задержкой включения с памятью 7. Функции таймеров 7.6 Таймер с задержкой выключения (Off-delay timer) Ниже представлен пример законченной программы на STL для запуска таймера с задержкой выключения (Off-delay timer):

Программа на SCL для вызова таймера с задержкой выключения (Off-delay Запуск таймера с задержкой выключения (Off-delay timer) На рисунке 7.11 показаны динамические характеристики таймера, запускаемого в режиме с задержкой выключения (Off-delay timer), и его Показанное на рис. 7.11 поведение таймера будет соответствовать действительности, если Вы будете придерживаться рекомендованной выше последовательности операторов для STL (сначала запуск, затем сброс, затем опрос таймера). Обычно операция разблокирования (Enabling a timer) не требуется для работы таймера в программе STL, и для программы на SCL она также не является необходимой.

Автоматизация посредством STEP с использованием STL и SCL Состояние сигнала на входе Start_input Состояние сигнала на входе Reset_input Состояние сигнала на входе Enable_input Внутреннее состояние таймера (internal) Cостояние (статус) таймера cогласно опросу (на состояние "1") работает, до момента истечения заданного времени работы (длительности duration"). Проверки (опросы) таймера на состояние "1" (timer status) Сброс таймера с задержкой выключения (Resetting an off-delay timer) 7. Функции таймеров 4 Состояние сигнала на входе Reset_input, равное "1", вызывает сброс функции таймера. После этого проверки (опросы) таймера на состояние "1" (timer status) возвращают результат проверки "0". Значение времени (time value) и значение "временной базы" (time base) также сбрасываются и Если сигнал на входе Reset_input изменяет свое состояние с "0" на "1" (положительный фронт сигнала), в то время, как на входе Start_input присутствует состояние "1", то выход таймера сбрасывется (проверки [опросы] таймера на состояние "1" [timer status] после сброса выхода таймера, дают результат проверки, равный "0").

Отрицательный фронт сигнала (т.е. переход его от состояния "1" к "0") на входе Reset_input в то время, пока на входе Start_input присутствует состояние "1", возвращает выход таймера в состояние "1".

Если сигнал на входе Start_input изменяет свое состояние с "1" на "0" (отрицательный фронт сигнала), в то время, как на входе Reset_input присутствует состояние "1", то таймер запускается, но последующая инструкция сброса немедленно его сбрасывает (на рис. 7.11 это показано жирной вертикальной чертой). Если проверки (опросы) таймера на состояние "1" (timer status) следуют по времени после сброса таймера, то короткое время работы таймера после его запуска не скажется на результатах проверки - результат проверки будет равен "0".

Разблокировка таймера с задержкой выключения (Anabling an off-delay timer) Функция разблокировки таймера (Anabling an off-delay timer) позволяет вновь запускать отсчет времени (или перезапускать сначала отсчет времени уже активного таймера) посредством приложения ко входу Enabling_input положительного фронта сигнала (переход сигнала от состояния "0" к Функция разблокировки таймера (Anabling an off-delay timer) доступна для использования только в языке программирования STL.

На рисунке 7.12 показана функция разблокировки таймера, запускаемого в режиме с задержкой выключения (Off-delay timer).

1 Если функция таймера неактивна (нет отсчета времени таймера), состояние сигнала на входе Start_input остается равным "1", а состояние сигнала на входе Enable_input меняется от состояния "0" к состоянию "1" (положительный фронт), то на режим работы таймера ни этот положительный фронт, ни последующий отрицательный фронт сигнала на входе Enable_input 2 Если состояние сигнала на входе Enable_input меняется от состояния "0" к состоянию "1" (положительный фронт) в то время, когда функция таймера активна (запущен отсчет заданного времени таймера), отсчет времени таймера будет перезапущен сначала. При этом заданное значение длительности работы ("duration") будет вновь взято как исходное значение в момент перезапуска таймера.

Автоматизация посредством STEP с использованием STL и SCL 3 Если состояние сигнала на входе Enable_input меняется от состояния "0" к состоянию "1" (положительный фронт) или от состояния "1" к состоянию "0" (отрицательный фронт) в то время, когда функция таймера неактивна (нет отсчета времени таймера), то на режим работы таймера этот положительный или отрицательный фронт сигнала не окажут никакого влияния.

Состояние сигнала на входе Start_input Состояние сигнала на входе Reset_input Состояние сигнала на входе Enable_input Внутреннее состояние таймера (internal) Cостояние (статус) таймера cогласно опросу (на состояние "1") Рис. 7.12 Функция разблокировки (Enabling) таймера с задержкой 7.7 IEC-функции таймеров (IEC Timer Functions) IEC-функции таймеров (IEC Timer Functions) встроены в операционную систему CPU как системные функциональные блоки SFB.

В соответствующим образом оснащенных CPU могут быть доступны Генерация импульса с задержкой выключения На рис. 7.13 представлены динамические характеристики этих таймеров.

Вы можете вызывать эти SFB с экземплярными блоками данных или использовать эти SFB как локльные экземпляры в функциональном блоке.

7. Функции таймеров Состояние сигнала на входе запуска IN Cостояние (статус) таймера Q для SFB 3 TP Cостояние (статус) таймера Q для SFB 4 TON Cостояние (статус) таймера Q для SFB 5 TOF Рис. 7.13 Динамические характеристики IEC-функций таймеров Вы можете найти описание интерфейса функций для программирования в автономном режиме (offline) в "стандартной библиотеке" Standard Library в Примеры вызовов этих функций находятся на прилагаемой дискете в библиотеке STL_Book в программе "Basic Functions" в функциональном блоке Таблица 7.2 Параметры IEC-функций таймеров Название (Name)

PT INPUT TIME

Q INPUT BOOL

ET INPUT TIME

Автоматизация посредством STEP с использованием STL и SCL 7.7.1 Генератор импульсов SFB 3 TP Параметры IEC-таймера SFB 3 TP показаны в таблице 7.2.

Если RLO на входе запуска IN таймера изменяет свое состояние с "0" на "1", то функция таймера активизируется, т.е. запускается отсчет времени в течение заданного периода времени (duration), который не зависит от изменений состояния RLO на входе запуска. При этом выход Q возвращает сигнал "1" все то время, пока идет отсчет времени.

Выход ET возвращает длительность времени (duration), в течение которого выход Q находится в установленном состоянии. Этот период времени (duration) начинается в момент T#0s и заканчивается в заданное пользователем время PT. Если время PT истекло, то ET сохраняет это значение, пока состояние сигнала на входе IN не станет равным "0". Если состояние сигнала на входе IN станет равным "0" до того, как истекло заданное значение времени PT (duration), то на выходе ET значение изменится на T#0s сразу же после того, как закончится отсчет времени PT.

Если необходимо снова инициализировать функцию таймера, запустите ее с заданной величиной PT = T#0s.

IEC-таймер SFB 3 TP работает в рабочих режимах RESTART и RUN. IECтаймер SFB 3 TP сбрасывается (инициализируется) при холодном 7.7.2 Генератор импульсов с задержкой включения SFB 4 TON Параметры IEC-таймера с задержкой включения SFB 4 TON показаны в Если RLO на входе запуска IN таймера изменяет свое состояние с "0" на "1", то функция таймера активизируется, т.е. запускается отсчет времени в течение заданного периода времени (duration). При этом выход Q возвращает сигнал "1" после того, как отсчет времени завершился без досрочного прерывания. Если до истечения заданного периода времени (duration) RLO на входе запуска изменяет свое состояние с "1" на "0", то функция таймера сбрасывается. Отсчет времени запускается снова, если на входе запуска вновь появляется положительный фронт сигнала.

Выход ET возвращает длительность времени (duration), в течение которого функция таймера активна. Этот период времени (duration) начинается в момент T#0s и заканчивается в заданное пользователем время PT. Если время PT истекло, то ET сохраняет это значение, пока состояние сигнала на входе IN вновь не станет равным "0". Если состояние сигнала на входе IN станет равным "0" до того, как истекло заданное значение времени PT (duration), то на выходе ET значение изменится на T#0s немедленно.

Если необходимо снова инициализировать функцию таймера, запустите ее с заданной величиной PT = T#0s.

IEC-таймер SFB 4 TON работает в рабочих режимах RESTART и RUN. IECтаймер SFB 4 TON сбрасывается (инициализируется) при холодном 7. Функции таймеров 7.7.3 Генератор импульсов с задержкой выключения SFB 5 TOF Параметры IEC-таймера с задержкой выключения SFB 5 TOF показаны в Как только RLO на входе запуска IN таймера изменяет свое состояние с "0" на "1", при проверке выход таймера Q возвращает сигнал "1". После того как RLO на входе запуска изменяет свое состояние с "1" на "0", функция таймера активизируется, т.е. запускается отсчет времени в течение заданного периода времени (duration). При этом выход Q возвращает сигнал, равный "1", пока отсчет времени не завершится без досрочного прерывания. Если до истечения заданного периода времени (duration) RLO на входе запуска опять изменяет свое состояние с "0" на "1", то функция таймера сбрасывается, при этом выход Q сохраняет значение сигнала, равное "1". Отсчет времени запускается снова, если на входе запуска вновь появляется отрицательный Выход ET возвращает длительность времени (duration), в течение которого функция таймера активна. Этот период времени (duration) начинается в момент T#0s и заканчивается в заданное пользователем время PT. Если время PT истекло, то ET сохраняет это значение, пока состояние сигнала на входе IN вновь не станет равным "1". Если состояние сигнала на входе IN станет равным "1" до того, как истекло заданное значение времени PT (duration), то на выходе ET значение изменится на T#0s немедленно.

Если необходимо снова инициализировать функцию таймера, запустите ее с IEC-таймер SFB 5 TOF работает в рабочих режимах RESTART и RUN. IECтаймер SFB 5 TOF сбрасывается (инициализируется) при холодном Автоматизация посредством STEP с использованием STL и SCL 7 - 30 Automating with STEP 7 in STL and SCL Автоматизация посредством STEP 8 Функции счетчиков (Counter Functions) Функции счетчиков позволяют решать задачи счета непосредственно в CPU.

Счетчики позволяют выполнять прямой и обратный счет и используют при этом "трехдекадный" формат значения счетчика и диапазон значений от В данной главе рассматриваются выражения, содержащие функции счетчиков для использования в языке программирования STL. Для языка SCL функции счетчиков включены в состав стандартных функций (см. разд. 30. "Функции счетчиков" ["Counter Functions"]).

Скорость счета счетчиков зависит от времени сканирования Вашей программы! Для обеспечения процесса счета CPU должен обнаруживать на входе счетчика изменения входного сигнала, иначе говоря, входной импульс (или междуимпульсная пауза) на входе должна присутствовать по крайней мере один цикл сканирования программы. Чем продолжительнее цикл сканирования программы, тем медленнее скорость счета счетчика.

В S7-300 CPU со встроенными функциями (CPU 3xxIFM) имеются встроенные функции счетчика, которые обеспечивают счет с использованием специального входа счетчика с частотой следования импульсов до 10 кГц.

Значения счетчиков, описанных в данной главе, сохраняются в системной памяти CPU. Вы можете задавать для счетчика начальное значение (initial value). Вы также можете сбрасывать счетчик, включать режим прямого или обратного счета счетчика. Существует возможность определения состояния счетчика (содержит ли счетчик нулевое или ненулевое значение). Функции загрузки (load) используются для пересылки текущего значения счетчика в двоичном или BCD-коде в аккумулятор accumulator 1.

Примеры, рассматриваемые в данной главе, и вызовы IEC-счетчиков Вы можете найти на прилагаемой дискете в библиотеке STL_Book library в разделе "Basic Functions" в функциональном блоке FB 108 или в исходном Автоматизация посредством STEP с использованием STL и SCL 8.1 Установка и сброс счетчиков Установка счетчика (Setting a counter) Счетчик устанавливается, если RLO переходит от "0" к "1" перед операцией установки S счетчика (Set). Т.е. для установки счетчика всегда требуется Установить счетчик - это значит загрузить в счетчик начальное значение.

Начальное значение, которое загружается в счетчик, должно находиться в аккумуляторе accumulator 1 (см. ниже). Оно должно быть в диапазоне от 0 до Рис. 8.1 Назначение битов для значения счетчика ("counter value") Спецификация счетчика (Specifying a counter) Функция установки счетчика ("set counter") использует значение в аккумуляторе accumulator 1 как "значение счетчика" ("count value"). Как и когда это значение появляется в аккумуляторе accumulator 1 не имеет значения.

Для обеспечения лучшей читаемости программы наилучшим будет вариант, когда эти параметры загружаются в аккумулятор accumulator непосредственно перед запуском функции счетчика или в виде константы (т.е., в виде непосредственно заданной величины), или в виде переменной (например, через слово в памяти, содержащее значение счетчика).



Pages:     | 1 |   ...   | 3 | 4 || 6 | 7 |   ...   | 12 |


Похожие работы:

«СВОДНАЯ ПРОГРАММА АКЦИИ МУЗЕЙНАЯ НОЧЬ-2013 1. Алтайский государственный краеведческий музей. Программа Музейная ночь-2013 (19.00-02.00): 19.00 Открытие международной акции Музейная ночь-2013. 19.10 Презентация выставки Алтай – вся Россия - экспедиционные сборы сотрудников музея 2000-х гг. 18.00-21.00 Шэрвудский лес - стрельба из луков и арбалетов. 19.10, 20.00 Гамма солнца и любви - музыкальная программа (классические, народные музыкальные произведения в исполнении учащихся и преподавателей...»

«Негосударственное образовательное учреждение высшего профессионального образования Институт специальной педагогики и психологии Кафедра общей и специальной педагогики УТВЕРЖДАЮ УТВЕРЖДАЮ Заведующая кафедрой Ректор Института Н.М. Свирина _ Л.М.Шипицына Протокол заседания кафедры № от 20_ года 20 _ года ПРОГРАММА ВСТУПИТЕЛЬНОГО ИСПЫТАНИЯ для поступления в магистратуру по направлению 050700.68 Специальное (дефектологическое) образование магистерская программа Современные технологии...»

«ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ САРАТОВСКАЯ ГОСУДАРСТВЕННАЯ ЮРИДИЧЕСКАЯ АКАДЕМИЯ УТВЕРЖДАЮ Первый проректор, Проректор по учебной работе _ С.Н. Туманов _2012 г. УЧЕБНО-МЕТОДИЧЕСКИЙ КОМПЛЕКС ДИСЦИПЛИНЫ СПЕЦИАЛИЗАЦИИ Особенности расследования преступлений, совершаемых в сфере экономики (для студентов 4 курса факультета заочного и вечернего обучения вечернего отделения) Специальность 030501.65 - Юриспруденция Саратов-...»

«ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ Государственное образовательное учреждение высшего профессионального образования Уральский государственный университет им. А.М. Горького Физический факультет Кафедра компьютерной физики Оптоэлектронные системы Программа специальной дисциплины (Стандарт ПД.СД/ДС) Екатеринбург 2006 УТВЕРЖДАЮ Декан физического факультета А.Н.Бабушкин,__2006 года Программа дисциплины Оптоэлектронные системы составлена в соответствии с требованиями федерального компонента к...»

«МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ Самарский государственный университет Филологический факультет Утверждаю: Ректор _ 200 г. Номер внутривузовской регистрации ОСНОВНАЯ ОБРАЗОВАТЕЛЬНАЯ ПРОГРАММА ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ Направление подготовки 032700.68 Филология Магистерская программа Теория литературы Квалификация (степень) Магистр Форма обучения Очная Самара 1. Общие положения 1.1. Основная образовательная программа (ООП ВПО) по направлению 032700.68 Филология...»

«РАБОЧАЯ ПРОГРАММА ДИСЦИПЛИНЫ ИНФОРМАТИКА по направлению 040400 62 — Социальная работа профиль Социальная работа в системе социальных служб Авторы программы: д.т.н. Е.Н. Черемисина, к.т.н. Т.Б. Прогулова Кафедра системного анализа и управления Аннотация Данная программа предназначена для подготовки бакалавров по направлению Социальная работа. Она должна не только обеспечить приобретение знаний и умений в соответствии с государственными образовательными стандартами, но и содействовать...»

«МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ ФГБОУ ВПО Кемеровский государственный университет Новокузнецкий институт (филиал) Факультет гуманитарный РАБОЧАЯ ПРОГРАММА ДИСЦИПЛИНЫ ГСЭ.В3 Историко-культурное наследие Кузбасса для специальности 040201.65 Социология специализация Социология коммуникаций Новокузнецк 2013 Сведения о разработке и утверждении рабочей программы дисциплины Рабочая программа дисциплины ГСЭ.В3 Историко-культурное наследие Кузбасса компонента дисциплины по выбору...»

«Приложение 5А: Рабочая программа специальной дисциплины Историческое введение в русистику ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ ПЯТИГОРСКИЙ ГОСУДАРСТВЕННЫЙ ЛИНГВИСТИЧЕСКИЙ УНИВЕРСИТЕТ Утверждаю Проректор по научной работе и развитию интеллектуального потенциала университета профессор З.А. Заврумов _2012 г. Аспирантура по специальности 10.02.01 Русский язык отрасль наук и: 10.00.00 Филологические науки Кафедра русской словесности...»

«Муниципальное бюджетное дошкольное образовательное учреждение Детский сад присмотра и оздоровления № 46 Светлячок г. Рубцовска Алтайского края 658222, г. Рубцовск, ул. Октябрьская, 19 тел. (38557) 2-49-20, 2-49-81 e-mail: [email protected] УПРАВЛЕНИЕ РЕАЛИЗАЦИЕЙ ПРОГРАММЫ РАЗВИТИЯ ДОУ В УСЛОВИЯХ ОБНОВЛЕНИЯ СОДЕРЖАНИЯ ОБРАЗОВАНИЯ. Автор: заведующий МБДОУ Детский сад присмотра и оздоровления № 46 Светлячок г. Рубцовска Камзолова А.А. г. Рубцовск 2014 г В опыте представлены материалы по...»

«Министерство образования и науки Российской Федерации ОРСКИЙ ГУМАНИТАРНО-ТЕХНОЛОГИЧЕСКИЙ ИНСТИТУТ (ФИЛИАЛ) Государственного образовательного учреждения высшего профессионального образования Оренбургский государственный университет Согласовано: Утверждаю: Проректор по учебной работе Ректор ОГТИ (филиала) ГОУ ОГУ ГОУ ОГУ _ А. Д. Проскурин Г. А. Мелекесов 2011 г. 2011 г. Номер внутривузовской регистрации Основная образовательная программа высшего профессионального образования Направление...»

«МИНИСТЕРСТВО СЕЛЬСКОГО ХОЗЯЙСТВА РОССИЙСКОЙ ФЕДЕРАЦИИ Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования КУБАНСКИЙ ГОСУДАРСТВЕННЫЙ АГРАРНЫЙ УНИВЕРСИТЕТ Факультет водоснабжения и водоотведения Рабочая программа дисциплины Физика Направление подготовки 280100.62 Природообустройство и водопользование Профиль подготовки Инженерные системы сельскохозяйственного водоснабжения, обводнения и водоотведения Квалификация (степень) выпускника Бакалавр...»

«Руководство пользователя Zotero Автор: Долгов Вячеслав e-mail: [email protected] Все права на программное обеспечение Zotero принадлежат zotero.org. Все права на упоминаемые торговые марки принадлежат их правообладателям. Данный документ распространяется на условиях Creative Commons Attribution-ShareAlike (by-sa) http://creativecommons.org/licenses/by-sa/2.0/ Zotero является персональным приложением для реферирования, выполненным в виде плагина к Firefox. Данное руководство не является...»

«Белорусский государственный университет УТВЕРЖДАЮ Декан экономического факультета М.М.Ковалев (подпись) _20г. (дата утверждения) Регистрационный № УД-_/р. ТЕОРИЯ ОТРАCЛЕВЫХ РЫНКОВ Учебная программа для специальностей: 1-25 01 01 Экономическая теория 1-25 01 02 Экономика Факультет экономический (название факультета) Кафедра теоретической и институциональной экономики (название кафедры) Курс (курсы) _3_ Семестр (семестры) _ Лекции _34 Экзамен 6_ (количество часов) (семестр) Практические...»

«ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ ЛИПЕЦКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ Кафедра Бухгалтерского учета и финансов УТВЕРЖДАЮ Декан экономического факультета В.В.Московцев 2011 г. РАБОЧАЯ ПРОГРАММА ДИСЦИПЛИНЫ Статистика Направление подготовки: 080200.62 Менеджмент Профиль подготовки : Производственный менеджмент Квалификация (степень) выпускника: бакалавр очная_ Форма обучения (очная, очно-заочная и др.)...»

«МИНИСТЕРСТВО СЕЛЬСКОГО ХОЗЯЙСТВА РОССИЙСКОЙ ФЕДЕРАЦИИ Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования Саратовский государственный аграрный университет имени Н.И. Вавилова СОГЛАСОВАНО УТВЕРЖДАЮ Заведующий кафедрой Декан факультета /Камышова Г.Н./ _ /Шьюрова Н.А./ _ _20 г. _ 20 г. РАБОЧАЯ ПРОГРАММА ДИСЦИПЛИНЫ (МОДУЛЯ) МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ Дисциплина И ПРОЕКТИРОВАНИЕ Направление подготовки 110400.68 Агрономия Адаптивно-ландшафтная...»

«МИНОБРНАУКИ РОССИИ Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования Алтайский государственный университет (ФГБОУ ВПО АлтГУ) Кафедра всеобщей истории и международных отношений Учебно-методический комплекс по дисциплине связи региона Внешнеэкономические Для направления магистратуры 031900.68 Международные отношения Рассмотрено и утверждено на заседании кафедры всеобщей истории и международных отношений от _31 _августа 2012 г., протокол № 1...»

«МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ Государственное образовательное учреждение высшего профессионального образования Новосибирский государственный университет (НГУ) Факультет информационных технологий УТВЕРЖДАЮ _ _ _ 20_г. РАБОЧАЯ ПРОГРАММА ДИСЦИПЛИНЫ Системотехника и программирование Магистерская программа Информационно-измерительные системы НАПРАВЛЕНИЕ ПОДГОТОВКИ 230100 ИНФОРМАТИКА И ВЫЧИСЛИТЕЛЬНАЯ ТЕХНИКА Квалификация (степень) выпускника Магистр Форма обучения очная...»

«Международная научно-практическая конференция 1 Молодежь в постиндустриальном обществе 25 декабря 2012 года УДК 374.32 А.Ю. Морковина Институт информационных коммуникаций и библиотек МГУКИ (г. Москва) ДУХОВНО-НРАВСТВЕННОЕ ВОСПИТАНИЕ ЧИТАТЕЛЕЙ ДЕТСКО-ЮНОШЕСКИХ БИБЛИОТЕК (НА ПРИМЕРЕ САРАТОВСКОЙ ОБЛАСТНОЙ БИБЛИОТЕКИ ДЛЯ ДЕТЕЙ И ЮНОШЕСТВА ИМ. А.С. ПУШКИНА) Высказываются опасения, что будущее поколение, получая образование без внимания к духовно-нравственному воспитанию, может вырасти...»

«Федеральное агентство по образованию ГОУ ВПО Алтайский государственный университет УТВЕРЖДАЮ декан исторического факультета Демчик Е.В. _ 2010 г. РАБОЧАЯ ПРОГРАММА по дисциплине Атрибуция и экспертиза музейных предметов для специальности 031502.65 Музеология факультет исторический кафедра археологии, этнографии и музеологии курс 4 семестр 8 лекции 20 (час.) Практические (семинарские) занятия 20 (час.) Экзамен в 8 семестре Всего часов 40 Самостоятельная работа 40 (час.) Итого часов трудозатрат...»

«ПРАВИТЕЛЬСТВО ЧЕЧЕНСКОЙ РЕСПУБЛИКИ ПОСТАНОВЛЕНИЕ от 0 1. м. л а з № г. Грозный Об утверждении республиканской целевой программы Повышение эффективности бюджетных расходов Чеченской Республики на 2013-2014 годы В соответствии с Бюджетным посланием Президента Российской Федерации Федеральному собранию от 28 июня 2012 года О бюджетной политике в 2013-2015 годах Правительство Чеченской Республики ПОСТАНОВЛЯЕТ: 1. Утвердить прилагаемую республиканскую целевую Программу Повышение эффективности...»






 
2014 www.av.disus.ru - «Бесплатная электронная библиотека - Авторефераты, Диссертации, Монографии, Программы»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.