Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

1 Der einfache Weg zu komplexenVisualisierungs-Anwendungen.

Ähnliche Präsentationen


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

1 1 Der einfache Weg zu komplexenVisualisierungs-Anwendungen

2 2 Berichte ausdrucken _ Web-Interface Daten- aufzeichnung Dateiverwaltung Datenbank- Anbindung ActiveX Steuerelemente Rezepte Mehrsprachigkeit CX-Supervisor als OPC-Client Wiederholung Windows verriegeln Themenübersicht Optimierung 156

3 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 4 Inhalt – Teil 1a Einstieg Projekt-Editor & Seiten Prozesspunkte (Points) & Variablen Grafische Objekte Animation Grafische Bibliothek

5 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 6 Datenaufzeichnung Dateiverarbeitung Berichte ausdrucken (Reports) Datenbank-Anbindung Rezepte ActiveX Steuerelemente CX-Supervisor als OPC-Client Mehrsprachigkeit Fernzugriff über Web-Server Verriegeln des Windows-Betriebssystems Inhalt – Teil 2

7 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 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 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 10 Software Anforderung / Beschränkungen Microsoft Windows 2000, XP, Vista Microsoft Windows NT 4.0 (Service Pack 5) MerkmalMachine EditionPLUS Max. Anz. Benutzer-Punkte / Max. Anzahl Elemente (SPS-Array mit 1024 Elementen = 1 Punkt) 500 / 512,0008,000 / 8,192,000 Anzahl Alarm-Definitionen Max. Anzahl von Geräten (SPS, usw.) Max. Anzahl von Seiten Max. Anzahl von Skripten in regelmäßigen Intervallen Unterstützte DatenbankenNur MS AccessMS Access, SQL, ODBC, MS Excel, Dbase, CSV

11 11 Haben Sie Fragen zu diesem Thema?

12 Datenaufzeichnung Ein wichtiges Werkzeug

13 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 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 15 Zugriff auf Datenaufzeichnungs-Einstellungen Im Arbeitsbereich, den Reiter Datenaufzeichnung aktivieren Datensatz Datenpunkte

16 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 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 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:.dlv Beispiel...mydataset[ ].dlv

19 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 20 Data Log Viewer Anzeige-Tool für die aufgezeichneten Daten

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

22 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 23 Daten- Export- Fenster Datensatz Zu exportierende Punkte Datenformat Automatische Dateinamen Generierung Zusätzliche Informationen

24 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 25 Beispiel Datenaufzeichnung

26 26 Anlegen der Gruppen und Punkte im Beispiel

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

28 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 29 Typisches Projekt zur Datenaufzeichnung

30 30 Haben Sie Fragen zu diesem Thema?

31 Dateiverarbeitung Abspeichern, Exportieren, Importieren

32 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 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 34 Skript-Beispiel OpenFile(c:\lib\scsdata.csv) ret = Read(field, temp, pres) CloseFile() ret = OpenFile(data.csv) ret = Write(field, temp, pres) CloseFile() CopyFile(data.csv, c:\archiv\data.csv)

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

36 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 37 Projektscript als Unterprogramm zum Unicode Datei einlesen. Dateiname wird beim Aufruf übergeben. SUB Unicode_Datei_lesen( Filename AS TEXT ) tempText = 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 END SUB Datei einlesen mit VB Script

38 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 39 Haben Sie Fragen zu diesem Thema?

40 Berichte ausdrucken Statistische Informationen präsentieren

41 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 42 Beispiel für einen Bericht Arbeitsschicht-Bericht Produzierte Bierfässer2192 Ausgelaufene Bierfässer6 Leer aufgefundene Bierfässer2 Anzahl betrunkener Arbeiter2

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

44 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 45 Spezifikations-Symbol-Formate %sfür Punkte mit Texten %dfür Integer (ganzzahlige) Punkte %xfyfü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 46 Skript- Funktionen zur Berichtserstellung GenerateReport – Erstellt einen Bericht aus der Formulardatei (Template) PrintReport – Druckt einen Bericht ViewReport – Zeigt einen Bericht an

