WinCC Grap7-Texte im HMI anzeigen

Ralle

Super-Moderator , User des Jahres 2006-2007
Teammitglied
Beiträge
15.419
Reaktionspunkte
4.045
Zuviel Werbung?
-> Hier kostenlos registrieren
TIA V15.1 mit WinCCProf

Ich habe Grapp7-Bausteine.
Deren Schritt-Texte kann man normalerweise mit einem Control auf der HMI anzeigen. (nennt sich Graph-Übersicht)
Nun verwende ich aber den Webnavigator und dieser kann das natürlich nicht!!!
War durchaus zu erwarten, wäre das erste Mal, das Siemens irgend etwas so zu Ende programmiert, daß es Hand und Fuß hat, spätestens bei 90% hören die auf und verkaufen den Schrott!
Bisher behalfen wir uns so, dass wir in jedem Schritt einen Text an eine Variable "Schritttext" übergeben.
Das funktioniert aber nicht, wenn man mehrsprachig arbeiten muß.
Eine Lösung wären Textlisten, aber das ist unschön, denn in Graph7 kann man die Ketten jederzeit neu nummerieren und dann wären die Texte der Liste nicht mehr mit den Schrittnummern kongruent.

Hat irgend jemand eine Lösung oder einen praktikablen Vorschlag?
 
Moin Ralle,
Bisher behalfen wir uns so, dass wir in jedem Schritt einen Text an eine Variable "Schritttext" übergeben.
Das handhabe ich ganz ähnlich, nur das meine Variable eine Schritttext-UDT (konkret ein String Array) ist. Element 0 ist bei mir dann der deutsche Text, Element 1 der Englische usw...
Meine Sprachumschaltung setzt dann in einer globalen Variable (bspw aktuelleSprache) nur die Nummer für die aktuelle Sprache (also 0 für deutsch, 1 für Englisch usw.). Anhand dieser Kombi kopiere ich dann in die eigentliche Variable für die Anzeige am HMI.
Code:
AnzeigeString := [COLOR=#333333]Schritttext[aktuelleSprache];[/COLOR]
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ach noch ein Nachtrag, WebUx, die neueste Sau, die Siemens durchs Dorf treibt, kann noch weniger!
Das zeigt die Controls natürlich auch nicht an, aber als Goody, kann WebUx auch keine Facplates bzw. Bildbausteine anzeigen.

Also, wer WebUx nutzen will, der sollte ganz weit in die Steinzeit zurückgehen und alles schön einzeln auf die HMI-Seite pappen. Das immerhin geht dann ... meistens ;-)

Das es eigentlich geht, zeigt ja das Alarm-Control sowohl beim Web-Navigator, als auch bei WebUx. Also warum programmieren die nicht einmal irgend etwas zu Ende?
 
Das zeigt die Controls natürlich auch nicht an, aber als Goody, kann WebUx auch keine Facplates bzw. Bildbausteine anzeigen.

Ernsthaft? :shock:
Und ich dachte wirklich daran, das für die Bedienung mit Tablets zu verwenden bei einem Projekt. Oh Hölle.
Sogar die Building Automation Schiene von Siemens schafft es, eine halbwegs brauchbare Weboberfläche zu bauen... Und dann groß von I4.0 faseln
 
Ja, der Bilodbaustein wird einfach nicht dargestellt :)
So kann man sichere HMI bauen.
Wer nichts bedienen können soll, der bekommt ein Tablet mit HTML5-Browser in die Hand gedrückt.
Aber Achtung, das Zertifikat muß man wohl selbst installieren, ich habs noch ncihjt hinbekommen :) Gibt immer die Meldung "Unsichere Seite"
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Textliste perr SQL lesen

Ich hab aus dem Siemens-SPS-Forum folgenden Code:

