Der einfache Weg zu komplexenVisualisierungs-Anwendungen.

Slides:



Advertisements
Ähnliche Präsentationen
Dauermagnete Bei magnetischen Materialien unterscheidet man Eisenkerne bzw. Weicheisenstücke und Dauermagnete bzw. Hart-magnetische Materialien. Dauermagnete.
Advertisements

TAGUNG DER DEUTSCH-LUSITANISCHEN JURISTENVEREINIGUNG O processo penal português Panorâmica introdutória Der portugiesische Strafprozess ein einführender.
Ach wie gut, daß niemand weiß Der Schutz von Wissen
Herzlich Willkommen bei SIMPLE STABLE BULDING
Adjektivendungen Tabellen und Übungen.
ZWILLING Neuheiten 2008.
Das Hexenkochbuch Nicht Rattenschwänze, Spinnenbein
 Präsentation transkript:

Der einfache Weg zu komplexenVisualisierungs-Anwendungen

Themenübersicht Wiederholung Datenbank- Anbindung Mehrsprachigkeit 3 45 100 Daten- aufzeichnung Rezepte Web-Interface 19 67 148 Dateiverwaltung ActiveX Steuerelemente _ Optimierung 24 81 127 156 Berichte ausdrucken CX-Supervisor als OPC-Client Windows verriegeln 33 90 110

Ziele des Trainings Erweiterter Überblick über CX-Supervisor und seine Anwendung geben Erlernen der erweiterten Funktionen von CX-Supervisor Vermitteln erweiterter Anwendungserfahrungen durch praktische Arbeit mit einem Übungsprojekt, das während des Trainings erstellt wird

Inhalt – Teil 1a Einstieg Projekt-Editor & Seiten Prozesspunkte (Points) & Variablen Grafische Objekte Animation Grafische Bibliothek

Inhalt – Teil 1b Diagramme Skripte Alarme SPS-Kommunikation Arrays als Kommunikationsvariablen (Verwendung von Alias) Benutzer-Zugriffs-Ebenen/ -Beschränkung (Sicherheit) Optimieren von Visualisierungs-Anwendungen

Inhalt – Teil 2 Datenaufzeichnung Dateiverarbeitung Berichte ausdrucken (Reports) Datenbank-Anbindung Rezepte ActiveX Steuerelemente CX-Supervisor als OPC-Client Mehrsprachigkeit Fernzugriff über Web-Server Verriegeln des Windows-Betriebssystems

Funktionsumfang zur Laufzeit Bedienerschnittstelle zum Prozess Datenerfassung und Überwachung Informations-Management Produktionssteuerung Aufsichts-Steuerung (Supervising) Fertigungs Ablaufsteuerung (Batch sequencing) Kontinuierliche Prozess-Steuerung Alarm-Überwachung und Aufzeichnung Material-Lenkung (Überwachung und Steuerung) Simulation und Modellierung durch grafische Animation Daten-Aufzeichnung Fehler-Aufzeichnung Projekt-Editor und Querverweise Report-Editor Datenbank-Zugriff

Technische Merkmale Leistungsfähige und einfach zu verwendende Entwicklungsumgebung Kommunikationstreiber für OMRON SPS und Temp.-Regler und Motion-Controller und Modbus-TCP/IP integriert Leistungsfähige Skript-Sprache Anbindung von Windows-Anwendungen mit OLE oder OPC Alarm-Management-System Weitreichende Datenaufzeichnungs- und Anzeige- Möglichkeiten Berichts-Generierung (inklusive HTML) Bibliothek mit vielen grafischen Objekten Anbindung externer Datenbanken via ADO / ODBC

CX-Supervisor - Produkte Entwicklungs-System: CX-SUPERVISOR Zur Entwicklung der Anwendung, Freischaltung mit Lizenz Runtime System: CX-SUPERVISOR-RUN-PLUS oder CX-SUPERVISOR-RUN-ME Enthält ein USB-Dongle und eine CD mit dem CX-Server CX-SUPERVISOR-TRIAL Für Schulung und Test 30 Tage voll danach begrenzt auf 50 Punkte, maximal 2 Stunden online

Software Anforderung / Beschränkungen Microsoft Windows 2000, XP, Vista Microsoft Windows NT 4.0 (Service Pack 5) Merkmal Machine Edition PLUS Max. Anz. Benutzer-Punkte / Max. Anzahl Elemente (SPS-Array mit 1024 Elementen = 1 Punkt) 500 / 512,000 8,000 / 8,192,000 Anzahl Alarm-Definitionen 300 5000 Max. Anzahl von Geräten (SPS, usw.) 15 256 Max. Anzahl von Seiten 100 500 Max. Anzahl von Skripten in regelmäßigen Intervallen 10 Unterstützte Datenbanken Nur MS Access MS Access, SQL, ODBC, MS Excel, Dbase, CSV

Haben Sie Fragen zu diesem Thema?

Ein wichtiges Werkzeug Datenaufzeichnung Ein wichtiges Werkzeug

Datenaufzeichnung Die Datenaufzeichnung ermöglicht es: Die Anzahl der Punkte und/ oder Ausdrücke, die aufgezeichnet werden zu spezifizieren. Einfacher Betrieb, kein Skript benötigt. Ansicht dieser Punktwerte zur Laufzeit oder bei späteren Auswertungen. Möglichkeit des Exports der Daten zu anderen Anwendungen Möglichkeit die Daten direkt in eine externe Datenbank zu speichern.

Während der Projekt-Entwicklung... Einfache Hierarchie in drei Ebenen Punkte(Items) – Ein Item ist ein Datenpunkt, der mit seinen Aufzeichnungseigenschaften aufgezeichnet wird. Gruppen – Um ähnliche oder zusammenhängende Datenpunkte zu erfassen Datensätze – Um Gruppen oder auch einzelne Datenpunkte in einer Datei zu erfassen

Zugriff auf Datenaufzeichnungs-Einstellungen Im Arbeitsbereich, den Reiter Datenaufzeichnung aktivieren Datensatz Datenpunkte

Datensätze hinzufügen Klicken Sie mit der rechten Maustaste in das Arbeitsbereichsfeld und wählen Sie Datensatz hinzufügen Geben Sie den Namen des Datensatzes ein Geben Sie die Aufzeichnungs-Laufzeit ein Geben Sie an, wieviele Dateien auf der Festplatte vorgehalten werden Geben Sie an, ob die Datenaufzeichnung bei Anwendungsstart gestartet werden soll