47 47 Haben Sie Fragen zu diesem Thema?

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

49 49 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. Datenbank-Möglichkeiten mit der Visualisierung MerkmalMachine EditionPLUS Unterstützte DatenbankenNur MS AccessMS 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 - DateiSQL-Server, Dbase, ODBC für Oracle, Paradox

50 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 Spalte Datensatz Datensatz -Tabelle Feld

51 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

52 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

53 53 Begriffe in Datenbanken Datenbank: –Top-Level-Container für alle Daten, Tabellen und Serverabfragen

54 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

55 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 56 Zuordnung zu den Feldern Bei einer lesenden Verbindung wird zur Laufzeit jeder Feldwert in den CX-Supervisor-Punkt kopiert:

57 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 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 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 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 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 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 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 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 65 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 66 SQL Datenbank Anbindung an den Supervisor

67 67 Installieren undeinstellenvon MySql Installieren und einstellen von MySql

68 68 Installieren und einstellen von MySql

69 69 Datenbank und Schnittstelle erstellen

70 70 EinstellungamSupervisor 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 71 Lesen und navigieren in derDatenbank Lesen und navigieren in der Datenbank BefehlBeschreibung DBOpen( DB Name" )ohne Einschränkung DBClose( DB Name" )ohne Einschränkung DBProperty->BOFwird nicht true wenn die Datenbank am Anfang steht DBProperty->EOFohne Einschränkung DBProperty->Current Recordzeigt immer einen Satz weiter an als der mit Read angezeigte DBProperty->Record countohne Einschränkung DBProperty->Current pagegibt die Nummer des tatsächlich angezeigten Eintrags wieder DBProperty->Page countwie Record count DBProperty->Page size? DBProperty->Field countzeigt immer 0 obwohl die Datenbank 13 Felder hat DBStatus->Openohne Einschränkung DBStatus->Closeist immer true auch wenn die Datenbank offen ist DBMove->Firstohne Einschränkung DBMove->Lastohne Einschränkung DBMove->Nextspringt immer 2 Sätze weiter Rückgabewert funktioniert richtig DBMove->NextPageRückgabewert ist 0 obwohl die Funktion richtig ausgeführt wurde DBMove->Priviouskeine Reaktion DBMove->PriviousPagespringt auch zum nächsten Satz wie Next Rückgabe auch immer 0 DBMove->Positionspringt auch zum nächsten Satz wie Next Rückgabe auch immer 0 DBRead ohne Einschränkung

72 72 BefehlBeschreibung 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 DBWritehat dasselbe Problem es wird der nächste Satz geändert, nicht der angezeigte DBAddNewohne Einschränkung DBUpdatenur nach einem Datensatz anhängen DBExecute->Requeryohne Einschränkung DBExcute->SQLes können SQL Kommandos an die Datenbank geschickt werden, für das ändern von Datensätzen sehr sinnvoll. Siehe nächste Folie Datensätzebearbeiten in der Datenbank Datensätze bearbeiten in der Datenbank

