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".
, - , , , . workshop , .
«» «».
main(mapping event)
{
dpSet("System1:Flap1.Commands.Open", 1, "System1:Flap1.Commands.Close", 0);
}
, DPE, , , . «» «», « » (, , , ).
«Close»
, Para
, , . open close .
gedi Scripts, Add New CTRL Script
, Model
. . - WinCC OA, dpConnect, . .
dpConnect . , , .
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. . , , ?
WinCC OA Append new manager, Control. (Start mode) (manual), . . 2. 2? 1 . . . , ui 1 ctrl 1, ui ( ctrl) . «-num 2». , . :
Manager Start ( ). , 2.
.
, 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.