• Keine Ergebnisse gefunden

5.2 Die Form frmReglerauswahl

5.2.2 Die Objekte im Frame1

In diesem Frame (Rahmen) sind insgesamt fünf TextBoxen und zwei CheckBoxen implementiert. Im gesamten Programm haben die Frames keine weiteren Funktionen. Sie dienen lediglich der besseren Optik und dazu, die in ihnen integrierten Objekte beim verschieben immer auf der gleichen Position zu halten.

Die Objekte in diesem Frame sind dazu bestimmt, die Werte aus der Steuerung anzuzeigen und durch einen Timer jede Sekunde zu aktualisieren, um sicher zu gehen, dass nicht schon andere Werte in der Steuerung stehen.

Abbildung 5.5: Objekte im Frame1

Die Werte, die gerade in diesen TextBoxen stehen, können durch den Speichern-Button in einer CSV-Datei gespeichert werden. Der Anwender hat somit die Möglichkeit diese gespeicherten Werte wieder aus der CSV-Datei auszulesen, um somit zu alten Werten zurückzukehren.

Integrationszeitkonstante (Ti)

Wenn Haken gesetzt, dann sind Ti und TD in der Steuerung in Sekunden eingestellt, ansonsten in Millisekunden

Abtastzeit

Unterdrückung von Schwankungen Differentiationszeitkonstante (TD) Reglerverstärkung (KR)

5.2.2.1 Die Verbindung zur Steuerung

Nachdem der Regler aus dem DataGrid ausgewählt wurde, wird die OPC-Verbindung geöffnet. Ein Programm in Visual BASIC kann mehrere OPC-Gruppen enthalten, um mit der Steuerung zu kommunizieren. In diesem Programm wird nur eine OPC-Gruppe angelegt, da die Gruppe nur einmal beim Anlegen der relevanten Adressen aus der Steuerung benötigt wird. Die für dieses Programm notwendige OPC-Gruppe wird hier mOPCGroup(1) genannt.

Bei der Anlegung der OPC-Gruppe müssen vorher im Modul mdlMain des Programms die dafür nötigen OPC-Parameter der Verbindung deklariert werden.

Dazu gehören die folgenden Bestandteile:

• mOPCGroup(1).OPCServerName = "OPC.SimaticNet"

• mOPCGroup(1).OPCGroupName = "AxelTest1"

• mOPCGroup(1).OPCUpdateRate = 1000

• mOPCGroup(1).OPCItemsCount = 17

Wenn die Daten bei der Auswahl des Reglers benötigt werden, wird ein Aufruf gestartet.

call OPC_Connect

In dieser Form stehen alle Strings für die Adressen, die in der Steuerung angesprochen werden sollen. Die Strings werden dann an die Prozedur im Modul mdlMain übergeben und in Arrays gespeichert.

Public Sub OPC_Connect

5.2.2.2 Lesen der Daten aus der Steuerung

Nachdem die Verbindung zur Steuerung hergestellt wurde, können die Werte aus der Steuerung ausgelesen werden. Um die wesentlichen Daten der Regler wie Gain, Ti, TD, Loop_Cycle und Deadband auslesen und ändern zu können, muss Simatic.Net und Simatic S7 auf dem Computer installiert werden. Die Parameter in der ersten Form werden nachfolgend erläutert:

• Gain Verstärkung des Reglers

Ti Integrationszeitkonstante

TD Differentiationszeitkonstante

• Loop_Cycle Abtastzeit des Reglers

• Deadband unterdrückt in einem einstellbaren Bereich kleine Schwankungen der Eingangsgröße

Hier greift man über eine OPC-Verbindung auf die Daten in der Steuerung zu. Die Daten werden erst ausgelesen, wenn die Verbindung zur Steuerung hergestellt wurde.

Nach der Verbindungsherstellung wird in dieser Form die eigentliche Funktion zum Auslesen der Daten aufgerufen.

call ReadFromPLC

Dieser Aufruf wird an mehreren Stellen im Programm ausgeführt, z.B. wenn die Aufzeichnung des Sollwertsprungs und des Stellwertsprungs beginnt. Unter diesem Aufruf werden alle Arrays bzw. Adressen geschrieben, die zu diesem Zeitpunkt benötigt werden. Die Funktion

Function ReadFromPLC()

im Modul mdlMain liest daraufhin die Daten aus der Steuerung aus. Hier wird geprüft, ob Fehler entstanden sind. Wenn hier keine Fehler aufgetreten sind, werden die Werte, die in den dazugehörigen Adressen stehen, ausgelesen und in weiteren Arrays gespeichert. Die Werte aus den Arrays werden dann an die Text- und CheckBoxen übergeben und in der Form frmReglerauswahl angezeigt. Gleichzeitig wird in der Steuerung überprüft, ob die Zeiten für die Integrations- und Differentiationszeit in Sekunden oder Millisekunden angezeigt werden. Wenn in der Adresse einer der Zeiten ein “True“ steht wird die Zeit in Sekunden angezeigt.

Der Speichern-Button dient dazu, die Werte aus diesen TextBoxen in einer CSV-Datei zu speichern. Eine CSV-CSV-Datei ist eine Textdatei zur Speicherung oder zum Austausch einfacher strukturierter Daten. Das Kürzel CSV steht dabei für Character Separated Values oder Comma Separated Values, weil die einzelnen Werte durch ein spezielles Trennzeichen, bspw. das Komma, getrennt werden. Ein allgemeiner Standard für das Dateiformat existiert nicht. Als Trennzeichen sind neben Komma auch Semikolon, Doppelpunkt, Tabulator und andere Zeichen üblich.

Hier werden die Daten durch den Split-Befehl im Programm mit einem Semikolon getrennt.

Der Undo-Button ist dafür da, die Werte, die über den Speichern-Button in der CSV-Datei gespeichert wurden wieder auszulesen. So hat der Anwender die Möglichkeit zu älteren Werten zurückzukehren, sofern die aktuelle Einstellung nicht optimal ist.

Beim Auslesen werden die Werten nicht gleich in die Steuerung geschrieben, sondern erscheinen in den TextBoxen des Frame2. Diese Lösung ist vorteilhafter, da bei der Auswahl der falschen CSV-Datei nicht gleich die Werte für den Regler in die Steuerung geschrieben werden. Der Anwender kann die Werte somit ersteinmal sehen und dann entscheiden, ob er sie durch den Übernehmen-Button im anderen Frame in die Steuerung schreiben möchte.

Um Adressen in der Steuerung ansprechen und deren Werte auslesen zu können, muss die Adresse in Visual BASIC in Strings zusammengestellt werden. Die folgende Abbildung zeigt, wie ein String für eine Adresse in Visual BASIC aussehen muss.

Abbildung 5.6: Aufbau eines Strings zum Auslesen der Werte in den Adressen

Adresse1 = rs2.Fields(0) & "DB6,INT" & (pos - 1) * 100 + 2

Name der Adresse, die an call OPC_Connect übergeben wird Name des Recordsets

Gibt den Wert des Feldes der aktuellen Zeile an

Identifizierung des Datenbausteins des Reglers

Integer-Zahl

Zweites Byte Berechnung der jeweiligen Adressen des ausgewählten Reglers, da sie hintereinander im DB6 abgelegt sind