- •Навчальний посібник до курсу Промислові системи управління
- •Вступ проектування промислових систем автоматизації частина I
- •1.1Будова та принцип дії сучасних систем автоматизації
- •1.2Основи проектування промислових систем управління
- •1.3Основи програмування мовою step 7
- •1.4Рішення типових завдань автоматизації засобами simatic
- •1.5Цифрові операції
- •Розрахункова формула
- •Функція порівняння
- •1.6Структура програми користувача мовою step
- •1.7Завдання регулювання в промислових системах керування
- •1.8Двопозиційний регулятор у промислових системах керування
- •1.9Під- Регулятор у промислових системах керування
- •1.10Основи дискретних систем регулювання
1.5Цифрові операції
Питання розділу:
завантаження та пересилання даних
команди арифметичних дій
порівняння чисел
команди математичних та тригонометричних функцій
перетворення формату чисел
побітове зрушення та побітові логічні операції над числами
У даному розділі будуть розглянуті команди із групи цифрових операцій, наявні в системі команд контроллерів SIMATIC.
До цифрових операцій ставляться:
команди завантаження та пересилання даних
команди арифметичних дій
команди порівняння чисел
команди математичних та тригонометричних функцій
команди перетворення формату чисел
команди побітового зрушення
команди побітових логічних операцій над числами
Операндами цифрових операцій можуть бути числа різних форматів:
цілі числа 16 біт
цілі числа 32 біта
числа із плаваючою комою (32 біта).
Цілі числа розміром 16 біт мають тип INT від латинського INTEGER.
Самий старший біт числа типу INTEGER (біт номер 15) - визначає знак числа (0 для позитивних чисел, 1 для негативних). Діапазон значень чисел типу INTEGER становить від -32768 до +32767.
Числа із плаваючою комою мають тип REAL та охоплюють дійсні числа в діапазоні приблизно від -3,4 на 1038 до 3,4 на 1038. Числа типу REAL займають у пам'яті 2 слова. Біти з 0-го по 23-ій - це мантиса, з 24-го по 31-ий - експонентна частина.
Особливість цифрових операцій полягає в тому, що вони працюють зі спеціальними 32-ох-бітними регістрами процесора за назвою акумулятори. У контроллері їх може бути трохи, наприклад, у контроллері S7-300 їх 2, а в контроллері S7-400 їх уже 4.
Розглянемо більш докладно команди завантаження та пересилання даних.
Обмін даними здійснюється не прямо, а завжди через акумулятори, що служать проміжною пам'яттю для зберігання інформації.
Пересилання даних в акумулятор називаються його завантаженням та виконується за допомогою команди завантаження L (від німецької laden). Пересилання даних з акумулятора виконується за допомогою команди пересилання Т (від німецької transferieren).
Команда завантаження, як і команда пересилання, оперує операндом розміром байт, слово та подвійне слово.
Команди завантаження та пересилання здійснюють обмін даними між областями пам'яті, див. Рисунок 1.5 .20:
область відображення входів PAE
область відображення виходів PAA
область меркерів
область блоків даних
область лічильників та таймерів.
Рисунок 1.5.20 – Процес пересилання з EW10 в AKKU 1 і з нього в MW 27
Команда завантаження L завантажує операнд, що адресується завжди в AKKU 1. При цьому невикористані операндом біти акумулятора обнуляються. Старий вміст AKKU 1 при його завантаженні зрушується в AKKU 2. При наявності AKKU 3 та AKKU 4 відбувається подальше зрушення вмісту акумуляторів.
Команда пересилання Т копіює вміст акумулятора 1 за адресою операнда, при цьому вміст акумуляторів не змінюється.
Вміст AKKU 1 при пересиланні та завантаженні різних типів даних показаний на Рисунок 1.5 .21.
Рисунок 1.5.21 – Вміст AKKU 1 при пересиланні та завантаженні різних типів даних
Слід зазначити, що хоча при програмуванні у вигляді FUP та KOP є можливість використання прямого пересилання за допомогою графічного елемента MOVE, у його основі лежать ті ж команди завантаження та пересилання. У цьому можна переконатися, якщо подивитися AWL еквівалент графічного елемента MOVE.
За допомогою графічного елемента MOVE легко реалізується умовне пересилання даних. Для умови пересилання потрібно використати вхід ЕN елемента MOVE.
У вигляді AWL умовне пересилання даних може бути реалізована тільки за допомогою команд умовних переходів.
За допомогою розглянутої вище техніки зрушення реалізується завантаження в AKKU 1 та в AKKU 2 чисел, що служать операндами для виконання цифрових операцій із двома числами.
Перейдемо до однієї із груп таких цифрових операцій, а саме командам арифметичних дій.
У мові STEP є 4 основні арифметичні дії - додавання (в AWL команда +, в FUP та KOP - елемент ADD), віднімання (в AWL - команда -, в FUP та KOP - елемент SUB), множення (в AWL команда *, в FUP та KOP - елемент MUL) та ділення (в AWL команда /, в FUP та KOP - елемент DIV).
Команди арифметичних дій виконують операцію між числами, що знаходяться в акумуляторі 2 та акумуляторі 1. Тому, командам арифметичних дій повинні передувати команда завантаження акумуляторів. Результат арифметичних дій буде доступний в акумуляторі1.
Залежно від отриманого значення робиться установка спеціальних однобітових прапорів процесора, які можуть використатися далі в командах умовних переходів.
Таким чином, загальна схема роботи команд арифметичних дій виглядає в такий спосіб, див. Рисунок 1.5 .22.