Code:
[COLOR=#333333][FONT=Arial]Function LookupText_V1 (strTableName, diTextID, strLng, strDefault)[/FONT][/COLOR]
[COLOR=#333333][FONT=Arial]' strLng: GER, ENU[/FONT][/COLOR]
[COLOR=#333333][FONT=Arial]' V1: Verbindung zur Datenbank wird jedesmal neu hergestellt[/FONT][/COLOR]
[COLOR=#333333][FONT=Arial]Dim objConnection[/FONT][/COLOR]
[COLOR=#333333][FONT=Arial]Dim objCommand[/FONT][/COLOR]
[COLOR=#333333][FONT=Arial]Dim objRecordset[/FONT][/COLOR]
[COLOR=#333333][FONT=Arial]Dim objTagServerName[/FONT][/COLOR]
[COLOR=#333333][FONT=Arial]Dim objTagDBName_RT[/FONT][/COLOR]
[COLOR=#333333][FONT=Arial]Dim strServerName[/FONT][/COLOR]
[COLOR=#333333][FONT=Arial]Dim strDBName_RT[/FONT][/COLOR]
[COLOR=#333333][FONT=Arial]Dim strDBName_CS[/FONT][/COLOR]
[COLOR=#333333][FONT=Arial]Dim strConnectionString[/FONT][/COLOR]
[COLOR=#333333][FONT=Arial]Dim strSQL[/FONT][/COLOR]
[COLOR=#333333][FONT=Arial]Dim strValue[/FONT][/COLOR]
[COLOR=#000000][FONT=Calibri] [/FONT][/COLOR]
[COLOR=#000000][FONT=Calibri] [/FONT][/COLOR]
[COLOR=#333333][FONT=Arial]Set objTagServerName = HMIRuntime.Tags("@ServerName")[/FONT][/COLOR]
[COLOR=#333333][FONT=Arial]objTagServerName.Read()[/FONT][/COLOR]
[COLOR=#333333][FONT=Arial]strServerName = objTagServerName.value[/FONT][/COLOR]
[COLOR=#333333][FONT=Arial]Set objTagDBName_RT = HMIRuntime.Tags("@DatasourceNameRT")[/FONT][/COLOR]
[COLOR=#333333][FONT=Arial]objTagDBName_RT.Read()[/FONT][/COLOR]
[COLOR=#333333][FONT=Arial]strDBName_RT = objTagDBName_RT.Value[/FONT][/COLOR]
[COLOR=#333333][FONT=Arial]strDBName_CS =  Left(strDBName_RT, Len(strDBName_RT) - 1)[/FONT][/COLOR]
[COLOR=#333333][FONT=Arial]strConnectionString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=" & strDBName_CS & ";Data Source=" & strServerName & "\WINCC"[/FONT][/COLOR]
[COLOR=#333333][FONT=Arial]Set objConnection = CreateObject("ADODB.Connection")[/FONT][/COLOR]
[COLOR=#333333][FONT=Arial]objConnection.ConnectionString = strConnectionString[/FONT][/COLOR]
[COLOR=#333333][FONT=Arial]objConnection.Open[/FONT][/COLOR]
[COLOR=#333333][FONT=Arial]Set objCommand = CreateObject("ADODB.Command")[/FONT][/COLOR]
[COLOR=#333333][FONT=Arial]'    Set objRecordset = CreateObject("ADODB.Recordset")[/FONT][/COLOR]
[COLOR=#333333][FONT=Arial]strsql = "SELECT dbo.ResourceList.RLISTID, dbo.ResourceList.RLISTNAME, dbo.ResourceListData.RANGE_FROM AS Number, dbo.ResourceListData.TEXTID, "[/FONT][/COLOR]
[COLOR=#333333][FONT=Arial]strsql = strsql & "dbo.TXTTable.L1031 AS Text_GER, dbo.TXTTable.L1033 AS Text_ENU "[/FONT][/COLOR]
[COLOR=#333333][FONT=Arial]strsql = strsql & "FROM dbo.ResourceList INNER JOIN dbo.ResourceListData ON dbo.ResourceList.RLISTID = dbo.ResourceListData.RLISTID "[/FONT][/COLOR]
[COLOR=#333333][FONT=Arial]strsql = strsql & "INNER JoIN dbo.TXTTable ON dbo.ResourceListData.TEXTID = dbo.TXTTable.TEXTID "[/FONT][/COLOR]
[COLOR=#333333][FONT=Arial]strsql = strsql & "WHERE (dbo.ResourceListData.RANGE_FROM = " & diTextID & ") And (dbo.ResourceList.RLISTNAME = '" & strTableName & "')"[/FONT][/COLOR]
[COLOR=#333333][FONT=Arial]objCommand.ActiveConnection = objConnection[/FONT][/COLOR]
[COLOR=#333333][FONT=Arial]objCommand.CommandText = strSQL[/FONT][/COLOR]
[COLOR=#333333][FONT=Arial]Set objRecordset = objCommand.Execute[/FONT][/COLOR]
[COLOR=#333333][FONT=Arial]strvalue = strDefault[/FONT][/COLOR]
[COLOR=#000000][FONT=Calibri] [/FONT][/COLOR]
[COLOR=#333333][FONT=Arial]If objRecordset.EOF = False Then[/FONT][/COLOR]
[COLOR=#333333][FONT=Arial]objRecordset.movefirst[/FONT][/COLOR]
[COLOR=#333333][FONT=Arial]If ucase(strLng) = "GER" Then[/FONT][/COLOR]
[COLOR=#333333][FONT=Arial]strValue = objRecordset.Fields("Text_GER").Value[/FONT][/COLOR]
[COLOR=#333333][FONT=Arial]End If[/FONT][/COLOR]
[COLOR=#000000][FONT=Calibri] [/FONT][/COLOR]
[COLOR=#333333][FONT=Arial]If ucase(strLng) = "ENU" Then[/FONT][/COLOR]
[COLOR=#333333][FONT=Arial]strValue = objRecordset.Fields("Text_ENU").Value[/FONT][/COLOR]
[COLOR=#333333][FONT=Arial]End If[/FONT][/COLOR]
[COLOR=#333333][FONT=Arial]End If[/FONT][/COLOR]
[COLOR=#000000][FONT=Calibri] [/FONT][/COLOR]
[COLOR=#333333][FONT=Arial]objConnection.close[/FONT][/COLOR]
[COLOR=#333333][FONT=Arial]Set objCommand = Nothing[/FONT][/COLOR]
[COLOR=#333333][FONT=Arial]Set objRecordset = Nothing[/FONT][/COLOR]
[COLOR=#333333][FONT=Arial]Set objConnection = Nothing[/FONT][/COLOR]
[COLOR=#333333][FONT=Arial]Set objTagServerName = Nothing[/FONT][/COLOR]
[COLOR=#333333][FONT=Arial]Set objTagDBName_RT = Nothing[/FONT][/COLOR]
[COLOR=#000000][FONT=Calibri] [/FONT][/COLOR]
[COLOR=#333333][FONT=Arial]LookupText_V1 = strValue[/FONT][/COLOR]
[COLOR=#333333][FONT=Arial]End Function[/FONT][/COLOR]
[COLOR=#000000][FONT=Calibri] [/FONT][/COLOR]
[COLOR=#000000][FONT=Calibri] [/FONT][/COLOR]
[COLOR=#333333][FONT=Arial]Die Funktion benötigt folgende Übergabeparameter:[/FONT][/COLOR]
[COLOR=#333333][FONT=Arial]- Name der Textliste[/FONT][/COLOR]
[COLOR=#333333][FONT=Arial]- TextID[/FONT][/COLOR]
[COLOR=#333333][FONT=Arial]- Sprachkennung: "GER" oder "ENU"[/FONT][/COLOR]
[COLOR=#333333][FONT=Arial]- Defaulttext, z.B. "n/a": Dieser Text wird zurückgegeben, wenn das Script nicht findet.[/FONT][/COLOR]
[COLOR=#000000][FONT=Calibri] [/FONT][/COLOR]
[COLOR=#333333][FONT=Arial]Gruß[/FONT][/COLOR]
[COLOR=#333333][FONT=Arial]Cookie[/FONT][/COLOR]

Der funktioniert hervorragend, von hier aus mal vielen Dank an Cookie!

Meine Frage:

Ich habe in der WinCC-Datenbank auch die Graph7-Texte gefunden.
Die SQL-Abfrage wird wahrscheinlich noch komplizierter zusammengesetzt sein, als die für die Textliste.
Hat irgendjemand schon einmal etwas in diese Richtung gemacht? Möglicherweise geht das nur bei WinCC Prof, aber das wäre mir egal, ich möchte die Texte im Webnavigator oder mit WebUx anzeigen können, beide unterstützen die ProDiag-Controls leider nicht.
 
Zurück
Oben