本アクションで使用可能なイベント

<< Click to Display Table of Contents >>

マニュアル > サーバ作成ガイド > アクション編 > アクションリファレンス > スクリプトVer2(SC2) >

本アクションで使用可能なイベント

スクリプトVer2アクションで使用可能なイベント

スクリプトVer2では、コントロールリファレンスの「共通メソッド」に掲載されているイベントのうち、スクリプトアクションの欄に「○」が付いているイベントを利用することができます。

 

以下は、スクリプトVer2で使用可能なイベントです。

 

イベント名

説明

OnInitialize

スクリプトが実行される際に1度だけ発生します。スクリプトの初期化処理などを記述することができます。

 

OnHeartBeat

Panel Serverのイベントによりアクションが実行される毎に必ず呼び出されます。

 

OnTagValueChanged

AddTagメソッドで登録したタグの値が変化する都度、発生します。

 

OnTerminate

終了時に1度だけ発生します。スクリプトの終了処理などを記述することができます。

 

OnTimer

SetTimerメソッドの呼び出しによって設定されたタイマーのタイムアップ時に発生します。一定のタイミングで繰り返し条件の評価を行いたい場合や、指定したタイマー時間後に特定の処理を行いたい場合などに利用します。

OnExpressionValueChanged

AddExpressionメソッドで登録した演算式の値が変化したときに発生します。

 

 

上記のイベントを利用することで、スクリプトでさまざまな処理を実装することができます。

 

 

例えば、以下のような処理の記述を行うことができます。

 

タグの変化を監視する(OnTagValueChangedイベント)

 

AddTagメソッドにより登録したタグの値の変化を監視します。値が変化するとOnTagValueChangedイベントが発生します。

 

スクリプト例

event OnInitialize()
{
	::AddTag(c("U01.F01.T01", "U01.F01.T02", "U01.F01.T03"));
}

event OnTagValueChanged(tagname,value)
{
	if(value){
		if(tagname == "U01.F01.T01"){
			::WriteVal("U01.F01.T03", 1);
		}else if(tagname == "U01.F01.T02"){
			::WriteVal("U01.F01.T03", 0);
		}
	}                                                 
}

 

5秒周期のタイマー処理を行う(OnTimerイベント)

 

SetTimerメソッドによりタイマーを登録します。タイマーの条件が成立するとOnTimerイベントが発生します。

 

スクリプト例

event OnInitialize()
{
	::SetTimer(0, 5000, -1);
}

event OnTimer(timerid,counter)
{
	::SvsDump("OnTimer Id:" & ::CStr(timerid) & " counter:" & ::CStr(counter));
}

 

演算式で条件を指定し、条件の成立を監視する(OnExpressionValueChangedイベント)

 

AddExpressionメソッドにより条件式を登録します。条件式が成立するとOnExpressionValueChangedイベントが発生します。

 

スクリプト例

event OnInitialize()
{
	var vExpressionName = c("EX01","EX02");
	var vExpression = c("(U01.F01.T04 && U01.F01.T05) ||
                              U01.F01.T06" ,"U01.F01.T04 || U01.F01.T05 || U01.F01.T06");
	::AddExpression(vExpressionName, vExpression);
}

event OnExpressionValueChanged(name,value,firstevent)
{
	::SvsDump("OnExpressionValueChanged(Name:" & ::CStr(name) & 
             " Value:" & ::CStr(value) & " First:" & ::CStr(firstevent) & ")");
}