0% fanden dieses Dokument nützlich (0 Abstimmungen)
5 Ansichten6 Seiten

PPServer e

Hochgeladen von

ayadarezki6
Copyright
© All Rights Reserved
Wir nehmen die Rechte an Inhalten ernst. Wenn Sie vermuten, dass dies Ihr Inhalt ist, beanspruchen Sie ihn hier.
Verfügbare Formate
Als DOC, PDF, TXT herunterladen oder online auf Scribd lesen
0% fanden dieses Dokument nützlich (0 Abstimmungen)
5 Ansichten6 Seiten

PPServer e

Hochgeladen von

ayadarezki6
Copyright
© All Rights Reserved
Wir nehmen die Rechte an Inhalten ernst. Wenn Sie vermuten, dass dies Ihr Inhalt ist, beanspruchen Sie ihn hier.
Verfügbare Formate
Als DOC, PDF, TXT herunterladen oder online auf Scribd lesen

Proconos Protocol Server „PPServer“

Proconos Protocol Server "PPServer"


Instruction guide fort he usage of this protocol server in .NET applications

1. Modules for use to the server:

- The server is a library for Windows. Two versions for Windows32 (tested under Windows-XP) and for
Windows-CE are available. Windows .NET 3.5 is required.
- to integrate (Reference) is „[Link]”

The protocol server defines its namespace “PPService” and the class “PPService”

2. Integration of the protocol server in a project:

The protocol server must be instantiated as object. Two event-functions are used who are transferred
at the beginning:

- One function for messages (error …), who the server emits.
- One function for variables values

The server provides a few services:


a) Administration:
- Login at the control
- logout from the control
- Termination of the server

b) Variables transfer
- Browse function (serves a list of all variables available on the control)
- Log on variable (notification)
- Log off variable (remove notification)
- control variable refresh (on/off)
- write Variable
- read variable one time

To read out variables from the control you have to do following:


- Log In
- Log on Variable (notification)
- start refresh
- The server will activate the Callback function for the variable values

The variable will be read out repeatedly from the control. The server calls up the Callback function only
in case of changing its state. The refresh can be canceled and started again; in this case the variables
that are already declared have not to be notified again.

3. Properties of the server:

The server is able to communicate to a Schleicher XCx - control system via Ethernet TCP/IP

The server performs a list of the notified variables (subscription). This list can be expanded by a new
variable. Individual variables or also the whole list can be deleted

[Link] 1/6 BSprenger, 14.03.2013


/conversion/tmp/activity_task_scratch/[Link]
Proconos Protocol Server „PPServer“

The server makes additional state information available (PLC Start or PLC Stop). These Information is
given to the Callback function for a message.

The server loads the list of available variables direct out of the control (file [Link]) This ensures the
variables are valid. To reduce the startup time, the server stores this list locally and loads the list only if
the control project is not changed.

If the actual project is changed by running server (Multiprog can be connected at the same time), the
server detect and realize this, interrupt the actual refresh and loads the variable list new automatically.

The server run in a loop with adjustable cycle time. The cycle time can be adjusted and can be in
minimal case 10ms. The server guaranties no real time. The cycle time will be automatically adjusted
depending on response time from control and speed of operation.

Der Server arbeitet in einer Schleife mit einstellbarer Zykluszeit. Die Zykluszeit ist einstellbar und kann
minimal 10 ms betragen. Der Server garantiert keine Echtzeit. Die Zykluszeit wird sich abhängig von
der Reaktionszeit der Steuerung, der Geschwindigkeit der Bearbeitung im Server selbst variieren. Bei
geringer Belastung und wenigen Anzeigewerten ist jedoch die Refreshrate gleich der eingestellten
Zykluszeit.

4. Referenz:

Die Klasse PPService stellt der Anwendungsfunktion Dienste für die Kommunikation mit einer
Schleicher XCx-Steuerung zur Verfügung. Mit dem Server wird ein eigenständiger Namespace
gebildet: namespace PPServer

4.1 Konstruktor
mit drei Overloads
 PPService(); konstruiert eine Instanz des Servers
 PPService(int cylcletime); wie oben. cycletime legt in Millisekunden die
Zykluszeit des internen Refresh-Zyklus an. Minimal: 10ms. Mehr zur Zykluszeit in Kapitel
"Eigenschaften des Servers".
 PPService(int cycletime, string plcAddress); wie oben. plcAdress ist die IP-Adresse der
Steuerung. Beispiel: "[Link]"

Der Konstruktor baut keine Verbindung zur Steuerung auf. Dafür muss die Login-Funktion ausgeführt
werden.

4.2 Methoden

4.2.1 Browse-Funktion
 string[] Browse() liefert eine Liste der gültigen Variablen der Steuerung.
Die Liste hat dann gültige Werte, wenn der Server fehlerfrei in der Steuerung eingeloggt ist.

