DmitriiKowalski
Регистрация: 11.12.2020 Сообщений: 1
|
Написано 15.12.20 17:21 Модернизация САТ-500 при помощи операторских панелей Weintek |
|
|
Введение
На сегодняшний день существует определенная проблема считывания данных с промышленных контролеров. Сегодня мы посмотрим, как мы смогли решить эту проблему при помощи операторских панелей.
Постановка задачи
В нашем случае как исходные данные у нас был ВЗУ (Водозаборный узел). Нас интересует лишь его малая, но очень важная часть, это 4 бака с водой и контроллер, который отвечает за наполняемость и опустошаемость самих баков. Для контроля уровня воды в баке установлены датчики давления 4-20 мА. Датчики же в свою очередь, соединены с контролером САТ-500 (Рис. 1)
Рис. 1 Контролер САТ-500.
Задача самого же контроллера весьма прозаична, проверять уровень воды в баках и, в зависимости от установленных значений, открывать или закрывать заслонки для наполнения или наоборот опустошения баков. Сам САТ-500 стоит в шкафу. Для тех, кому интересно разобраться более детально, специально приложу программу для САТ-500, написанную на его собственном языке FBD2.
Данная модернизация не касается логики управления процессом, она направлена исключительно на удобства визуализации информации и вывода данных, что также очень важно.
Рис. 2 Общий вид шкафа управления.
На Рис. 2 мы видим наш шкаф управления и из чего он состоит.
Шкаф управления состоит из 3 контроллеров фирмы Сатурн:
1) САТ-500 - главный управляющий контроллер, в который приходят 2 датчика давления с двух баков, именно он отвечает за открытие и закрытие заслонок, а также за индикацию процессов (про это чуть позже);
2) БКД-UPS контроллер, в который приходят еще 4 датчика давления, два с самих баков и еще два для подстраховки, находящиеся в самой системе подачи воды, но про них главное знать, что они есть и не более, так как они так же нас не сильно интересуют;
3) БКД-ПК-RF контроллер, отвечающий за передачу всех данных на удаленный сервер. Сами же контролеры питаются от 220 и соединены между собой либо протоколом Modbus, либо через Ethernet.
Рис. 3 Внешняя часть шкафа управления.
Рис. 4 Экран САТ-500
Что же касается индикации процессов, рис. 3 нам показывает вид внешней дверцы шкафа управления. «Сеть»- тут все понятно, зеленый индикатор сигнализирует об общем подключении к сети. Далее четыре индикатора, показывающие состояние задвижек 1 и 2, открыты они или закрыты. Под ними 4 переключателя для управления задвижками в ручном режиме. Последние пять индикаторов говорят нам о той или иной проблеме: общая авария, уровень воды выше верхнего предела, уровень воды выше среднего предела, уровень воды ниже среднего предела, уровень воды ниже нижнего предела. Также мы видим переключатель выбора бака. Тут следует пояснить, что данный переключатель переключает информацию о баках на самом САТ-500.
На Рис 4 мы видим как выглядит во время работы экран САТ-500.
Главный экран содержит в себе основную информацию о состоянии задвижек один и два, и показывает процентное заполнение бака, выбранного нами на дверце шкафа. То есть, переключатель, о котором мы говорили чуть выше, задействуется именно здесь, в нашем случае, он находится в состоянии 1, поэтому и САТ-500 показывает информацию именно по баку №1. Если бы переключатель был в положении 2, то информация была бы уже по баку №2 и т.д.
Второй же экран, содержит в себе комплексную информацию по всем четырем бакам.
Что ж, с описанием объекта мы разобрались, теперь можно поговорить непосредственно о самой модернизации.
В нашем случае, у нас была задача, сделать так, чтоб при закрытой дверце шкафа, была возможность удобного считывания данных с контролера.
Что же делать? Раз дверца должна быть в закрытом состоянии, то логичным выходом из данной ситуации будет вывод всей информации непосредственно на внешнюю часть дверцы. А с этой задачей ничто не справится лучше, чем операторские панели.
Рынок пестрит всевозможными операторскими панелями. Выбирать можно все, что душе угодно, в нашем же случае мы пришли к выводу, что цена-качество, функционал и удобство использования приводят нас к операторским панелям Weintek и конкретно к модели MT807iP (Рис 5). Классический набор такой панели — это Ethernet вход, сенсорный экран и интерфейс RS-485. Дальнейшие же различия во всех панелях лишь в диагонали панели и дополнительных входах, экранах, и парочке дополнительных функций, например на самых навороченных моделях есть функции удалённого доступа.
Рис. 5 Операторская панель Weintek MT807iP
Начало Работы.
Ну что же, а теперь давайте начнем разбираться, как же все-таки соединить между собой операторскую панель Weintek и САТ-500. Во-первых, физическое соединение между панелью и САТом происходит при помощи RS-485. Во-вторых, для работы с панелями Weintek вам понадобится EasyBuilder Pro, бесплатное программное обеспечение для программирования панелей Weintek. Введя в любом браузере EasyBuilder Pro, вы с легкостью найдете нужный вам софт.
После того, как вы скачали, установили и запустили EasyBuilder Pro, у вас откроется стартовое окно проекта. В этом окне мы можете выбрать либо предыдущие проекты, над которыми уже работали, либо же создать абсолютно новый. По умолчанию программа будет предлагать в графе «Недавний проект» программы примеры, которые устанавливаются на компьютер вместе с софтом, но нас это не интересует, поэтому мы нажимаем на «Новый».
После этого перед нами появится список моделей панелей, и, в зависимости от вашей панели, вы выбираете нужную вам. В нашем случае это MT8071iP, поэтому ее мы и выбираем, и нажимаем «ОК».
После этого перед нами появляется окно «Системные настройки». Как следует из названия, это системные настройки, в которых можно настроить разные параметры панели. Например, в вкладке «Общие» мы можем выбрать параметры заставки, сколько оно будет подсвечиваться, что вообще будет на заставке; мы можем выбрать рабочую клавиатуру, стартовое окно. Во вкладке безопасность мы можем установить пароли. В общем и целом, тут достаточно много параметров, которые мы можем настроить. Но начнем мы, пожалуй, со вкладки устройства. В списке устройств уже существует наша панель, и если наш проект должен работать только на панели без какого-то либо ПЛК, то мы просто нажимаем «ОК». Так как в нашем случае нам надо соединить панель с САТ-500, то мы нажимаем на «новые устройство/сервер…»
Далее мы можем задать имя нашему устройству, лично я оставляю все по умолчанию. Выбираем галочку напротив «устройство». Расположение локальное. При выборе типа устройства все зависит от вашего ПЛК, так как один из больших плюсов операторских панелей Weintek, это большое количество предустановленных дров для разных ПЛК, от ABB до Yamaha, но также панель поддерживает все устройства, работающие по протоколу Modbus. А вот именно он нам и нужен, по умолчанию в типе устройств уже стоит MODBUS RTU, RTU over TCP, но мы его поменяем на MODBUS RTU (Zero-based Addressing), для этого нажмем на «Тип устройства» и выберем из списка интересующий нас MODBUS RTU (Zero-based Addressing). Если же по каким-то причинам в типе устройств стояло что-то другое, то вы так же нажимаете на «Тип устройств» и выбираете то, что вам надо.
Нам осталось выбрать интересующий нас интерфейс, в нашем случае это RS-482 2W, и параметры COM порта. При настройке параметров COM порта стоить не забывать, что они должны быть такими же, как и на САТ-500. Ну, и тут же можно настроить время ожидания, я обычно ставлю 3 секунды. После чего можно считать, что мы настроили наше устройство и нажать на «ОК».
После всех наших махинаций мы можем заметить, что в списке устройств, помимо уже существующей панели, появилось и наше новое устройство. Дальше вы можете поиграться с параметрами, я обычно их либо вовсе не трогаю, либо подкручиваю по ходу дела. Ну, раз мы считаем, что на данном этапе нас все устраивает, то мы можем смело нажимать на «ОК».
Ну, что же, вроде мы добавили все устройства, и можно начать работу. Перед нами находится наше рабочее пространство, для удобства нашей работы давайте сразу же добавим дерево окон, для это переходим во вкладку «Просмотр» и ставим галочку напротив «дерево окон». Так же я обычно выключаю «Сетку», но это уже на ваше усмотрение, смотрите, как вам удобнее будет работать. По левую руку у нас появится панель “дерево окон”, на нем наши рабочие пространства, первые 9 это заданные окна системных параметров, такие как быстрый доступ, разные виды ошибок, но на данном этапе на этих окнах мы не будем заострять наше внимание. Главное и интересующее нас окно находится под номером 10, это наше стартовое окно, по умолчанию оно всегда называется WINDOW_10.
Теперь давайте настроим наше стартовое окно. Нажав правой кнопкой мыши на WINDOW_10 и выбрав пункт настройки, мы попадаем в параметры окна, здесь мы, собственно, можем изменить название нашего окна, давайте назовем его «Окно 1». Мы можем задать высоту и ширину, по умолчанию, параметры высоты и ширины будут идентичны высоте и ширине нашей панели, но, если, допустим, нам нужно выскакивающие окно меньших размеров, мы всегда можем изменить габариты. Так же если дело касается всплывающих окон, мы можем задать координаты, где именно оно будет появляться. А сейчас давайте изменим фон нашего окна.
Ну, что же, наше первое окно, можем назвать его стартовым, готово, важно понимать, что это именно то окно, которое будет появляться при включении вашей панели.
Моя идея заключалась в том, что я хотел, чтоб на главном экране у меня выводились уровни всех баков и индикаторы открытия и закрытия задвижек, плюс общая авария, а на остальных экранах вся остальная вспомогательная информация.
Во вкладке «Объект» находится первый функциональный объект, который мы добавим. Заходим во вкладку «Объект» и далее выбираем Гистограмму, это и будет индикатор уровня нашего бака.
Перед нами появляется меню создания объекта. Так как наш объект должен читаться и выводиться панелью с САТа, то в графе «адрес чтения» выбираем устройство MODBUS RTU (Zero-based Addressing), далее самое интересное - нам нужно задать адрес нашего чтения. На рисунке снизу выделено две зоны, в которых можно задать адрес. 1- непосредственно в самом окне, удобно, когда тип данных нас устраивает и мы можем сразу же вводить адрес. 2- для тех случаев, когда нам нужно поменять тип данных, так как нам нужно поставить 32- bit float (по умолчанию всегда стоит 16-bit unsigned), это делается в настройках (2). Для начала разберемся с самым простым, поменяем тип.
А теперь что касается адресации, EasyBuilder Pro представляет адреса следующим образом - «Тип адреса» и «адрес». Да, хоть мы и работаем по протоколу Modbus, не стоит путать его форму записи и “местную”, хотя они очень похожи. Типы адресов протокола MODBUS в EasyBuilder Pro следующие: 0x, 1x, 3x, 4x, 5x, 6x, 3x_bit и 4x_bit.
ПРИМЕЧАНИЯ:
1. Адреса типа “5x” отображаются в «Holding Register». Коммуникационный протокол “5x” почти тот же самый, что “4x”, за исключением того, что “5x” делает замену мест двойных слов (double word swap).
Если регистр 4x содержит следующую информацию:
Address: 1 2 3 4 5 6 ...
Data in word: 0x1 0x2 0x3 0x4 0x5 0x6
Data: 0x20001 0x40003 0x60005
Для регистра 5x, это становится:
Address: 1 2 3 4 5 6 ...
Data in word: 0x2 0x1 0x4 0x3 0x6 0x5
Data: 0x10002 0x30004 0x50006
2. 2. Тип адреса “6x” ограничен использованием только одного слова данных.
3. 3. Коммуникационный протокол 3x_bit и 4x_bit тот же самый, что и 3x, и 4x. Различие состоит в том, что протоколы 3x_bit и 4x_bit читают единственный бит из целого слова.
Так как нас интересует Read holding register, то мы выбираем 4х.
Тип адреса мы выбрали, теперь остается задать сам адрес, для этого мы можем либо воспользоваться таблицей адресов Modbus для САТ-500, взятую из руководства для контроллера, либо в программе FBD2 взять таблицу адресов. Разница этих двух таблиц в том, что таблица из FBD2 имеет конкретные адреса компонентов нашей программы, а таблица из руководства имеет адреса встроенных вещей в САТ-500, например, часы.
Меня интересуют адреса реальных компонентов, поэтому я открываю рабочую программу в FBD2 и смотрю в таблицу адресов Modbus.
В открывшейся таблице меня интересовали строчки РЧВ1!-РЧВ4! (для тех, кто решил более детально разбираться со всем, это контрольные точки в FBD2, имеющие значения уровня воды в баках, находятся они в левой части программы, в столбике). Так как мы все еще делаем первую гистограмму, то с нее и начнем, все остальные делаются по аналогии. Для первого бака – строчка РЧВ1! значит, что мы берем адрес «2028» и не забываем перевести его из HEX(Шестнадцатеричная) в DEC(Десятичная). Сделав эту несложную махинацию, мы получим значение «8232», именно это значение в строчку адреса мы и вводим, жмем “Окей” и наша гистограмма готова.
Давайте немного подытожим все вышесказанное. При создании объекта, во-первых, помните, каким устройством воспроизводится этот объект. Во-вторых, тип адреса, это функция в Modbus, но немного перепутанная в значениях, поэтому смотрим в таблицу и выбираем. В-третьих, сам адрес, смотрим в таблицу, переводим в десятичную. И не забываем про тип данных.
По такому же принципу мы делаем еще три гистограммы, только помним о том, что у каждой гистограммы свой адрес, поэтому по аналогии с первой гистограммой смотрим в таблицу, переводим в десятичную и получаем наш адрес.
Тут стоит отметить удобную функцию в EasyBuilder Pro для удобного размещения объектов. Дабл клик по линейке в рабочем окне вызовет маркер. Удаляется он в случае ненадобности достаточно просто - правая кнопка мыши, удалить. Таких маркеров можно вызвать сколько угодно, что на оси X, что на оси Y. Удобная вещь для форматирования проекта, имейте в виду.
Вот мы получили наши четыре уровня воды в баках. Теперь для большей наглядности давайте каждой гистограмме добавим ее числовое значение, чтоб не только визуально понимать, насколько заполнен бак, но и видеть уровень заполнения в числовом формате. Для этого всё в той же вкладке «Объекты» находим и выбираем объект «цифровой», все, что касается адресов, заполняем аналогично гистограмме, к которой будет относиться этот объект. То есть если он относится к первой гистограмме, то и адрес у него будет, как и у первой гистограммы и т.д. Далее переходим в «Формат чисел», там меняем формат опять же на 32-bit float и выставляем 3 знака слева от точки, так как наше значение будет колебаться от 0 до 100, и справа ставим 0.
Для полной красоты, так как это процентное заполнение баков, давайте добавим значок %, делается это весьма просто все в той же вкладе «Объект», выбираем «текст/комментарии».
В параметрах данного объекта все довольно тривиально, вводим интересующий нас текст, выбираем шрифт, размер и жмем «ОК». Далее по вышеуказанной процедуре подставляем % ко всем остальным числовым гистограммам.
Ну, раз мы все уже научились пользоваться объектом «тест/комментарии», то уже без моих подсказок давайте подпишем каждую гистограмму, как БАК№1, БАК№2, БАК№3 и БАК№4.
На данном этапе наше первое окно должно выглядеть так.
Внимательный читатель мог заметить, что между тем, что я пишу, и тем, что на экране, есть разница, а именно, отличие в адресах. Поэтому я хочу сразу отметить этот момент - по непонятным для меня причинам, иногда сама программа перескакивает на адрес выше, то есть по таблице для первой гистограммы адрес 8232, для второй - 8234, третьей - 8236, четвертой - 8238 но на деле при вводе этих адресов данные сдвигаются на адрес выше, то есть адрес 8234 читает данные не с бака 2, а с бака 1, и для того, чтобы все выровнять, мне пришлось сделать сдвиг по адресам на 8230, 8232, 8234 и 8236, сделал я это в самом начале, так как я про этот дефект знаю. Но хотелось бы отметить, что это происходит не везде, поэтому советую сначала вбивать адреса из таблицы, в 99% все будет работать нормально, но если вдруг что-то не будет работать, то просто держите в голове, что возможен съезд адресов. P.S. Данная ошибка не каким образом не связан с +1 -1 адресами в Modbus.
Раз у нас уже есть рабочие элементы нашей панели, то самое время проводить компиляцию проекта. В среде EasyBuilder Pro она может осуществляться несколькими способами: «Онлайн симуляция», «Оффлайн симуляция», «Загрузить (ПК>Панель)».
Оффлайн симуляция- самый простой вид компиляции, он компилирует объекты, связанные Панелью, но все объекты, которые связаны с ПЛК компилироваться не будут. Поэтому это суперлокальный компилятор. Я обычно его использую для того, чтобы просто посмотреть, встали ли объекты на место, и для прочих “сиюминутных” моментов.
Онлайн симуляция- полноценная компиляция проекта, в которой компьютер симулирует панель. Для этого необходимо через COM порт соединить САТ-500 и компьютер. Но имейте в виду, что стандартно в компьютерах есть COM порт, но он RS-232, поэтому нам нужен переходник. И тут есть два варианта: воспользоваться обычным или USB преобразователем RS-232 на RS-485. Второй вариант, наверное, будет предпочтительнее, так как часто COM порт либо может быть один и занят монитором, либо и вовсе может отсутствовать, в случаях с ноутбуками.
Загрузить(ПК>Панель)- функция из названия которой понятно, что она делает, а именно, компиляцию непосредственно при помощи панели. Из всех трех вариантов она самая трудоемкая, потому что каждый раз приходится сначала компилировать, потом загружать на панель, и при этом панели требуется перезагрузка. Поэтому использовать данный способ компиляции для проверки малых изменений, наверное, не самое верное решение, потому что это будет занимать колоссальное количество времени. Для данного способа можно воспользоваться либо USB выходами, либо кабелем Ethernet, главное, не забудьте настроить параметры IP на панели.
Ну, что же, давайте продолжим заполнять наше главное окно. Теперь познакомимся с объектом «Битовый индикатор». В нашем случае будет четыре битовых индикатора. Два битовых индикатора будут показывать состояние Задвижки 1, открыта она или закрыта, а два других - состояние Задвижки 2. Находится «Битовый индикатор» все в той же вкладке «Объект».
Тут нас встречает уже до боли знакомое меню параметров. К слову, оно, с учетом функциональной деятельности, почти для всех объектов примерно одинаковое.
Уже по отработанной схеме выбираем устройство и вводим адрес. Тут бы хотелось сделать небольшую ремарку о том, что в данном случае я пользовался таблицей адресов Modbus не в FBD2, а таблицей из описания САТ-500, так как надо понимать, что этот битовый индикатор должен показывать состояние задвижки, а оно зависит только от того, есть сигнал на аналоговом выходе или нет. Поэтому нам нужно знать только лишь номер аналогово выхода.
Далее перейдем во вкладку «Фигура», и тут для вас открывается раздолье для творчества, во-первых, мы можем задать именно ту цветовую гамму, которая нам нужна, RGB вам в помощь, но и также мы можем выбрать сам вид объекта. На этом моменте хотелось бы сказать, что люди, занимающиеся поддержкой EasyBulder Pro, большие молодцы и подвезли достаточно обширную библиотеку фигур, которой мы можем воспользоваться. Так же если вдруг вас не устраивают уже имеющиеся фигуры, то добавить в библиотеку свои не составляет труда.
Поэтому выбираем лампу, которая вам больше по душе, в моем случае это Lamp-Crystal, и далее выбираем цвета для состояний, я решил, что в негорящем состоянии все мои индикаторы будут черные, в горящем “открытом” - зеленые, в “закрытом” - серые.
Проставляем интересующие нас параметры (цвет и фигуру) и жмем «ОК». Вот, наш первый индикатор готов. Вновь обратимся к нашей любимой комбинации ctrl+c/ctrl+v и размножим наш индикатор, нам же нужно их четыре. Поменяем в каждом адрес, и помним про цвета индикаторов.
Нам понадобится еще один битовый индикатор, но так как мы уже знаем, как его делать, я скажу лишь, что в горящем состоянии он должен быть красным и адрес его будет 0x_single_bit 266, а также размеры его должны быть чуть больше, чем у предыдущих индикаторов.
Пятый индикатор в нашем случае будет сигнализировать нам обо всех аварийных ситуациях. Сделано это из-за нежелания захламлять экран всем подряд, про это вы тоже должны помнить в момент создания того или иного проекта - экран всегда должен быть читаемым и аккуратным, информации должно быть ровно столько, сколько ее нужно. Объясню как раз на примере этого индикатора, если вы посмотрите на программу в FBD, или же на скрины экранов самого САТ-500 (они напомню находятся чуть выше), то вы увидите, что аварий программой предусмотрено несколько, будь то опустошение бака или же наоборот перелив, или что-то еще. Но если я визуализировал бы каждую возможную аварию на панели, то либо мне не хватило бы места на ней, либо же это было бы нечитаемо. Поэтому индикатор один и он будет высвечиваться при срабатывании любой аварии, а понять, что это за авария можно будет либо посмотрев на гистограммы, либо же на сам САТ-500, там уже подробно будет отображаться, что за это авария. Вот таким хитрым образом мы сохранили место, не жертвуя информативностью нашей панели.
Далее я наведу немного красоты, но так дотошно эту часть объяснять не буду, оставлю скрины того, как это должно выглядеть с небольшим кратким описанием.
Финальный образ главного экрана почти готов, последний элемент мы добавим чуть позже.
Первым пунктом во вкладке «Домой» отмечены все наши объекты, которые мы можем выбрать. Пунктом (2) обозначена функция изменения плана у объекта, на верхний или нижний, очень полезная вещь. Далее (3) и (5) это геометрические фигуры прямоугольник и эллипс соответственно. (4) объект «менеджер изображения» и далее заходим в библиотеку изображений, выбираем «Просмотр библиотек», в поиске вводим «tag», выбираем интересующий нас объект и жмем «добавить в проект». Теперь в нашей библиотеке есть все объекты этой группы, и, если мы потом снова зайдем в «менеджер изображений» группа, tags уже всегда в этом проекте будет в библиотеке.
Главное окно готово, что дальше? А дальше нам понадобится сделать еще пару окон, во-первых, мною было решено продублировать информационные окна с САТ-500, а именно: 1) Дискретные выходы; 2) Дискретные входы; 3) Аналоговые входы; 4) Аналоговые выходы. Плюс сделаем еще одно функционально окно, а также экран, на котором будут отображаться графики расхода воды внутри баков.
Создадим новое окно, для этого в левой части нашего рабочего пространства находим уже знакомое нам дерево окон, выбираем свободный слот, будь то следующий или любой свободный. Я для удобства буду создавать все последующие окна друг за другом. Для этого жмем правой кнопкой мыши по слоту и выбираем «новый», после этого открывается панель настройки окна, я его буду настраивать ровно так же, как и первое, чтоб придерживаться единого стиля. Давайте сразу же сделаем и три других окна «дискретные выходы», «Аналоговые входы», «Аналоговые выходы» в едином стиле. Любое новое окно, вызывается двойным щелчком по его ячейке в древе окон.
Оставлю лишь скрины самих окон, так как делаются они достаточно легко, объект «таблица» находится там же где и все остальные объекты, так же понадобится объект «текст» и «цифровой». Адреса к объекту «цифровой» берутся из таблицы описания САТ-500.
Создадим еще одно окно все с теми же настройками и названием «Уровни РЧВ». В нем будут представлены графики и таблицы данных со значениями процентного заполнения баков водой. Для этого во вкладке «Данные/История» выбираем «Выборка данных».
В появившемся окне нажимаем «создать».
Так как нам нужно, чтоб наши данные менялись со временем, выбираем режим работы «Временная» с интервалом выборки 15 сек. Конечно же, вы можете выставлять любой интервал, а также менять его в любой момент. Я выставил 15 секунд только для наглядности.
Адреса чтения все такие же, как и у гистограмм, ведь это и есть наши данные о наполненности баков.
Сразу же поставим еще галочку в поле «В памяти панели», это значит, что вся информация будет сохраняться на вашей панели, однако есть и альтернативные варианты хранения данных. К тому же конкретно для этого проекта, я оставил ограничитель истории на 7 днях.
Далее нажмем на «формат данных…» и в появившемся окне создадим 4 элемента с именами «Бак1»-«Бак4» и форматом 32-bit Float.
Все, теперь у нас создана наша выборка данных.
Далее все в той же вкладке «Данные/История» выбираем «график выборки» и выставляем настройки в соответствии со скринами приведенными ниже.
Ну, что же, теперь у нас есть наша выборка данных в виде графика. Если вы делали все в точности так же, как представлено на скринах выше, то по оси X у нас будет отложено время, а на ось Y - проценты, на которые заполнен бак. Для этого воспользуемся инструментом «Текст/Комментарий».
Так как просто визуального представления данных нам может не хватить, давайте добавим еще таблицу, содержащую информацию с графика. Для этого во вкладке «Данные/История» находим и нажимаем на «Отображение исторических данных» и далее делаем все согласно скринам.
Так как наша выборка данных хранит в себе информацию за последние 7 дней, давайте также добавим список дней, чтобы можно было смотреть данные за каждый из них по отдельности. Для этого во вкладке «Объект» выбираем «Список опций» и настраиваем в соответствии со скринами, которые будут приведены ниже.
На этом все наши окна готовы, проект почти можно считать готовым. На данный момент у нас есть наше главное окно, содержащее гистограммы и индикаторы задвижек; четыре вспомогательных окна, в которых находится информация о САТ-500; окно с графиком.
Осталось сделать лишь так, чтоб между окнами можно было переключаться. Для этого создадим выплывающее окно со списком и еще пару вспомогательных кнопок.
Для того чтобы работать с «кнопками», нам понадобится инструмент «многофункциональная кнопка», находится он во вкладке «Объект». Но перед началом нам понадобится создать еще одно окно. Все это делается для того, чтобы иметь в каждом окне кнопку, при нажатии на которую будет появляться список наших окон, в простонародье это меню, вот именно его мы и будем создавать. А так как это будет всплывающее меню, то при нажатии на соответствующую кнопку, панель каждый раз будет обращаться к отдельному заранее созданному окну. Это самое окно мы сейчас и создадим.
Как создавать окна мы уже знаем, поэтому я лишь оставлю скрин настроек.
Тут хотелось бы отметить пункт “начальная позиция”. Эти координаты отвечают за место всплывания окна, я пока их так и оставлю, и, наверное, даже не буду показывать, что конкретно я выставлю, с этим моментом я вас оставлю побаловаться.
В получившимся окне давайте начнем создавать наши кнопки.
Нажимаем на «Функциональная кнопка». Первая наша кнопка будет отвечать за вызов окна «Дискретные входы». Поэтому оставляем галочку на «изменить полноэкранное окно» и в списке окон находим нам подходящие, а именно «Дискретные входы».
Далее заходим во вкладку «Фигура» и там выбираем тот вид кнопки, который нас устраивает. Их можно выбрать из имеющихся библиотек, а также загрузить свои. Меня устраивают классические варианты, поэтому мой выбор пал на Button-Flat.
После заходим во вкладку «Метка», ставим галочку напротив «использовать метку», потом в появившейся графе «содержимое» вводим название нашей кнопки. Причем не обязательно это делать именно через вкладку метки. На любою кнопку, в целом, можно добавить элемент “текст”, просто это подразумевает под собой создание отдельного элемента, так что выбирайте тот способ, который удобен для вас.
Нажимаем «Ок» и у нас готова первая кнопка.
Далее по такому же принципу делаем еще четыре кнопки: «Дискретные выходы», «Аналоговые входы», «Аналоговые выходы», «Данные РЧВ».
Последняя кнопка будет слегка отличаться, так как она будет отвечать не за вызов нового окна, а за закрытие Меню. Назовем мы ее просто «Закрыть». Все отличие будет только в том, что нам надо будет выбрать «Закрыть окно», тогда при нажатии у нас будет закрываться наше всплывающее окно.
Как итог, наше всплывающее окно должно выглядеть следующим образом:
Далее в каждом окне добавим кнопку Меню.
Настройки данной кнопки также будут отличаться лишь по функциональности, поэтому тут мы ставим «показывать всплывающее окно», лично я оставляю без заголовка, ну и в строчке Окно выбираем только что созданное нами окно Меню.
Теперь можно говорить о том, что наша главная страница готова, на ней есть вся интересующая нас информация и возможность перехода к другим окнам.
И напоследок, только уже сами, размножим «Меню» на все страницы. И дополнительно так же сами, ведь мы теперь умеем, сделаем на каждой странице кнопку «Главная», которая будет возвращать нас в «Окно 1».
Окончательный вид нашего проекта будет следующий:
Подводя итоги, хочу сказать, что на реализованной сегодня программе функционал панели не заканчивается, это была лишь маленькая крупица того, что на ней можно было сделать. Мы не рассматривали анимацию, макросы, а также больше половины объектов, а это и вовсе тема для отдельного разговора, который, возможно, состоится в скором времени. Но даже на этом маленьком проекте мы увидели, во-первых, насколько удобно и просто работать с операторскими панелями, во-вторых, на сколько они могут упростить жизнь оператору. Так или иначе у меня в голове продолжает звучать моя мысль, что надо использовать современные технологии, что надо модернизировать устаревшие объекты, проекты и оборудование, всему этому просто необходимо обновление с течением времени, этим не следует пренебрегать, нужно делать это по мере необходимости и отказываться от старого в пользу нового в тех местах, где это требуется.
Имя: |
|
Скачать |
Размер: |
1.51 MB |
Скачано: |
2186 раз(а) |
|
|