1 Програмне забезпечення мікропроцесорних систем Лекция 5 Общие

>1 Програмне забезпечення мікропроцесорних систем Лекция 5 Общие элементы ПО МПС. Переменные и компоненты 1 Програмне забезпечення мікропроцесорних систем Лекция 5 Общие элементы ПО МПС. Переменные и компоненты программ (на примере пакета CoDeSys) Лысаченко И.Г. 2012 Національний технічний університет «Харківський Політехнічній Інститут» Факультет Інтегрованих технологій і хімічної техніки

>2 Вопросы лекции Переменные проектов «Венгерская» запись данных в проекте Компоненты проектов блоки Операторы 2 Вопросы лекции Переменные проектов «Венгерская» запись данных в проекте Компоненты проектов блоки Операторы и функции МЭК

>3 Переменные в проекте Работа с данными в стандарте МЭК61131 осуществляется через переменные, которые 3 Переменные в проекте Работа с данными в стандарте МЭК61131 осуществляется через переменные, которые используют элементы проекта конфигурация оборудования ресурсы блоки библиотеки

>4 разделяют по зоне видимости Глобальные переменные определяются на уровне ресурсов проекта (VAR_GLOBAL) и 4 разделяют по зоне видимости Глобальные переменные определяются на уровне ресурсов проекта (VAR_GLOBAL) и доступны для всех компонентов проекта Локальные переменные (VAR) описываются при объявлении компонента и доступны только внутри него Переменные…

>5 Переменная в пользовательской программе… Переменная (variable) – это величина определенного формата Константы (Constants) 5 Переменная в пользовательской программе… Переменная (variable) – это величина определенного формата Константы (Constants) используются для присваивания переменным фиксированных значений константа имеет особый префикс в зависимости от типа данных

>6 идея заключается в добавлении к идентификаторам коротких префиксов, которые определяют тип и некоторые 6 идея заключается в добавлении к идентификаторам коротких префиксов, которые определяют тип и некоторые другие важные характеристики переменной префиксы записывают строчными буквами имя переменной заглавными буквами “Венгерский” язык …

>7 “Венгерский” язык … Для базовых типов МЭК можно предложить следующие префиксы типов 7 “Венгерский” язык … Для базовых типов МЭК можно предложить следующие префиксы типов

>8 “Венгерский” язык … Уточнить назначение переменной можно добавлением еще одного символа перед префиксом 8 “Венгерский” язык … Уточнить назначение переменной можно добавлением еще одного символа перед префиксом типа Символ подчеркивания «_» удобно использовать для индикации способа обращения к переменной подчеркивание в начале имени указывает - только чтение идентификаторы переменных, которые отвечают входам ПЛК, начинаются символом подчеркивания подчеркивание в конце имени указывает – только запись идентификаторы выходов заканчиваются символом подчеркивания

>9 Пример Если bStop: BOOL bySet: BYTE wSize UINT тогда bStop := wSize * 9 Пример Если bStop: BOOL bySet: BYTE wSize UINT тогда bStop := wSize * 2; ошибочное выражение bStop := wSize > 2; допустимое выражение

>10 Понятие «БЛОК» БЛОК – это раздел программы, который определяется собственной функциональностью, структурой или 10 Понятие «БЛОК» БЛОК – это раздел программы, который определяется собственной функциональностью, структурой или решаемой задачей базовый элемент проекта обладает принципом инкапсуляции – т.е. скрывает процесс реализации нужно лишь знать интерфейс - вход и выход внутреннее содержание знать необязательно Компоненты программ (в КоДеСис) функция функциональный блок программа

>11 VAR_INPUT формальный вх. параметр, присваивается другой переменной, любые изменения внутри компонента не отображаются 11 VAR_INPUT формальный вх. параметр, присваивается другой переменной, любые изменения внутри компонента не отображаются на входе VAR_OUTPUT формальный вых. параметр, отражает результат компонента и копируется на выход, вне компонента доступен только для чтения VAR_IN_OUT формальный вх/вых, передается по ссылке только адрес в памяти данных VAR доступны только внутри компонента, вне компонента доступа нет Параметры и переменные компонентов

>12 Интерфейс компонентов 12 Интерфейс компонентов

>13 Интерфейс компонента образуется вх. и вых. переменными интерфейсные вх. переменные называют формальными параметрами 13 Интерфейс компонента образуется вх. и вых. переменными интерфейсные вх. переменные называют формальными параметрами при использовании компонента его формальные параметры связываются с актуальными параметрами при вызове параметры компонентов приобретают актуальные или текущие значения Компоненты программ