4.2.2 Login-Funktion
mit zwei Overloads
 bool Login(); baut die Verbindung zur Steuerung auf und meldet
den Server bei der Steuerung an. Die Funktion liefert den Vebindungsstatus zurück: TRUE = Der
Server ist mit der Steuerung verbunden.

[Link] 2/6 BSprenger, 14.03.2013


/conversion/tmp/activity_task_scratch/[Link]
Proconos Protocol Server „PPServer“

 bool Login(string ipAdr); wie oben. Die IP-Adresse der Steuerung wird als
Parameter übergeben.

Die Login-Funktion blockiert bis zum Abschluss der Anmeldung. Treten Fehler auf, werden diese als
Meldung ausgegeben. Mehrere Meldungen können ausgegeben werden.

4.2.3 Logout-Funktion
 bool Logout(); beendet die Verbindung zur Steuerung. Liefert immer
TRUE als Rückgabewert

4.2.4 Variablen-Lesefunktion
 value ReadVariable(string name); liest den Wert der Variable "name" aus der Steuerung
und liefert deren Wert.

ReadVariable wird für das "einmalige" Lesen eines Wertes benützt. Beispiel: Variable, die die
Konfiguration der Steuerung beschreiben, können mit ReadVariable einmal gelesen werden.
ReadVariable liefert einen Nullwert, wenn keine Verbindung zur Steuerung besteht oder wenn die
Variable nicht existiert.

4.2.5 Refresh-Steuerung
 bool RefreshControl(bool on); steuert die wiederholte Aktualisierung (Refresh) der
angemeldeten Variablen. Mit Parameter on = TRUE wird der Refresh eingeschaltet, mit Refresh =
FALSE wird der Refresh gestoppt. Liefert immer TRUE.

Der Refresh erfolgt nur, wenn die Verbindung zur Steuerung aufgebaut ist (LoggedIn) und auch
Variablen angemeldet sind (Subscribe). Der Variablen-Refresh erfolgt automatisch, RefreshConrol()
muss nicht aufgerufen werden.
RefreshControl() ist obsolet und wird ersetzt durch die Eigenschaft RefreshOn, siehe unten.

4.2.6 Variablen-Anmeldung
zwei Overloads:
 IECType Subscribe(string var, int handle); meldet eine Variable (mit dem Namen var)
zum wiederholten Lesen (Refresh) an. Mit dem Parameter handle ist eine Zahl größer gleich Null
zu übergeben, mit der die Variable beim Refresh eindeutig wieder zugewiesen werden kann.
Liefert den Typen der Variable zurück.
 IECType Subscribe(string[] var, int[] handle); wie zuvor. Meldet jedoch nicht nur eine Variable
sondern ein Array von Variablen an. Dazu ist das zugehörige Array von handles zu übergeben.
 IECType Subscribe(string[] var, int handle); wie zuvor. Anstelle des Arrays von Handles wird
aber nur der Handle der ersten Variablen übergeben. Die Handles der weiteren Variablen werden
automatisch fortfolgend nummeriert. Bsp: Übergabe von handle = 5, dann ergeben sich bei drei
Varialben die Handles 5, 6, 7.

Eine Variable wird mit einem String bezeichnet, wie er in der Liste (durch Browse-Funktion erhalten)
steht, z.B. "[Link]" ist die Variable count in der Instanz Sample2. Globale Variable sind
immer durch das Prefix "@GV." gekennzeichnet (steht auch so in der Liste der Variablen). Auch
Array-Elemente können als Variable angemeldet werden. Beispiel: @GV.cmcS_afR[6010] ist das
Element 6010 der globalen Variable cmcS_afR, also der R-Parameter R6010.

Beispiel: die Client-Anwendung meldet drei Variable zum Refresh an und ruft dazu Subscribe drei mal
auf. Dabei setzt die Client-Anwendung den Handle auf 1, 2 und 3. Bei der Rückgabe der
Variablenwerte wird dieser Handle vom Server mit zurückgegeben. Darauf hin kann die Anwendung
die Werte korrekt zuordnen.

[Link] 3/6 BSprenger, 14.03.2013


/conversion/tmp/activity_task_scratch/[Link]
Proconos Protocol Server „PPServer“

Nach der Anmeldung können weitere Variable angemeldet werden. Der Server kann maximal 101
Variable gleichzeitig verwalten. Der Server sendet die Istwerte zu den angemeldeten Variablen mit
Hilfe der Event-Prozedur RaiseValueEvent() an die aufrufende Anwendung (siehe unten). Nach der
Anmeldung einer Variable wird der Event einmal ausgelöst, danach immer dann, wenn sich der
Variablenwert ändert.

4.2.7 Beenden
 void Terminate(); beendet den Server. Loggt den Server zunächst von der
