Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Проектування промислових систем автоматизації97...doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
5.39 Mб
Скачать

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.