Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Der einfache Weg zu komplexenVisualisierungs-Anwendungen.

Ähnliche Präsentationen


Präsentation zum Thema: "Der einfache Weg zu komplexenVisualisierungs-Anwendungen."—  Präsentation transkript:

1 Der einfache Weg zu komplexenVisualisierungs-Anwendungen

2 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

3 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

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

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

6 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

7 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

8 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

9 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

10 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

11 Haben Sie Fragen zu diesem Thema?

12 Ein wichtiges Werkzeug
Datenaufzeichnung Ein wichtiges Werkzeug

13 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.

14 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

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

16 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

17 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

18 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[ ].dlv

19 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

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

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

22 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.

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

24 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

25 Beispiel Datenaufzeichnung

26 Anlegen der Gruppen und Punkte im Beispiel

27 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 !!

28 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.

29 Typisches Projekt zur Datenaufzeichnung

30 Haben Sie Fragen zu diesem Thema?

31 Abspeichern, Exportieren, Importieren
Dateiverarbeitung Abspeichern, Exportieren, Importieren

32 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

33 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

34 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”)

35 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 !

36 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.

37 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

38 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

39 Haben Sie Fragen zu diesem Thema?

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

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

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

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

44 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...

45 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 = ((“Die Gleitkommazahl ist %4f2”, Punkt)) ... Die Gleitkommazahl ist

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

47 Haben Sie Fragen zu diesem Thema?

48 Datenbanken Die professionelle Art Informationen zu Speichern, Exportieren oder Importieren

49 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

50 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

51 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

52 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

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

54 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

55 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.

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

57 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

58 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.

59 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

60 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

61 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

62 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

63 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" )

64 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

65 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

66 SQL Datenbank Anbindung an den Supervisor

67 Installieren und einstellen von MySql

68 Installieren und einstellen von MySql

69 Datenbank und Schnittstelle erstellen

70 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).

71 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

72 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

73 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.

74 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

75 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 [0] Beschreibung Daten_Anlage2 Integer Speicher 9 0 to [0] Beschreibung Daten_Anlage3 Integer Speicher 9 0 to [0] Beschreibung Daten_Anlage4 Integer Speicher 9 0 to [0] Beschreibung DB_Anlage Integer Speicher 1 0 to [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 [0] Beschreibung DB_Daten_Anlage2 Integer Speicher 9 0 to [0] Beschreibung DB_Daten_Anlage3 Integer Speicher 9 0 to [0] Beschreibung DB_Daten_Anlage4 Integer Speicher 9 0 to [0] Beschreibung DB_Daten1 Integer Speicher to [0] Beschreibung DB_Daten2 Integer Speicher to [0] Beschreibung DB_Daten3 Integer Speicher to [0] Beschreibung DB_Daten4 Integer Speicher to [0] Beschreibung DB_Daten5 Integer Speicher to [0] Beschreibung DB_Daten6 Integer Speicher to [0] Beschreibung DB_Daten7 Integer Speicher to [0] Beschreibung loop1 Integer Speicher 1 0 to [0] Schleifenzähler Punktezeiger Text Speicher 1 Beschreibung sError_DB Text Speicher 1 Fehlermeldung sWert Text Speicher 1 Daten der Wandlung ValueToText

76 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

77 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

78 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.

79 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.

80 Haben Sie Fragen zu diesem Thema?

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

82 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

83 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

84 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

85 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

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

87 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

88 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

89 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

90 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

91 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

92 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

93 Haben Sie Fragen zu diesem Thema?

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

95 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

96 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

97 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)

98 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

99 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

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

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

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

103 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

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

105 Haben Sie Fragen zu diesem Thema?

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

107 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

108 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

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

110 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

111 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.

112 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

113 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.

114 Haben Sie Fragen zu diesem Thema?

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

116 Ü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).

117 Ü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.

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

119 Haben Sie Fragen zu diesem Thema?

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

121 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

122 Haben Sie Fragen zu diesem Thema?

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

124 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

125 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

126 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

127 Haben Sie Fragen zu diesem Thema?

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

129 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?

130 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)

131 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)

132 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

133 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)

134 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).

135 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.

136 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

137 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)

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

139 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


Herunterladen ppt "Der einfache Weg zu komplexenVisualisierungs-Anwendungen."

Ähnliche Präsentationen


Google-Anzeigen