Steuerung ab (falls eingeloggt).

4.2.8 Variablen-Abmeldung
mit zwei Overloads:
 bool UnSubscribe(); meldet alle beim Server zum Refresh angemeldeten Variable
ab. Danach findet kein Refresh statt. Liefert immer TRUE.
 bool UnSubscribe(int handle); meldet die mit handle gekennzeichnete Variable vom Refresh
ab. Die anderen Variablen sind nicht betroffen, der Refresh läuft anschließend weiter.

4.2.9 Variable Schreiben


mit drei Overloads:
 WriteVariable(string name, value val); schreibt den Wert val in eine Variable (mit dem Namen
name)
 WriteVariable(string name, string valstring); schreibt den Wert aus dem String valstring in eine
Variable (mit dem Namen var)
 WriteVariable(string[] names, string[] valstrings); schreibt die Werte aus den Strings
valstrings[] in die Variablen des Arrays names[]

Die Variable selbst wird mit einem String bezeichnet, wie er in der Liste (durch Browse-Funktion
erhalten) steht, z.B. "[Link]" ist die Variable count in der Instanz Sample2. Globale
Variable sind immer durch das Prefix "@GV." gekennzeichnet (steht auch so in der Liste der
Variablen). Auch Array-Elemente können als Variable beschrieben werden. Beispiel:
@GV.cmcS_afR[6010] ist das Element 6010 der globalen Variable cmcS_afR, also der R-
Parameter R6010.

4.3 Eigenschaften
Die Klasse PPService hat die folgenden Eigenschaften (Properties).

4.3.1 CycleTime

 int CycleTime; Zykluszeit der Servertask in ms. Minimalwert ist 10. Kann gelesen und
geschrieben werden. Weiteres zur Zykluszeit im Kapitel zu den Eigenschaften des Servers.

4.3.2 PlcAddress
 string PlcAddress; IP-Adresse der Steuerung als String. Beispiel: "[Link]".
Die Adresse kann gelesen und geschrieben werden. Durch das Schreiben der IP-Adresse wird
keine Verbindung zur Steuerung auf- oder abgebaut. Dazu muss die Funktion LogIn() oder
LogOut() verwendet werden.

4.3.2 LoggedIN

[Link] 4/6 BSprenger, 14.03.2013


/conversion/tmp/activity_task_scratch/[Link]
Proconos Protocol Server „PPServer“

 bool LoggedIN; Liefert den Zustand der Verbindung zur SPS. TRUE: Die Verbindung
ist aufgebaut, der PlcState ist gültig, die Variablenliste ist gültig (und kann mit der Browse()-
Funktion ausgelesen werden).

4.3.3 PlcState
 int PlcState; Liefert den Status der SPS. Die Eigenschaft kann nur gelesen werden.
Folgende Werte sind möglich:
 0: Keine Verbindung zur SPS, Kabelbruch. (Implementiert 19.10.09)
 1: Die SPS ist in einem Fehlerzustand (PowerOn). Ein SPS-Projekt ist nicht geladen.
 2. Die SPS ist im Zustand STOPP.
 4. Die SPS ist im Zustand RUN.

4.3.3 PddPath
 string PlcState; lokales Verzeichnis für die Dateien "[Link]" und "[Link]". Kann
gelesen und geschrieben werden.

Der Pfad für die Dateien ist voreingestellt (Defaultwert) mit "C:\Temp". Soll der Pfad geändert werden,
dann sollte dies vor dem Einloggen erfolgen.

4.4 Events
Die Klasse PPService erzeugt die folgenden Events.

4.4 RaiseInfoEvent

 void RaiseInfoEvent(InfoEventArgs e); Benachrichtigt die aufrufende Anwendung über eine


anstehende Information. Informationen können Fehlermeldungen, Meldungen zum SPS-Zustand
(RUN/STOP), zur Steuerungsverbindung, über Änderung der Variablenliste sein.

To be documented: Datentyp InfoEventArgs

4.4 RaiseValueEvent

 void RaiseValueEvent(ValueEventArgs e); Übergibt neue Variablenwerte aus der


Steuerung an die aufrufende Anwendung.

To be documented: Datentyp ValueEventArgs

mit zwei Overloads:


5. Beispiel

Als Beispiel dienen die .Net-Projekte PPTest (unter Windows-XP...) und PPCE (unter Windows-CE).

noch zu dokumentieren:

- Datentypen ValueEventArgs, InfoEventArgs, enum IECType

[Link] 5/6 BSprenger, 14.03.2013


/conversion/tmp/activity_task_scratch/[Link]
Proconos Protocol Server „PPServer“

- Klasse value

[Link] 6/6 BSprenger, 14.03.2013


/conversion/tmp/activity_task_scratch/[Link]

Das könnte Ihnen auch gefallen