"Система збору інформації у промисловому середовищі"

Науково-дослідницька робота
Виконала Земцова Тетяна Анатоліївна
Керівник Башков Є.О.

Зміст


Вступ
1. Краткий опис модуля мікросхеми RTU188
2. Організація прийому інформації до модуля
а) ізольований порт дискретного вводу
б) ізольований порт аналогового вводу
3. Підключення ЖКІ
Список використаної літератури

Вступ

Метою проекту є розробка системи збору інформації з промислового обладнання з подальшим контролем та передачею на головний модуль станції (комп'ютер). Схема роботи наведена нижче:


В даній науково-дослідницької роботі буде описана розробка першої стадії всього процесу: збір інформації та відображення її на ЖКІ. Другий етап можна вивчити у пункті (1) літератури, що використовувалась.

Для побудови такої конструкції потрібно визначитися з обладнанням та програмним забезпеченням.

Керуючим модулем буде вибрано мікросхему RTU188, обладнанням безпосереднього виведення інформації на промисловому об'єкті -ЖКІ BOLYMIN BC1604A. Критерії та обґрунтування даного вибору буде наведено нижче.

У якості модулю програмування використовується TURBO C 3.0.


1. Краткий опис модуля мікроконтролера RTU188.

У якості керуючого модуля вибраний спеціалізований мікросхему RTU188. Її зовнішній вигляд наведений на рисунку 1.1


Рисунок 1.1 - Зовнішній вигляд модуля RTU188.

Вибір даного обладнання обґрунтований наступними його властивостями:

Характеристики модуля:

Загальні відомості про компоненти RTU188 що використовуються.

Послідовні порти

Мікросхема має два послідовних порта. Вбудований в RTU188 порт COM1 виконує роль консолі DOS та містить повний склад сигналів інтерфейсу RS232. Вбудований в RTU188 порт COM2 використовується як ізольований порт для роботи в мережі RS485.

Порт ізольованого дискретного вводу

RTU188 містить 16 каналів оптоізольованого дискретного вводу.

Порт ізольованого аналогового вводу

Модуль RTU188 має ізольований порт аналоговий вводу-виводу та дозволяє вимірювати 8 аналогових входів з точністю 12 біт у діапазонах 0...5В, 0...10В, -5В...+5В, -10В...+10В, 0...20мА. Частота дискретизації 80000Гц.

Віддалений скид

Підключення зовнішньої кнопки дозволяє формувати віддалений ізольований від системи сигнал скиду модуля RTU188.


2. Організація прийому інформації до модулю

Два основних канали прийому інформації - це дискретні та аналогові датчики. Постанова задачі є такою, що інформація з обох типів датчиків буде потрапляти на RTU188 за зміною сигналу.

Опитування датчиків виконується за апаратним перериванням від таймера з періодом 55мс.

Потрібно розглянути детально організацію портів.

Ізольований порт дискретного вводу позначений у додатку 1 як з'єднувачі Х4, Х5. Він містить два байтових регістра, що відображають стани 16-ти оптоізольованих входів.

У таблиці 2.1 наведено адреси регістрів каналів.

Таблиця 2.1 -Порт дискретного вводу


D[i] - дані і-ого оптоізольованого каналу вводу.

Програмно опитування дискретних датчиків реалізовано наступним чином:

//-- Read Diskr ------
data0=inportb(0x80);
data1=inportb(0x81)

Порт ізольованого аналогового вводу позначений у додатку 1 як з'єднувачі Х1 та Х2. Модуль RTU188 дозволяє вимірювати 8 аналогових входів з точністю 12 біт у діапазонах 0...5В, 0...10В, -5В...+5В, -10В...+10В або 0...20мА.

Порт АЦП має регістр керування (088h), регістр стану та регістр даних (088h-089h). Регістр стану дозволяє встановлювати діапазон вхідного сигналу та номер каналу, що опитується, контролювати завершення циклу перетворення. Аналогове-цифрове перетворення починається відразу після запису команди до регістра керування. Завершення перетворювання можна контролювати за допомогою біта ADCR регістра стану.

Таблиця 2.2 - Порт АЦП


SEL[2-0] - код входу АЦП - встановлює номер ізольованого входу

RNG[1-0] - код діапазону вимірювання АЦП для входу встановленого полем SEL[2-0]:

00 - 0...5В
01 - -5В...+5В
10 - 0...+10В
11 - -10В...+10В

ADC[11-0] - дані АЦП. Додатній код з розмноженням знаку результату аналогово-цифрового перетворення. Молодший байт результату зчитується за адресою 088h, а старший - 089h.

ADCR - готовність АЦП. Признак готовності результату аналогового-цифрового перетворення (1 - готовий, 0 - іде перетворення).

Оскільки код значення датчика знаходиться у додатному двоїчному коді з поширенням знаку, потрібно перевести його до десятичного та перетворити згідно наступної формули:


де N - десятинне значення отриманого коду;
U - реальне значення аналогового датчика;
11 - розрядність даних АЦП.

Програмно опитування аналогових датчиків реалізовано наступним чином:

//-- Read Analog---------
outp(0x0088,0x10); // діапазон вимірювання від 0 до +10В
while(1)
{
c=inportb(0x008A); // перевірка готовності АЦП
if (c&0x0080) goto m_ADC;
}
m_ADC:
ADCl=inportb(0x0088); // зчитування байтів даних
ADCh=inportb(0x0089);
N=(ADCh&0x0F)<<8; // перетворення із додатного дворічного коду з поширенням
N+=ADCl; // знаку до десятичного
U=(float)N*10/4096;


3. Модуль ЖКІ

Введення

Алфавітно-цифровий ЖК-модуль BOLYMIN BC1604A на основі контролера HD44780 ( далі ЖКІ) підключений до керуючого модуля RTU188 та використовується для організації виводу поточної інформації безпосередньо на промисловому об'єкті (далі об'єкт) у реальному часі. Вибір даного обладнання обґрунтований наступними його властивостями:

