1 Програмне забезпечення мікропроцесорних систем Лекция 5 Общие
1 Програмне забезпечення мікропроцесорних систем Лекция 5 Общие элементы ПО МПС. Переменные и компоненты программ (на примере пакета CoDeSys) Лысаченко И.Г. 2012 Національний технічний університет «Харківський Політехнічній Інститут» Факультет Інтегрованих технологій і хімічної техніки
2 Вопросы лекции Переменные проектов «Венгерская» запись данных в проекте Компоненты проектов блоки Операторы и функции МЭК
3 Переменные в проекте Работа с данными в стандарте МЭК61131 осуществляется через переменные, которые используют элементы проекта конфигурация оборудования ресурсы блоки библиотеки
4 разделяют по зоне видимости Глобальные переменные определяются на уровне ресурсов проекта (VAR_GLOBAL) и доступны для всех компонентов проекта Локальные переменные (VAR) описываются при объявлении компонента и доступны только внутри него Переменные…
5 Переменная в пользовательской программе… Переменная (variable) – это величина определенного формата Константы (Constants) используются для присваивания переменным фиксированных значений константа имеет особый префикс в зависимости от типа данных
6 идея заключается в добавлении к идентификаторам коротких префиксов, которые определяют тип и некоторые другие важные характеристики переменной префиксы записывают строчными буквами имя переменной заглавными буквами “Венгерский” язык …
7 “Венгерский” язык … Для базовых типов МЭК можно предложить следующие префиксы типов
8 “Венгерский” язык … Уточнить назначение переменной можно добавлением еще одного символа перед префиксом типа Символ подчеркивания «_» удобно использовать для индикации способа обращения к переменной подчеркивание в начале имени указывает - только чтение идентификаторы переменных, которые отвечают входам ПЛК, начинаются символом подчеркивания подчеркивание в конце имени указывает – только запись идентификаторы выходов заканчиваются символом подчеркивания
9 Пример Если bStop: BOOL bySet: BYTE wSize UINT тогда bStop := wSize * 2; ошибочное выражение bStop := wSize > 2; допустимое выражение
10 Понятие «БЛОК» БЛОК – это раздел программы, который определяется собственной функциональностью, структурой или решаемой задачей базовый элемент проекта обладает принципом инкапсуляции – т.е. скрывает процесс реализации нужно лишь знать интерфейс - вход и выход внутреннее содержание знать необязательно Компоненты программ (в КоДеСис) функция функциональный блок программа
11 VAR_INPUT формальный вх. параметр, присваивается другой переменной, любые изменения внутри компонента не отображаются на входе VAR_OUTPUT формальный вых. параметр, отражает результат компонента и копируется на выход, вне компонента доступен только для чтения VAR_IN_OUT формальный вх/вых, передается по ссылке только адрес в памяти данных VAR доступны только внутри компонента, вне компонента доступа нет Параметры и переменные компонентов
12 Интерфейс компонентов
13 Интерфейс компонента образуется вх. и вых. переменными интерфейсные вх. переменные называют формальными параметрами при использовании компонента его формальные параметры связываются с актуальными параметрами при вызове параметры компонентов приобретают актуальные или текущие значения Компоненты программ
14 ПРИМЕР
15 ctuTimeMeter.RESET := FALSE; ctuTimeMeter.PV := 100; x := ctuTimeMeter.CV; ctuTimeMeter (RESET := FALSE, CU := Inpl, CV => x); Пример …
16 Операторы и функции МЭК CoDeSys поддерживает все МЭК операторы данные операторы и функции не требуют подключения библиотек Операторы присваивания Арифметические операторы Битовые операторы (логические) Операторы сдвига Операторы выборки Операторы сравнения Адресные операторы Оператор вызова Преобразования типов Математические функции
Операторы присваивания
18 Арифметические операторы Выполняют алгебраические операции над целыми числами (INT, WORD) и числами с плавающей запятой (REAL)
Логические операторы
20 Операторы сдвига SHL, res:=SHL(in,n) побитный сдвиг операнда in влево на n бит с дополнением нулями справа SHR, res:= SHR(in,n) побитный сдвиг операнда in вправо на n бит с дополнением нулями слева ROL, res:=ROL(in,n) циклический сдвиг операнда in влево на n бит, младшие биты последовательно заполняются старшими ROR, res:=ROR(in,n) циклический сдвиг операнда in вправо на n бит, младшие биты последовательно заменяют старшие вх. переменные и результат должны быть типа BYTE, WORD или DWORD
21 SHL (сдвиг влево) SHR (сдвиг вправо) ROL (цикл. сдвиг влево) ROR (цикл. сдвиг вправо) Операторы сдвига
22 Предназначены для ограничения и выбора значений Используются с любыми типами данных Операторы выбора
23 Операторы сравнения Используются для работы со всеми типами данных
24 Move присваивает значение слева переменной справа. Используются с любыми типами данных. При появлении значения TRUE на входе En операция выполняется, иначе операция игнорируется. Используется с любыми операторами и POU. Оператор move и разрешающий вход EN
25 Оператор вызова CAL вызывает функциональный блок или программу применяется в IL для вызова экземпляра функционального блока, входные переменные помещаются в скобках вслед за его именем Пример Вызов экземпляра ФБ Inst, где входные переменные Par1 и Par2 равны 0 и TRUE соответственно CAL INST(PAR1 := 0, PAR2 := TRUE)
26 Операторы для работы с числами с плавающей запятой (тип REAL) Математические функции
27 Логарифмические операторы Вычисление логарифмов и экспоненты Математические функции
28 Тригонометрические операторы Математические функции
29 Преобразование данных Неявное преобразование данных из 'большего' типа в 'меньший' запрещено стандартом если подобное преобразование действительно необходимо, оно должно быть выражено явно явные преобразования работают практически для всех базовых типов данных Синтаксис
30 Выводы по лекции Рассмотренные основные компоненты проектов и их функциональное назначение свидетельствуют о строгой иерархии внутри проектов Стандарт строго регламентирует порядок работы управляющей программы, которая зависит от аппаратной конфигурации управляющей системы
31 Литература Стр. 64 – 102 Стр. 70 – 84 Стр. 124 – 141
32 Вопросы для обсуждения Перечислите структурные элементы проектов В чем заключается «венгерская запись» по отношению к данным проекта Что такое экземпляр блока и где хранятся параметры для экземпляра Как реализуется многократное использование ФБ Чем отличается функция от ФБ Когда формальный параметр становится актуальным
pz_mps_5_2012.ppt
- Количество слайдов: 32