Tutoriel WinCC OA. Partie 3. Scripts globaux (scripts de contrôle)

Le comportement de la vanne programmé dans la section précédente ... est illogique. Dans le gestionnaire pour cliquer sur le bouton "Ouvrir" ou "Fermer", nous définissons directement la valeur de l'élément appelé Position. Étant donné que dans le DPT lui-même, nous avons déjà les commandes "Ouvrir" et "Fermer".

Type de point de données "Flap"
Type de point de données "Flap"

, - , , , . workshop , .

«» «».

Script pour appuyer sur le bouton "Ouvrir"
«Open»

main(mapping event)
{
  dpSet("System1:Flap1.Commands.Open", 1, "System1:Flap1.Commands.Close", 0);
}
Script modifié du bouton "Ouvrir"
«Open»

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

«Close»

, Para

En appuyant sur le bouton «Ouvrir»
«Open»
En appuyant sur le bouton "Fermer"
«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. . , , ?

Liste existante des gestionnaires

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

Propriétés du gestionnaire de contrôle pour la simulation de vanne
Control

Manager Start ( ). , 2.

Script de simulation lancé avec succès

.

En appuyant sur le bouton Ouvrir, l'ouverture est visualisée
Open
Le bouton Fermer rend la fermeture
Close

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

Le gestionnaire de contrôle crée lui-même son propre processus distinct au démarrage. Sa fonction principale est exécutée dans un thread séparé (thread). La fonction de rappel (dans notre cas OnOpen_CB) est également exécutée dans un thread séparé. Après l'exécution, la fonction principale cesse de fonctionner, mais le rappel continue à être dans la mémoire du PC (dans son propre thread) et est appelé lorsque la variable "signée" change.




All Articles