ЖКІ має наступний вигляд (рисунок 3.1):


Рисунок 3.1 - Зовнішній вигляд модуля ЖКІ .

Підключення


Рисунок 3.2 - Схема підключення модуля ЖКІ

Для з'єднання ЖКІ з керуючою системою використовується паралельна синхронна шина, що нараховує 8 ліній даних DB7-DB0, лінію вибору операції R/W, лінії вибору регістра R/S і лінію синхронізації Е.

Окрім ліній керуючої шини мається дві лінії подання напруги живлення +5В - GND і Vcc, і лінію для подання напруги живлення драйвера Vo.

На початковому етапі необхідно подати живлення на ЖКІ та добитися від нього ознак працездатності. Схема підключення наведена на рисунку 3.2. Регістр R1 дозволяє плавно змінювати кут повороту рідких кристалів. Цим резистором можна відрегулювати фактичну контрастність.

До RTU188 ЖКІ підключений до з'єднувача J5 (додаток 1). Це універсальний дискретний порт вводу-виводу, який містить16-ть неізольованих каналів дискретного вводу-виводу. Рівні сигналів кожного каналу відповідають рівням ТТЛ-логіки. Шістнадцятьом каналам відповідають два однобайтних регістра масок каналів.

Канал знаходиться у стані виводу, якщо відповідний йому біт маски встановлений в одиничний стан. При включенні живлення всі канали налаштовані на режим вводу, регістри даних каналів встановлені в одиничний стан, а регістри масок - у нульовий. Запис до регістру маски впливає тільки на напрямок передачі.

У таблиці 3.1 наведено адреси регістрів каналів та масок та їх відповідність.

Таблиця 3.1 - Універсальний дискретний порт вводу-виводу


Біт М[n] регістра маски керує напрямком передачі даних каналу I[n]. Одиничне значення цього біту відповідає передачі даних від модуля RTU188 до об'єкту. Дані, що передаються, можуть бути зчитані за адресою 084h-085h.

Внутрішня структура ЖКІ

Спрощена структурна схема наведена на рисунку 3.3. ЇЇ основні компоненти:


Рисунок 3.3 - Структурна схема ЖКІ

