WinCCOAチュートリアル。パート3。グローバルスクリプト(制御スクリプト)

前のセクションでプログラムされたバルブの動作は...非論理的です。「開く」または「閉じる」ボタンをクリックするためのハンドラーで、Positionという要素の値を直接設定します。DPT自体には、すでに「開く」と「閉じる」というコマンドがあります。

データポイントタイプ「フラップ」
データポイントタイプ「フラップ」

, - , , , . workshop , .

«» «».

「開く」ボタンを押すためのスクリプト
«Open»

main(mapping event)
{
  dpSet("System1:Flap1.Commands.Open", 1, "System1:Flap1.Commands.Close", 0);
}
「開く」ボタンの変更されたスクリプト
«Open»

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

«Close»

, Para

「開く」ボタンを押す
«Open»
「閉じる」ボタンを押す
«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. . , , ?

マネージャーの既存のリスト

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

バルブシミュレーションのコントロールマネージャープロパティ
Control

Manager Start ( ). , 2.

シミュレーションスクリプトが正常に起動しました

.

開くボタンを押すと、開口部が視覚化されます
Open
閉じるボタンは閉じるをレンダリングします
Close

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

コントロールマネージャ自体は、起動時に独自の個別のプロセスを作成します。その主な機能は別のスレッド(スレッド)で実行されます。コールバック関数(この場合はOnOpen_CB)も別のスレッドで実行されます。実行後、main関数は機能を停止しますが、コールバックは引き続きPCメモリ(独自のスレッド)にあり、「signed」変数が変更されると呼び出されます。




All Articles