Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Косвенный переход






Команда JMP @А + DPTR позволяет передавать управление по косвенному адресу. Эта команда удобна тем, что предоставляет возможность организации перехода по адресу, вычисляемому самой программой и неизвестному при написании исходного текста программы.

8-битный указатель стека (SP) может адресовать любую область RDM. Его содержимое инкрементируется прежде, чем данные будут запомнены в стеке в ходе выполнения команд PUSH и CALL. Содержимое SP декрементируется после выполнения команд POP и RET. Подобный способ адресации элементов стека называют прединкрементным/постдекрементным. В процессе инициализации микроконтроллера после сигнала RST в SP автоматически загружается код 07Н. Это значит, что если прикладная программа не переопределяет стек, то первый элемент данных в стеке будет располагаться в ячейке RDM с адресом 08Н.

Двухбайтный регистр-указатель данных DPTR обычно используется для фиксации 16-битного адреса в операциях с обращением к внешней памяти. Командами микроконтроллера регистр-указатель данных может быть использован или как 16-битный регистр, или как два независимых 8-битных регистра (DPH и DPL).

 

 

Для микроконтроллеров К1816ВЕ51 или ST7, STM8, STM32 поясните и продемонстрируйте примерами доступность памятей программ и данных, регистров функциональных устройств, возможность выполнения битовых операций.

 

Основные требования к открытым системам реального времени. Стандарты МЭК 61131. Языки программирования ПЛК. Стандарты МЭК 61131.3.

В качестве основного требования к ОСРВ выдвигается требование обеспечения предсказуемости илидетерминированности поведения системы в наихудших внешних условиях, что резко отличается от требований к производительности и быстродействию универсальных ОС. Хорошая ОСРВ имеет предсказуемое поведение при всех сценариях системной загрузки (одновременные прерывания и выполнение потоков).

Классические требования к ОСРВ на сегодняшний день можно разделить на несколько групп. В различных источниках эти группы выбираются по-разному. Например, в [3] выделены следующие категории для сравнения свойств ОСРВ:

· свойства ядра (архитектура, поддержка множества процессов и множества процессоров, устойчивость к отказам);

· диспетчеризация (алгоритм, механизм присвоения приоритетов, время для освобождения задачи);

· модель процесс/нить/задача (число уровней приоритетов, защита от инверсии приоритетов, состояния задачи, максимальное число задач, задержка переключения задач, динамическое изменение приоритетов);

· управление памятью (минимальный и максимальный объём оперативной и ROM-памяти на задачу, максимальная адресуемая память для задачи, поддержка защиты памяти, динамическое распределение памяти, виртуальная память, сжатие памяти);

· управление прерываниями и исключениями (вытесняемые обработчики прерываний, наихудшее время обработки прерывания, модифицируемость таблицы векторов прерываний);

· интерфейс прикладного программирования (совместимость библиотек, точное абсолютное время, поддержка внешних часов, примитивы синхронизации, сетевые протоколы, соответствие стандартам, ввод/вывод, файловые системы);

· процесс разработки (методология разработки, поставка в исходных или объектных кодах, поддерживаемые компиляторы, процессоры и языки программирования);

· коммерческая информация (стоимость, платежи за runtime-системы, срок присутствия на рынке, использование в ответственных приложениях, тип и стоимость технической поддержки).

 

Для программирования ПЛК используются стандартизированные языки МЭК (IEC) стандарта IEC61131-3

Языки программирования (графические)

· LD (Ladder Diagram) — Язык релейных схем — самый распространённый язык для PLC

· FBD (Function Block Diagram) — Язык функциональных блоков — 2-й по распространённости язык для PLC

· SFC (Sequential Function Chart) — Язык диаграмм состояний — используется для программирования автоматов

· CFC (Continuous Function Chart) — Не сертифицирован IEC61131-3, дальнейшее развитие FBD

Языки программирования (текстовые)

· IL (Instruction List) — Ассемблеро-подобный язык

· ST (Structured Text) — Паскале-подобный язык

 

Стандарт МЭК 61131-3 устанавливает пять языков программирования ПЛК, три графических и два текстовых. Первоначально стандарт назывался IEC 1131-3 и был опубликован в 1993 г. но в 1997 г. МЭК (IEC) перешел на новую систему обозначений и в названии стандарта добавилась цифра " 6".

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

Системы программирования, основанные на МЭК 61131-3, характеризуются следующими показателями:

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

· возможностью простой модификации программы и наращивания ее функциональности;

· переносимостью проекта с одного ПЛК на другой;

· возможностью повторного использования отработанных фрагментов программы;

· простотой языка и ограничением количества его элементов.

Языки МЭК 61131-3 появились не как теоретическая разработка, а как результат анализа множества языков, уже используемых на практике и предлагаемых рынку производителями ПЛК. Стандарт устанавливает пять языков программирования со следующими названиями:

· структурированный текст (ST - Structured Text);

· последовательные функциональные схемы (SFC - " Sequential Function Chart");

· диаграммы функциональных блоков (FBD - Function Block Diagram);

· релейно-контактные схемы, или релейные диаграммы (LD - Ladder Diagram);

· список инструкций (IL - Instruction List).

· Графическими языками являются SFC, FBD, LD. Языки IL и ST являются текстовыми.

В стандарт были введены несколько языков (а не один) для того, чтобы каждый пользователь мог применить наиболее понятный ему язык. Программисты чаще выбирают язык IL (похожий на ассемблер) или ST, похожий на язык высокого уровня Паскаль; специалисты, имеющие опыт работы с релейной логикой, выбирают язык LD, специалисты по системам автоматического управления (САУ) и схемотехники выбирают привычный для них язык FBD.

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

Языки МЭК 61131-3 базируются на следующих принципах:

· вся программа разбивается на множество функциональных элементов - Program Organization Units (POU), каждый из которых может состоять из функций, функциональных блоков и программ. Любой элемент МЭК-программы может быть сконструирован иерархически из более простых элементов;

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

· имеются средства для исполнения разных фрагментов программы в разное время, с разной скоростью, а также параллельно. Например, один фрагмент программы может сканировать концевой датчик с частотой 100 раз в секунду, в то время как второй фрагмент будет сканировать датчик температуры с частотой один раз в 10 сек;

· для выполнение операций в определенной последовательности, которая задается моментами времени или событиями, используется специальный язык последовательных функциональных схем (SFC);

· стандарт поддерживает структуры для описания разнородных данных. Например, температуру подшипников насоса, давление и состояние " включено-выключено" можно описать с помощью единой структуры " Pomp" и передавать ее внутри программы как единый элемент данных;

· стандарт обеспечивает совместное использование всех пяти языков, поэтому для каждого фрагмента задачи может быть выбран любой, наиболее удобный, язык;

· программа, написанная для одного контроллера, может быть перенесена на любой контроллер, совместимый со стандартом МЭК 61131-3.

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

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.