WinCC OA Tutorial. Teil 3. Globale Skripte (Kontrollskripte)

Das im vorherigen Abschnitt programmierte Ventilverhalten ... ist unlogisch. Im Handler zum Klicken auf die Schaltfläche "Öffnen" oder "Schließen" legen wir direkt den Wert des Elements "Position" fest. Da wir im DPT selbst bereits die Befehle "Öffnen" und "Schließen" haben.

Datenpunkttyp "Flap"
Datenpunkttyp "Flap"

, - , , , . workshop , .

«» «».

Skript zum Drücken der Schaltfläche "Öffnen"
«Open»

main(mapping event)
{
  dpSet("System1:Flap1.Commands.Open", 1, "System1:Flap1.Commands.Close", 0);
}
Geändertes Skript der Schaltfläche "Öffnen"
«Open»

, DPE, , , . «» «», « » (, , , ).

«Close»

, Para

Drücken Sie die "Öffnen" -Taste
«Open»
Drücken Sie die "Schließen" -Taste
«Close»

, , . open close .

gedi Scripts, Add New CTRL Script

, Model

. . - WinCC OA, dpConnect, . .

  1. dpConnect . , , .

  2. callback .

WinCC OA. «» dpGet , , .

, dpConnect . — callback- ( OnOpen_CB), — , . , , - main Model :

main()
{
	dpConnect("OnOpen_CB", "System1:Flap1.Commands.Open");
}

callback-. — ( string) «» ( «» ). .

void OnOpen_CB(string dp1, bool bNewValue)
{
;
}

, . «» «», , 90. «», — 0.

void OnOpen_CB(string dp1, bool bNewValue)
{
	if (bNewValue) {
		dpSet("System1:Flap1.Inputs.Position", 90);
	} else {
		dpSet("System1:Flap1.Inputs.Position", 0);
	}
}

- . «» Control Manager. , (Control), . Control. . , , ?

Bestehende Liste der Manager

WinCC OA Append new manager, Control. (Start mode) (manual), . . 2. 2? 1 . . . , ui 1 ctrl 1, ui ( ctrl) . «-num 2». , . :

Control Manager-Eigenschaften für die Ventilsimulation
Control

Manager Start ( ). , 2.

Simulationsskript erfolgreich gestartet

.

Durch Drücken der Open-Taste wird die Öffnung visualisiert
Open
Die Schaltfläche Schließen schließt das Schließen
Close

, Control Manager (, main) . main() callback , , dpConnect ( ). , , control- . - .

Der Steuerungsmanager selbst erstellt beim Start einen eigenen separaten Prozess. Seine Hauptfunktion wird in einem separaten Thread (Thread) ausgeführt. Die Rückruffunktion (in unserem Fall OnOpen_CB) wird ebenfalls in einem separaten Thread gestartet. Nach der Ausführung funktioniert die Hauptfunktion nicht mehr, aber der Rückruf befindet sich weiterhin im PC-Speicher (in einem eigenen Thread) und wird aufgerufen, wenn sich die "signierte" Variable ändert.




All Articles