Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Организация вызова SQL-запросов из узла проекта



Закроем редактор шаблона запроса к СУБД. Выделим ЛК шаблон База_данных#1 и отредактируем его в узле RTM_2:

 

 

Для выполнения запроса необходимо в атрибут Входное значение канала класса Вызов База_данных#1 подавать номер запроса. Для заполнения таблицы БД Tab1 – 3, для Tab2 – 4. Исходя из постановки задачи, определим в качестве существенного изменения для реального значения канала Ai_from_WinCon1 величину в 5% полной шкалы, а для AO_from_WinCon1 – 15%.

Реализуем алгоритм путем разработки программы. Создадим новый компонент – программу Программа#5:

 

 

Откроем компонент Программа#5 на редактирование и перейдем к строке Аргументы в структуре программы. Перетащим в окно табличного редактора аргументов каналы Ai_from_WinCon1 и AO_from_WinCon1, в результате будут созданы два аргумента программы, привязанных к атрибутам каналов:

 

 

С помощью иконки создадим новый аргумент, изменим его Тип на OUT, Тип данных на INT. Выделим ЛК строку, содержащую данный аргумент и перетащим на нее канал класса Вызов База_данных#1. Такимобразом, список аргументов программы будет следующим:

 

 

Разработку программы выполним на языке Техно-FBD. Вид программы следующий:

 

 

Апертура для каналов Ai_from_WinCon1 и AO_from_WinCon1 реализуется в программе с помощью функциональных блоков APERT, изменение значений больше установленного порога фиксируется блоками DIFF, а далее с помощью блоков < > 0 и блока X||Y производится выбор номера запроса в блоке SEL. Таким образом, если изменения значения Ai_from_WinCon1 и AO_from_WinCon1 не превышают установленных для них порогов, в каждом цикле пересчета базы каналов выполняется запрос 4, если же значение хоть одного из каналов или обоих одновременно существенно меняются – выполняется запрос 3.

И, наконец, откроем вкладку Аргументы канала Вызов База_данных#1 и выполним привязку аргумента Time_Mark к атрибуту Время изменения самого же канала База_данных#1:

Сохраним внесенные изменения в поет с помощью иконки и затем выполним процедуру подготовки проекта к запуску в реальном времени – .

 

Контрольные вопросы

Вопрос 1. Пользовательский DSN для файла БД создается:

a) с помощью панели управления Windows;

b) в редакторе запроса к СУБД;

c) возможны оба варианта.

Вопрос 2. Тип аргумента для записи в БД:

a) IN;

b) OUT;

c) IN/OUT.

Вопрос 3. Выполнение запроса в МРВ происходит:

a) при посылке во Входное значение, вызывающего шаблона запроса 0;

b) при посылке во Входное значение, вызывающего шаблона запроса 1;

c) при посылке во Входное значение, вызывающего шаблона запроса номера запроса.

 


 

РАБОТА№6

Генерация документов

Постановка задачи – создать шаблон документа, включающий дату/время, логотип компании, таблицу с мгновенными значениями, тренд и таблицу с выводом архивных каналов, принимающих данные от контроллера и модуля удаленного ввода, а также дополнить проект новым экраном, включающим ГЭ для ручной генерации документов.

 

Создание шаблона документа

Дополним созданную в Работе №4 ресурсную библиотеку Библиотека_Изображений#1 логотипом TRACE MODE из bmp-файлов, размещенных в папке Lib в директории Logotip. Для этого откроем библиотеку и выполним операцию импорта с помощью иконки , размещенной на панели инструментов:

 

 

Содержимое Библиотека_Изображений#1 станет следующим:

 

 

Выберем в дереве проекта слой Шаблоны_документов и создадим новый компонент – Документ#1:

 

 

Двойным щелчком откроем его на редактирование:

 

 

Разместим в левом верхнем углу документа логотип TRACE MODE, воспользовавшись иконкой на панели инструментов:

 

Нажмем Enter и в следующей строке введем надпись «Проект REGUL – сводка», отформатировав ее с помощью инструментов выбора шрифта и форматирования:

 

 

В итоге получим:

 

 

