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 );
}