Skip to main content
Schneider Electric Software    |    Home    |    Über Uns    |    International    |    Karriere    |    Kontakt  
 
 
Follow Us:Follow us on FacebookFollow us on TwitterFollow us on LinkedInFollow us on YouTubeSubscribe to our Blogs  |  Email Signup  |  Share: 
Wonderware Software Trickkiste

 

Wonderware Software Trickkiste

Tipps unserer Application Consultants rund um den Application Server

Regelmäßig greifen unsere Application Consultants in die Trickkiste und geben hilfreiche Tips im WonderUpdate, dem monatlichen Newsletter rund um Wonderware Software preis. Hier sind die Ratschläge für Sie zum Nachschlagen nochmal aufgelistet. Sollten Sie den Newsletter noch nicht erhalten, können Sie sich hier » anmelden.

Auslesen von Daten mittels Historian Client Excel Addin

Man kann zum Auslesen der Daten mittels Historian Client Excel Addin die Funktionalitäten des Menus auf dem Kartei-Reiter Historian verwenden. Dazu sind meist einige Klicks über das Optionsfenster nötig.

Man kann das Ganze aber auch über Excel VBA automatisieren. Z.B. über eine Excel Button mit hinterlagerter Funktion wwWideHistory3. Die verwendeten Eingangsparameter können fest in Excel Zeilen hinterlegt werden.

    Private Sub CommandButton1_Click() 
            Dim time1 As String 
            Dim time2 As String 
            Dim Row As String 
            Dim RowVal As Integer 
            Dim Host As String 
            Dim RetrivalMode As Integer 

            time1 = Range("B7").Value 'die Zeit kann über ein Time Picker in die entsprechenden Felder geschrieben werden 
            time2 = Range("B8").Value
Row = Range("B9").Value 
            Host = Range("B5").Value 
            RetrivalMode = Range("B10").Value 

            Range("Tabelle1!$C$8:$J$508").Value = (wwWideHistory3(Host, Range("Tabelle1!$B$11:$B$16"), "Row" + Row, time1, time2, 254, RetrivalMode, 0, 0, 0, 3, 3, "", 3, "", -1, 0, "", "NoFilter", 20480)) 

    'wwWideHistory3( einzelne Parameter durch komma getrennt 
    '1. Parameter Host = Name Historian Server 
    '2. Parameter enthält die Zellen mit den Variablennamen die ausgelesen werden sollen - entsprechend muss man die Kopfzeilen anpassen (geht auch per VBA) hier Zelle B11-B16 
    '3. Parameter RoworRes - Auflösung s. Handbuch 
    '4. Parameter Startzeit 
    '5. Parameter Endzeit 
    '6. Paarameter Interpolationstyp s. Handbuch 
    '7. Parameter Retrivalmode 0- Cyclic, 1-Delta, 2-Full- weiter s. Handbuch
' weitere Parameter s. Handbuch
'Rückgabewert der Funktion ist ein Array das in die Zellen (hier C8-J508) eingetragen wird. Werden mehr oder weniger Variablen benötigt muss der Bereich(Spalten) angepasst werden. Ist der Bereich
'größer als das ausgelesene Array werden diese Zellen mit #NV beschrieben, die #NV Werte können durch ein entsprechendes Script/Makro gelöscht werden. 
    Call NV_Ersetzen
End Sub

Sub NV_Ersetzen() 
    Dim rngBereich As Range, rngZelle As Range 
    Set rngBereich = Range("Tabelle1!$C$8:$J$508") 'fixer Bereich 
    rngBereich.Replace What:="#N/A", Replacement:="" 
    If Application.CountIf(rngBereich, CVErr(xlErrNA)) > 0 Then 
        For Each rngZelle In rngBereich.SpecialCells(xlCellTypeFormulas, xlErrors) 
    If rngZelle.Value = CVErr(xlErrNA) Then rngZelle.ClearContents '#NV löschen 
    Next
End If
Set rngZelle = Nothing
Set rngBereich = Nothing
End Sub 

In die Excel VBA Entwicklungsumgebung muss dazu lediglich unter Extras-> Verweise das "ActiveFactoryWorkbook" miteingebunden werden. Die Entwicklungsoptionen für Excel werden über die Exceloptionen mit dem Hacken vor "Entwicklungsregisterkarte....anzeigen" eingeschaltet.

Nach oben »

Ausgecheckte Objekte schnell finden

Um ein Objekt zu ändern, muss es ausgecheckt werden. Nun kann es vorkommen, dass ausgecheckte Objekte nicht gleich wieder eingecheckt werden. Wenn dann später bei der Objektprüfung eine Fehlermeldung erscheint, dass nicht alle Objekte eingecheckt sind, muss man nicht durch alle Ordner forsten, sondern kann eine SQL-Abfrage durchführen und bekommt Objektname, Ordner sowie den Benutzernamen, dessen, der die die Objekte ausgecheckt hat, angezeigt.