Выведем в табличной форме мгновенные значения (на момент генерации документа) параметров регулятора, работающего в узле контроллера – Кп, Ки, Кд, Задание и реакция объекта Ai_from_WinCon1 из групп компонентов REGUL_from_WinCon и Ai_От_WinCon узла RTM_2, а также напряжений, подаваемых на входы удаленного аналогового ввода I-7017 – AIn#1… AIn#8 из группы компонентов I7017#1 узла RTM_2 (всего 13 аргументов). Флаг в настройках ИС Переименовывать аргументы при привязке должен быть установлен. Для формирования списка аргументов шаблона Документ#1 откроем окно Аргументы из пункта Вид основного меню:

 

 

Воспользовавшись механизмом drag’n’drop, создадим необходимый список аргументов:

 

 

Выполним надпись в документе «Параметры регулятора: », нажмем Enter и с помощью иконки на панели инструментов вставим в документ таблицу, выбрав в открывшемся диалоге Обычная таблица:

 

 

Зададим для таблицы следующие параметры и нажмем кнопку Готово:

 

 

В первой строке таблицы выполним надписи - Кп, Ки, Кд, Задание и Реакция объекта. С помощью механизма drag’n’drop перетащим во вторую строку таблицы соответствующие аргументы из открытого окна Аргументы:

 

 

 

Далее выполним надпись «Напряжение на входах модуля I-7017, В: » и вставим таблицу с 8 столбцами и двумя строками, выполнив надписи и привязав к ячейкам таблицы аргументы шаблона документа:

 

 

Для разделения секций мгновенных значений от архивных, воспользуемся горизонтальной линией при помощи иконки на панели инструментов и нажмем Enter.

 

Для определения временного интервала при организации выборки архивных данных, помещаемых в документ, воспользуемся свойствами ГЭ Тренд, расположенного на графическом экране Экран#1.

Вызовем на редактирование Экран#1 и откроем свойства ГЭ Тренд. Двойным щелчком ЛК откроем в основном бланке отроку Ось времени и свяжем атрибуты Левая граница и Правая граница с вновь созданными аргументами экрана L_Mark и R_Mark, имеющих тип IN/OUT и тип данных UDINT неимеющих привязок к атрибутам каналов:

 

 

 

Создадим в списке аргументов шаблона документа Документ#1 два аргумента с типом данных UDINT и в поле Привязка свяжем их с аргументами шаблона экрана Экран#1 L_Mark и R_Mark:

 

 

Через аргументы From и To будет передаваться в шаблон документа Документ#1 временной интервал выборки из архива, соответствующий интервалу, отображающемуся на тренде Экран#1.

Вставим в документ архивный тренд с помощью иконки на панели инструментов:

Через контекстное меню, вызываемое по щелчку ПК, перейдем к свойствам тренда:

 

 

В бланке Аргументы с помощью экранной кнопки Добавить определим отображение трех кривых для аргументов, связанных с каналами Задание, Ai_from_WinCon1 и AIn#6:

 

 

 

Выберем в свойствах тренда вкладку Архив и выполним привязку интервала выборки к абсолютному времени, задаваемому аргументами From и To, сняв флаг Использовать быструю выборку:

 

 

 

Во вкладке Вид выберем тип отображения и зададим ширину тренда:

 

 

 

Конфигурацию тренда, задаваемую во вкладках Оси, Колонтитулы и Легенда оставим заданными по умолчанию и нажмем кнопку Готово.

 

В шаблоне документа Документ#1 получим:

 

 

Для численного представления данных, отображаемых на тренде, ниже поместим архивную таблицу, привязанную к используемому нами временному интервалу, задаваемому аргументами From и To:

 

 

Определим четыре столбца в таблице и нажмем кнопку Готово:

 

 

С помощью механизма drag’n’drop перетащим в ячейки таблицы аргументы, Ai_from_WinCon1_R, AIn#6_R и Задание_R и через разделитель «. » укажем в явном виде атрибуты каналов – Базовое имя и Реальное значение, выводимых из архива:

 

 

Через контекстное меню откроем свойства архивной таблицы:

 

 

Выберем вкладку Архив и зададим следующие параметры и нажмем кнопку Готово:

 

 

