Понятие основного цикла. Переменные и типы данных STEP 7

Содержание

Слайд 2

Выполнение OB1 (циклическое)
События
(прерывание по времени дня, от аппаратуры и т.д.)
вызывают

Выполнение OB1 (циклическое) События (прерывание по времени дня, от аппаратуры и т.д.)
другие OB, FB, FC, и т.д..

Циклическое выполнение программы

Запуск времени контроля цикла

Стартовый блок (OB 100) выполняется, например,
после включения питания

Считывание состояний входных сигналов и сохранение
их в области отображения входов (PII)

Выгрузка области отображения выходов (PIQ)
в выходные модули

Слайд 3

Структура программы
:
Все инструкции нахо-
дятся в одном блоке
(обычно, в ОВ1)
Каждая функция программы
реализуется в

Структура программы : Все инструкции нахо- дятся в одном блоке (обычно, в
одном блоке.
OB1 последовательно
вызывает все блоки.
Универсальные функции реализу-
ются в отдельных блоках. OB1 (или
другие блоки) вызывает эти блоки
и и передает им фактические данные.
.

OB 1

Линейная программа

Слайд 4

Структура программы

OB

FB

FC

FC

FC

FC

SFB

SFC

FC

SFC

FB

FB

FB

Структура программы OB FB FC FC FC FC SFB SFC FC SFC FB FB FB

Слайд 5


Тип данных характеризует основные
cвойства данных
непрерывная область значений: напр., актуальная скорость
"yes/no"

Тип данных характеризует основные cвойства данных непрерывная область значений: напр., актуальная скорость
- свойство: напр., вибрации
Тип данных устанавливает:
доступный диапазон значений (INT: -32 368 ... +32 367, и т.д.)
допустимые операции (арифметические инструкции: +, -, и т.д.)
структуру объектов данного типа, т.е.
расположение битов в памяти
Переменные разрешают Вам сохранять и
позже продолжать обработку величин

Actual_speed: REAL

Disturbance: BOOL

Set_speed: REAL

Enable: BOOL

Значения переменных и типы данных

Слайд 6

Обзор типов данных в STEP 7

Элементарные
типы данных
(до 32 бит)

Сложные типы данных
(больше, чем

Обзор типов данных в STEP 7 Элементарные типы данных (до 32 бит)
32 бита)

Типы данных, определенные пользователем
(больше, чем 32 бита)

Слайд 7

Элементарные типы данных в STEP 7

Длина (в битах)

BOOL
BYTE
WORD
DWORD
CHAR
S5TIME
INT
DINT
REAL
TIME
DATE
TIME-OF-DAY

1
8
16
32
8
16
16
32
32
32
16
32

Ключевое слово

Пример константы

1 or 0
B#16#A9
W#16#12AF
DW#16#ADAC1EF5
'w'
S5T#5s_200ms
123
65539

Элементарные типы данных в STEP 7 Длина (в битах) BOOL BYTE WORD
or L#-1
1.2 or 34.5E-12
T#2D_1H_3M_45S_12MS
D#1999-06-14
TOD#12:23:45.12

Слайд 8

Важность сложных типов данных

Motor: STRUCT

END_STRUCT

"Лучшее" cтруктурирование
данных:
адаптирует их к задаче
создает “корректный" тип

Важность сложных типов данных Motor: STRUCT END_STRUCT "Лучшее" cтруктурирование данных: адаптирует их
данных
Компактная форма передачи данных
при вызове блока:
“много“ элементов данных могут быть переданы в одном параметре
делает возможным структкрированное программирование
блоки “связываются" только через параметры
программное обеспечение
многократного пользования

5

.
.
CALL #Controller
Motor:="Hall_1".M5
. . .
.
.

.
.
A #Motor.Enable
.
.

in Drive UDT1
out ... ...
stat Control. FB1

in Motor UDT1
out ... ...

Слайд 9

Сложные типы данных в STEP 7

Длина (в битах)

DATE_AND_TIME
(Дата и время)
STRING
(Строка символов с
max.

Сложные типы данных в STEP 7 Длина (в битах) DATE_AND_TIME (Дата и
254 символами)
ARRAY
(Группа элементов одного и
того же типа данных)
STRUCT
(Структура, группа элементов
разных типов данных)
UDT
(User Defined Data Type =
“Шаблон“, состоящий из
элементарных и/или cложных
типов данных)

64
8 * (число
символов +2)
Определяется
пользователем
Определяется
пользователем
Определяется
пользователем

Ключевое слово

Пример

DT#99-06-14-12:14:55.0
´This is a string´
´SIEMENS´
Meas_vals: ARRAY[1..20]
INT
Motor: STRUCT
Speed : INT
Current : REAL
END_STRUCT
UDT как блок UDT как элемент массива
STRUCT Drive: ARRAY[1..4]
Speed : INT UDT1
Current : REAL
END_STRUCT

Слайд 10

Параметрические типы в STEP 7

Длина (в битах)

TIMER
COUNTER
BLOCK_FB
BLOCK_FC
BLOCK_DB
BLOCK_SDB
Pointer
ANY

16
16
16
48
80

Ключевое слово

Пример

Contact time: TIMER
.
SI #Contact_time
NoCompParts: COUNTER
.
LC

Параметрические типы в STEP 7 Длина (в битах) TIMER COUNTER BLOCK_FB BLOCK_FC
#No_Comp_Parts
Recall: BLOCK_FB
.
UC #Recall
Measure: POINTER
.
L P##Measure
.
Measured Values: ANY
.
L P##Meas_Values
.

Слайд 11

Области для хранения переменных

Меркеры

Локальный
стек данных

“Классические" области PLC

Области для хранения переменных Меркеры Локальный стек данных “Классические" области PLC

Слайд 12

Тип данных: ARRAY

ARRAY (массив):
Группа компонентов с одинаковым типом данных
Объявление:
одномерный: Имя_массива:ARRAY[minИндекс..maxИндекс] OF Тип_данных;
многомерный:

Тип данных: ARRAY ARRAY (массив): Группа компонентов с одинаковым типом данных Объявление:
Имя_массива :ARRAY[minИндекс 1.. maxИндекс 1, minИндекс 2.. maxИндекс 2,...] OF Тип_данных;
Index: тип данных - INT (-32768...32767)
Примеры:
Объявление переменных:
одномерная: Meas_value: ARRAY[1..10] OF REAL;
многомерная: Position: ARRAY[1..5,2..8,...] OF INT;
Доступ к переменным:
L #Meas_value[5] // Зазрузить 5-й элемент массива // Meas_value в ACCU1
T #Result[10,5]

Meas_value: ARRAY[1..10]

.
.

Слайд 13

Объявление и инициализация массивов

DB5 "Declaration View"

DB5 "Data View"

Объявление и инициализация массивов DB5 "Declaration View" DB5 "Data View"

Слайд 14

Хранение переменных типа ARRAY в памяти

Байт n1)

Тип данных BYTE, CHAR

одномерный массив многомерный

Хранение переменных типа ARRAY в памяти Байт n1) Тип данных BYTE, CHAR
массив
Тип данных BOOL

