Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Организация вызова 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; Просмотров: 793; Нарушение авторского права страницы