Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Программное обеспечение для систем автоматизации технологических процессов (лабораторный практикум и конспект лекций) для студентов специальности 2202

.pdf
Скачиваний:
0
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
☆
Таблица 7.2
№
р
а
Варианты задания для выполнения операций над переменными структуры
иант ва
1 С разрешения сигнала А перемножить все элементы массива ARRAY3, получен-
ное число сложить с элементом ARRAY5[2,5], затем с разрешения ARRAY1[1,2] вычесть сумму из ARRAY5[1,2]. Результат записать в ARRAY5[1,1]
2 Найти сумму квадратов чисел элементов массива ARRAY7 и с разрешения сиг-
нала А разделить на ARRAY7[1,4], с разрешения сигнала переменной массива
ARRAY1[1,1] сложить полученное с ARRAY4[2,2]. Результат записать в D
3 Найти сумму чисел элементов массива ARRAY4 и с разрешения сигнала А умно-
жить на G, с разрешения сигнала переменной массива ARRAY1[1,2] сложить по­лученное с ARRAY4[2,3]. Результат записать в ARRAY4[2,1]
4 С разрешения сигнала ARRAY1[1,4] перемножить все элементы массива
ARRAY7, полученное число сравнить с элементом G, с разрешения сигнала
сравнения сложить элементы ARRAY4[1,2] и ARRAY4[2,1]. Результат запи­сать в ARRAY4[1,1]
5 Извлечь корень квадратный из суммы элементов массива ARRAY3 и с разрешения
сигнала А умножить на С, с разрешения сигнала переменной массива ARRAY1[1,1] сложить полученное с ARRAY3[2,2]. Результат записать в ARRAY4[2,1]
6 Сравнить сумму элементов массива ARRAY4 с D и с разрешения этого сигнала
умножить переменную массива ARRAY7[3,1] на ARRAY7[3,3]. Результат пре­образовать в «двойное целое» с округлением до следующего большего числа и записать его в ARRAY4[2,2]
7 С разрешения сигнала А преобразовать ARRAY7[3,2] в «двойное целое» без
округления, с разрешения переменной массива ARRAY1[1,4] сложить это «двойное целое» ARRAY4[2,2] и преобразовать в «двойное слово». Результат записать в ARRAY6[1,3]
8 Найти сумму элементов массива ARRAY7 и с разрешения сигнала ARRAY1[1,1],
разделить сумму на G, с разрешения сигнала переменной массива ARRAY1[1,2] сравнить полученное с ARRAY7[2,3]. Результат записать в ARRAY4[2,1]
9 С разрешения сигнала ARRAY1[1,3] преобразовать ARRAY3[2,3] в «двойное
целое», с разрешения переменной массива ARRAY1[1,1] умножить это «двой­ное целое» на ARRAY4[2,2] и преобразовать в число с плавающей точкой. Результат записать в ARRAY7[1,2]
10 Сравнить произведение чисел массива ARRAY3 с С и с разрешения этого сигна-
ла поделить переменную массива ARRAY7[1,1] на ARRAY7[1,3]. Результат пре­образовать в «двойное целое» с округлением до следующего меньшего числа и записать его в ARRAY4[1,2]
11 С разрешения сигнала А найти сумму квадратов всех элементов массива ARRAY3,
полученное сложить с элементом С, затем с разрешения ARRAY1[1,1] вычесть вновь полученное число из ARRAY4[1,2]. Результат записать в ARRAY4[1,1]
12 Извлечь корень квадратный из произведения элементов массива ARRAY7, с раз-
решения сигнала А разделить полученное на ARRAY7[2,2], с разрешения сигнала переменной массива ARRAY1[1,4] сложить вновь полученное c ARRAY7[2,3]. Результат записать в G
Задание
51
6. Домашнее задание
Ознакомиться
с основными теоретическими сведениями.
Подготовиться по контрольным вопросам к защите лабораторной работы.
7. Содержание отчета
• Титульный лист.
Наименование и цель работы.
•
Краткие теоретические сведения.
•
Исходные данные индивидуального задания.
•
Таблица создаваемой структуры данных.
•
Блок-схема для выполнения математических операций над пе-
•
ременными структуры в STEP7.
Адресация всех переменных блока Shared Block в режиме RUN
•
работы симулятора S7-PLCSIM.
•
Результаты моделирования математических операций в
S7-PLCSIM.
Выводы.
•
8. Контрольные вопросы
1. Перечислите сложные типы данных, используемые при про-
граммировании ПЛК Siemens.
2.
Как подсчитать объем памяти, занимаемой сложными типами
данных?
3.
Какова максимальная размерность массивов?
4.
Как можно производить операции над элементами двух масси-
вов, если их числа относятся к разным типам данных – WORD и INT?
5.
Назовите способы создания структур данных?
52
Лабораторная работа № 8
Тема: ПЕРЕДАЧА ДАННЫХ
1. Цель работы: научиться перемещать и копировать переменные
ввода/вывода контроллера, а также данные блоков.
2. Используемое оборудование: компьютеры с ОС не ниже Win-
dows 7,
троллеров серии Siemens Simatic S7-300, симулятором S7-PLCSIM.
значены для копирования информации между системной, пользова­тельской памятью и областью данных модулей пользователя. Для передачи информации используется внутренний регистр CPU в каче­стве промежуточной памяти. В программе STEP7 имеются набор системных функций SFC и блочный элемент, обеспечивающие пере­мещение и пересылку данных [5, 15]:
пишется программа. Системные функции расположены в стандарт­ной библиотеке «Standard Library» программы в папке «System Func-
tion Blocks».
входа IN в промежуточный регистр, а после этого – в операнд на вы­ходе OUT. Этот элемент работает со всеми цифровыми операндами и переменными простых типов, за исключением типа BOOL, может быть использован также для передачи констант и указателей. Эле­мент имеет разрешающий вход EN и выход ENO.
области данных и разрешает прерывания. Исходная область и об­ласть назначения не могут перекрываться. Если исходная область и область назначения имеют разные размеры, передача происходит в зависимости от длины наименьшей из двух областей.
BLKMOV,
личенных временных интервалов откликов на прерывания. Разреша­ет копировать не более 512 байт.
программным пакетом STEP7 V5.5 для программирования кон-
3. Теоретические сведения. Функции передачи данных предна-
блочный элемент MOVE;
1)
функция SFC 20 BLKMOV;
2)
функция SFC 81 UBLKMOV;
3)
функция SFC 21 FILL.
4)
Блочный элемент MOVE находится в папке MOVE в блоке, где
Блочный элемент MOVE перемещает информацию со
Системная функция SFC 20 BLKMOV осуществляет копирование
Описание системной функции SFC 81 UBLKMOV схоже с SFC 20
за исключением того, что она создает возможность уве-
53
Системная функция SFC 21 FILL копирует исходную область в область назначения с целью полной перезаписи области назначения. Передача производится в направлении возрастания адресов. Область назначения всегда полностью перезаписывается, даже если исходная область больше области назначения или длина области назначения не кратна целому числу размеров исходных областей.
Все вышеперечисленные блоки передачи данных используют для перемещения ANY-указателей. Перемещение отдельных массивов целиком или структурных компонентов недопустимо. Cодержимое исходной области подается на вход SLCBLK. Область назначения указывается в выходном параметре DSTBLK. Копирование происхо­дит в направлении роста адресов. Эти системные функции не копи­руют таймеры, счетчики, информацию в(из) модули (область Р) и системные блоки данных SDB. Все они имеют также разрешающий вход EN и выход ENO. Выход RET_VAL сигнализирует о коде ошибки в формате INT.
Обращение к данным, которые необходимо переместить, можно осуществлять аналогично обращениям к элементам массивов, струк­тур или блоков данных. Определить постоянный ANY-указатель имеет смысл, если нужно получить доступ к области данных, для которой переменных не объявлено. Когда требуется определить об­ласть операнда, адресуемую абсолютно, в качестве параметра блока типа ANY используется указатель следующего формата: P#Блок данных Операнд Тип Количество. Например:
P#DB1.DBX0.0 INT 10 –
область из 10 слов в DB 1, начинающаяся
с DBW0;
или:
P#M20.0 BYTE 5 –
P#I10.0 DWORD 1 –
область из 5 байт, начинающаяся с MB 20;
входное «двойное» слово ID 10;
Нетрудно заметить, что адрес операнда в указателе типа ANY все­гда является адресом бита. Последняя запись идентична ID 10.
4. Пример
Выполним
из слова меркера MW0 в слово MW2;
–
из байта MB4 в слово MW5;
–
из слова MW7 в байт MB9.
–
в STEP7 следующие операции перемещения:
Блок-схема для выполнения данных операций приведена на рис. 8.1.
54
Рис. 8.1. Блок-схема для выполнения операции перемещения
при помощи функции MOVE
Результат исполнения программы в симуляторе показан на рис. 8.2.
Для удобства все переменные указаны в бинарном коде (binary).
Рис. 8.2. Результат работы функции перемещения MOVE
Из рис. 8.2 видно, что когда исходная область «1» со значением
1000_1100_0100_0110
и область назначения «2» совпадают по раз­мерности, то «2» повторяет «1». Если область назначения «4» больше исходной «3», то исходное число 0100_1010 записывается в «4» с выравниванием в сторону младшего разряда. В обратном случае, ес­ли область назначения «6» имеет размер меньше исходной «5» с чис­лом 1001_0100_0011_0110, перемещается количество бит, соответст­вующее количеству бит области назначения начиная с младшего раз­ряда, то есть 0011_0110.
Создадим структуру данных в блоке DB1, показанную на рис. 8.3
для выполнения операций передачи данных при помощи функций
SFC 20 BLKMOV, SFC 81 UBLKMOV, SFC 21 FILL.
Переместим 2 байта, начиная со 1-го, в 1-й элемент массива
ARRAY1[1]. ARRAY1[2]
Затем переместим 0-й байт во второй элемент массива
и третий элемент массива ARRAY1[3] – в 3-й байт. Вы-
полним данные операции по очереди, используя функции SFC 20
BLKMOV, SFC 81 UBLKMOV, SFC 21 FILL.
55
Рис. 8.3. Структура данных в блоке DB1 для выполнения операций передачи данных
при помощи функций SFC 20 BLKMOV, SFC 81 UBLKMOV, SFC 21 FILL
Чтобы переместить 2 байта, начиная со первого, необходима ад­ресация через указатель P#DB1.DBX1.0 BYTE 2. 1-й элемент массива адресуется как DB1.DBW4. Нулевой байт можно адресовать как
DB1.DBB0,
второй элемент массива – DB1.DBW6. Адресация
третьего элемента массива – DB1.DBW8, третьего байта –
DB1.DBB3.
Блок-схема для выполнения операций перемещения при
помощи функций SFC 20 BLKMOV, SFC 81 UBLKMOV, SFC 21
представлена на рис. 8.4, 8.5, 8.6 соответственно.
FILL
56
Рис. 8.4. Блок-схема для выполнения операции перемещения
при помощи функции SFC 20 BLKMOV
Рис. 8.5. Блок-схема для выполнения операции перемещения
при помощи функции SFC 81 UBLKMOV
Рис. 8.6. Блок-схема для выполнения операции перемещения
при помощи функции SFC 21 FILL
Результаты работы программы с функциями SFC 20 BLKMOV,
SFC 81 UBLKMOV
ничем не отличаются друг от друга (рис. 8.7).
При перемещении двух байт подряд DB1.DBB1 с величиной
1010_0010
и DB1.DBB2 с величиной 0100_0111 в первый элемент массива DB1.DBW4 старший 2-й байт сдвигается в сторону младше­го разряда, а младший первый байт сдвигается в сторону старшего разряда 16-разрядного элемента массива.
При передаче 0-го байта DB1.DBB0 с информацией 1010_0010 во 2-й элемент массива DB1.DBW6 происходит выравнивание по левому краю. В результате в DB1.DBW6 записано число 1010_0010_0000_0000. При перемещении 3-го элемента массива DB1.DBW8 1001_0000_1010_0010 в
3-
й байт DB1.DBB3 передается только первые восемь разрядов, что дает
результат 1001_0000 (рис. 8.7).
Рис. 8.7. Результат программирования функции перемещения SFC 20 BLKMOV
и SFC 81 UBLKMOV
57
Передача указанных данных с использованием функции SFC 21
FILL
также не отличается от предыдущей за исключением переме-
щения 0-го байта 1010_0010 в память большей размерности
DB1.DBW6,
где происходит ее «заполнение» в направлении возрас-
тания адресов, то есть 1010_0010_1010_0010 (рис. 8.8).
Рис. 8.8. Результат программирования функции перемещения SFC 21 FILL
5. Задание
Используя
блок данных, созданный в лабораторной работе 7, ис-
ходя из своего варианта задания, выполнить передачу данных с при­менением блочного элемента MOVE и системных функций SFC 20
BLKMOV, SFC 81 UBLKMOV, SFC 21 FILL (
Варианты задания для выполнения операций передачи
табл. 8.1).
Таблица 8.1
№ варианта
1 3 целых числа, начиная с элемен-
та массива ARRAY3[1,2] Слово Е Элемент массива ARRAY3[1,1] Элемент массива ARRAY3[1,1] Элемент массива ARRAY3[2,3]
2 1 байт, начиная с элемента мас-
сива ARRAY2[1,1] Байт В Элемент массива ARRAY2[1,2] Элемент массива ARRAY2[1,2] Элемент массива ARRAY3[2,1]
3 2 целых числа, начиная с элемен-
та массива ARRAY3 [2,1] Байт В Элемент массива ARRAY2[1,2] Элемент массива ARRAY3[2,2] Элемент массива ARRAY6[2,1]
58
Исходная область Область назначения
Исходные данные для передачи
Слово Е
Байт B
Байт B
Окончание таблицы 8.1
№ варианта
4 2 «двойных» слова, начиная с
5 3 числа с плавающей точкой,
6 2 слова, начиная с элемента
7 Элемент массива ARRAY2 [1,1] Байт В
8 3 целых числа, начиная с эле-
9 «Двойное слово» F Слово Е
10 2 байта, начиная с элемента
11 2 числа с плавающей точкой,
12 Байт В Слово Е
Исходная область Область назначения
элемента массива ARRAY6 [1,1] Элемент массива ARRAY3[2,3] Элемент массива ARRAY3[2,2] Элемент массива ARRAY3[2,2] Элемент массива ARRAY4[2,1]
начиная с элемента массива
ARRAY7 [1,1]
Элемент массива ARRAY7[3,3] Элемент массива ARRAY7[3,1] Элемент массива ARRAY3[1,2] Слово Е
массива ARRAY5 [1,1] Элемент массива ARRAY5[2,5] Элемент массива ARRAY5[1,4] Слово Е Элемент массива ARRAY7 [3,2]
Байт В Элемент массива ARRAY2[1,2] Элемент массива ARRAY2[1,2] Элемент массива ARRAY6[2,4]
мента массива ARRAY3 [1,1] Байт В Элемент массива ARRAY2 [1,1] Элемент массива ARRAY2[1,1] Элемент массива ARRAY5[2,5]
Слово Е Элемент массива ARRAY3[2,2] Элемент массива ARRAY3[2,2] Элемент массива ARRAY7 [3,1]
массива ARRAY2[1,1] Элемент массива ARRAY7 [1,1] Число с плавающей точкой G Байт В Целое число С
начиная с элемента массива
ARRAY7 [3,2]
Элемент массива ARRAY4[2,2] Элемент массива ARRAY6[2,3] Элемент массива ARRAY6[2,3] «Двойное слово» F
Слово Е Элемент массива ARRAY3[1,2] Элемент массива ARRAY3[1,2] Элемент массива ARRAY7 [3,3]
Исходные данные для передачи
Элемент массива ARRAY3[2,3]
Элемент массива ARRAY7[3,3]
Элемент массива ARRAY5[2,5]
Байт В
Элемент массива ARRAY7 [1,1]
Элемент массива ARRAY4[2,2]
6. Домашнее задание
– Ознакомиться с основными теоретическими сведениями.
Подготовиться по контрольным вопросам к защите лаборатор-
–
ной работы.
7. Содержание отчета
• Титульный лист.
59
• Наименование и цель работы.
Краткие теоретические сведения.
•
Исходные данные индивидуального задания.
•
Таблицы конфигурации аппаратуры, таблица символов.
•
Таблица создаваемой структуры данных.
•
Адресация всех переменных блока Shared Block в режиме RUN
•
работы симулятора S7-PLCSIM.
Блок-схема для выполнения функций передачи над перемен-
•
ными структуры в STEP7.
•
Результаты работы функций передачи в S7-PLCSIM. Выводы.
•
8. Контрольные вопросы
1. Перечислите основные функции передачи данных, используе-
мые при программировании ПЛК Siemens.
2.
В чем отличие системных функций SFC 20 BLKMOVE и SFC 81
UBLKMOV?
3.
Какие типы данных не поддерживают системные функции пе-
редачи?
4.
Зачем нужно использовать указатель ANY при передачи с по-
мощью системных функций?
5.
Как изменится область назначения при копировании данных в
область, которая по размеру больше исходной, с помощью функции
SFC 21 FILL?
60
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]