8

7

6

5

4

3

2

1

7 6 5 4 3 2 1 0

12

11

10

9

Байт n+1

Байт n1)

Байт n+1

Байт n+2

Байт 1

Байт 2

Байт 3

Тип данных WORD, DWORD,...

Байт n1)

Байт n+1

Байт n+2

Byte 3

. .
.

Слово 2

Байт n+2

. .
.

Пример. ARRAY[1..2,1..3,1..2] OF BYTE

Байт n1)

Байт n+1

Байт n+2

Байт 1.1.1

Байт 1.1.2

Байт 1.2.1

. .
.

Байт 1.2.2

Байт 1.3.1

Байт 1.3.2

Байт 2.1.1

Байт 2.1.2

Байт 2.2.1

Байт 2.2.2

Байт 2.3.1

Байт 2.3.2

1) n = четное

Слово 1

и т.д.

Слайд 15

STRUCT (Структура):
Группа компонентов различных типов данных
Объявление:
StructName: STRUCT Имя_комп1: Тип_данных; Имя_комп2: Тип_данных; ... END_STRUCT Пример:
Объявление переменных: Доступ к

STRUCT (Структура): Группа компонентов различных типов данных Объявление: StructName: STRUCT Имя_комп1: Тип_данных;
переменным
MotorControl : STRUCT S #MotorControl.ON ON : BOOL; L #MotorControl.ActualSpeed OFF : BOOL; T #MotorControl.SetSpeed SetSpeed : INT; ... ActualSpeed : INT; END_STRUCT;

Тип данных: STRUCT

Motor: STRUCT

END_STRUCT

Слайд 16

Объявление структур

Пример: Объявление массива структур с полями типа ARRAY

DB6 "Declaration View"

DB6 "Data