Создание канала класса Вызов в узле RTM_2

Для выполнения генерации подготовленного шаблона документа Документ#1 в узле RTM_2 выполним следующие действия – откроем дополнительное окно Навигатора проекта и перетащим шаблон документа в корневую группу узла RTM_2:

 

 

Изменим имя компонента – вновь созданного канала класса Вызов Документ#1: 41 на Документ_1, затем откроем его через контекстное меню на редактирование и выставим Параметр равным 1:

 

В этом случае генерируемый документ будет записываться в файл в формате html в папку узла с именем Документ_1, причем вновь сгенерированный документ будет дописываться в конец этого файла в виде секции, а ссылка на данный файл будет содержаться в созданном файле index.html.

Для выполнения генерации документа необходимо подавать в атрибут Входное значение канала класса Вызов Документ_1, значение 1. Данное значение будем формировать с помощью ГЭ Кнопка на вновь разработанном графическом экране, а для просмотра содержимого сводки применим ГЭ Текст из файла. Причем, для обновления содержимого файла на ГЭ Текст из файла применим механизм перепривязки данного ГЭ с помощью ГЭ Переключатель каналов.

Создадим в корневой группе узла RTM_2 новый компонент – Экран#3 и определим его как всплывающий экран, который будем вызывать с экрана Экран#1 с помощью ГЭ Кнопка:

 

 

 

Разместим в левом верхнем углу экрана ГЭ Кнопка с надписью СВОДКА и определим для нее прямую посылку значения 1 во вновь созданный аргумент экрана типа IN/OUT с типом данных INT, привязанному к атрибуту Входное значение канала Документ_1:

 

 

Нижнюю часть экрана займем ГЭ Текст из файла, вызываемым с помощью иконки с панели инструментов графического редактора, привязав его ко второму аргументу экрана Экран#3 ARG_001, связанного с атрибутом Реальное значение канала класса HEX32 с именем Документ_1, созданного в новой группе Doc узла RTM_2 (там же создадим и второй канал класса HEX32 с именем index ):

 

 

Для реализации обновления файла Документ_1.html разместим в правом верхнем углу экрана ГЭ Переключатель каналов с помощью иконки и настроим его следующим образом:

 

Для перехода на всплывающий экран Экран#3 с экрана Экран#1, разместим на последнем ГЭ Кнопка, настроив для него переход на Экран#3:

Сохраним внесенные изменения в поет с помощью иконки и затем выполним процедуру подготовки проекта к запуску в реальном времени – .

Контрольные вопросы

Вопрос 1. Генерация документа производится в файл формата:

a) txt;

b) html;

c) doc.

Вопрос 2. Сохранение файла документа производится:

a) в папку узла проекта;

b) в корневую директорию диска С;

c) в файл tmdevenv.tmul.

Вопрос 3. Способ сохранения файла документа определяется:

a) заданием Параметра в бланке редактирования канала класса Вызов;

b) посылкой определенного значения в канал класса Вызов;

c) возможны оба варианта.

 


 

Работа №7

Резервирование

Постановка задачи – произвести реконфигурацию проекта regul.prj, созданного в предыдущих работах, и выполнить резервирование узла операторской станции RTM_2.

 

Реконфигурация проекта

Выполним подключение модулей удаленного ввода/вывода I-7017 и I-7067 к последовательному порту COM1 контроллера WinCon. Для этого перенесем группы COM-порты, I7017#1 и I7067#2 из узла RTM_2 в узел EmbeddedRTM_1, оставив канал класса Вызов TESTING, производящий инверсию атрибутов Достоверность канала AIn#1. Перенос осуществляется с помощью механизма drag’n’drop с удерживаемой в нажатом состоянии клавишей Shift. Получим:

 

 

Каналы класса Вызов TESTING переместим в группу компонентов DISCRET_CONTROL узла RTM_2:

 

Таким образом, вся аппаратура ввода/вывода подключена к контроллеру WinCon.

 


Поделиться:



Популярное:

Последнее изменение этой страницы: 2017-03-11; Просмотров: 741; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.072 с.)
Главная | Случайная страница | Обратная связь