ЛР2 Vijeo Citect:Знайомство з середовищем розробки SCADA Vijeo Citect. Створення змінних реального часу для проекту.

Додаток 2.3. Налаштування змінних тегів у Vijeo Citect

У Vijeo Citect усі змінні діляться на змінні теги ("Переменные теги") та локальні змінні "Локальные переменные".

Змінні теги потребують означення зовнішнього джерела даних, наприклад контролера. Вони представляють копію (додатково перетворену та оброблену) змінних на пристроях вводу/виводу ("Устройства в/в"). Пристрої вводу/виводу у свою чергу належать серверу вводу/виводу, тому ці змінні обробляються саме в цій частині виконавчої системи. Інші складові виконавчої системи, по суті, звертаються до цих змінних для читання та запису. Таким чином, одна і та сама змінна доступна в багатьох місцях виконавчої системи. Змінні попередньо обробляються шляхом масштабування, аналізу якості (достовірності) та мають додаткові налаштування для відображення за замовченням. Кількість змінних тегів є показником інформаційної складності проекту та впливає на вартість ліцензії середовища виконання. Це є причиною "економії тегів", яка приводить до різного роду хитрощів розробників, упакування бітів в слова, буферний обмін, тощо.     

На відміну від змінних тегів, локальні змінні не є частиною серверу вводу/виводу. Ці змінні належать клієнтам (наприклад графічній підсистемі), тому у кожного клієнта своя копія цих змінних. Оскільки у змінних немає зовнішнього джерела, ніякого перетворення, означення адреси для них не потрібно. Кількість локальних змінних не впливає на вартість ліцензії.           

Для кожного змінного тега Vijeo Citect необхідно вказати ім'я, тип, назву пристрою з якого змінна зчитується та записується, адресу а також інші опційні властивості (див. рис.Д3.1). 

Рис. Д3.1.Основні поля налаштування змінного тега Vijeo Citect.

Ім'я змінного тегу може містити літери латинського алфавіту, цифри, символи "_" та "'\", починатися з літери або "_" та не перевищувати 79 символів. У Vijeo Citect є свої рекомендації щодо структурування найменування, однак вони не є обов’язковими (деталі в довідці Using Vijeo Citect > Tagging Process Variables > Tag Naming > Using structured tag names ).

Тип даних задає як інтерпретується адреса даних на пристроїв вводу/виводу. У таблиці Д3.1 показані деякі типи даних Vijeo Citect, які можуть знадобитися в лабораторній роботі.

Таблиця Д3.1. Деякі типи даних Vijeo Citect.     

Тип даних

Пояснення

Розмір

Діапазон

DIGITAL

Digital

1 bit або 1 byte

0 or 1

INT

Integer

2 bytes

-32,768 to 32,767

UINT

Unsigned Integer

2 bytes

0 до 65,535

LONG

Long Integer

4 bytes

-2,147,483,648 до 2,147,483,647

ULONG

Unsigned Long Integer
(тільки для відображення на екрані. Не підтримує арифметичні операції)

4 bytes

0 to 4,294,967,295

REAL

Floating Point

4 bytes

-3.4E38 до 3.4E38

STRING

String

256 bytes (maximum)

ASCII (null terminated)

 

У Vijeo Citect найменування багатьох типів не співпадає з аналогічними в ПЛК, тобто IEC 61131. Однак неважко здогадатися, що типу DIGITAL в програмованому контролері буде відповідати BOOL або EBOOL, типам LONG та ULONG – DINT та UDINT відповідно.

Слід звернути увагу також на те, що Vijeo Citect не підтримує тип TIME. У свою чергу тип TIME в UNITY PRO (відповідно до IEC 61131) займає два слова (тобто дві комірки в області %MW) і містить значення в мілісекундах. Тому для використання TIME у Vijeo Citect слід використовувати тип ULONG а також зробити відповідні налаштування масштабування, наприклад для вказівки в секундах вказується 1(Citect):1000(PLC).       

