Как программировать PlantVisor — система мониторинга

Многие коллеги спрашивают — Как программировать PlantVisor? Всё очень просто, давайте сначала откроем карту html/map/index.htm исходный код и попробуем в нём разобраться, что к чему:

Добрый день!
Да, можно вставлять свои картинки, анимации, изображения, даже переменные и коды — в зависимости от получаемых от центрального контроллера линии RS485 (pc-gate) параметров с датчиков, и так, попробую сделать из того файла что вы прислали:
Описание — как программировать PlantVisor буду писать ниже под оригинальным кодом html, обозначая под строкой их значком «//«

<div style=»top:285px; left:161px; z-index:506; position:absolute; background-image: url(‘le_images/pjeasy_034_0.gif’);
// Слой с подложкой: pjeasy_034_0.gif

 background-repeat:no-repeat; overflow:none; width: 60px; height: 46px;»>

<script>document.write(‘<a href=»<%unit34.GetHTMLPage4Unit(«index.htm»)%>?
// unit34 — устройство с номером 34 (в Общем списке устройств — ЛИния — Конфигурация линии — настраивается номер, такой же номер должен быть // в pjeasy Программа: 22: H1: 34 (там диапазон адресов от 1 до 255)) — это ссылка с карты на само устройство html/unitt/pjeasy/index.htm, а файл с // переменными (если нужно что-то поменять) тут: UnitT/pjeasy.var — собственно эти переменные и выводятся в html

Unit=<%unit34.Ident%>&whereunit=’+where_34+’&temprejimunit=’+temprejim_34+'»
// where_34 и temprejim_34 в файле html/map/description.js — лежат дополнительные «подсказки», например: к 34 адресу некий текст: Холодильная // камера N2 и Температурный режим: 0+2 C

onmouseover=showHrefDiv(«message_unit_34»)
// при наведении — выходит слой с div в котором выведены списком параметры

 onmouseout=hideHrefDiv(«message_unit_34»)>’);</script>
// делаем невидимым слой div

<img border=’0′ style=’z-index:333;’ src='<% assint(unit34.Status,
«le_images/pjeasy_034_2.gif»,»le_images/pjeasy_034_0.gif»,»le_images/pjeasy_034_1.gif»,»le_images/pjeasy_034_4.gif»)%>’>
// Тут, выводи свои картинки, в данном случае: три состояния: 2, 0, 1
// Передаются они в unit34.Status к 34 номеру ввиде цифр: 0,1,2,3,4… под эти статусы — делаем свои картинки с этими статусами (выкл, тревога, // авария, работает)…

<br><div id=»message_unit_34″ style=»display:none;»><table border=»1″ cellpadding=»0″ cellspacing=»0″ bgcolor=»#3d41fa»><tr align=»left» valign=»top»>
<td align=»left» nowrap>
<font size=»1″ color=»#FFFFFF» face=»Arial, Helvetica, sans-serif»><br>
<script>document.write(where_34 + ‘<br>’ + temprejim_34);</script><br>
// Вывоодим данные в таблицу (пока скрытую, div станет видимый при срабатывании события onmouseover)

<center>——————————————————-<br></center>
Unit: <b><% unit34.Description %> (адрес:<%unit34.Ident%>)<br>
// Примечание по устройству: По-умолчанию, это то, что прописано в Сайт-Конфигурация линии-Линия — устройство, т.е. в нашем случае так: pjeasy

<center>——————————————————-<br></center>
Состояние: <%assint(unit34.Status,»Выключен»,»Не_в_сети»,»Тревога»,»Работает»)%></b><br>
// приходит 0,1,2,4 — соответственно и текст на 34ом — подменится на: «Выключен»,»Не_в_сети»,»Тревога» или «Работает»

Датчик 1:       <b><% unit34.S_SONDA_1 %> <% unit34.S_SONDA_1.MUnit %></b><br>
// Открываем файл блокнотом: UnitT/pjeasy.var — собственно эти переменные и выводятся в html
// Находим: S_SONDA_1 — что написано? Верно: Датчик 1 из контроллера он получает по переменной: s_pr1 внутренняя адресация по RS485 — 2;2;1 — ну всё просто.

Датчик 2:       <b><% unit34.S_SONDA_2 %> <% unit34.S_SONDA_2.MUnit %></b><br>
// Аналогично!