Zum Ausführen des SQL Codes im SQL Management Studio das SQL Management Studio öffnen, unter Databases mit rechter Maustaste die Galaxy Datenbank (gleicher Name wie die Galaxy) und New Query anklicken. In das sich öffnende Fenster den SQL Code einfügen und diesen mittels Excecute aus der Menuleiste ausführen. Die angezeigten Ergebnisse enthalten die Person die ausgecheckt hat, den Objektnamen und den Ordnernamen in dem sich das Objekt befindet.

select
gobject.tag_name,
user_profile.user_profile_name
from
gobject,
user_profile
where
gobject.checked_out_package_id <> 0
AND
gobject.checked_out_by_user_guid = user_profile.user_guid

Nach oben »  

   

Nachträgliche Installation der Historian Client Add-Ins in MS Office

Wird der Historian Client vor MS Office Excel installiert, so können die Add-Ins des Historian Client von der Installationsroutine nicht in Excel eingebunden werden. Wird MS Office danach installiert, behebt eine Neu-Installation des Historian Clients zwar das Problem mit den fehlenden Add-Ins, jedoch ist dazu ein Neustart aller laufenden Wonderware Programme notwendig. Das kann besonders auf Terminal Servern mit vielen Clients problematisch sein.

In diesem TechTipp wird beschrieben, wie dieser Neustart ganz einfach umgangen werden kann:

Bei der Installation des Historian Client werden die für die Add-Ins notwendigen Dateien (HistClient.xla, HistClient.dot, etc. ) von der Installationsroutine standardmäßig im Verzeichnis:
C:\program files (x86)\Common file\ArchrestrA bzw. C:\Programme (x86)\Common Files\ArchestrA abgelegt. Nach der Installation von MSOffice können aus diesem Verzeichnis heraus die Add-Ins des Historian Clients in Excel installiert werden. Sie finden die Add-In Verwaltung unter Datei/Optionen/Add-Ins.

Mit Gehe zu…/Durchsuchen können sie dem o.a. Pfad folgen und die Historian Add-Ins installieren.  

Nach oben »  

Wie kann man Historian oder Historian Client 10.x mittels einer unbeaufsichtigten Installation einrichten?

Man kann dazu den Microsoft Installer Dienst „msiexec" verwenden. Verwenden Sie die folgende Befehlszeile bei Start à Ausführen..: Msiexec /I H:\HistorianClient\Setup.msi LAUNCHFROMEXE=true /q Wobei H:\ Ihr CD Laufwerk ist. Dieser Befehl funktioniert mit der System Platform 2012 DVD und der Historian Client 10.0 SP2 CD. Für Historian Client 10.0 RTM und SP1, entfernen Sie "HistorianClient" aus der Pfadangabe.

Weitere Infos zu den Msiexec Parametern finden Sie hier bei Microsoft http://msdn.microsoft.com/en-us/library/windows/desktop/aa367988(v=vs.85).aspx.

Nach oben »

Verbindung von S3964R mit einer S5 auf Windows 7