Керування контролером здійснюється інтерфейсом керуючої системи. Основними об'єктами взаємодії є регістри DR та IR. Вибір регістра, що адресується виконується лінією RS: якщо RS=0 - адресується регістр команд (IR), якщо RS=1 - регістр даних (DR).

Дані через регістр DR, в залежності від поточного стану режиму, можуть потрапляти (або прочитуватися) до відеопам'яті або ОЗУ знакогенератора по поточній адреси, що вказана у лічильнику адреси (АС). Інформація, що потрапляє до регістра IR, інтерпретується обладнуванням виконання команд як керуюча послідовність. Читання регістру IR повертає в сьоми молодших розрядах поточне значення лічильника АС, в старшому розряді прапор зайнятості BF.

Відеопам'ять, що має загальний об'єм 80 байт, призначена для зберігання інформації, що відображається на екрані. Відеопам'ять організована у дві строки по 40 символів в кожній. Ця прив'язка є жорсткою та не може змінюватися.

У контролері HD44780 існує набір внутрішніх прапорів, що визначають режими елементів контролера. В таблиці 3.3 приведені значення прапорів безпосередньо після подання напруги живлення.

Таблиця 3.2 - Прапори, що керують роботою контролера HD44780


Таблиця 3.3 - Значення керуючих прапорів після подання живлення


Програмна ініціалізація

Програмна ініціалізація складається з наступних кроків:

Всі вищезазначені дії - це набір команд, що потрапляють до IR. Його керуючи комбінації наведені у таблиці 3.4

Таблиця 3.4 - Керуючи комбінації бітів регістра IR


Нижче приведена робоча процедура ініціалізації ЖКІ:

void initLCD()
{
wait_ms(20);
sendIR(0x30); // зкид адреси лічильника та встановлення напрямку потока даних
wait_ms(5); // до відеопам'яті
sendIR(0x30);
wait_ms(1);
sendIR(0x30);

checkBF();
sendIR(0x3C); // 8 розрядів даних, 2 строки, матриця 5 х10
checkBF();
sendIR(0x0C); // відображення включено, курсор, мерехтіння відключені
checkBF();
sendIR(0x06); // зсув курсора праворуч
}

Слід зазначити, що для спрощення роботи з ЖКІ замість процедури опитування прапора BF буде використовуватися затримка, яка своєю тривалістю перевищує найдовшу команду контролера.

Операції запису до регістру команд

Послідовність дій операції запису команди для 8-розрядної шини даних наступна:

На рисунку 3.4 наведена часова діаграм роботи у режимі запису


Рисунок 3.4 - Часова діаграма операції запису команди

Нижче приведена процедура запису команди:

void SendIR(unsigned char inst)
{
outp(0x0085,0x00);
_AL=inst;
outp(0x0084,_AL);
//------------------------ 40 ns ---------------------------------------------
Delay_us(0x0001);
//----------------------------------------------------------------------------
outp(0x0085,0x04);
//------------------------ 230 ns --------------------------------------------
Delay_us(0x0001);
//----------------------------------------------------------------------------
outp(0x0085,0x00);
//------------------------ 250 ns --------------------------------------------
Delay_us(0x0001);
}

Операції запису до регістру даних

Послідовність дій операції запису даних для 8-розрядної шини даних наступна:

На рисунку 3.5 наведена часова діаграм роботи у режимі запису


Рисунок 3.5 - Часова діаграма операції запису даних

Нижче приведена робоча процедура запису даних:

void SendDR(unsigned char data)
{
outp(0x0085,0x01);
_AL=data;
outp(0x0084,_AL);
//------------------------ 40 ns ---------------------------------------------
Delay_us(0x0001);
//----------------------------------------------------------------------------
outp(0x0085,0x05);
//------------------------ 230 ns --------------------------------------------
Delay_us(0x0001);
//----------------------------------------------------------------------------
outp(0x0085,0x00);
//------------------------ 250 ns --------------------------------------------
Delay_us(0x0001);
}


Список використаної літератури

1. Науково-дослідницька робота студента групи КС06м Клешніна І.С. "Система контролю інформації у промисловому середовищі".

2. "Fastwel. RTU188 . Модуль микроконтроллера. Руководство пользователю".

3. "АЦ ЖКИ модули на основе контроллера HD44780".