WinCC OA Tags (Interpreterstring)

In HTML gibt es als Steuerzeichen sog. Tags mit denen das Seiten-Layout gestaltet bzw. Abfragen etc. erfolgen. Für WinCC OA wurden eine Reihe Tags entwickelt, die in diesem Kapitel erklärt werden.

Durch WinCC OA werden alle Zeichenketten ( WinCC OA Tags) interpretiert und ersetzt, welche folgender Syntax gehorchen:

<%[Abfrage]%>

Innerhalb der Abfrage-Statements dürfen absolute Datenpunktbezeichner, Schlüsselwörter, Skripts und $-Parameter eingesetzt werden.

Beispiel

Die einfachste Form einer Abfrage lautet (siehe auch Beispiel für HTML Referenzen):

<html>

<title> This is the simplest test </title>

Value: <%?"ExampleDP_Result."%>

</html>

Hinweis

Sie sollten mit den Grundlagen von Referenzen und $-Parametern vertraut sein. Lesen Sie gegebenenfalls das Kapitel Erstellen eines Gerätesymbols (Referenz).

Es werden durch die WinCC OA HTML-Referenzen sämtliche Abfragen in WinCC OA ermöglicht.

Einfache Abfragen (Texte und DP-Werte)

Komplexe Abfragen (CTRL-Funktionen bzw. Control-Skripts)

Einfache Abfragen

  • Text zusammensetzen und anzeigen (ohne Präfix "?"). Im Folgendenstehen die eckigen Klammern für beliebige Texte.

<%[Abfrage]%> Bedeutung Ergebnis
<%$Text%> Der durch den Parameter bezeichnete Text wird ausgegeben z.B. "ExampleDP_Arg2" wird ausgegeben
<%$Text + "[Festtext]"%> Der durch den Parameter bezeichnete Text wird mit dem Festtext verkettet und angezeigt z.B. "EampleDP_Arg2 hat folgenden Wert"
<%$P1 + $P2%> Die Texte "$P1" u. "$P2" werden verkettet und angezeigt z.B. "ExampleDP_Arg2 ExampleDP_Arg1" werden verkettet und angezeigt
<%"[T1]" + $Text+ "[T2]"%> Die Texte "T1" , "$Text" und "T2" werden verkettet z.B. "Der Datenpunkt ExampleDP_Arg2 hat diesen Wert.

Es soll der Name des $-Parameters $dpe auf der HTML-Seite dargestellt werden. Dabei handelt es sich bisher nur um aktuelle Inhalte von Parametern und fixen Texten. Um den Namen des $Parameter auszugeben, müsste die Abfrage in der HTML-Referenz wie folgt aussehen:

<%"Datenpunktelement: ;+$dpe%>

oder

Datenpunktelement: <%$dpe%>

oder für fixe Datenpunktelemente

Datenpunktelement: <%"dp1"%>

  • Abfragen von DPE Werten, Zeiten und sämtlichen anderen Attributen (mit Präfix "?"). Die Klammern stehen wieder für beliebige Angaben.

<%?[Abfrage]%> Bedeutung
<%?$DPE.comment%> Kommentar des DP(E) | $-Parameter
<%?$DPE.alias%> Der Alias des DP(E) | $-Parameter
<%?$DPE%> Formatierter Wert mit Einheit des DPE | $Param.
<%?$DPE.dateTime%> Datum und Zeitstempel des DPE | $-Parameter
<%?$DPE.alertColor%> Alarmmeldefarbe des DPE für HTML| $-Parameter
<%?$DP+"[element]:Config.[detail].attribut!"%> Wert des gewählten Attributes des DPE | $Param.
<%?$DP+"[element]".<X>%> <X> des DPE | $-Parameter ("X"-Kombination z.B. description, alias, dateTime, alertColor s.o.)
<%?"DP.[element]:Config.[detail].attribut"%> Wert des gewählten Attributes des angegebenen DPE
<%?$DP+"[element]".<X>%> <X> (description, alias etc.) des DPE ("X"-Kombination s.o.)
<%?$DP+$Element+":Config..attribut"%> Wert des zusammengesetzten Parameters
<%?"DP"+$Element+":Config..attribut"%> Wert des zusammengesetzten Parameters
<%?$DP+$Element.<X>%> <X> (description, alias etc. )des DPE ("X"-Kombination s.o.)

Beispiel