Punkte hinzufügen Klicken Sie mit der rechten Maustaste auf den Datensatz und wählen Sie Punkt hinzufügen Datenpunktnamen angeben Der aufzuzeichnende Punkt (Variable) oder Ausdruck wird unter Ausdruck angegeben Datentyp auswählen Totzone angeben, um die Aufzeichnung leicht schwankender Werte zu vermeiden Auswahl, ob der Wert bei Änderung oder mit festem Intervall aufgezeichnet wird Die Skalierung dient der besseren Sichtbarkeit der Daten im Diagramm

Zur Laufzeit... Die Daten werden in einem Verzeichnis aufgezeichnet, dass Data logging heißt, unter dem Projektverzeichnis Nachdem die angegebene Laufzeit abgelaufen ist, werden die Daten in einer neuen Datei aufgezeichnet. Automatische Datei-Löschung eingeschlossen Das Format der Daten in der Datei ist: <Datensatzname><[YYYY MM DD HH]>.dlv Beispiel... mydataset[2000073111].dlv

Data Log Viewer Separates Anzeige-Tool für die aufgezeichneten Daten, kann von der Applikation oder dem Betriebssystem direkt gestartet werden Individuelle analoge und digitale Anzeigen Zoom, Schwenk, Punkt- und Farb-Auswahl Unterschiedliche Anzeigeformate auswählbar Export als CSV oder Text Live-Auffrischung und Aktualisierung

Data Log Viewer Anzeige-Tool für die aufgezeichneten Daten

Aufgezeichnete Dateien ansehen Wenn eine Datei zur Anzeige geöffnet wird, erscheint folgendes Fenster: Anzuzeigende Punkte auswählen

Daten exportieren Einrichtung um Daten zu exportieren, in CSV oder Text-Format Automatische Datei-Namens-Erzeugung Möglichkeiten, um zusätzliche Informationen in der Datei zu hinterlegen, wie z.B. Datum, Uhrzeit, Aufzeichnungsunter-brechungen, usw.

Daten- Export- Fenster Datensatz Zu exportierende Punkte Automatische Dateinamen Generierung Zusätzliche Informationen Datenformat

Skript-Funktionen zur Datenaufzeichnung ClearLogFile: Löscht die Aufzeichnungs-Datei CloseLogFile: Schließt die Aufzeichnungs-Datei CloseLogView: Schließt den Data Log Viewer ExportAndViewLog: Exportiert und zeigt die Aufzeichnung ExportLog: Exportiert die Aufzeichnung OpenLogFile: Öffnet die Aufzeichnungs-Datei OpenLogView: Öffnet den Data Log Viewer StartLogging: Startet die Datenaufzeichnung StopLogging: Stoppt die Datenaufzeichnung

Beispiel Datenaufzeichnung

Anlegen der Gruppen und Punkte im Beispiel

Starten, Stoppen, Exportieren im Skript Mehrere Log-Files (Chargen) können parallel offen sein bzw. beschrieben werden Hier wird der geschlossene Log-File komplett in Excel-Format Exportiert !!

Typisches Projekt zur Datenaufzeichnung Metallteile vorwiegend für die Automobilindustrie werden speziell gehärtet und gezielt abgekühlt. Aus Qualitätssicht müssen Temperaturen, Drücke und Drehzahlen über eine Schicht bzw. Charge gezielt geloggt werden. Über Trend und Loggrafen dann einsehbar. Zusätzlich werden die Logdateien in Excelformat gewandelt.

Typisches Projekt zur Datenaufzeichnung

Haben Sie Fragen zu diesem Thema?

Abspeichern, Exportieren, Importieren Dateiverarbeitung Abspeichern, Exportieren, Importieren

Dateiverarbeitung Der CX-Supervisor kann Werte aus komma-separierten Dateien (CSV) schreiben oder lesen Zum Beispiel zum Mitschreiben der aufgetretenen Bedienungsanforderungen Einlesen von variablen Texten für verschiedene Sprachen Auf eine Datei kann von verschiedenen Applikationen gleichzeitig zugegriffen werden

Skript-Funktionen für die Dateiverarbeitung CloseFile – Geöffnete Datei schließen CopyFile – Angegebene Datei kopieren DeleteFile – Löscht die angegebene Datei FileExists – Überprüft die Existenz einer Datei MoveFile – Angegebene Datei wird umbenannt OpenFile – Öffnet die angegebene Datei PrintFile – Druckt die angegebene Datei Read – Liest Daten aus einer geöffneten Datei in einen Punkt Write – Schreibt einen Wert in eine geöffnete Datei ReadMessage – Liest Text von einer externen Datei WriteMessage – Schreibt Text in eine externe Datei SelectFile – Benutzerdialog zur Dateiauswahl (Datei öffnen) EditFile – Editiermöglichkeit der angegebenen Datei

Skript-Beispiel OpenFile(“c:\lib\scsdata.csv”) ret = Read(field, temp, pres) CloseFile() ret = OpenFile(“data.csv”) ret = Write(field, temp, pres) CopyFile(“data.csv”, “c:\archiv\data.csv”)

