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

Содержание

Слайд 2

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

Представление данных
адресация входов/выходов, ячеек памяти и т.д.
Типы данных (константы и

переменные)
элементарные (базовые)
составные
данные пользователя

Вопросы лекции Представление данных адресация входов/выходов, ячеек памяти и т.д. Типы данных (константы

Слайд 3

ДАННЫЕ - основной элемент обработки в ПЛК, являющийся общим элементом языков и служащий

для связи программных компонентов в одном проекте
с данными способен работать стандартный ПЛК (IEC_61131-3)
единый формат представления
единые общие приемы работы с данными

Данные в проекте…

ДАННЫЕ - основной элемент обработки в ПЛК, являющийся общим элементом языков и служащий

Слайд 4

Языки МЭК используют идеологию строгой проверки типов данных
любая переменная может использоваться -только после

ее объявления
присваивать значение одной переменной другой можно - только если они обе одного типа
неявные преобразования типов данных с потерей информации запрещены
Тип данных определяет
род информации и ее содержимое
объем памяти и диапазон представления
список допустимых операций

Данные в проекте…

Языки МЭК используют идеологию строгой проверки типов данных любая переменная может использоваться -только

Слайд 5

Методы объявления переменных:

Локальные (для 1 ФБ) или Глобальные (для всех ФБ)

текстовый, табличный и

автоматический

Сохраняемые и Постоянные переменные

Представление данных в CoDeSys…

Соотношение типов переменных:

Сохраняемость переменных:

Методы объявления переменных: Локальные (для 1 ФБ) или Глобальные (для всех ФБ) текстовый,

Слайд 6

Синтаксис идентификаторов (символьная адресация)

буквы и цифры (до 24)
может начинаться с буквы или символа «_»
только

одинарные подчеркивания
без пробелов
нельзя использовать зарезервированные слова МЭК и операторы
регистр не различается

Примеры
Otto, otto, OTTO
Valve1
a_long_name

123
OTTO_?

Синтаксис идентификаторов (символьная адресация) буквы и цифры (до 24) может начинаться с буквы

Слайд 7

Синтаксис идентификаторов (абсолютная адресация)

Прямой (абсолютный) адрес
обозначается символом «%»
Область памяти определяется префиксом
I вход
Q выход
M меркер (флаг)
Тип данных →

размер памяти для хранения
X или none бит
B байт (8 бит)
W слово (16 бит)
D двойное слово (32 бит)

Примеры
%IW215
%QX1.1
%MD48

%IW215.1
%QX15 или %QX1.9
%MD4.8

Синтаксис идентификаторов (абсолютная адресация) Прямой (абсолютный) адрес обозначается символом «%» Область памяти определяется

Слайд 8

в прямом адресе указывается номер элемента
если прямой адрес определяет байт → №байта
если слово

→ № слова → адресует два подряд байта
если дв. слово → № дв. слова → адресует 4 подряд байта
Если необходимо поместить переменную по определенному адресу, то нужно объявить ее с ключевым словом «AT»
Объявление переменной без префикса «АТ» физически означает выделение ей памяти в области ОЗУ

Прямая адресация…

в прямом адресе указывается номер элемента если прямой адрес определяет байт → №байта

Слайд 9

Распределение области памяти…

Образование прямых адресов зависит от размера адресуемых данных
адрес %MD48 адресует

в области памяти двойное слово 48
или байты 192, 193, 194 и 195 (48 * 4 = 192)

Распределение области памяти… Образование прямых адресов зависит от размера адресуемых данных адрес %MD48

Слайд 10

Типы данных…

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

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

допускает стандарт
МЭК61131

Типы данных… элементарные элементарные или базовые типы являются основой для построения составных типов

Слайд 11

Целые числа могут быть представлены в
двоичной
восьмеричной
десятичной
шестнадцатеричной системах исчисления
Для

числовых констант, за исключением десятичных, нужно указывать систему исчисления перед знаком «#»
Пример: 2#0100_1110, 8#116, 45, 16#4Е
Символ «_» не влияет на значение и используется только для улучшения зрительного восприятия числа

Элементарные типы данных…

Целые числа могут быть представлены в двоичной восьмеричной десятичной шестнадцатеричной системах исчисления Для

Слайд 12

INT - ЦЕЛОЕ ЧИСЛО
префикс - указывает на размер числа относительно простого слова

(16 бит)
S (short *1/2W) - короткое
D (double *2W) - двойное
L (long *4W) - длинное ( в CDS – не поддержан)
U (unsigned) - указывает на отсутствие знака “-”
При начальной инициализации целочисленные переменные получают всегда нулевые значения
Если необходимо задать другие начальные значения, это можно сделать непосредственно при объявлении переменной

Элементарные типы данных…

INT - ЦЕЛОЕ ЧИСЛО префикс - указывает на размер числа относительно простого слова

Слайд 13

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

– bit/byte, word, dword, lword
1, 2, 4 и 8 байт
sign (знаковый тип) – sint, int, dint, lint
unsign (беззнаковый тип) – usint, uint, udint, ulint

Целочисленные типы …

имеют различный диапазон сохраняемых данных зависит от размера выделяемой памяти бывают any_bit –

Слайд 14

Целочисленные типы …

Целочисленные типы …

Слайд 15

Битовые типы данных…

Битовые типы данных…

Слайд 16

Особенности представления целых чисел…

Особенности представления целых чисел…

Слайд 17

BOOL – логический тип данных – один бит, принимающий значение FALSE или TRUE («0»

или «1»)
при инициализации по умолчанию FALSE («0»)
при автоматическом распределении памяти транслятором под битовую переменную выделяется, как правило, 1 байт памяти (исключение –аппаратные дискретные входы\выходы)
Переменные типа BOOL, связанные с дискретными входами-выходами или объявленные с прямым битовым адресом, физически представляются одним битом

Логические типы данных…

BOOL – логический тип данных – один бит, принимающий значение FALSE или TRUE

Слайд 18

Битовые типы данных…

Данные типов
BYTE, WORD, DWORD, LWORD
относятся к стандартному

битовому типу ANY_BIT
к ним можно обращаться побитно (через точку, VAR_1.5 для типа BYTE) или в целом
диапазон значений для этих переменных отсутствует
это слова длиной 8, 16, 32 и 64 бит

Битовые типы данных… Данные типов BYTE, WORD, DWORD, LWORD относятся к стандартному битовому

Слайд 19

VAR
wVar0, wVar1: WORD; (*две переменных типа WORD*)
byVar3: BYTE; (*тип BYTE начальное значение 0*)
byVar2: BYTE

:=16#55; (*тип BYTE начальное значение 55h*)
END_VAR
byVar2:= 2#1_0_0_0_1_0_0_0; (*равносильно2#1000_1000*)
byVar3:= 2#1_0_0_0__1_0_0_0; (*ошибка*)

Пример…

VAR wVar0, wVar1: WORD; (*две переменных типа WORD*) byVar3: BYTE; (*тип BYTE начальное

Слайд 20

Битовые типы данных…

Особые формы этих типов данных
двоично-десятичные числа (BCD-числа) и значения счетчика

(count), используемые совместно с функциями счетчика
BCD не имеют специального идентификатора
BCD-число имеет тип данных 16# и использует только цифры от 0 до 9 (без A, B, C, D, E, F)
тип данных CHAR, который представляет ASCII-символ (литера) ( в CDS – не поддержан)

Битовые типы данных… Особые формы этих типов данных двоично-десятичные числа (BCD-числа) и значения

Слайд 21

Таблица ASCII-кодов…

Таблица ASCII-кодов…

Слайд 22

Элементарные типы данных…

REAL – вещественное число с плавающей запятой, представляется 32-битами (LREAL в

CDS – не поддержан)
Формат REAL представляет числа в диапазоне ±10±38
мантисса занимает 23 бита
точность представления - 6-7 десятичных чисел
Числа с плавающей запятой записываются
в формате с точкой 14.0, -120.2, 0.33
в экспоненциальной форме -1.2Е10, 3.1Е7

Элементарные типы данных… REAL – вещественное число с плавающей запятой, представляется 32-битами (LREAL

Слайд 23

Стандарт IEEE 754…

F – десятичное число
S – бит знака (31-й бит)
E –

смещение экспоненты (30–23 биты)
M – остаток от мантиссы (22–0 биты)

Стандарт IEEE 754… F – десятичное число S – бит знака (31-й бит)

Слайд 24

TIME - отображает интервалы времени
занимает объем памяти, равный DWORD
интервал не ограничен макс.

значением 24 часа (~49 суток) и может иметь отрицательное значение
числа, выражающие часовой интервал, должны начинаться с ключевого слова Тime# или Т#
в общем случае представление времени состоит из полей: дни (d), часы (h), минуты (т), секунды (s) и миллисекунды (ms)
поля допускается разделять символом «_»

Элементарные типы данных…

TIME1 := t#1m65s (*ошибка*)
TIME1 := t#125s (*правильно*)
TIME2 := t#1.2s (*правильно, равно T#1s200ms *)

TIME - отображает интервалы времени занимает объем памяти, равный DWORD интервал не ограничен

Слайд 25

Элементарные типы данных…

типы переменных «время» и «дата» описываются стандартом ISO 8601 –

занимают 4 байта памяти (DWORD)
дата
время суток
дата и время
использование дефиса между элементами даты и двоеточия между часами, минутами и секундами

Элементарные типы данных… типы переменных «время» и «дата» описываются стандартом ISO 8601 –

Слайд 26

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

количеству дней, начиная с 01.01.1970
ее представление показывает год, месяц и день, разделенные дефисом

Пример: DATE#2011-09-23

Элементарные типы данных…

Переменная типа DATE хранится как число с фиксированной точкой без знака содержимое переменной

Слайд 27

Переменная типа данных TIME_OF_DAY
содержит количество миллисекунд с начала суток (со времени 00:00) –

до 23ч59м59с999мс в виде числа с фиксированной точкой без знака

Пример:
TIME_OF_DAY#00:00:00
TOD#23:59:59.999

Элементарные типы данных…

Переменная типа данных TIME_OF_DAY содержит количество миллисекунд с начала суток (со времени 00:00)

Слайд 28

Тип данных DATE_AND_TIME представляет формат времени, состоящий из даты и времени суток
допускается

использование аббревиатуры DT вместо полного названия типа DATE_AND_TIME
отдельные компоненты DT-переменной закодированы в формате ASCII

Элементарные типы данных…

Пример: DT#2013-09-23-00:00:00

Тип данных DATE_AND_TIME представляет формат времени, состоящий из даты и времени суток допускается

Слайд 29

Данные типа STRING относятся к строковому типу и содержат текстовую информацию
каждый символ

занимает 1 байт (для WSTRING – 2 байта, в CDS – не поддержан )
выделяются одинарными кавычками ‘STOP’
длина определяется при объявлении и составляет от 1 до 255 символов (80 – по умолчанию), возможен пропуск ‘ ’
в случае, когда начальное значение не задано, то при инициализации будет создана пустая строка длиной 80 байт

Строковые типы данных…

Данные типа STRING относятся к строковому типу и содержат текстовую информацию каждый символ

Слайд 30

Объявление строковой переменной str1 длиной до 20 символов и str2 до 60

символов
VAR
strl: STRING(20);
str2: STRING(60) := ‘АВАРИЯ';
END_VAR

Строковые типы данных…

Объявление строковой переменной str1 длиной до 20 символов и str2 до 60 символов

Слайд 31

Иерархия элементарных типов…

Иерархия элементарных типов…

Слайд 32

Данные пользователя …

Описание предназначенных для пользователя типов данных (кроме массивов) должно выполняться на

уровне проекта
объявление типа всегда начинается с ключевого слова TYPE и заканчивается строкой END_TYPE

Данные пользователя … Описание предназначенных для пользователя типов данных (кроме массивов) должно выполняться

Слайд 33

МАССИВ - множество однотипных элементов с произвольным доступом
одномерный
многомерный
СТРУКТУРА - создает новые типы

данных на основе элементов разных базовых типов
ПЕРЕЧИСЛЕНИЕ (СПИСОК) - определяет несколько последовательных значений переменной и присваивает им наименования
это новый тип данных, определение которого выполняется на уровне проекта

Составной тип данных …

МАССИВ - множество однотипных элементов с произвольным доступом одномерный многомерный СТРУКТУРА - создает

Слайд 34

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

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

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

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

Слайд 35

Особенности преобразования типов данных…

siVAR: SINT:=200; в HEX – C8
iVAR: INT:=2000; в HEX –

07D0
iVAR:= siVAR; (*допустимая операция*)
siVAR:= iVAR; (*недопустимая операция*)
Необходимо использовать оператор явного преобразования «исх.тип»_TO_«тип.результата»
siVAR:=INT_TO_SINT( iVAR);
Результат присвоения – D0h или 208

Особенности преобразования типов данных… siVAR: SINT:=200; в HEX – C8 iVAR: INT:=2000; в

Слайд 36

VAR
bVar1: BOOL :=TRUE;
wVar2: WORD;
END_VAR
при преобразовании значения лог. переменной в целую FALSE дает →

«0», a TRUE→ «1»
wVar2 := BOOL_TO_WORD(bVar1); (*результат 1*)
при обратном преобразовании любого целого в лог. переменную «истина» образует любое ненулевое значение
wVar2 := 0;
bVar1 := WORD_TO_BOOL(wVar2); (*результат FALSE*)
результаты операций, которые дают результат логической операции, можно присваивать переменным типа BOOL
bVar1 := wVar2 > 5000; (*результат FALSE*)

Пример …

VAR bVar1: BOOL :=TRUE; wVar2: WORD; END_VAR при преобразовании значения лог. переменной в

Слайд 37

Пример…

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

:= wSize > 2; допустимое выражение

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

Слайд 38

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

Все данные, присутствующие в программах, ориентированы на любые операции
арифметические
логические

преобразование и т.д.
Данные допускают изменение типа, но с некоторыми особенностями и без потери значений
МЭК расширяет возможности по программированию контроллеров в составе АСУ ТП за счет новых типов данных
использование «псевдонимов»
использование ограничения диапазона

Выводы по лекции… Все данные, присутствующие в программах, ориентированы на любые операции арифметические

Слайд 39

Вопросы для обсуждения…

1. Дайте определение “данные”.
2. Чем определяется размер типа данных?
3. Что понимают

под термином «неявное преобразование типа данных»?
4. Какие преобразования типов данных запрещены в МЭК?

Вопросы для обсуждения… 1. Дайте определение “данные”. 2. Чем определяется размер типа данных?

Имя файла: Програмне-забезпечення-мікропроцесорних-систем.pptx
Количество просмотров: 71
Количество скачиваний: 0