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

Содержание

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

Слайд 1“Програмне забезпечення мікропроцесорних систем”
Лекция 3
Общие элементы СПО МПС.
Обзор типов данных в

проектах
(на примере пакета CoDeSys 2.3)

Національний технічний університет
«Харківський Політехнічній Інститут»

Факультет Інтегрованих технологій
і хімічної техніки

Разработал доц. Лысаченко И.Г.
ІХ сем., осень, 2016

Кафедра автоматизації хіміко-технологічних
систем та екологічного моніторингу


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

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



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

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

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


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

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

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


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

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

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

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

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

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


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

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

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


123
OTTO_?


Слайд 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)

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

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


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


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

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

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


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

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

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


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


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

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


Слайд 14Целочисленные типы …


Слайд 15Битовые типы данных…


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


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

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

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


Слайд 18Битовые типы данных…
Данные типов
BYTE, WORD, DWORD, LWORD


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

Слайд 19VAR
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; (*ошибка*)

Пример…



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

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


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


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

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

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


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


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

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

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

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


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

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

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

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

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

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


Слайд 27Переменная типа данных TIME_OF_DAY
содержит количество миллисекунд с начала суток (со времени

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

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

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


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

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

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

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


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


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

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


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

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

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


Слайд 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



Слайд 36VAR
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*)

Пример …


Слайд 37Пример…
Если
bStop: BOOL
bySet:

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

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

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

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

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

Слайд 40Литература….
[1] - Стр. 50 – 78
Тема следующей лекции….
Общие элементы СПО МПС.

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

Обратная связь

Если не удалось найти и скачать презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое ThePresentation.ru?

Это сайт презентаций, докладов, проектов, шаблонов в формате PowerPoint. Мы помогаем школьникам, студентам, учителям, преподавателям хранить и обмениваться учебными материалами с другими пользователями.


Для правообладателей

Яндекс.Метрика