Объявление структур Пример: Объявление массива структур с полями типа ARRAY DB6 "Declaration View" DB6 "Data View"
View"

Слайд 17

Хранение переменных типа STRUCT в памяти

Байт n1)

Структуры с элементарными Структуры со cложными

Хранение переменных типа STRUCT в памяти Байт n1) Структуры с элементарными Структуры
типами данных типами данных

6

5

4

3

2

1

7 6 5 4 3 2 1 0

Байт n+1

Байт n+2

Байт 1

Байт 2

Байт 3

Байт n+8

Байт n+9

Byte 3

Слово 1

Слово 2

. .
.

1) n = четное

Байт наполнителя

Байт наполнителя

Байт n+3

Байт n+4

Байт n+5

6

5

4

3

2

1

Байт наполнителя

Байт n+6

Байт n+7

. .
.
Компоненты
с элементарными
типами данных

Граница
слова

Компоненты с типами данных ARRAY

Компоненты с типами данных STRUCT

Граница
слова

. .
.

Граница
слова

Слайд 18

Тип данных, определенный пользователем: UDT

UDT- тип данных, определенный пользователем:
создается шаблон для дальнейшего использования в

Тип данных, определенный пользователем: UDT UDT- тип данных, определенный пользователем: создается шаблон
объявлениях
доступен для всех блоков из программной папки
Пример:
Определение нового типа данных (структуры):
UDT1 STRUCT SetSpeed : REAL; ... ActualSpeed : REAL; Enable : BOOL; Disturbance : BOOL; END_STRUCT;
Объявление переменных:
Motor_1: UDT1; Motor_2: UDT1;
Доступ к переменной:
L #Motor_1.ActualSpeed

UDT1: STRUCT

END_STRUCT

Слайд 19

Тип данных: DATE_AND_TIME

Байт n1)

Байт n+2

Байт n+4

Байт n+1

Байт n+3

Байт n+5

Год (90 ... 89)

Структура:

Месяц
(01 ...

Тип данных: DATE_AND_TIME Байт n1) Байт n+2 Байт n+4 Байт n+1 Байт
12)

День
(01 ... 31)

Часы
(00 ... 23)

Минуты
(00 ... 59)

Секунды
(00 ... 59)

Байт n+6

Байт n+7

Миллисекунды
(000 ... 999)

День недели
(1..7)

Все значения храняться в BCD формате
Предустановки переменных:
DT#Год-Месяц-День-Часы:Минуты:Секунды.[Миллисекунды]
Пример: DT#1998-03-21-17:23:00:00
Работа через функции IEC-библиотеки

1=Воскресенье
2=Попедельник
3=Вторник
4=Среда
5=Четверг
6=Пятница
7=Суббота

1) n = четное

Слайд 20

Тип данных: STRING

Переменная типа STRING (строка) :
Тип данных STRING - строка символов

Тип данных: STRING Переменная типа STRING (строка) : Тип данных STRING -
до 254 символов длиной
Применение: обработка текстовых сообщений
Объявление:
Имя_Строки: STRING[maxNo]: ‘ Текст_инициализации' (Строка максимум из maxNo символов, maxNo: 0... 254)
Имя_Строки: STRING: ' Текст_инициализации' (Строка максимум из 254 символов)
Примеры:
Объявление переменной:
Fault_signal : STRING 'Motor_ failure_4' (Переменная Fault signal инициализируется указанным текстом)
Warning : STRING[50] ' ' (“пустая" переменная Warning, может содержать до 50 cимволов)
Обработка:
элементарный доступ:
L #Fault_signal[5] (загрузить 5 -й символ из Fault_ signal)
Обработка посредством FC из IEC- библиотеки

Слайд 21

Хранение строковых переменных в памяти

Байт n1)

Пример:
Объявление с инициализацией
Given_ name: STRING[8]: 'OTTO'
Хранение строковой

Хранение строковых переменных в памяти Байт n1) Пример: Объявление с инициализацией Given_
переменной "Given_ name"

Байт n+1

Байт n+2

max длина= 8

Текущая длина= 4

1-й символ= 'O'

Байт n+8

. .
.

1) n = четное

2-й символ = 'T'

Байт n+3

Байт n+4

Байт n+5

Байт e n+6

Байт n+7

3-й символ = 'T'

4-й символ = 'O'

Определяет максимальное число сохраняемых знаков, то есть длина, указанная в декларации

Определяет число знаков в настоящее время сохраненных в переменной типа STRING

B#16#00

B#16#00

B#16#00

Байт n+9

B#16#00

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