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

АМ-212_Ткаченко_№4

.pdf
Скачиваний:
1
Добавлен:
23.08.2024
Размер:
4.95 Mб
Скачать

21

Функція WORD_TO_REAL — перетворення двійкового слова в дійсне число. DIV — функція ділення. REAL_TO_INT — перетворення з речового числа в ціле число. Зібрана схема потенціометра на FBD показана на рисунку 1.32.

Рисунок 1.32 — Реалізація потенціометра на FBD

Для реалізації потенціометру на ST потрібно спочатку додати змінні у файл

Potentiometr_STV. Потім, необхідно написати програмний код з використанням функцій, які були описані вище. Використані змінні та програмний код ST наведено на рисунку 1.33.

Рисунок 1.33 — Реалізація потенціометра на ST

Робота потенціометра на мовах ST та FBD, показана на рисунку 1.34.

Рисунок 1.34 — Робота потенціометра на мовах ST та FBD у симуляції

22

1.10 Реалізація функції «виключає АБО» на мові ST

Таблиця істинності для функції «виключає АБО» (XOR) наведена у таблиці 1. Для реалізації XOR необхідно створити функцію на ST, як показано на рисунку 1.35.

Рисунок 1.35 — Створення функції на мові ST

Також необхідно додати три вхідні змінні та написати логіку функції XOR у вигляді програмного коду на мові ST. Обов’язково потрібно назвати значення, яке повертається, так само, як й назву самої функції.

Таблиця №1 — Таблиця істинності XOR

X1

X2

X3

Y

 

 

 

 

0

0

0

1

 

 

 

 

0

0

1

0

 

 

 

 

0

1

0

0

 

 

 

 

0

1

1

1

 

 

 

 

1

0

0

0

 

 

 

 

1

0

1

1

 

 

 

 

1

1

0

1

 

 

 

 

1

1

1

1

 

 

 

 

Використані змінні та програмний код ST для реалізації функції XOR, продемонстровано на рисунку 1.36.

23

Рисунок 1.36 — Реалізація функції «виключає АБО» на ST

Щоб протестувати створену функцію XOR_ST_FU, можна додати стандартну функцію XOR й порівняти їх роботу. Перевірка роботи функції показана на рисунку 1.37.

Рисунок 1.37 — Перевірка роботи функції «виключає АБО» на мові ST

24

1.11 Програма, що перетворює кольори, на мовах FBD та ST

Конвертація кольорів буде виконуватися з використанням RGB стандарту. Для представлення кожного кольору використовуватиметься шість цифр у шістнадцятковій системі числення, однак тип даних WORD не може обробляти такі великі числа. Тому треба використовувати спрощений RGB стандарт, який використовує три цифри для кожного кольору. Принцип переведення числа 16# у RGB відображено на рисунку 1.38.

Рисунок 1.38 — Принцип переведення числа 16# у RGB для трьох цифр Після отримання значень для червоного, зеленого і синього кольорів, можна

визначити діапазони, в яких будуть перебувати кольори. Наприклад,

для помаранчевого кольору діапазон буде таким: червоний (R): 200-255,

зелений (G): 70-200, синій (B): 0-150.

Для зручності розробки переводу чисел 16# у RGB буде використовуватися тип даних STRING. Для того, щоб перевести значення WORD у STRING, необхідно скористатися функцією WORD_TO_STRING. На вхід FORMAT потрібно передати значення ‘%x’, яке призначається для чисел у форматі HEX.

Щоб усі числа мали однакову кількість цифр (4), потрібно спочатку визначити, скільки символів в кожному числі за допомогою функції LEN. Після цього можна додавати нулі до початкових чисел так, щоб кількість цифр у кожному числі стала рівною 4. Щоб «додати» нуль для строки, необхідно використати функцію конкатенації CONCAT, яка з’єднує строки. Схема для переведення числа типу WORD в тип STRING та її робота продемонстровано на рисунку 1.39.

25

Рисунок 1.39 — Переведення числа типу WORD в STRING та «додавання» нуля На рисунку 1.40 показана частина схеми, яка відповідає за трансформацію

чисел типу WORD, що мають лише одну або дві цифри.

Рисунок 1.40 — Частина схеми для обробки чисел 16#, які мають 1,2,3 цифри

26

Згідно принципу, який наведений на рисунку 1.38, треба розділити число на окремі три числа. Щоб розділити числа потрібно використати функцію DELETE,

яке видаляє символи з строки відповідно до виставлених параметрів: L — кількість символів, які потрібно видалити; P — Позиція першого символу, який буде видалено. Потім, отримані числа потрібно дублювати за допомогою функції

CONCAT. Далі, треба приєднати символи ‘16#’, які відповідають за систему числення та перевести строку із типу STRING в INT за допомогою функції

STRING_TO_INT. Реалізація принципу переведення числа 16# в RGB на схемі,

показано на рисунку 1.41.

Рисунок 1.41 — Частина схеми для реалізації принципу переведення в RGB

Тепер, необхідно інтерпретувати значення змінних RED, GREEN, BLUE у

різні кольори, а саме: чорний, білий, червоний, оранжевий, жовтий, зелений,

голубий та фіолетовий. Для кожного кольору встановлено різний діапазон чисел

RGB. Частина схеми для виявлення білого та чорного кольорів наведена на рисунку 1.42.

Рисунок 1.42 — Частина схеми для виявлення білого та чорного кольорів

27

Схеми для виявлення інших кольорів наведені на рисунку 1.43.

Рисунок 1.43 — Частина схеми для виявлення кольорів

28

Для того, щоб реалізувати цю програму на мові ST, необхідно спочатку додати усі необхідні змінні та ФБ, а вже потім прописати програмний код. Потрібні змінні для функціювання програми показано на рисунку 1.44.

Рисунок 1.44 — Перелік змінних та ФБ для роботи програми кольорів Програмна реалізація для переведення числа 16# типу WORD у строку типу

STRING та приєднання нулів до числа, показана на рисунку 1.45.

Рисунок 1.45 — Переведення числа 16# типу WORD у строку

29

Для реалізації принципу переведення строки в стандарт RGB (рисунок 1.38),

потрібно використати програмний код, який наведено на рисунку 1.46.

Рисунок 1.46 — Приведення строки до стандарту RGB

Виявлення кольорів за діапазоном значень змінних RED, GREEN, BLUE,

показано на рисунку 1.47.

Рисунок 1.47 — Виявлення кольорів за діапазоном RGB

Щоб перевірити роботу двох програм, необхідно додати на схему два ФБ

HEX4_TO_COLOR_RGB_FBD та HEX4_TO_COLOR_RGB_ST. Зібрана схема блоків продемонстрована на рисунку 1.48.

30

Рисунок 1.48 — Запущені блоки для виявлення кольорів у режимі симуляції Тепер, необхідно подавати різні числа 16# на вхід analog_in. Результат роботи

цих ФБ наведено на рисунках 1.49 — 1.54.

Рисунок 1.49 — Введення числа для красного кольору

Рисунок 1.50 — Введення числа для помаранчевого кольору

Соседние файлы в предмете Системы реального времени