Beispiel: Schreiben von Daten in eine EXCEL Datei Zeiger=0 `öffnen der CSV Datei Steuerbit_file = OpenFile("d:\test\"+Seriennummer+".csv") CloseFile(TRUE) Nur eine Datei kann offen sein bzw. beschrieben werden, nicht mehrere !

Beispiel: Unicode Dateien mit dem Supervisor einlesen Dies wird benötigt um variable Texte, die als Meldungen, Hinweise und nähere Beschreibung im Projekt verwendet werden, auch in verschiedenen Sprachen darstellen zu können. Unicode ist wichtig für Kyrillische und asiatische Sprachen. Vorteil: Es müssen nur die Texte in den Dateien geändert werden. Es ist dann nicht mehr nötig das ganze Projekt neu zu kompilieren und eine neue Sprachdatei zu erzeugen. Wenn Texte im Projekt hinzugefügt werden, bedeutet das, das alle schon erstellten Sprachdateien in den anderen Sprachen noch einmal bearbeitet werden müssen.

Datei einlesen mit VB Script Projektscript als Unterprogramm zum Unicode Datei einlesen. Dateiname wird beim Aufruf übergeben. SUB Unicode_Datei_lesen( Filename AS TEXT ) tempText = Filename @VBSCRIPT Dim fso, f, VBA_Name, Zeile, indirekt VBA_Name = tempText ‘ ------ Pfad_Unicode Zeile = 0 Set fso = CreateObject("Scripting.FileSystemObject") ' ----- File Objekt erstellen Set temp = fso.GetFile(VBA_Name) ' ----- Datei dem File Objekt zuordnen Set f = temp.OpenAsTextStream(1, -1) ' ----- Datei als Stream öffnen -1 = Unicode Datei tempText = f.ReadAll ' ----- alles auf einmal f.Close ' ----- Datei wieder schließen @ENDSCRIPT END SUB

Datei zeilenweise einlesen Eine andere Möglichkeit wäre das zeilenweise Einlesen aus der Datei. Do While f.AtEndOfStream <> True ' Auf Dateiende abfragen. UnicodeText = f.ReadLine Meldungstext ( Zeile ) = UnicodeText ‘ statt [] müsen () verwendet werden Zeile = Zeile + 1 Loop Ich habe mir dann mit folgendem Supervisor Script geholfen: tempInt = GetTextLength(tempText) ' ----- komplette Datei aufteilen Zeiger = 0 FOR iLoop = 0 TO tempInt tempZeichen = Mid(tempText,iLoop,1) IF tempZeichen == ";" THEN Zeiger ++ Meldungstext[Zeiger] = "" ELSE Meldungstext[Zeiger] = Meldungstext[Zeiger] + tempZeichen ENDIF NEXT

Haben Sie Fragen zu diesem Thema?

Statistische Informationen präsentieren Berichte ausdrucken Statistische Informationen präsentieren

Berichte erstellen Der CX-Supervisor kann Werte in vorgefertigte Formulardateien (Templates) eintragen, anzeigen und ausdrucken Dateien können folgende Formate besitzen: .TXT .RTF .HTML

Beispiel für einen Bericht Arbeitsschicht-Bericht Produzierte Bierfässer 2192 Ausgelaufene Bierfässer 6 Leer aufgefundene Bierfässer 2 Anzahl betrunkener Arbeiter 2

Beispiel-Formular (Template) Arbeitsschicht-Bericht Produzierte Bierfässer ((Barrels)) Ausgelaufene Bierfässer ((Spilled)) Leer aufgefundene Bierfässer ((Empty)) Anzahl betrunkener Arbeiter ((Drunk))

Vorgabe, der den Punkt einschließenden Zeichen Die Textzeichen, die den Beginn und Ende eines Punktnamens markieren, können geändert werden unter: Projekt / Laufzeiteinstellungen / Punktersetzungseinstellungen...

Spezifikations-Symbol-Formate %s für Punkte mit Texten %d für Integer (ganzzahlige) Punkte %xfy für Punkte mit Fließkommazahlen Punkt = “Hallo” ((“Mein Textpunkt ist %s”, Punkt)) ... Mein Textpunkt ist Hallo Punkt = 25 ((“Mein Integerpunkt ist %d”, Punkt)) ... Mein Integerpunkt ist 25 Punkt = 1234.5678 ((“Die Gleitkommazahl ist %4f2”, Punkt)) ... Die Gleitkommazahl ist 1234.56

Skript- Funktionen zur Berichtserstellung GenerateReport – Erstellt einen Bericht aus der Formulardatei (Template) PrintReport – Druckt einen Bericht ViewReport – Zeigt einen Bericht an

Haben Sie Fragen zu diesem Thema?

Datenbanken Die professionelle Art Informationen zu Speichern, Exportieren oder Importieren

Datenbank-Möglichkeiten mit der Visualisierung Die CX-Supervisor Datenbankanbindung erlaubt schnellen und transparenten Zugriff auf viele verschiedene Standard-Datenquellen durch die ADO-Datenbanktechnologie (ADO = Active Data Object). Umfangreiche Datenbankfunktionen in der Script-Sprache ermöglichen die vollständige funktionelle Einbindung in CX-Supervisor Anwendungen. Merkmal Machine Edition PLUS Unterstützte Datenbanken Nur MS Access MS Access (*.mdb), MS-Excel (*.xls), Textdateien (*.csv, *.txt) Visual FoxPro (*.dbf) Die nutzbaren Datenquellen mit der PLUS-Version können je nach installierten Treibern folgende Typen umfassen: *.dsn - Datei SQL-Server, Dbase, ODBC für Oracle, Paradox

Begriffe in Datenbanken Feld: Ein einzelner Datenwert Spalte: Eine Menge von Feldern, die alle von der gleichen Sorte sind und dem gleichen Zweck dienen, auch Attribute genannt Datensatz: Entspricht einer Zeile in einer Tabelle und wird mathematisch auch Tupel genannt Datensatz-Tabelle: Eine Menge von gleichartigen Datensätzen, auch Datenbanktabelle oder Datensatzgruppe oder Arbeitsblatt (Excel) genannt Datensatz Feld Spalte Reusable component - already used in SYS-Config, planned for ODS Datensatz-Tabelle

Begriffe in Datenbanken Abfrage: Eine Anfrage zu Feldern eines Datensatzes, die gewissen Kriterien entsprechen, von einer oder mehreren Tabellen Zurückgelieferte Daten können sortiert werden Abfragen können im Datenbank-Server (“Serverabfragen”) oder im Client (“Clientabfragen”) verarbeitet werden Abfrage-Parameter: Abfragen können feste Kriterien enthalten, aber auch ‘variable’ Parameter z.B. ‘frühestes Datum’ / ‘Letztes Datum’ oder nur ‘ID’ Es können für jede Abfrage unterschiedlich Parameter übermittelt werden Reusable component - already used in SYS-Config, planned for ODS

Begriffe in Datenbanken Datensatzgruppe = RecordSet: Eine Menge gleichartiger Datensätze Nicht zu verwechseln mit dem einzelnen Datensatz = Record Meist als ein Ergebnis einer Abfrage Kann ein Teil einer Tabelle sein, oder Daten von einer Kombination von Tabellen Reusable component - already used in SYS-Config, planned for ODS

Begriffe in Datenbanken Top-Level-Container für alle Daten, Tabellen und Serverabfragen Reusable component - already used in SYS-Config, planned for ODS

Begriffe in Datenbanken Datenbank-Verbindung: Link zur Datenbank Inklusive Datenbank–Speicherort (Dateiname), Name der Software, um auf die Datenbank zuzugreifen und optional Anmeldung mit Name und Passwort Verbindung Reusable component - already used in SYS-Config, planned for ODS

Zuordnung zu den Feldern Die CX-Supervisor Datenbank-Funktionalität baut vollständig auf die Zuordnung des CX-Supervisor-Punkts zum Datenbank-Feld auf: Auf mehrere Datensätze kann gleichzeitig zuge-griffen werden, indem man CX-Supervisor Array- Punkte verwendet um z.B. eine ganze Seite zu lesen.

Zuordnung zu den Feldern Bei einer lesenden Verbindung wird zur Laufzeit jeder Feldwert in den CX-Supervisor-Punkt kopiert:

Datensätze hinzufügen Datenbanken benutzen ein Konzept mit ‘Auffang-Datensatz’ um Felder zum Hinzufügen neuer Felder bereitzuhalten. Die CX-Supervisor-Feldzu-ordnung hat die Feldeigenschaft ‘Add’ um Felder der Datenbank hinzuzufügen. Ein einfaches Skript kann dann einen neuen Datensatz hinzufügen (und übergeben). Leerer Datensatz

Datenbank-Verbindungs- Editor In einer einfachen Baumstruktur mit 3 Ebenen Ebene 1) Datenbankverbindung – um das Projekt mit der Datenquelle zu verbinden (DSN, Access-Dateien, Text-Dateien, usw.) Ebene 2) Datensatz-Tabelle – um die angegebene Tabelle oder Abfrage in der Datenquelle auszuwählen Ebene 3) Feld– um Supervisor-Punkte den Feldern in der Datenbanktabelle oder Abfrage zuzuordnen Ebene 3) Parameter für SQL – Parameterübertragung aktivieren für Abfragen, die das benötigen.

Datenbank-Verbindung konfigurieren Klicken Sie mit der rechten Maustaste in das Datenbank-Arbeitsbereichsfeld und wählen Sie Verbindung hinzufügen Geben Sie einen Verbindungsnamen ein Geben Sie den Namen der Datenbank-Datei an Als Pfad kann auch “.\” für das Arbeitsverzeichnis angegeben werden oder der Pfad kann auch weggelassen werden Geben Sie an, ob die Verbindung beim Start der Anwendung aufgebaut werden soll

Datensatz-Tabelle konfigurieren Klicken Sie mit der rechten Maustaste auf die markierte Verbindung und wählen Sie Datensatz hinzufügen Geben Sie einen Datensatznamen ein Der Datensatz kann folgenden Typ haben Tabellenname Serverabfrage SQL-Text Geben Sie für eine Access-Datenbank den Tabellennamen an Geben Sie an, ob der Datensatz automatisch bei Start der Anwendung gelesen werden soll Geben Sie an, wie der Datensatz verriegelt werden soll

Feldzuordnung konfigurieren Klicken Sie mit der rechten Maustaste auf den markierten Datensatz und wählen Sie Feld hinzufügen Geben Sie einen Feldnamen ein Geben Sie den Punkt (Variable) an, in den der Wert aus der Datenbank übertragen werden soll Geben Sie den Feldnamen in der Tabelle der Datenbank oder die Serverabfrage an, die mit dem Punkt verlinkt werden soll Geben Sie an, wie auf das Feld zugegriffen werden soll, Value = Lesen

SQL-Parameter konfigurieren Klicken Sie mit der rechten Maustaste auf den markierten Datensatz und wählen Sie Parameter hinzufügen Geben Sie den Parameternamen an Geben Sie den Index an, der zum dazugehörigen Wert des Abfrage-Parameters gehört Geben Sie den Datentyp an Geben Sie den zu verbindenden Punkt oder Ausdruck an Geben Sie an, ob der zu übertragende Wert eine Konstante oder ein Punkt (Variable) ist

Navigation Es gibt CX-Supervisor Skript-Kommandos um zu den gewünschten Datensätzen zu navigieren, jedes Mal, bevor die Punktwerte gelesen oder geschrieben werden. Das Lese-Kommando kann auch automatisch zum nächsten Datensatz navigieren. DBMove( "Connection1.Recordset2", "Next" ) DBMove( "Connection1.Recordset2", "Previous" ) DBRead( "Connection1.Recordset2" ) record_index = DBProperty( "Connection1.Recordset2", "CurrentRecord" )

Skript-Funktionen für Datenbanken DBAddNew – Hinzufügen eines Datensatzes zu einer Tabelle DBDelete – Löschen der angegebenen Anzahl Datensätze beginnend mit der akt. Position DBExecute – Erlaubt die Ausführung mehrerer Kommandos DBGetLastError – Gibt die zuletzt generierte Fehlermeldung des Datenbank-Servers zurück DBMove – Zur Navigation von Datensatz zu Datensatz DBOpen / DBClose – Öffnet / Schließt eine Verbindung oder Datensatztabelle DBProperty – Gibt die angefragte Eigenschaft zurück DBRead, DBWrite – Liest, Schreibt einen Datensatz von/zur Datensatztabelle zu den zugeordneten Punkten DBSChema – Gibt Kommandos aus, um Ergebnisse oder Eigenschaften von Schemas zu lesen oder stellt Kriterien von neuen Schemas ein DBState – Gibt den Zustand der angegebenen Verbindung (Level) zurück DBUpdate – Frischt den neuen Datensatz in einer Tabelle auf DBSupports – Gibt TRUE zurück, wenn die angegebene Tabelle die angefragte Operation unterstützt

DBWrite( "Verbindung1.Datensatz1" ) Datenbankanbindung unter Visualisierung – CX-Supervisor z.B mit Excel oder Access DBWrite( "Verbindung1.Datensatz1" ) DBAddNew( "Verbindung1.Datensatz2" ) Nur die CSV oder MDB Datei muß auf dem PC liegen

SQL Datenbank Anbindung an den Supervisor

Installieren und einstellen von MySql

Installieren und einstellen von MySql

Datenbank und Schnittstelle erstellen

Einstellung am Supervisor Die Einstellung erfolgt analog zu einer Access Datenbank, nur wählt man hier die dsn Datei aus, die man vorher erstellt hat. Auswahl der Datenquelle Auswahl der dsn Datei. Sie sollte im Ordner C:\Programme\Gemeinsame Dateien\ODBC\Data Sources\ stehen. Bei der Erstellung der Datei kann man diesen Ordner angeben. Nach diesen Einstellungen kann man sich zur Datenbank verbinden (SQL Server muß laufen).

Lesen und navigieren in der Datenbank Befehl Beschreibung DBOpen( „DB Name" ) ohne Einschränkung DBClose( „DB Name" ) ohne Einschränkung DBProperty->BOF wird nicht true wenn die Datenbank am Anfang steht DBProperty->EOF ohne Einschränkung DBProperty->Current Record zeigt immer einen Satz weiter an als der mit Read angezeigte DBProperty->Record count ohne Einschränkung DBProperty->Current page gibt die Nummer des tatsächlich angezeigten Eintrags wieder DBProperty->Page count wie Record count DBProperty->Page size ? DBProperty->Field count zeigt immer 0 obwohl die Datenbank 13 Felder hat DBStatus->Open ohne Einschränkung DBStatus->Close ist immer true auch wenn die Datenbank offen ist DBMove->First ohne Einschränkung DBMove->Last ohne Einschränkung DBMove->Next springt immer 2 Sätze weiter Rückgabewert funktioniert richtig DBMove->NextPage Rückgabewert ist 0 obwohl die Funktion richtig ausgeführt wurde DBMove->Privious keine Reaktion DBMove->PriviousPage springt auch zum nächsten Satz wie Next Rückgabe auch immer 0 DBMove->Position springt auch zum nächsten Satz wie Next Rückgabe auch immer 0 DBRead ohne Einschränkung

Datensätze bearbeiten in der Datenbank Befehl Beschreibung DBDelete( „DB Name" ) es wird der Datensatz gelöscht der mit Current Record angezeigt wird. Beispiel angezeigt wird Satz 2 und gelöscht wird aber Satz 3 DBWrite hat dasselbe Problem es wird der nächste Satz geändert, nicht der angezeigte DBAddNew ohne Einschränkung DBUpdate nur nach einem Datensatz anhängen DBExecute->Requery ohne Einschränkung DBExcute->SQL es können SQL Kommandos an die Datenbank geschickt werden, für das ändern von Datensätzen sehr sinnvoll. Siehe nächste Folie

Datensätze bearbeiten mit SQL Kommandos Supervisor Script: SQL Befehl um in der Tabelle1 in der Spalte Zähler den Wert zu verändern. SET comandSQL = "UPDATE tabelle1 SET Zähler_1 = " Wert = ValueToText(Count_1_SQL) comandSQL = comandSQL + Wert comandSQL = comandSQL + " WHERE Position = 0" bResult = DBExecute( "Verbindung_SQL_dsn", "SQL", comandSQL ) IF !bResult THEN Status_SQL = DBGetLastError( "Verbindung_SQL_dsn", TRUE ) ENDIF Einen Supervisor int Punkt in Text wandeln und dem Kommando hinzufügen. SQL Befehl um den Wert in jeden Datensatz indem die Spalte Position auf 0 ist einzutragen. SQL Befehl mit der Methode Execute an die Datenbank schicken. Ist der Rückgabewert = 0 dann letzten Fehler abfragen.

Datenaustausch zwischen 2 Supervisor Applikationen mit der SQL Datenbank Struktur der SQL Datenbank Spalte Anlage gibt an aus welcher Anlage die Daten kommen. Ein Datensatz ist immer einer Anlage zugeordnet. Spalte aktiv gibt an ob die Anlage Daten übermittelt ( eventuell ob sie vorhanden ist) und damit die Daten aktuell sind

Benötigte Punkte Punkt Typ E/A Typ Arraygröße Anlage_aktiv Boolean Speicher 10 Aus / Ein [FALSE] Freigabe in die DB schreiben cmdSQL Text Speicher 1 SQL Komando Daten_Anlage1 Integer Speicher 9 0 to 99999999 [0] Beschreibung Daten_Anlage2 Integer Speicher 9 0 to 99999999 [0] Beschreibung Daten_Anlage3 Integer Speicher 9 0 to 99999999 [0] Beschreibung Daten_Anlage4 Integer Speicher 9 0 to 99999999 [0] Beschreibung DB_Anlage Integer Speicher 1 0 to 99999999 [0] Beschreibung DB_Anlage_aktiv Boolean Speicher 1 Aus / Ein [FALSE] Beschreibung DB_Anlage_aktiv1 Boolean Speicher 1 Aus / Ein [FALSE] Beschreibung DB_Anlage_aktiv2 Boolean Speicher 1 Aus / Ein [FALSE] Beschreibung DB_Anlage_aktiv3 Boolean Speicher 1 Aus / Ein [FALSE] Beschreibung DB_Anlage_aktiv4 Boolean Speicher 1 Aus / Ein [FALSE] Beschreibung DB_Daten_Anlage1 Integer Speicher 9 0 to 99999999 [0] Beschreibung DB_Daten_Anlage2 Integer Speicher 9 0 to 99999999 [0] Beschreibung DB_Daten_Anlage3 Integer Speicher 9 0 to 99999999 [0] Beschreibung DB_Daten_Anlage4 Integer Speicher 9 0 to 99999999 [0] Beschreibung DB_Daten1 Integer Speicher 1 -99999999 to 99999999 [0] Beschreibung DB_Daten2 Integer Speicher 1 -99999999 to 99999999 [0] Beschreibung DB_Daten3 Integer Speicher 1 -99999999 to 99999999 [0] Beschreibung DB_Daten4 Integer Speicher 1 -99999999 to 99999999 [0] Beschreibung DB_Daten5 Integer Speicher 1 -99999999 to 99999999 [0] Beschreibung DB_Daten6 Integer Speicher 1 -99999999 to 99999999 [0] Beschreibung DB_Daten7 Integer Speicher 1 -99999999 to 99999999 [0] Beschreibung loop1 Integer Speicher 1 0 to 99999999 [0] Schleifenzähler Punktezeiger Text Speicher 1 Beschreibung sError_DB Text Speicher 1 Fehlermeldung sWert Text Speicher 1 Daten der Wandlung ValueToText

Schreiben der Daten in die SQL Datenbank REM Anlage 1 IF Anlage_aktiv[0]==TRUE THEN REM Anlage 1 als aktiv melden cmdSQL = "UPDATE tabelle1 SET aktiv= 1 WHERE Anlage = 1" bResult = DBExecute( "DAS_DB_Anlagen", "SQL", cmdSQL ) IF !bResult THEN sError_DB = DBGetLastError( "DAS_DB_Anlagen", TRUE ) ENDIF REM Schleife um die Daten zu übertragen FOR loop1= 1 TO 7 cmdSQL = "UPDATE tabelle1 SET " sWert = ValueToText(loop1) cmdSQL = cmdSQL + "Daten" + sWert + "= " sWert = ValueToText(Daten_Anlage1[loop1]) cmdSQL = cmdSQL + sWert +" WHERE Anlage = 1" bResult = DBExecute( "DAS_DB_Anlagen", "SQL", cmdSQL ) IF !bResult THEN sError_DB = DBGetLastError( "DAS_DB_Anlagen" , TRUE ) ENDIF NEXT ELSE REM Anlage 1 als nicht aktiv melden cmdSQL = "UPDATE tabelle1 SET aktiv= 0 WHERE Anlage = 1" bResult = DBExecute( "DAS_DB_Anlagen", "SQL", cmdSQL ) IF !bResult THEN sError_DB = DBGetLastError( "DAS_DB_Anlagen", TRUE ) ENDIF

Lesen der Daten aus der SQL Datenbank REM Daten Anlage 1 DBMove( "DAS_DB_Anlagen.Tabelle1", "FirstPage" ) bResult = DBRead( "DAS_DB_Anlagen.Tabelle1" ) IF !bResult THEN Status_SQL = DBGetLastError( "DAS_DB_Anlagen", TRUE ) ENDIF DB_Anlage_aktiv1 = DB_Anlage_aktiv IF DB_Anlage_aktiv1 THEN FOR loop1 =0 TO 6 intTest = loop1 +1 sWert = ValueToText(intTest) Punktezeiger = "DB_Daten" + sWert DB_Daten_Anlage1[loop1] = ^Punktezeiger NEXT

Lesen eines Querys aus der SQL Datenbank Punkt als Array anlegen und das SQL Query dem Punkt zuweisen. Er muß nicht mit dem Index zugewiesen werden (SQL_Daten1[0]). In der Registerkarte Datenbank eine Tabelle mit SQL Text anlegen und alle gewünschten Punkte hinzufügen.

Lesen eines Querys aus der SQL Datenbank comandSQL = "SELECT * FROM tabelle1 WHERE " comandSQL = comandSQL + Query_Spalte + " = " textTest = ValueToText(Query_Wert) comandSQL = comandSQL + textTest bResult = DBExecute( "DAS_DB_Anlagen.SQL_Text", "Source", comandSQL ) IF !bResult THEN Status_SQL = DBGetLastError( "DAS_DB_Anlagen", TRUE ) ENDIF DBExecute( "DAS_DB_Anlagen.SQL_Text", "Requery" ) DBRead( "DAS_DB_Anlagen.SQL_Text" ) Hier werden die Punkte angelegten Array Punkte (z.B. SQL_Daten1) aus der Abfrage dargestellt. Hier erfolgt der Zugriff über den Index.

Haben Sie Fragen zu diesem Thema?

Als Anwendung für Datenbankzugriffe Rezepte Als Anwendung für Datenbankzugriffe

Rezepte mit Datenbanken Erstellen von Tabellen mit Access Datenbank aufrufen mit Skript-Kommando: RunApplication Arrays von der Datenbank über CX-Supervisor in die SPS kopieren

Recipes A Recipe is a collection of Points/Variables which have pre-defined values, and are stored on disc Recipes are downloaded from the PC to PLCs or other devices which control/handle the production of the Recipe When a recipe is downloaded, each point is updated with its pre-defined value A recipe can be validated while being downloaded, and aborted if validation fails Recipes can be modified in Runtime mode

Recipe Editor In Development Mode... Recipes can be created, modified and deleted Validation scripts can be created Security Levels can be assigned Recipes can be printed Information on number of Project Recipes is provided In Runtime Mode... Project Recipes can be copied, modified and deleted Recipes can be downloaded to PLCs or other devices

Accessing The Recipe Editor By selecting Recipe Editor...from Ansicht / Fenster menu By pressing CTRL + I keys By clicking on the Recipe Editor Icon in the Control Bar From Workspace

Recipe Editor User Interface Recipes Information Access Level Print Recipes Adding a Recipe Recipes

Adding Recipes Enter a recipe name Enter the recipe description Click on the icon. The following dialog is displayed Enter a recipe name Enter the recipe description Specify a validation script if required Add ingredients to the recipe

Adding Ingredients to a Recipe Ingredients are added to a recipe clicking on the Add Ingredient button, from which the following dialog is displayed The Quantity/Expression is used to specify the predefined value assigned to the point. It may be a fixed value or a valid expression. Enter the ingredient name Link the ingredient to a point Specify the predefined value for the point Specify if the value can be changed in Runtime Mode

Validating a Recipe Validating recipes, before being downloaded, is an optional security operation that can be done in Runtime Mode If validations fails, the recipe is not downloaded The validation code is created through scripts The RETURN statement causes downloading to be aborted

Recipe Security Levels Security levels can be assigned to recipes to prevent downloading by certain users at Runtime To assign a security level, select the recipe and click the Security box on the Editor

Using Recipes In Runtime The Recipe Viewer contains a list of all recipes in the project, and can be accessed by the right button floating menu Recipes in the Recipe Viewer can be modified, deleted, downloaded and printed

Downloading a Recipe To download a recipe, click on the icon. A recipe can be downloaded directly using the DownloadRecipe function The predefined value can be changed, if it is editable Download the recipe

Haben Sie Fragen zu diesem Thema?

ActiveX Steuerelemente Bekannte Elemente von CX-Server-Lite und anderen Softwaren z.B. VB, können auch im Supervisor zum Einsatz kommen

ActiveX Steuerelemente ActiveX ist ein Microsoft Standard für Software-Objekte mit eigenständiger Funktionalität ActiveX Steuerelemente können auf den Seiten einer CX-Supervisor Anwendung installiert werden Diese Steuerelemente sind in Dateien mit der Erweiterung *.ocx enthalten und werden über Eigenschaften, Methoden und Events in Visual Basic Skripte eingebunden

Installation eines ActiveX Steuerelementes Wählen Sie OLE in der Box oder dem Balken mit den grafischen Objekten; es erscheint das dargestellte Dialogfenster zum Einfügen von OLE Objekten in die Applikation: Wählen Sie das gewünschte ‘ActiveX Steuerelement’ aus der vom Betriebssystem registrierten Liste der Steuerelemente

Bestandteile eines ActiveX Steuerelementes Eigenschaften: sind Characteristika des Objektes, z.B. die Farbe der Font, die Position auf dem Bildschirm, der Name etc. Methoden: sind Funktionen, die mit diesem Objekt ausgeführt werden können, z.B. Öffnen einer Datei, Drucken etc. Events: sind ‘Benachrichtigungen’ des Steuerelementes an die Anwendung, z.B. über die Änderung eines Zustandes, eines Wertes etc. (die Übergabe von Parametern wird nicht unterstützt)

ActiveX Skript-Funktionen GetProperty: Lesen des Wertes einer Eigenschaft des angegebenen Objektes PutProperty: Schreiben des Wertes einer Eigenschaft des angegebenen Objektes Execute: Ausführen einer Methode des angegebenen Objektes ExecuteVBScript: Ausführen des angegebenen Visual Basic Skripts ExecuteJScript: Ausführen des angegebenen Java Skripts ExecuteVBScriptFile: Ausführen eines in einer Datei enthaltenen Visual Basic Skripts ExecuteJScriptFile: Ausführen eines in einer Datei enthaltenen Java Skripts

Eigenschaften eines Objektes - allgemeine Syntax GetProperty bValue = GetProperty( “MiActiveX”, “Height” ) PutProperty PutProperty(“MiActiveX”, “Height”, 50 ) Name einer CX-Supervisor Varieblen (Point) ActiveX Steuerelement Eigenschaft ActiveX Steuerelement Wert Eigenschaft

Methoden eines Objektes - allgemeine Syntax Execute Execute( “MiActiveX”, “AboutBox” ) Execute( “WebBrowser”, “Navigate2”, “c:\page.html” ) ActiveX Steuerelement Methode Parameter

Events eines Objektes Die Events, die eine ActiveX Komponente erzeugen kann, sind im Animationseditor aufgeführt Events

Ereignisse eines Objektes Ein ActiveX Ereignis kann benutzt werden, um die Ausführung eines Scripts zu starten

Windows Scripting Host (WSH) Ermöglicht die Ausführung von Visual Basic und Java Scripts die Lösung komplexer Automationsaufgaben mit Hilfe leistungsstarker Scriptfunktionen die Wiederverwendung bewährter Programme und Lösungen den Zugriff auf CX-Supervisor Variablen (Points) oder ActiveX Steuerelemente

Beispiel für ein VBScript Markierungen für den Beginn und das Ende eines VB-Scriptes

Haben Sie Fragen zu diesem Thema?

CX-Supervisor als OPC-Client Die Verbindung mit Geräten anderer Hersteller

CX-Supervisor und OPC Bedingungs-Scripts Berichte Alarme Datenerfassung Rezepte Ausdrücke Datenbanken Animation Über OPC Version 2.0 Variablen- (Points) Datenbank OPC Server Speicher SPS (CX-Server) DDE

Multi-Vendor Lösungen CX-Server OPC Lan Netzwerk CX-Supervisor OMRON SPSen Anderer OPC-Server Lan Netzwerk Andere Geräte Anderer OPC-Server Lan Netzwerk Andere Geräte

Dezentrale Lösungen CX-Supervisor CX-Supervisor OPC Server Lan Netzwerk Geräte OPC Server VB Anwendung (Über ActiveX) Wan

Konfiguration von OPC-Variablen Wählen Sie OPC/Other im Dialogfenster für die Konfiguration von Variablen (Points) Das Fenster für die Konfiguration von OPC-Variablen wird geöffnet Wählen Sie aus: Server Gruppe Variable Die Verwendung von Arrays ist möglich

Auswahl des Servers Wählen Sie eine der Kommu-nikationskomponenten aus der Liste aus (vom Betriebssystem registriert) Hinweis: Die Konfiguration des Servers ist herstellerabhängig. Informieren Sie sich im Handbuch des Servers über die Konfigurationsmöglichkeiten.

Auswahl der Gruppe In diesem Dialogfenster stellen Sie ein: Name der Gruppe Update-Rate für die gesamte Gruppe ob die Gruppe beim Start der Applikation aktiviert werden soll

Auswahl der Variablen (Item) Geben Sie an: Name der Variablen ID der Variablen Datentyp ob es sich um ein Array handelt Wenn die Kommunikation unterbrochen werden sollte, erfolgt ein automatisches Wiederverbinden.

Haben Sie Fragen zu diesem Thema?

Texte extrahieren, übersetzen, Sprachen umschalten Mehrsprachigkeit Texte extrahieren, übersetzen, Sprachen umschalten

Übersetzungs- Tool Im Menü ‘Werkzeuge’ kann ein einfaches ‘Übersetzungs-Tool’ für Texte der Kundenanwendung aufgerufen werden. Einfach gewünschte Sprache von den vorhandenen .LNG-Dateien auswählen (dann wird eine neue Spalte für den zu übersetzenden text hinzugefügt).

Übersetzungs- Tool Der Text, der in der Anwendung vorkommt steht in der linken Spalte und in die neue Spalte muss der neu übersetzte Text eingetragen werden. Das Übersetzungs-Tool kann auch als Stand-alone-Tool benutzt werden, und damit auch zu externen (Nicht-Programmierern) geschickt werden. Während der Laufzeit kann dann eine andere Sprache gewählt werden, und alle Texte ändern sich.

Skript-Funktion zur Sprachumschaltung SetLanguage: Schaltet die Anzeigetexte auf die gewünschte Sprache

Haben Sie Fragen zu diesem Thema?

Fernzugriff auf Seiten des CX-Supervisors übers Netz Web-Interface Fernzugriff auf Seiten des CX-Supervisors übers Netz

Fernzugriff über Web-Server A lightweight “maintenance” interface via the web A web server allows customers to remotely monitor the status of their CX-Supervisor application: Point information Get/Set Values Alarm Data Acknowledge and clear alarms View the alarm log Error Log See if any errors have occurred Application See details of the project that is running

Haben Sie Fragen zu diesem Thema?

Optimierung der Visualisierungs-Anwendung Diese Hinweise bitte unbedingt befolgen! DANKE!

Optimierungshinweise 1 für Skripte und Schleifen: CX-Supervisor ist Ereignisgesteuert nicht Echtzeit So viel wie möglich von der SPS bearbeiten lassen Lassen Sie Skripte durch Ereignisse ausführen oder versuchen Sie das Gleiche durch Animation von Objekten zu erreichen Skripte mit regelmäßigem Intervall verbrauchen eine Unmenge Resourcen des PCs. Vermeiden Sie sie, wenn irgend möglich

Optimierungshinweise 2 Eigenschaften der Punkte richtig bestimmen: Punkte, die nur gelesen werden, oder nur geschrieben, nicht als Ein-/Ausgabe definieren Ausgaben nur bei Änderung beschreiben Punkte auf Seiten brauchen nur aufgefrischt werden, wenn man sie sieht (nicht benötigte Seiten schließen) Nur Punkte für Trends, Alarme und Punkte für Reports müssen Intervallweise aufgefrischt werden

Optimierung der Kommunikation Array-Punkte helfen das Kommunikationsaufkommen zu reduzieren. Es ist die wohl effektivste Möglichkeit die Kommunikation zu optimieren. Trotz Verwendung von Arrays können sinnvolle Namen verwendet werden, durch die Benutzung der Alias-Möglichkeit Verwenden Sie möglichst wenige unterschiedliche Aktualisierungsraten. Unterschiedliche Aktualisierungsraten behindern die automatische Kommunikations-Optimierung Wählen Sie die Aktualisierungsraten nicht zu klein Führen Sie ein manuelle Optimierung durch mit den Skript-Kommandos ‘InputPoint’ oder ‘OutputPoint’ Lassen Sie Ihre Anwendung analysieren unter dem Menüpunkt: Projekt / Anwendung analysieren

Haben Sie Fragen zu diesem Thema?

Sichern eines Windows PC für den Betrieb mit einer Supervisor-Runtime gegen zufällige oder auch absichtliche Manipulationen des Bedienpersonals August 27th, 2008

Was ist zu tun Die Windows Shell muss deaktiviert werden Der manuelle Start des Task Managers muß blockiert werden Der PC muß ohne Login starten Das Anwendungsprogramm (Runtime) muß beim Booten gestartet werden Der Shutdown des PC muss aus der Runtime möglich sein Wie gut ist der PC jetzt gesichert?

Die Windows Shell muss deaktiviert werden In der Registry muß zum automatischen Öffnen beim Windows Aufstart die Datei Explorer.exe entfernt werden Achtung das ist nicht der Datei Explorer sondern die eigentliche Windows Bedienoberfläche! Ersatzweise wird hier der Name einer Command Batchdatei eingefügt die dann sozusagen direkt aus dem Windows System Boot Vorgang die Supervisor Anwendung startet. (mehr dazu später)

Die Windows Shell muss deaktiviert werden 1. Regedit starten und bis in den Pfad der unten in dem Fenster gezeigt ist durchklicken, dann einen Doppelklick auf Shell. 2. Explorer.exe entfernen und C:\WINDOWS\SYSTEM32\START.CMD eingetragen 3. Die Datei START.CMD wird im Pfad C:\WINDOWS\SYSTEM32 abgelegt (wie die Datei START.CMD aussieht wird später noch gezeigt)

Der manuelle Start des Task Managers muß blockiert werden Ein neuer Windows User muß angelegt werden, Supervisor versionsabhängig ein Administrator oder ein Hauptbenutzer (Poweruser) Der Start des Taskmanagers muß für die neue User (User Group) gesperrt werden Der PC muß so eingestellt werden das er anschließend ohne manuellen LogIn bootet

Der manuelle Start des Task Managers muß blockiert werden 1. Ein neuer Windows User muß angelegt werden, Supervisor versionsabhängig ein Administrator oder ein Hauptbenutzer (Poweruser)

Der manuelle Start des Task Managers muß blockiert werden 2. Der Start des Taskmanagers muß für den neuen User gesperrt werden indem der User an dieser Stelle entfernt wird (das unten gezeigte Fenster erscheint wenn man unter C:\Windows\system32 auf taskmgr.exe mit rechter Maustaste klickt, dann mit linker Maustaste auf Properties und auf den Reiter security).

Der PC muß ohne Login starten Auf Windows „Start“ und dann auf „ausführen“ („run“) klicken. Dort eingeben „Control Userpasswords2“. In dem dann erscheinenden Fenster unter dem Reiter „Users“ die Option „Users must enter a user name and password to use this computer“ deaktivieren.

Das Anwendungsprogramm (Runtime) muß beim booten gestartet werden Die bereits erwähnte Command Batch Datei, Name ist z.B. START.CMD muß z.B. mit Notepad erstellt werden und in dem angegebenen Pfad (c:\windows\system32)) abgelegt werden In die Datei wird zum Starten der Supervisor Runtime einfach der Pfad und der Name der *.SR2 Datei (Runtime Startdatei CX-Supervisor) eingetragen

Der Shutdown des PC muss aus der Runtime möglich sein Die Supervisor Applikation selbst herunterfahren (erste Zeile des Scriptes) Windows Shutdown auslösen mit einer Zeitverzögerung (zweite Zeile des Scriptes)

Der Shutdown des PC muss aus der Runtime möglich sein Der Windows Shutdown Befehl hat verschiedene Optionen

Wie gut ist der PC jetzt gesichert? Eine Fehlbedienung durch das Personal an der Maschine ist nicht möglich zB. durch Anklicken von Windows „Start“ oder ähnlichem Auch wenn Tastatur und Maus angeschlossen sind gibt es keine Möglichkeit sich einzuloggen da das Administratorpasswort nicht bekannt ist und der Taskmanager als „normaler user“ nicht gestartet werden kann Es können keine Zugriffe auf die Festplatte oder andere Datenträger (USB) durchgeführt werden, Datei kopieren/löschen/verschieben ist nicht möglich, und es könne auch keine Spiele transferiert und gestartet werden Aber: Der PC kann zB. noch im abgesicherten Modus gestartet werden