Tutorial do WinCC OA. Parte 3. Scripts globais (scripts de controle)

O comportamento da válvula programado na seção anterior ... é ilógico. No manipulador para clicar no botão "Abrir" ou "Fechar", definimos diretamente o valor do elemento denominado Posição. Dado isso no próprio DPT, já temos os comandos "Abrir" e "Fechar".

Datapoint tipo "Flap"
Datapoint tipo "Flap"

, - , , , . workshop , .

«» «».

Script para pressionar o botão "Abrir"
«Open»

main(mapping event)
{
  dpSet("System1:Flap1.Commands.Open", 1, "System1:Flap1.Commands.Close", 0);
}
Script modificado do botão "Abrir"
«Open»

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

«Close»

, Para

Pressionando o botão "Abrir"
«Open»
Pressionando o botão "Fechar"
«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. . , , ?

Lista existente de gerentes

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

Propriedades do gerenciador de controle para simulação de válvula
Control

Manager Start ( ). , 2.

Script de simulação lançado com sucesso

.

Ao pressionar o botão Abrir, a abertura é visualizada
Open
O botão Fechar processa o fechamento
Close

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

O próprio gerenciador de controle cria seu próprio processo separado na inicialização. Sua função principal é executada em uma thread separada (thread). A função de retorno de chamada (em nosso caso OnOpen_CB) também é executada em uma thread separada. Após a execução, a função principal para de funcionar, mas o retorno de chamada continua na memória do PC (em seu próprio thread) e é chamado quando a variável "assinada" muda.




All Articles