Um unter aktuellen Betriebssystemen (Windows Vista und neuer) eine serielle Verbindung mit dem Siemens 3964 oder 3964R-Protokoll z.B. zu einer S5-SPS aufbauen zu können, ist es notwendig den entsprechenden DA-Server hierfür einzusetzen. Die zertifizierte Softwarepartner „Software Toolbox" bietet mit „TOP Server S5/S7" (http://www.toolboxopc.com/html/s5serial3964.html) die hierfür entsprechende Lösung. Der Treiber unterstützt dabei das performante Wonderware-Kommunikationsprotokoll SuiteLink® und der Zugriff auf den DA-Server erfolgt wie gewohnt über den Zugriffsnamen in InTouch.

Nach oben » 

ArchestrA Graphik Performance

Farbverläufe, die zur Laufzeit geändert und damit neu berechnet werden müssen, haben einen Einfluss auf die Performance. Vorsicht daher bei vielen kleinen graphischen Elementen mit Farbverläufen, die optisch kaum wahrnehmbar sind, jedoch auf die Performance denselben Einfluss haben, als ob diese Elemente groß dargestellt wären.

Achtung auch bei einer großen Anzahl an Custom Properties, die typischer Weise dann entstehen, wenn viele Symbole in vielen Ebenen verschachtelt werden. Es wäre zu überlegen, ob diese Variablen nicht besser auf dem Server, also in einem Applikationsobjekt aufgehoben wären. Dagegen spricht z.B. wenn es sich um eine Arbeitsstationsspezifische Information handelt. Ein Custom Property, das seinen Wert aus verknüpften Eigenschaften eines Applikationsobjektes ableitet, kann auch ins Applikationsobjekt verlagert werden. Das gilt auch für verknüpfte Bedingungen in einem Animations-Ausdruck, wie z.B. die Bedingung für die Sichtbarkeit eines Symbols.  

Nach oben » 

Application Engine Performance

Die durchschnittliche Leerlaufzeit (Scheduler.TimeIdleAvg) sollte mindestens 50% der Zykluszeit (Scheduler.ScanPeriod) sein. Reicht die Zykluszeit mehrfach hintereinander nicht für die Verarbeitung (Scheduler.ScanOverrunsConsecCnt), dann ist das ein Indiz auf schlechte Skalierung oder zu lange dauernde Skripte. 

Nach oben » 

Application Engines

Eine gute Empfehlung ist 1 aktive Engine und 1 Standby Engine je CPU-Kern vorzusehen. Engines sind Prozesse und verwenden einen einzelnen CPU-Kern. Es ist zweckmäßig, mehrere Engines zu verwenden, um mehrere CPU-Kerne zu nutzten und damit die Leistungsfähigkeit der Maschine auszunutzen.

Nach oben » 

View Engines

 

Mehrere InTouch View Applikationen können einer einzigen View Engine zugeordnet werden. Eine View Engine kann auch zur Unterstützung der InTouch Applikation genutzt werden, um Arrays zur Verfügung zu stellen, arbeitsstationsspezifische Attribute anzubieten sowie globale Konstanten, die mit dem View Engine Template verwaltet werden können.

Nach oben » 

Device Integration und Engines

Der Typ der Engine, also Standard-Engine oder redundante Engine ist extrem wichtig. Redundante Engines sollte nur Redundante DI Objekte hosten und natürlich Areas bzw. Applikationsobjekte. Die Engine Redundanz kümmert sich darum, die Engine als Service innerhalb des Galaxy Namensraums am Leben zu halten und ist nicht fokussiert auf Kommunikation zu Steuerungen. Ebenso sollte ein Umschalten in der Kommunikation zur Steuerung nicht ein Umschalten einer Engine erforderlich machen. Die DI Device Objekte sollten auf Standard-Engines gehostet werden.

Nach oben » 

Massenänderung bzw. -erstellung von Instanzen 

Erstellen einer größeren Anzahl Instanzen mittels Drag & Drop ist mühsam und ineffizient. Ebenso ändern einer großen Anzahl von Instanzen, wie z.B. anpassen der Beschreibungen. Die Importfunktion „Galaxy Load" kann hier gut genutzt werden. Das Dateiformat ist sehr einfach::Template = $TemplateName:Tagname, SecurityGroup, Area, ShortDesc, Container, ContainedName Dabei sind üblicherweise nur 2 bis 6 Spalten erforderlich, da nur die Spalten angegeben werden müssen, die gegenüber dem Template geändert werden. Der Tagname ist die Schlüssel-Spalte, alle übrigen werden nur geändert. Es ist also nicht unbedingt notwendig alle Spalten aus einem zuvor durchgeführten Export „Galaxy Dump" mitzuschleppen, sondern man kann den Import sehr handlich gestalten, indem man sich auf die wesentlichen Spalten beschränkt.

Nach oben » 

Rechnerempfehlung

Für einen InTouch Clientrechner ist eine Maschine mit Dual Core und höherer Taktrate gegenüber Quad Core mit niedrigerer Taktrate vorzuziehen, da von InTouch im Wesentlichen nur 1 Kern genutzt wird. Auf einem 64-Bit System kann InTouch 3GB Speicher nutzen. Steht ein Server mit mehr als 4 CPU-Kernen zur Verfügung sollte man ernsthaft überlegen, Virtualisierung zu nutzen und z.B. auf einem Server mit 16 CPU-Kernen 4 virtuelle Gastsysteme mit je 4 CPU-Kernen einrichten.

Nach oben » 

Galaxy von einem Rechner auf einen anderen übertragen

Sichern und Wiederherstellen der Galaxy ist kein sicherer Mechanismus, um eine Galaxy auf ein anderes System zu übertragen. Erstellen einer neuen Galaxy basierend auf einer zuvor erstellten Sicherung funktioniert hingegen gut. Dazu muss eine Sicherung der Galaxy erstellt werden und die CAB-Datei anschließend in das Vorlagenverzeichnis kopiert oder verschoben werden. Der Standardpfad dafür ist „C:\Program Files (x86)\ArchestrA\Framework\Bin\BackupGalaxies“

Nach oben »

Entwicklungs- und Runtime-Lizenz

Die Entwickler-Lizenz sollte nicht auf demselben System, wie das Produktions-Repository installiert werden, das seine eigene Lizenz hat. Wird das gemacht, bringt man sich um den Vorteil, die Entwicklungsumgebung als Sandbox verwenden zu können.

Nach oben »

Sollten Sie selbst einen Beitrag dazu leisten und andere Anwender an Ihren Erfahrungen teilhaben lassen wollen, dann melden Sie sich bitte bei iom.infonews.de [at] Schneider-Electric.com mit dem Betreff "Trickkiste". Vielen Dank!

 

E-Mail an den Webmaster