Файл: Национальный исследовательский томский политехнический университет а. А. Мезенцев, В. М. Павлов.pdf
Добавлен: 24.10.2023
Просмотров: 250
Скачиваний: 3
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
95 из 137
Рисунок 9.4. Структура программы
Далее в соответствии с архитектурой механизма DDE необходимо добавить программу-клиент. Пусть в качестве таковой выступает MS
Excel
, в некоторой ячейке таблицы которой необходимо получить ре- альное значение канала Проекта. Для выполнения данной задачи MS
Excel выполняет запрос к МРВ для получения указанного значения ка- нала. В зависимости от выбранного режима обмена данными. МРВ непрерывно или по запросу отправляет данные с выхода канала не толь- ко в компонент «Экран», но и в программу MS Excel (рисунок 9.5).
Рисунок 9.5. Структура системы динамического обмена данными
Представленная на рисунке 9.5 схема показывает только одно направление передачи данных. Обратное направление передачи данных тоже возможно. Рассмотрим принципы и набор команд, которые ис- пользуются в TRACE MODE и MS Excel для инициализации DDE.
Команды управления DDE
Чтение данных
Для формирования команды в MS Excel необходимо:
• выбрать ячейку в таблице с конкретными координатами, например «С3»;
• сформировать команду запроса;
• выполнить команду.
Формат команды запроса данных следующий:
«=
, где S – название и номер программы-сервера данных (например, «RTM0»); R – код режима обмена данными (напри-
96 из 137 мер, «GET» для режима ADVISE или «PUT» для – REQUEST); С – название канала, данные которого необходимо передать в приложение- клиент; N – номер атрибута канала, значение которого необходимо пе- редать. Список атрибутов каналов следующий: (3, C), (4, I), (7, P); (8,
W), (26, HL), (27, LL), (28, HA), (29, LA), (30, HW), (31, LW), (79,
CODE
) и (127, NAME). По умолчанию используется значение (0, R).
Пример команды запроса, в конечном итоге, может выглядеть таким об- разом: «=RTM0|GET!pila». Данная команда означает, что приложению- серверу данных с названием RTM и номером «0» необходимо передать в ячейку MS Excel, в которой записана данная команда реальное значе- ние канал с названием «pila» в режиме DDE «Горячий канал».
Запись данных
Рассмотрим случай, когда необходимо обновить значения атрибу- тов каналов Проекта. В данном случае инициатором обмена и источни- ком данных является приложение-клиент (MS Excel). Для инициализа- ции процесса передачи данных из MS Excel в TRACE MODE в составе таблицы MS Excel необходимо создать специальный макрос. Разработ- чики предлагают использовать для выполнения этой задачи язык про- граммирования Visual Basic. В руководстве пользователя к среде разра- ботки TRACE MODE для каждого из режимов обмена приводится соот- ветствующий программный код. Рассмотрим режим передачи данных
REQUEST
, текст программы, реализующий данный режим обмена, представлен ниже.
Sub write_pila_In() chNum = Application.DDEInitiate("RTM0", "PUT")
Application.DDEPoke chNum, "pila", Worksheets("Лист1").Range("C3")
Application.DDETerminate chNum
End Sub
В тексте данной программы переменные выделены жирным шриф- том. В их состав входят: RTM0 – название приложения-сервера данных,
PUT – режим передачи данных, Лист1 – номер таблицы в составе книги
MS Excel
, С3 – ячейка таблицы MS Excel из которой необходимо взять и передать в приложение-сервер значение.
Следует отметить, что в составе одной книги MS Excel может быть создано несколько скриптов Visual Basic и переменные в составе скрип- та могут меняться произвольно. Т.о., возможности использования дан- ного механизма значительны.
97 из 137
9.2.
Взаимодействие TRACE MODE с СУБД
Системы управления базами данных являются специализирован- ными программами, которые содержат инструменты управления дан- ными в базах данных на основании запросов сформированных на SQL.
Данный подход к управлению данными в АСУ значительно упрощает процесс проектирования программного обеспечения. Язык программи- рования запросов (SQL) прост для понимания и позволяет реализовать необходимые операции. Благодаря этой особенности САПР TRACE
MODE получает ещё один мощный механизм работы с данными в АСУ.
Существует множество различных СУБД для большинства опера- ционных систем. В составе стандартного пакета MS Office для ОС MS
Windows присутствует СУБД MS Access. Для работы с реляционной ба- зой данных будем использовать её и стандартный ODBC-драйвер.
Структура Проекта, использующего связи с СУБД
Проект, создаваемый с учётом связей с СУБД, отличается от дру- гих Проектов только тем, что в его составе содержатся компоненты
«Связь с СУБД» (рисунок 9.6). Вызов данных компонентов, как и дру- гих компонентов Проекта, осуществляется каналом класса CALL с ти- пом вызова «SQLQuery». В составе редактора свойств данного компо- нента может быть создано множество SQL-запросов, управление кото- рыми осуществляется при помощи значения посылаемого в канал
CALL
. Посылаемое значение соответствует номеру SQL-запроса.
Рисунок 9.6. Структура программы
98 из 137
Алгоритм настройки компонента «Связь с СУБД»
Для настройки компонента «Связь с СУБД» необходимо:
• зарегистрировать базу данных как источник данных в ОС;
• создать структуру Проекта, представленную на рисунке 9.6;
• настроить связь с источником данных в компоненте «Связь с
СУБД»;
• создать SQL-запрос, проверить правильность его выполне- ния.
Для более детального рассмотрения алгоритма настройки Проекта для связи с СУБД рассмотрим графический интерфейс пользователя со- ответствующего редактора в составе интегрированной среды разработки
(рисунок 9.7).
Рисунок 9.7. Вид окна программы редактора параметров настройки компо- нента Проекта «Связь с СУБД»
Редактор свойств компонента «Связь с СУБД» содержит следую- щие кнопки управления собственными функциями:
•
Подключение – используется для открытия вкладки со свой- ствами подключения к источнику данных;
99 из 137
•
Схема – используется для открытия вкладки навигации по структуре источника данных (в случае правильного подклю- чения);
•
Мастер – используется для открытия редактора SQL-запросов в интерактивном режиме;
•
Аргументы – используется для открытия вкладки редактора аргументов компонента «Связь с СУБД»;
•
Запрос – используется для открытия вкладки редактора SQL- запросов в ручном режиме;
•
Справка – используется для перехода в раздел руководства пользователя ИС посвящённый правила работы с компонен- том «Связь с СУБД».
Следует отметить несколько важных особенностей данного редак- тора, которые необходимо учитывать или использовать при работе.
1.
Для подключения к источнику данных (например, база данных) можно использовать два метода: зарегистрировать базу данных как источник данных в ОС; в явном виде записать параметры подключения к источнику данных в форме ввода «Строка под- ключения». Для регистрации базы данных в качестве источника данных необходимо использовать кнопку «Администратор
ODBC
» далее использовать стандартные процедуры ОС Win- dows
. После регистрации источника данных необходимо вы- брать данный источник в форме ввода «Строка подключения».
2.
В нижней части редактора присутствует специальная форма
«Отчёт» После выполнения каждого пункта настройки рекомен- дуется использовать кнопку «Проверить» для проверки пра- вильности выполнения процедуры. Результат выполнения про- верки отображается в форме «Отчёт».
3.
Для того, что бы избежать ошибок при построении SQL- запросов и ускорить процесс разработки Проекта, на начальных этапах рекомендуется использовать редактор SQL-запросов в интерактивном режиме.
Рассмотрим примеры SQL-запросов созданных в компоненте «Связь с
СУБД».
1.
Загрузка данных из БД. Текст программы представлен ниже.
SELECT
tabl.Y #ARG_000#
FROM
tabl
WHERE
– тип SQL-запроса Select
– передача значения из поля «Y» в аргумент
ARG_000
100 из 137
tabl.X = 5
– искать по условию «значение в ячейке по-
ля “Х” на строке выборки = 5»
2.
Добавить значение в конец поля в БД. Текст программы пред- ставлен ниже.
3.
Заменить значение в ячейке БД. Текст программы представлен ниже.
4.
Удалить строку данных в БД. Текст программы представлен ни- же.
9.3.
Вопросы для самоконтроля к главе №9
1.
Опишите графический интерфейс пользователя редактора «Связь с
СУБД»?
2.
Каким образом выполняется выбор номера SQL-запроса в режиме работы МРВ?
3.
Что такое DDE?
4.
Какой вид DDE запроса в TRACE MODE соответствует режиму работы канала DDE «Горячий канал»?
5.
Какой SQL-запрос используется для выборки данных из БД?
6.
Какой SQL-запрос используется для удаления строки данных из
БД?
7.
Какой SQL-запрос используется для замены данных в БД?
INSERT INTO TABL
(Y)
VALUES
('#ARG_001#')
– тип SQL-запроса Insert
– добавить значение в поле «Y»
– использовать для добавления значение ар-
гумента ARG_000
UPDATE tabl
SET
Y=#ARG_002#
WHERE
tabl.Y = 3
– тип SQL-запроса Update
– заменить значение в поле «Y», использовать
значение аргумента ARG_002
– заменить значение = 3 в ячейке поля «Y»
DELETE FROM tabl
WHERE
tabl.Код = 9
– тип SQL-запроса Delete
– удалить строку, в которой значение
ячейки в поле «Код» = 9
101 из 137 8.
Какой SQL-запрос используется для добавления данных в БД?
9.
Чем отличается вид DDE запроса «ADVISE» от «REQUEST»?
10.
Может ли быть использован SQL-запрос в TRACE MODE без ре- гистрации БД в качестве источника данных в операционной си- стеме?
11.
Какие параметры используются при программировании макроса в составе таблицы Excel при формировании канала DDE для переда- чи данных из MS Excel в канал TRACE MODE?
12.
Каким образом выполняется вызов компонента «Связь с СУБД» в
TRACE MODE?
13.
Формат команды-DDE-запроса в MS Excel в режиме «ADVISE»?
14.
Нарисуйте структуру канала DDE типа «Горячий»?
15.
Нарисуйте структуру канала DDE типа «Тёплый»?
16.
Нарисуйте структуру канала DDE типа «Холодный»?
17.
Запишите команду MS Excel, которая позволяет сделать запрос данных по каналу DDE. Каким образом определяется атрибут ка- нала, из которого выполняется чтение значения?
102 из 137
1 2 3 4 5 6 7 8 9
СПИСОК ЛИТЕРАТУРЫ
1.
Столингс У.. Операционные системы. – М: Вильямс, 2002. – 848 с.
2.
Танненбаум Э.. Современные операционные системы. – С-Пб: Пи- тер, 2002. – 1040 с.
3.
Деменков Н.П. SCADA-системы как инструмент проектирования
АСУ ТП. – М: Изд-во МГТУ им. Баумана, 2004. – 236 с.
4.
Андреев Е.Б., Куцевич Н.А., Синенко О.В. SCADA-системы: взгляд изнутри. – М: Издательство РТСофт, 2004. – 176 с.
5.
Петров И.В.. Программируемые контроллеры. Стандартные языки и приемы прикладного проектирования. – М: Солон-Пресс, 2004. –
256 с.
6.
Аристова Н.И., Корнеева А.И. Промышленные программно- аппаратные средства на отечественном рынке АСУ ТП. – М:
Научтехлитиздат, 2001. – 324 с.
7.
Гордеев А.В., Молчанов А.Ю. Системное программное обеспече- ние. – С-Пб: Питер, 2002 – 736с.
8.
Техническое и программное обеспечение лабораторного комплекса
«Организация пультов управления современных АСУ ТП»: учеб- ное пособие / А. А. Мезенцев, В. М. Павлов, К. И. Байструков. –
Томск: Изд-во ТПУ, 2007. – 128 с.
9. Linux SCADA // linuxscada.info/list.htm.
103 из 137
ПРИЛОЖЕНИЕ А. Практические задания к главе №3
1.
Разработайте на языке программирования «Техно IL» функцию сложения 3-х чисел и вычитания полученной суммы из 4-го числа
(y=x
1
–(x
2
+x
3
+x
4
)).
2.
Разработайте на языке программирования «Техно IL» функцию сложения квадратов 2-х чисел: y=x
1 2
+x
2 2
3.
Разработайте на языке программирования «Техно FBD» функцию сложения 4-х чисел с использованием одного и нескольких блоков сложения.
4.
Разработайте на языке программирования «Техно FBD» функцию сложения квадратов 2-х чисел: y=x
1 2
+x
2 2
; с использованием эле- ментарных операций, а также – одного функционального блока.
5.
Разработайте на языке программирования «Техно FBD» функцию косинуса сложного аргумента: y=x
2
+1. В качестве сложного аргу- мента использовать один функциональный блок.
6.
Разработайте на языке программирования «Техно IL» функцию произведения 2-х сумм: y=(x
1
+x
2
)*(x
3
+x
4
).
7.
Разработайте на языке программирования «Техно FBD» функцию косинуса сложного аргумента: y=x
2
+1. В качестве сложного аргу- мента использовать элементарные блок-функции.
8.
Разработайте на языке программирования «Техно ST» функцию сравнения значений 2-х аргументов. В качестве индикатора ре- зультата использовать символы «1» и «0».
9.
Разработайте на языке программирования «Техно SFC» компью- терную программу, которая реализует циклический счётчик (20 циклов) с выходом по некоторому условию на десятом цикле.
10.
Разработайте на языке программирования «Техно FBD» функцию натурального логарифма от сложного аргумента. В качестве сложного аргумента функции использовать квадратный трёхчлен вида y=K
1
*x
2
+K
2
*x+K
3 11.
Разработайте на языке программирования «Техно FBD» функцию защиты от аварии. Аварийным случаем считать выход значения некоторого унифицированного сигнала за верхнюю или нижнюю границы допустимого интервала значений. Зависимость значения экспериментальной функции от аргумента выбрать самостоятель-