АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Программирование операций управления аппаратурой при использовании интерфейса RS232C

Читайте также:
  1. B. Департаменты и управления функционального характера.
  2. I. Разрушение управления по ПФУ
  3. III. Проведение операций
  4. III. СТРУКТУРА И ОРГАНЫ УПРАВЛЕНИЯ ПРИХОДА
  5. V. Ключи к искусству управления
  6. VI. Педагогические технологии на основе эффективности управления и организации учебного процесса
  7. А. Стратегия управления
  8. Автомат управления дачным водопроводом
  9. Автоматизированная система управления запасами агрегатов и комплектующих изделий (АС “СКЛАД”).
  10. Автоматизированные системы управления (АСУ).
  11. Агрегат управления.
  12. Адаптивные структуры управления

 

Основной режим передачи данных при работе с аппаратурой измерения и управления - асинхронный. По линиям интерфейса передаются команды управления аппаратурой или данные. В библиотеке базовых функций для этого достаточно иметь 3 функции:

а) инициализации;

б)записи;

в)чтения.

 

Функция инициализации

Описание: функция обеспечивает задание выбор СОМ порта и задание режима работы: количество битов (от 5 до 8) в передаваемом слове данных, количество стоповых битов (1,5 или 2), наличие или отсутствие бита паритета (контроля на четность/нечетность), тактовая частота передачи битов.

Тело функции:

outportb(Base+3,0x80);/*запись кода установки режима загрузки делителя частоты тактового генератора в управляющий регистр*/

outportb(Base,0xff);/*запись младшего байта кода делителя частоты*/

outportb(Base+1,0xff00>>8);/* запись старшего байта кода делителя частоты */

outportb(Base+3,<слово режима>);/*запись кода формата данных*/

outportb(Base+1,0);/*запрет прерываний*/

 

Функция записи (вывода одного слова данных)

 

while((inportb(Base+5) & 0x20) = = 0) /*ожидание готовности*/

{

t++; /*параметр t нужен, если предусматривать выход из функции "по таймауту" при зацикливании*/

if (t>lTimeout) return; /*Это пример выхода из функции при зацикливании*/

}

outportb(Base,data); /*передача*/

 

Функция чтения (ввода одного слова данных)

 

while((inportb(Base+5) & 0x01) = = 0) /*ожидание готовности*/

{

t++

}

data = outportb(Base); /*прием*/

В библиотеке базовых функций для работы с аппаратурой при использовании интерфейса RS232 желательно иметь также функции передачи строки символов:

 

Функция записи строки символов

i=0;t=0;

while cCmd[i]! = NULL

{

while ((inportb(Base+5) & 0x20) = = 0)

{

t++ /*Цикл предусмотрен для организации выхода по тайм-ауту (при зацикливании)*/

}

outportb(Base,cCmd[i]);/*Вывод строки символов, составляющих команду*/

 

Функция чтения

i=0; t=0;

for (;;)

{

while ((inportb(Base+5) & 0x01)! = 0x01)

{

t++ /*Цикл предусмотрен для организации выхода по тайм-ауту (при зацикливании)*/

}

c=inportb(Base) & 0xff;

if (c = = 0x0D) break; /*Прекращение чтения при появлении символа CR - конец строки*/

else cCmd[i] = c;

i++;

}

 

Программирование операций управления аппаратурой, подключенной к компьютеру с помощью интерфейса RS-232, с использованием стандартных библиотечных функций в программной среде LabWindows/CVI 8.0

Для работы с аппаратурой, подключенной к компьютеру с помощью интерфейса RS-232, в LabWindows/CVI 8.0 предусмотрены 29 функций, в том числе:

OpenComConfig(N, DeviceName, Baudrate, Parity, DataBits, StopBits, InputQueueSize, OutputQueueSize); -открытие и конфигурирование COM-порта.

ComRd(N, Temp, Count) – прием строки символов;

ComWrt(N, Temp, Count) –передача строки символов;

CloseCom (N) – закрытие СОМ – порта.

Параметры:

N – номер СОМ-порта (1…32);

DeviceName – имя СОМ-порта (обычно СОМ1, СОМ2 и т.д.)

Baudrate – скорость передачи, бод;

Parity – наличие (1) или отсутствие (0) контроля на четность;

DataBits – количество бит (5…8) в передаваемом слове;

StopBits – количество стоповых бит;

InputQueueSize – размер очереди приема, бит. Обычно – 512.

OutputQueueSize – размер очереди передачи, бит. Обычно - 512.

Temp – имя буфера для одной посылки;

Count – размер буфера для одной посылки, байт;

 

Ниже приведен фрагмент программы чтения данных (значений температуры) с инфракрасного термометра АТТ-2508 (см. табл. 28), подключенного к компьютеру с помощью интерфейса RS-232. Значения температуры кодируются в 12, 13 и 14 символах в строке символов, принимаемой с инфракрасного термометра.

 

OpenComConfig (1, "COM1", 9600, 0, 7, 1, 512, 512); //открытие СОМ1

ComRd(1, temp, 16);

Temperature = (float)((((int)temp[12] - 48) * 100 + ((int)temp[13] - 48) * 10 + ((int)temp[14] - 48)) / 10.0); //Преобразование кодов ASCII строки символов в трехразрядное десятичное число.

CloseCom (1); //закрытие СОМ1

 


Табл. 28

 

Инфракрасный термометр
АТТ-2508
Данный прибор является бесконтактным измерителем температуры, что делает его применение удобным особенно в тех случаях, когда традиционные способы измерения температуры непригодны. Например, если нужно измерить температуру движущегося предмета, поверхность, находящуюся под напряжением, грязную поверхность или расположенную в труднодоступном месте. Возможность подключения к персональному компьютеру через последовательный интерфейс RS-232 и наличие программного обеспечения позволяет использовать прибор в автоматизированных системах измерения температуры

 

Технические характеристики  диапазон измерений –10°C...+300°C (–4°F...+572°F)  разрешение 0,1°C; 0,1°F  погрешность ±2 % от измеренного значения при внешней температуре 23,5 °С  коэффициент температуры 10 % существующей погрешности в диапазоне температур 0...18°C и 28...40°C (32...64°F, 82...104°F)  скорость измерений одно измерение в секунду  поле зрения 7:1  интенсивность излучения 0,1...0,95  запись максимального/минимального показаний с возможностью повторного вызова

 

Контрольные вопросы и задачи

 

1. Напишите фрагмент программы передачи команды @0106 в виде строки символов. При инициализации СОМ-порта задать: количество битов в передаваемом слове данных - 8, количество стоповых битов -1, наличие отсутствие бита паритета (контроля на четность/нечетность), тактовая частота передачи битов – 19200 бод.


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.004 сек.)