73 73 Datensätze bearbeiten mit SQL Kommandos Supervisor Script: 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 SQL Befehl um in der Tabelle1 in der Spalte Zähler den Wert zu verändern. SET 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 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 75 Benötigte Punkte PunktTypE/A TypArraygröße Anlage_aktivBooleanSpeicher10Aus / Ein [FALSE]Freigabe in die DB schreiben cmdSQLTextSpeicher1SQL Komando Daten_Anlage1IntegerSpeicher90 to [0]Beschreibung Daten_Anlage2IntegerSpeicher90 to [0]Beschreibung Daten_Anlage3IntegerSpeicher90 to [0]Beschreibung Daten_Anlage4IntegerSpeicher90 to [0]Beschreibung DB_AnlageIntegerSpeicher10 to [0]Beschreibung DB_Anlage_aktivBooleanSpeicher1Aus / Ein [FALSE]Beschreibung DB_Anlage_aktiv1BooleanSpeicher1Aus / Ein [FALSE]Beschreibung DB_Anlage_aktiv2BooleanSpeicher1Aus / Ein [FALSE]Beschreibung DB_Anlage_aktiv3BooleanSpeicher1Aus / Ein [FALSE]Beschreibung DB_Anlage_aktiv4BooleanSpeicher1Aus / Ein [FALSE]Beschreibung DB_Daten_Anlage1IntegerSpeicher90 to [0]Beschreibung DB_Daten_Anlage2IntegerSpeicher90 to [0]Beschreibung DB_Daten_Anlage3IntegerSpeicher90 to [0]Beschreibung DB_Daten_Anlage4IntegerSpeicher90 to [0]Beschreibung DB_Daten1IntegerSpeicher to [0]Beschreibung DB_Daten2IntegerSpeicher to [0]Beschreibung DB_Daten3IntegerSpeicher to [0]Beschreibung DB_Daten4IntegerSpeicher to [0]Beschreibung DB_Daten5IntegerSpeicher to [0]Beschreibung DB_Daten6IntegerSpeicher to [0]Beschreibung DB_Daten7IntegerSpeicher to [0]Beschreibung loop1IntegerSpeicher10 to [0]Schleifenzähler PunktezeigerTextSpeicher1Beschreibung sError_DBTextSpeicher1Fehlermeldung sWertTextSpeicher1Daten der Wandlung ValueToText

76 76 Schreiben der Daten in die SQL Datenbank 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 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

77 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 ENDIF

78 78 Leseneines Querys aus der SQL Datenbank 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 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 80 Haben Sie Fragen zu diesem Thema?

81 Rezepte Als Anwendung für Datenbankzugriffe

82 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 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 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 Recipes can be printed

85 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 86 Recipe Editor User Interface Adding a Recipe Print Recipes Recipes Information Access Level Recipes

87 87 Adding Recipes 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 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 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 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 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 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 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 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 96 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: Installation eines ActiveX Steuerelementes Wählen Sie das gewünschte ActiveX Steuerelement aus der vom Betriebssystem registrierten Liste der Steuerelemente

97 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 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 99 GetProperty bValue = GetProperty( MiActiveX, Height ) PutProperty PutProperty(MiActiveX, Height, 50 ) Eigenschaften eines Objektes - allgemeine Syntax Name einer CX-Supervisor Varieblen (Point) ActiveX Steuerelement Eigenschaft Wert ActiveX Steuerelement Eigenschaft

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

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

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

103 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 104 Beispiel für ein VBScript Markierungen für den Beginn und das Ende eines VB-Scriptes

105 105 Haben Sie Fragen zu diesem Thema?

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

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

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

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

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

112 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 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 114 Haben Sie Fragen zu diesem Thema?

115 Mehrsprachigkeit Texte extrahieren, übersetzen, Sprachen umschalten

116 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 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 118 Skript-Funktion zur Sprachumschaltung SetLanguage: Schaltet die Anzeigetexte auf die gewünschte Sprache

119 119 Haben Sie Fragen zu diesem Thema?

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

121 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 122 Haben Sie Fragen zu diesem Thema?

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

124 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 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 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 127 Haben Sie Fragen zu diesem Thema?

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

130 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 131 Die Windows Shell muss deaktiviert werden 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) 1. Regedit starten und bis in den Pfad der unten in dem Fenster gezeigt ist durchklicken, dann einen Doppelklick auf Shell.

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

133 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 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 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 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 137 Der Shutdown des PC muss aus der Runtime möglich sein Windows Shutdown auslösen mit einer Zeitverzögerung (zweite Zeile des Scriptes) Die Supervisor Applikation selbst herunterfahren (erste Zeile des Scriptes)

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

139 139 Wie gut ist der PC jetzt gesichert? Aber: Der PC kann zB. noch im abgesicherten Modus gestartet werden 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


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

Ähnliche Präsentationen


Google-Anzeigen