>14 ПРИМЕР 14 ПРИМЕР

>15 ctuTimeMeter.RESET := FALSE; ctuTimeMeter.PV := 100; x := ctuTimeMeter.CV; ctuTimeMeter (RESET := FALSE, 15 ctuTimeMeter.RESET := FALSE; ctuTimeMeter.PV := 100; x := ctuTimeMeter.CV; ctuTimeMeter (RESET := FALSE, CU := Inpl, CV => x); Пример …

>16 Операторы и функции МЭК CoDeSys поддерживает все МЭК операторы данные операторы и функции 16 Операторы и функции МЭК CoDeSys поддерживает все МЭК операторы данные операторы и функции не требуют подключения библиотек Операторы присваивания Арифметические операторы Битовые операторы (логические) Операторы сдвига Операторы выборки Операторы сравнения Адресные операторы Оператор вызова Преобразования типов Математические функции

>Операторы присваивания Операторы присваивания

>18 Арифметические операторы Выполняют алгебраические операции над целыми числами (INT, WORD) и числами с 18 Арифметические операторы Выполняют алгебраические операции над целыми числами (INT, WORD) и числами с плавающей запятой (REAL)

>Логические операторы Логические операторы

>20 Операторы сдвига SHL, res:=SHL(in,n) побитный сдвиг операнда in влево на n бит с 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 (цикл. сдвиг 21 SHL (сдвиг влево) SHR (сдвиг вправо) ROL (цикл. сдвиг влево) ROR (цикл. сдвиг вправо) Операторы сдвига

>22 Предназначены для ограничения и выбора значений Используются с любыми типами данных Операторы выбора 22 Предназначены для ограничения и выбора значений Используются с любыми типами данных Операторы выбора

>23 Операторы сравнения Используются для работы со всеми типами данных 23 Операторы сравнения Используются для работы со всеми типами данных

>24 Move присваивает значение слева переменной справа. Используются с любыми типами данных. При появлении 24 Move присваивает значение слева переменной справа. Используются с любыми типами данных. При появлении значения TRUE на входе En операция выполняется, иначе операция игнорируется. Используется с любыми операторами и POU. Оператор move и разрешающий вход EN

>25 Оператор вызова CAL вызывает функциональный блок или программу применяется в IL для вызова 25 Оператор вызова CAL вызывает функциональный блок или программу применяется в IL для вызова экземпляра функционального блока, входные переменные помещаются в скобках вслед за его именем Пример Вызов экземпляра ФБ Inst, где входные переменные Par1 и Par2 равны 0 и TRUE соответственно CAL INST(PAR1 := 0, PAR2 := TRUE)

>26 Операторы для работы с числами с плавающей запятой (тип REAL) Математические функции 26 Операторы для работы с числами с плавающей запятой (тип REAL) Математические функции

>27 Логарифмические операторы Вычисление логарифмов и экспоненты Математические функции 27 Логарифмические операторы Вычисление логарифмов и экспоненты Математические функции

>28 Тригонометрические операторы Математические функции 28 Тригонометрические операторы Математические функции

>29 Преобразование данных Неявное преобразование данных из 'большего' типа в 'меньший' запрещено стандартом если 29 Преобразование данных Неявное преобразование данных из 'большего' типа в 'меньший' запрещено стандартом если подобное преобразование действительно необходимо, оно должно быть выражено явно явные преобразования работают практически для всех базовых типов данных Синтаксис _TO_ преобразования в строку …_TO_STRING используют выравнивание влево

>30 Выводы по лекции Рассмотренные основные компоненты проектов и их функциональное назначение свидетельствуют о 30 Выводы по лекции Рассмотренные основные компоненты проектов и их функциональное назначение свидетельствуют о строгой иерархии внутри проектов Стандарт строго регламентирует порядок работы управляющей программы, которая зависит от аппаратной конфигурации управляющей системы

>31 Литература Стр. 64 – 102 Стр. 70 – 84 Стр. 124 – 141 31 Литература Стр. 64 – 102 Стр. 70 – 84 Стр. 124 – 141

>32 Вопросы для обсуждения Перечислите структурные элементы проектов В чем заключается «венгерская запись» по 32 Вопросы для обсуждения Перечислите структурные элементы проектов В чем заключается «венгерская запись» по отношению к данным проекта Что такое экземпляр блока и где хранятся параметры для экземпляра Как реализуется многократное использование ФБ Чем отличается функция от ФБ Когда формальный параметр становится актуальным