Датч.рз-ки: <b><% unit34.DEFR_SONDA %><% unit34.DEFR_SONDA.MUnit %></b><br>
// Аналогично!

Датчик 3:       <b><% unit34.S_SONDA_3 %> <% unit34.S_SONDA_3.MUnit %></b><br>
// Аналогично!
<br>
<center>——————————————————-<br></center>
Unit: <a href=<%unit40.GetHTMLPage4Unit(«index.htm»)%>?Unit=<%unit40.Ident%>><b><% unit40.Description %> (адрес:<%unit40.Ident%>)</b></a>
// 40ой адрес — ссылка на EVDEVOLUTION
// Unit=<%unit40.Ident%>  — номер адреса
// unit40.Description — название (примечание) Сайт-Конфигурация линия — Линия

<br>
<center>——————————————————-<br></center>
Состояние: <%assint(unit40.Status,»Выключен»,»Не_в_сети»,»Тревога»,»Работает»)%></b><br>
// На 40ом — передаются параметры статуса устройства: 0,1,2,3,4 — и подменяются на текст: ,»Выключен»,»Не_в_сети»,»Тревога»,»Работает»

Откр.клапана:   <b><% unit40.EEV_POSITION_PERCENT %> <% unit40.EEV_POSITION_PERCENT.MUnit %></b><br>
// Открываем файл блокнотом: UnitT/EVDEVO.var — собственно эти переменные и выводятся в html
// Находим: «EEV_POSITION_PERCENT»;2;17;1;»Открытие клапана»;»0″;»100″;»»;»%»;»Inputs»;»EEVopen»;»» — вопросов нет

Полож.клапана:  <b><% unit40.EEV_POSITION_STEPS %>      <% unit40.EEV_POSITION_STEPS.MUnit %></b><br>
// Находим в UnitT/EVDEVO_univ.var — EEV_POSITION_STEPS
// Да, есть такая: «EEV_POSITION_STEPS»;3;4;1;»Положение клапана»;»0″;»9999″;»»;»steps»;»Inputs»;»EEVposit»;»»

Перегрев:               <b><% unit40.SH_SH %>                           <% unit40.SH_SH.MUnit %></b><br>
// Аналогично: SH_SH

Темп.всасыв.:   <b><% unit40.SH_SUCT_TEMP %>            <% unit40.SH_SUCT_TEMP.MUnit %></b><br>
// Так же

Темп.испарен.:  <b><% unit40.SH_EVAP_TEMP %>            <% unit40.SH_EVAP_TEMP.MUnit %></b><br>
// Тоже
Давл.испарен.:  <b><% unit40.SH_EVAP_PRES %>            <% unit40.SH_EVAP_PRES.MUnit %></b><br>
// Точно 1 в 1

</font>
</td>
</tr>
</table>
</div></div>

Обычно, переменные в var — файлах устройств можно даже напрограммировать самому, точно так же в блокноте. Но, тут вам понадобятся оригинальные переменные: адресация и имена — те что есть в самом контроллере Carel — то, над чем вы колдуете. Из этих же переменных — делается html-страничка, аналогичная как в самих устройствах (то что описано выше) туда вы и вставляете эти переменные — и всё работает. По-аналогии, система мониторинга поддерживает modbus, а значит, зная какие переменные есть в контроллерах Danfoss — можно точно также создать var-файл конкретно под него. Но, на второй Линии — использовать не RS485 — а ModBus! И точно-также сделать html страничку для управления именно вашим новым устройством. Что в этой системе радует — как я и говорил раньше — это то, что вы можете делать всё что душе угодно! Программить и программить. А вот в ситуации с PlantVisorPRO и PlantVisorPRO2 — у вас — ничего не выйдет! Там закрытый код! И все переменные — по их алгоритму — уже не возможно вывести одновременно на экран! Предлагают поехать в Италию на стажировку — но овчинка выделки не стоит. Разрабатывать свои собственные проекты можно лишь на PlantVisor! В общем-то немного разобравшись с кодом — уже профессионал! Спасибо.

3 thoughts on “Как программировать PlantVisor — система мониторинга

  1. Выдернуть все переменные — можно из var-файла
    Они выводятся в html-странички с устройствами
    Всё просто. :mrgreen:

Comments are closed.