Адреса вказує на розміщення даних в джерелі даних (контролері). Формат адреси залежить від типу пристрою та драйверу зв’язку. Для драйверу типу MODNET30 (Modbus/TCP для ПЛК з Unity PRO),  адреса задається аналогічно як в Unity PRO: наприклад %M7 або %MW3. Можна також звертатися до біта слова вказуючи крапку, наприклад %MW4.6.

Слід зазначити, що у випадку, коли змінна BOOL/EBOOL в Unity PRO прив’язана до адреси %MW, вона займає один байт. Тому для коректного його відображення у Vijeo Citect треба вказати номер  %MW та номер біту. Наприклад (див рис. Д3.2), якщо в структурній змінній Unity PRO TC1_PARA два поля прив’язані до адреси %MW309, то перше поле (rev_dir) буде адресуватися як %MW309.0, а друге (en_rcpy) як %MW309.8.

Рис. Д3.2. Правильне означення адреси тега у Vijeo Citect що вказує на BOOL/EBOOL в Unity PRO, прив’язаного до комірки %MW.

Vijeo Citect підтримує роботу з масивами. Розмір масиву вказується в адресі в квадратних дужках. Наприклад (рис.Д3.3), змінна з ім'ям HEA_TT1_SP та адресою  %MW220[6] буде вказувати на масив з 6-ти елементів, починаючи з %MW220 (%MW220…%MW225). При зверненні до елементу масиву в проекті, вказується ім'я змінної та індекс починаючи з 0-го. Наприклад HEA_TT1_SP[5] буде вказувати на останній елемент масиву.

  Рис.Д3.3. Налаштування масиву.

Типи даних REAL, LONG або ULONG (DINT або UDINT в Unity PRO) використовують дві суміжні комірки (наприклад %MW100 та %MW101) для розміщення своїх даних. Тим не менше у Vjeo Citect вказується адреса тільки першої, друга буде взята автоматично, так як типом означений і розмір. У більшості випадків такі змінні повинні знаходитися тільки по парним або непарним адресам, інакше вони можуть перекриватися. Компілятор Vijeo Citect контролює це розміщення і може при компіляції видати повідомлення про помилку (див. рис.Д3.4).

Рис.Д3.4. Повідомлення про помилку розміщення змінних за адресами.

У випадку, якщо адреси розміщення таких змінних не можна змінити, необхідно відключити цю опцію, виставивши в Citect.ini параметр [General]CheckAddressBoundary = 0 (рис.Д3.5). Для цього треба запустити редактор Citect.ini ("Инструменты"->"Редактор конфигурирования компьютера"), зайти в розділ General, вибрати з правого боку потрібний параметр, який після цього добавиться в поле заповнення параметрів (Parameter Details). Параметр змінюється в полі Value (задати 0), а добавляється запис натисканням кнопки "Add". Після "File"->"Save" параметр буде добавлений в Citect.ini, після чого редактор треба закрити.

Рис.Д3.5. Добавлення параметру [General]CheckAddressBoundary = 0 в Citect.ini.

Масштабування та обмеження змінної задається полями:

  • "Мин. исходное значения" – мінімальне значення в джерелі даних (в контролері)
  • "Макс. исходное значения" – максимальне значення в джерелі даних (в контролері)
  • "Мин. значения в единицах изм." – мінімальне значення в Vijeo Citect (в IOServer)
  • "Макс. значения в единицах изм." – максимальне значення в Vijeo Citect (в IOServer)

Значення з джерела даних (контролера) також називається сирим (raw). Використовується класичне лінійне масштабування. Окрім масштабування, ці межі використовуються для контролю валідності змінної (відповідності діапазону) та значення вводу оператору.

Формат відображення використовується для означення вигляду числового зображення даної змінної за замовчуванням. Якщо для числового поля не вказується формат він буде братися зі змінної, що доволі зручно при створенні анімаційних бібліотечних елементів (наприклад джинів). Для прикладу, якщо формат заданий "####.## EU" то числове значення буде відображатися в форматі "123.45 кг", де " EU" вказує на одиниці вимірювання, які теж вказуються в налаштуваннях тегу.