Date: File:PRO2_05E.1 SIMATIC S7 Siemens AG All rights reserved. Information and Training Center Knowledge for Automation Переменные и типы данных STEP 7
Date: File:PRO2_05E.2 SIMATIC S7 Siemens AG All rights reserved. Information and Training Center Knowledge for Automation Тип данных характеризует основные свойства данных l непрерывная область значений: напр., актуальная скорость l "yes/no" - свойство: напр., вибрации Тип данных устанавливает: l доступный диапазон значений (INT: , и т.д.) l допустимые операции (арифметические инструкции: +, -, и т.д.) l структуру объектов данного типа, т.е. расположение битов в памяти Переменные разрешают Вам сохранять и позже продолжать обработку величин Actual_speed: REAL Disturbance: BOOL Set_speed: REAL Enable: BOOL Значения переменных и типы данных
Date: File:PRO2_05E.3 SIMATIC S7 Siemens AG All rights reserved. Information and Training Center Knowledge for Automation Следующие свойства определяются при объявлении переменных: l символическое имя l тип данных l видимость переменной Переменные могут быть объявлены: l в глобальной символьной таблице (элементарные типы данных) l в таблице описаний глобального блока данных (все типы данных) l в таблице описаний логического блока (OB, FB и FC) Объявления и свойства переменных Meas_point[1]:Real Meas_point[2]:Real Meas_point[3]:Real Meas_point[10]: Real Meas_point: ARRAY[1..10]
Date: File:PRO2_05E.4 SIMATIC S7 Siemens AG All rights reserved. Information and Training Center Knowledge for Automation Обзор типов данных в STEP 7 Элементарные типы данных (до 32 бит) Сложные типы данных (больше, чем 32 бита) Типы данных, определенные пользователем (больше, чем 32 бита) Битовые типы данных (BOOL, BYTE, WORD, DWORD, CHAR) Математические типы данных (INT, DINT, REAL) Временные типы (S5TIME, TIME, DATE, TIME_OF_DAY) Дата и время (DATE_AND_TIME) Массив (ARRAY) Структура (STRUCT) Строка (STRING) Тип данных UDT (User Defined Type)
Date: File:PRO2_05E.5 SIMATIC S7 Siemens AG All rights reserved. Information and Training Center Knowledge for Automation Элементарные типы данных в STEP 7 Длина (в битах) BOOL BYTE WORD DWORD CHAR S5TIME INT DINT REAL TIME DATE TIME-OF-DAY Ключевое слово Пример константы 1 or 0 B#16#A9 W#16#12AF DW#16#ADAC1EF5 'w' S5T#5s_200ms or L# or 34.5E-12 T#2D_1H_3M_45S_12MS D# TOD#12:23:45.12
Date: File:PRO2_05E.6 SIMATIC S7 Siemens AG All rights reserved. Information and Training Center Knowledge for Automation Важность сложных типов данных Set_speed:REAL Actual_speed:REAL Enable: BOOL Disturbance: BOOL Motor: STRUCT END_STRUCT " Лучшее" структурирование данных: l адаптирует их к задаче l создает корректный" тип данных Компактная форма передачи данных при вызове блока: lмного элементов данных могут быть переданы в одном параметре l делает возможным структурированное программирование l блоки связываются" только через параметры l программное обеспечение многократного пользования 5. CALL #Controller Motor:="Hall_1".M5.... A #Motor.Enable. inDriveUDT1 out statControl.FB1 inMotorUDT1 out......
Date: File:PRO2_05E.7 SIMATIC S7 Siemens AG All rights reserved. Information and Training Center Knowledge for Automation Сложные типы данных в STEP 7 Длина (в битах) DATE_AND_TIME (Дата и время) STRING (Строка символов с max. 254 символами) ARRAY (Группа элементов одного и того же типа данных) STRUCT (Структура, группа элементов разных типов данных) UDT (User Defined Data Type = Шаблон, состоящий из элементарных и/или сложных типов данных) 64 8 * (число символов +2) Определяется пользователем Определяется пользователем Определяется пользователем Ключевое слово Пример DT# :14:55.0 ´This is a string´ ´SIEMENS´ Meas_vals: ARRAY[1..20] INT Motor: STRUCT Speed: INT Current : REAL END_STRUCT UDT как блок UDT как элемент массива STRUCTDrive: ARRAY[1..4] Speed: INTUDT1 Current : REAL END_STRUCT
Date: File:PRO2_05E.8 SIMATIC S7 Siemens AG All rights reserved. Information and Training Center Knowledge for Automation Параметрические типы в STEP 7 Длина (в битах ) TIMER COUNTER BLOCK_FB BLOCK_FC BLOCK_DB BLOCK_SDB Pointer ANY Ключевое слово Пример Contact time: TIMER. SI #Contact_time NoCompParts: COUNTER. LC #No_Comp_Parts Recall: BLOCK_FB. UC #Recall Measure: POINTER. L P##Measure. Measured Values: ANY. L P##Meas_Values.
Date: File:PRO2_05E.9 SIMATIC S7 Siemens AG All rights reserved. Information and Training Center Knowledge for Automation Области для хранения переменных Блоки данных DBx DBy DBz... Меркеры PIQ PII I/O обл. (P) Локальный стек данных Классические" области PLC
Date: File:PRO2_05E.10 SIMATIC S7 Siemens AG All rights reserved. Information and Training Center Knowledge for Automation Метод функционирования локального стека данных Назначенный для OB1 L-Stack Напр., 256 байт 5 OB1 FB1 FC5 FC10. CALL FB CALL FC10. CALL FC5. 6 LD для OB1 1 LD для FB1 LD для OB1 2 LD для FB1 LD for FC5 Начало цикла LD для OB1 3 LD для FB1 LD для OB1 4 5 LD для FC10 свободно LD для OB1 6 свободно LD= Локальные данные
Date: File:PRO2_05E.11 SIMATIC S7 Siemens AG All rights reserved. Information and Training Center Knowledge for Automation Пример: Использование локального стека LAD-редактором Переходы в LAD Вспомогательные переменные для локального стека данных STL представление Местоположение переходов
Date: File:PRO2_05E.12 SIMATIC S7 Siemens AG All rights reserved. Information and Training Center Knowledge for Automation Блоки данных (DB) Функция FC10 Функция FC20 Функциональный блок FB1 OB1 Глобальный блок данных DB20 Доступен для всех блоков Экземпляр блока данных DB5 Экземпляр DB для FB1
Date: File:PRO2_05E.13 SIMATIC S7 Siemens AG All rights reserved. Information and Training Center Knowledge for Automation Тип данных: ARRAY ARRAY (массив): l Группа компонентов с одинаковым типом данных l Объявление: одномерный: Имя_массива:ARRAY[min Индекс..max Индекс] OF Тип_данных; многомерный: Имя_массива :ARRAY[min Индекс 1.. max Индекс 1, min Индекс 2.. max Индекс 2,...] OF Тип_данных; Index: тип данных - INT ( ) Примеры: l Объявление переменных: одномерная:Meas_value: ARRAY[1..10] OF REAL; многомерная:Position: ARRAY[1..5,2..8,...] OF INT; l Доступ к переменным: L #Meas_value[5] // Зазрузить 5-й элемент массива // Meas_value в ACCU1 T #Result[10,5] Meas_value[1]:Real Meas_value[2]:Real Meas_value[3]:Real Meas_value[10]:Real Meas_value: ARRAY[1..10]
Date: File:PRO2_05E.14 SIMATIC S7 Siemens AG All rights reserved. Information and Training Center Knowledge for Automation Объявление и инициализация массивов DB5 "Declaration View" DB5 "Data View"
Date: File:PRO2_05E.15 SIMATIC S7 Siemens AG All rights reserved. Information and Training Center Knowledge for Automation Хранение переменных типа ARRAY в памяти Байт n 1) Тип данных BYTE, CHAR одномерный массив многомерный массив l Тип данных BOOL Байт n+1 Байт n 1) Байт n+1 Байт n+2 Байт 1 Байт 2 Байт 3 Тип данных WORD, DWORD,... Байт n 1) Байт n+1 Байт n+2 Byte Слово 2 Байт n l Пример. ARRAY[1..2,1..3,1..2] OF BYTE Байт n 1) Байт n+1 Байт n+2 Байт Байт Байт Байт Байт Байт Байт Байт Байт Байт Байт Байт ) n = четное Слово 1 и т.д.
Date: File:PRO2_05E.16 SIMATIC S7 Siemens AG All rights reserved. Information and Training Center Knowledge for Automation STRUCT (Структура): l Группа компонентов различных типов данных l Объявление: StructName: STRUCT Имя_комп 1: Тип_данных; Имя_комп 2: Тип_данных;... END_STRUCT Пример: l Объявление переменных:Доступ к переменным MotorControl: STRUCTS #MotorControl.ON ON: BOOL;L #MotorControl.ActualSpeed OFF: BOOL;T #MotorControl.SetSpeed SetSpeed: INT;... ActualSpeed: INT; END_STRUCT; Тип данных: STRUCT Set_Speed:REAL Actual_Speed:REAL Enable: BOOL Disturbance: BOOL Motor: STRUCT END_STRUCT
Date: File:PRO2_05E.17 SIMATIC S7 Siemens AG All rights reserved. Information and Training Center Knowledge for Automation Объявление структур Пример: Объявление массива структур с полями типа ARRAY DB6 "Declaration View" DB6 "Data View"
Date: File:PRO2_05E.18 SIMATIC S7 Siemens AG All rights reserved. Information and Training Center Knowledge for Automation Хранение переменных типа STRUCT в памяти Байт n 1) Структуры с элементарными Структуры со сложными типами данных типами данных Байт n+1 Байт n+2 Байт 1 Байт 2 Байт 3 Байт n+8 Байт n+9 Byte 3 Слово 1 Слово ) n = четное Байт наполнителя Байт n+3 Байт n+4 Байт n Байт наполнителя Байт n+6 Байт n Компоненты с элементарными типами данных Граница слова Компоненты с типами данных ARRAY Компоненты с типами данных STRUCT Граница слова Граница слова
Date: File:PRO2_05E.19 SIMATIC S7 Siemens AG All rights reserved. Information and Training Center Knowledge for Automation Тип данных, определенный пользователем: UDT UDT- тип данных, определенный пользователем: l создается шаблон для дальнейшего использования в объявлениях l доступен для всех блоков из программной папки Пример: l Определение нового типа данных (структуры): UDT1 STRUCT SetSpeed: REAL;... ActualSpeed: REAL; Enable: BOOL; Disturbance: BOOL; END_STRUCT; l Объявление переменных: Motor_1:UDT1; Motor_2:UDT1; l Доступ к переменной: L #Motor_1. ActualSpeed Set_Speed:REAL Actual_Speed:REAL Enable: BOOL Disturbance: BOOL UDT1: STRUCT END_STRUCT
Date: File:PRO2_05E.20 SIMATIC S7 Siemens AG All rights reserved. Information and Training Center Knowledge for Automation Использование UDT UDT5 FC23
Date: File:PRO2_05E.21 SIMATIC S7 Siemens AG All rights reserved. Information and Training Center Knowledge for Automation Тип данных: DATE_AND_TIME Байт n 1) Байт n+2 Байт n+4 Байт n+1 Байт n+3 Байт n+5 Год ( ) Структура: Месяц ( ) День ( ) Часы ( ) Минуты ( ) Секунды ( ) Байт n+6 Байт n+7 Миллисекунды ( ) День недели (1..7) l Все значения храняться в BCD формате l Предустановки переменных: DT#Год-Месяц-День-Часы:Минуты:Секунды.[Миллисекунды] Пример: DT# :23:00:00 l Работа через функции IEC-библиотеки 1=Воскресенье 2=Попедельник 3=Вторник 4=Среда 5=Четверг 6=Пятница 7=Суббота 1) n = четное
Date: File:PRO2_05E.22 SIMATIC S7 Siemens AG All rights reserved. Information and Training Center Knowledge for Automation Функции для работы с переменными типа DT IEC-библиотека в Standard Library V3. x l FC1 (AD_DT_TM): Функция FC 1 добавляет продолжительность времени (в формате TIME) к моменту (в формате DT) и возвращает новый момент (в формате DT) как результат. l FC34 (SB_DT_DT): Функция FC 34 вычитает два момента (в формате DT) и возвращает продолжительность времени (в формате TIME) как результат. l FC35 (SB_DT_TM): Функция FC 35 вычитает продолжительность времени (в формате TIME) из момента (в формате DT) и возвращает новый момент (в формате DT) как результат. l FC3 (D_TOD_DT): Функция FC 3 объединяет данные в формате DATE и TIME_OF_DAY (TOD) и возвращает результат в формате DATE_AND_TIME (DT). l FC6 (DT_DATE): Функция FC 6 извлекает данные формата DATE из формата DATE_AND_TIME. l FC7 (DT_DAY): Функция FC 7 извлекает день недели из формата DATE_AND_TIME. l FC8 (DT_TOD): Функция FC 8 извлекает данные формата TIME_OF_DAY из формата DATE_AND_TIME. l Функции cравнения для DT #Переменных: FC9 (EQ_DT), FC12 (GE_DT), FC14 (GT_DT), FC18 (LE_DT), FC23 (LT_DT), FC28 (NE_DT)
Date: File:PRO2_05E.23 SIMATIC S7 Siemens AG All rights reserved. Information and Training Center Knowledge for Automation Тип данных: STRING Переменная типа STRING (строка) : l Тип данных STRING - строка символов до 254 символов длиной l Применение: обработка текстовых сообщений l Объявление: Имя_Строки: STRING[maxNo]: Текст_инициализации' (Строка максимум из maxNo символов, maxNo: ) Имя_Строки: STRING: ' Текст_инициализации' (Строка максимум из 254 символов) Примеры: l Объявление переменной: Fault_signal :STRING'Motor_ failure_4' (Переменная Fault signal инициализируется указанным текстом) Warning : STRING[50]' ' (пустая" переменная Warning, может содержать до 50 cимволов) l Обработка: элементарный доступ: L #Fault_signal[5](загрузить 5 -й символ из Fault_ signal) Обработка посредством FC из IEC- библиотеки
Date: File:PRO2_05E.24 SIMATIC S7 Siemens AG All rights reserved. Information and Training Center Knowledge for Automation Хранение строковых переменных в памяти Байт n 1) Пример: l Объявление с инициализацией Given_ name: STRING[8]: 'OTTO' l Хранение строковой переменной "Given_ name" Байт n+1 Байт n+2 max длина= 8 Текущая длина= 4 1-й символ= 'O' Байт n ) n = четное 2-й символ = 'T' Байт n+3 Байт n+4 Байт n+5 Байт e n+6 Байт n+7 3-й символ = 'T' 4-й символ = 'O' Определяет максимальное число сохраняемых знаков, то есть длина, указанная в декларации Определяет число знаков в настоящее время сохраненных в переменной типа STRING B#16#00 Байт n+9 B#16#00 Информация относительно максимального числа сохраняемых знаков или относительно текущей длины может быть оценена функциями IEC- библиотеки.
Date: File:PRO2_05E.25 SIMATIC S7 Siemens AG All rights reserved. Information and Training Center Knowledge for Automation Functions for Processing STRING Variables IEC-библиотека в Standard Library V3. x l FC2 (CONCAT): Функция FC2 объединяет две переменные типа STRING в одну строку. l FC4 (DELETE): Функция FC 4 удаляет L символов от P-го символа в строке l FC11 (FINF): Функция FC 11 находит положение второй строки в пределах первой строки. l FC17 (INSERT): Функция FC 17 вставляет строку из параметра IN2 в строку из параметра IN1 после P-го символа. l FC20 (LEFT): Функция FC 20 поставляет первые L символов строки (левая часть строки). l FC21 (LEN): Функция FC 21 возвращает текущую длину строки (в байтах). l FC26 (MID): Функция FC 26 поставляет среднюю секцию строки l FC31 (REPLACE): Функция FC 31 заменяет L символов первой строки (IN1) от P-го символа (включительно) символами второй строки (IN2). l FC32 (RIGHT): Функция FC 32 поставляет правые L символов строки (правая часть строки). l Функции сравнения для переменных типа STRING: FC10 (EQ_STRING), FC13 (GE_STRING), FC15 (GT_STRING), FC19 (LE_STRING), FC24 (LT_STRING), FC29 (NE_STRING)
Date: File:PRO2_05E.26 SIMATIC S7 Siemens AG All rights reserved. Information and Training Center Knowledge for Automation Упражнение 5.1: Использование сложных типов данных... UDT99 "Motor" DB51 "Conv_area_Motors" Hall_1
Date: File:PRO2_05E.27 SIMATIC S7 Siemens AG All rights reserved. Information and Training Center Knowledge for Automation Упражнение 5.2: Доступ к сложным типам данных
Date: File:PRO2_05E.28 SIMATIC S7 Siemens AG All rights reserved. Information and Training Center Knowledge for Automation Дополнительное упражнение 5.3: Чтение времени и даты с помощью SFC 1 (READ_CLK) SFC1 EN RET_VAL ENO ??.? CDT ??.?