Общие элементы ПО МПС. Переменные и компоненты программ (на примере пакета CoDeSys)

Содержание

Слайд 2

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

Вопросы лекции

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

МЭК
Слайд 3

Переменные в проекте Работа с данными в стандарте МЭК61131 осуществляется через

Переменные в проекте

Работа с данными в стандарте МЭК61131 осуществляется через переменные,

которые используют элементы проекта
конфигурация оборудования
ресурсы
блоки
библиотеки
Слайд 4

разделяют по зоне видимости Глобальные переменные определяются на уровне ресурсов проекта

разделяют по зоне видимости
Глобальные переменные определяются на уровне ресурсов проекта

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

Переменные…

Слайд 5

Переменная в пользовательской программе… Переменная (variable) – это величина определенного формата

Переменная в пользовательской программе…

Переменная (variable) – это величина определенного формата
Константы (Constants)

используются для присваивания переменным фиксированных значений
константа имеет особый префикс в зависимости от типа данных
Слайд 6

идея заключается в добавлении к идентификаторам коротких префиксов, которые определяют тип

идея заключается в добавлении к идентификаторам коротких префиксов, которые определяют тип

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

“Венгерский” язык …

Слайд 7

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

“Венгерский” язык …

Для базовых типов МЭК можно предложить следующие префиксы типов

Слайд 8

“Венгерский” язык … Уточнить назначение переменной можно добавлением еще одного символа

“Венгерский” язык …

Уточнить назначение переменной можно добавлением еще одного символа перед

префиксом типа

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

Слайд 9

Пример Если bStop: BOOL bySet: BYTE wSize UINT тогда bStop :=

Пример

Если
bStop: BOOL
bySet: BYTE
wSize UINT
тогда
bStop := wSize * 2;

ошибочное выражение
bStop := wSize > 2; допустимое выражение
Слайд 10

Понятие «БЛОК» БЛОК – это раздел программы, который определяется собственной функциональностью,

Понятие «БЛОК»

БЛОК – это раздел программы, который определяется собственной функциональностью, структурой

или решаемой задачей
базовый элемент проекта
обладает принципом инкапсуляции – т.е. скрывает процесс реализации
нужно лишь знать интерфейс - вход и выход
внутреннее содержание знать необязательно
Компоненты программ (в КоДеСис)
функция
функциональный блок
программа
Слайд 11

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

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

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

Параметры и переменные компонентов

Слайд 12

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

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

Слайд 13

Интерфейс компонента образуется вх. и вых. переменными интерфейсные вх. переменные называют

Интерфейс компонента образуется вх. и вых. переменными
интерфейсные вх. переменные

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

Компоненты программ

Слайд 14

ПРИМЕР

ПРИМЕР

Слайд 15

ctuTimeMeter.RESET := FALSE; ctuTimeMeter.PV := 100; x := ctuTimeMeter.CV; ctuTimeMeter (RESET

ctuTimeMeter.RESET := FALSE;
ctuTimeMeter.PV := 100;
x := ctuTimeMeter.CV;
ctuTimeMeter (RESET := FALSE, CU

:= Inpl, CV => x);

Пример …

Слайд 16

Операторы и функции МЭК CoDeSys поддерживает все МЭК операторы данные операторы

Операторы и функции МЭК

CoDeSys поддерживает все МЭК операторы
данные операторы и

функции не требуют подключения библиотек
Операторы присваивания
Арифметические операторы
Битовые операторы (логические)
Операторы сдвига
Операторы выборки
Операторы сравнения
Адресные операторы
Оператор вызова
Преобразования типов
Математические функции
Слайд 17

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

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

Слайд 18

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

Арифметические операторы

Выполняют алгебраические операции над целыми числами (INT, WORD) и числами

с плавающей запятой (REAL)
Слайд 19

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

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

Слайд 20

Операторы сдвига SHL, res:=SHL(in,n) побитный сдвиг операнда in влево на n

Операторы сдвига

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 (цикл. сдвиг вправо) Операторы сдвига

SHL (сдвиг влево)
SHR (сдвиг вправо)
ROL (цикл. сдвиг влево)
ROR (цикл. сдвиг вправо)

Операторы

сдвига
Слайд 22

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

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

Операторы выбора


Слайд 23

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

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

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

Слайд 24

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

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

значения TRUE на входе En операция
выполняется, иначе операция игнорируется.
Используется с любыми операторами и POU.

Оператор move и разрешающий вход EN

Слайд 25

Оператор вызова CAL вызывает функциональный блок или программу применяется в IL

Оператор вызова

CAL
вызывает функциональный блок или программу
применяется в IL для вызова экземпляра

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

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

Операторы для работы с числами с плавающей запятой (тип REAL)

Математические функции

Слайд 27

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

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

Вычисление логарифмов и экспоненты

Математические функции

Слайд 28

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

Тригонометрические операторы

Математические функции

Слайд 29

Преобразование данных Неявное преобразование данных из 'большего' типа в 'меньший' запрещено

Преобразование данных

Неявное преобразование данных из 'большего' типа в 'меньший' запрещено стандартом


если подобное преобразование действительно необходимо, оно должно быть выражено явно
явные преобразования работают практически для всех базовых типов данных
Синтаксис _TO_
преобразования в строку …_TO_STRING используют выравнивание влево
Слайд 30

Выводы по лекции Рассмотренные основные компоненты проектов и их функциональное назначение

Выводы по лекции

Рассмотренные основные компоненты проектов и их функциональное назначение свидетельствуют

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

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

Литература

Стр. 64 – 102
Стр. 70 – 84
Стр. 124 –

141