Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекции / ТСАиУ.doc
Скачиваний:
57
Добавлен:
22.02.2014
Размер:
1.28 Mб
Скачать

5.2 Программа обмена информацией между управляющей эвм и контроллером

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

Рис 5.2. Виртуальный пульт управления меню компонентов элементов управления

Обмен информацией происходит под управлением двух программ. Первая описывает обмен со стороны управляющего компьютера, вторая – со стороны контроллера. Программы управления устройствами обмена обычно пишутся на языках высокого уровня, а для обмена используются порты последовательной передачи – COM, USB, UART. Сначала напишем программу такого обмена между COM портом ЭВМ и UART портом контроллера на языке Visual Basic. Для этого создадим в среде Visual Basic виртуальный пульт управления, передающий информацию об адресе объекта управления, команду управления и пронимающего информацию о результатах выполнения команды (рис.5.2).

При создании такого пульта управления мы видим, что среди стандартных инструментов проектирования нет средств для создания виртуального устройства передачи информации. Однако разработчиками среды Vb6 была предусмотрена возможность использования новых элементов управления в виде приложений из других управляющих программ [6 стр.496]. Для этого с помощью меню проекта выполняем следующую последовательность действий – Project \ Component \ Microsoft Comm Control 6.0 \ выбираем компонент, ставя галочку \ Ok В результате на панели инструментов появляется символ телефонного аппарата, который изображает передающее устройство, и мы переносим его в форму проекта. Далее пишем код программы, прокомментированный текст которой помещён ниже.

Текст программы обмена информацией для управляющей ЭВМ через СОМ порт.

Option Explicit ‘ Объяснение выбора

Private Sub Command1_Click() ‘Открытие процедуры определения

‘функции командной кнопки

Me.MSComm1.CommPort = 2 ‘Объявление номера порта

Me.MSComm1.Settings = "9600,n,8,1" ‘Объявление параметров

‘передачи

Me.MSComm1.PortOpen = True ‘Открыть порт СОМ2

Me.Command1.Enabled = False ‘Окончание действия команды

End Sub ‘Закрытие процедуры определения

‘функции командной кнопки

Private Sub Command2_Click() ’Процедура передачи сообщения,

‘помещённого в текстовом поле 1

Dim a As Integer

Dim b As String

a = Text1.Text

b = Chr(a) ’ Преобразование ASCII- кода в символ

Me.MSComm1.DTREnable = True

Me.MSComm1.Output = b ‘Передача переменной b линию связи

Me.Command2.Enabled = False

End Sub()

Private Sub Command3_Click() ’Процедура передачи сообщения,

‘помещённого в текстовом поле 2

Dim c As Integer

Dim d As String

c = Text2.Text

d = Chr(c)

Me.MSComm1.DTREnable = True

Me.MSComm1.Output = d ‘Передача переменной d линию связи

Me.Command3.Enabled = False

End Sub

Private Sub Command4_Click() ’Процедура принятия сообщения и

‘размещения его в текстовом поле 3

Dim tmp As String

Dim txt As String

tmp = MSComm1.Input ‘Приём символа ASCII из линии связи

txt = Asc(tmp) ‘Преобразование символа ASCII в код и

Text3.Text = txt ‘размещение его в текстовом поле 3

End Sub