Es soll der Online-Wert des DPE ".stellgrad" des DPs im $-Parameter "$dp" auf der HTML-Seite dargestellt werden. Die Abfrage in der HTML-Referenz sieht dann wie folgt aus:

Wert: <%?$dp+".stellgrad"%>

mit Format u. Einheit oder

Wert: <%?$dp+".stellgrad:_online.._value"%>

ohne Format u. Einheit. Zusätzlich soll der DP-Kommentar zu dem DPE ausgegeben werden:

Kommentar: <%?$dp+".stellgrad".comment%>

Beispiel

Die Farbe einer Tabellenzelle soll die Meldebehandlungsfarbe eines DPEs annehmen:

<table><tr>

<td bgcolor="<%?$dpe.alertColor%>">Zelleninhalt</td>

</tr></table>

Komplexe Abfragen

In den am Server, während des Erstellens der dynamischen Seiten, aufgerufenen Funktionen und Skripten können auch die, der Referenz übergebenen $-Parameter genutzt werden. Zusätzlich werden immer folgende $-Parameter mitgegeben:

$-Parameter Bedeutung
$User Benutzername (z.B. "operator")
$Ip TCP-IP Nummer des Teilnehmers (z.B. "193.81.17.85")
$LangId Sprachindex-Nummer (z.B. "1"`)
  • CTRL-Funktionen ausführen (Präfix "=")

<%=[Funktion]%> Bedeutung
<%=http_color(string)%> Der im string angegebene Farbname ( WinCC OA Farbname) wird durch WinCC OA in eine HTML-Farbe (HEX+RGB Code) umgewandelt.
<%=http_currentTime()%> Das aktuelle Datum und die Zeit vom WinCC OA System werden ausgegeben.
<%=http_multi(float, float)5> Die angegebenen floats werden multipliziert und mit Ergebnis ausgegeben. (Siehe Referenz Beispiele)
<%=http_getConfig(string)%> Der Werte des im string angegebenen Config-Parameters wird zurückgegeben.
<%=f([p1], [p2], ...[pn])%> Eine eigene string-Funktion wird aus der Library proj_http.ctl aufgerufen und das Ergebnis in die HTML-Referenz-Seite eingebunden.

Beispiel

Eine Tabellenzelle mit dem Inhalt "Text" soll die Farbe "_invalid" annehmen. Hierzu sieht die Abfrage in der HTML-Referenz wie folgt aus:

<table><tr>

<td bgcolor="<%=http_color("_invalid")%>">Text</td>

</tr></table>

  • Control-Script ausführen (Präfix "={")

Hier wird ein komplexes WinCC OA Skript ausgeführt, in dem die angegeben $-Parameter und alle Funktionen aus der Library proj_http.ctl bekannt sind.

<%={[Skript]}%> Bedeutung
={[Skript]}

Ausführen eines komplexen Skripts und das Ergebnis in die HTML-Referenz-Seite einbinden.

Das angegebene Skript muss dabei mit "return(string);" enden und (komplett) in {} eingeschlossen sein.

Beispiel

Es sollen die Online-Werte zweier DPEs in den $-Parametern "$dpe1" und "$dpe2" ausgelesen und subtrahiert werden und das Ergebnis als HTML-String zurückgeliefert werden. Hierzu sieht das Skript in der HTML-Referenz wie folgt aus:

<%={

string sHtml;

http_sub(sHtml);

return(sHtml);

}%>

Dazu muss es in der CTRL-Library diese Funktion geben:

void http_sub(string &html)

{

float f1, f2;

dpGet($dpe1+":_online.._value", f1, $dpe2+":_online.._value", f2);

sprintf(html, "%5.2f - %5.2f = <b>%5.2f</b>", f1, f2,(f1-f2));

}

Beispiel

Es soll ein Bild (Led) auf der HTML-Seite in Abhängigkeit vom Invalid-Bit des Datenpunkts im $-Parameter $dpe gesetzt werden. Hierzu müsste das Skript in der HTML-Seite wie folgt aussehen:

<%$dpe%>: <img align="middle" src="/pictures/http/<%={string s"

http_bool(s, $dpe+":_online.._bad", "led_invalid", "led_active");

return(s)"}%>.gif">

<br>

Dazu muss es in der Library diese Funktion geben:

void http_bool(string &sHtml, string sDpe,

string sImgOn, string sImgOff)

{

bool b;

dpGet(sDpe, b);

sHtml= ( b ? sImgOn : sImgOff );

}