エムエスツデー 2007年4月号

製品別情報

高機能版SCADALINX
SCADALINXpro(2)

(株)エム・システム技研 開発部

は じ め に

 本稿は、サーバ・クライアント形のHMIソフトウェア「SCADALINXpro(スキャダリンクスプロ)(形式:SSPRO4)」に関する製品紹介の第2回目です。

 前回は、SCADALINXpro の概要についてご紹介しました。今回は、SCADALINXpro において最も特徴的な機能である「スクリプト」についてご紹介します。

スクリプト 

 (1) 概 要

 SCADALINXpro には、独自の言語をもつスクリプトと呼ばれる簡易プログラム機能が実装されています。スクリプトによって、モニタ画面を表示するSCADALINXpro Browser に様々なロジックを実行させることが可能になります。スクリプトの文法はC 言語に近いものであり、C 言語によるプログラム開発の経験がある方であれば容易に習得することができます。スクリプトを習得することによって、ダイアログの表示、データベースの読み込み、I/O機器へのレシピ情報の書き込みなど、細かな処理の実装が可能になります。スクリプトはSCADALINXpro Editorにて記述します。

(2)SCADALINXpro Editor

 SCADALINXpro Editorはモニタ画面作成用ソフトです。

 SCADALINXpro Editorの画面は主に、プロジェクトのフォーム一覧を示す「ワークスペース」部、表示画面の編集を行う「フォーム」部、フォームに貼り付けるコントロールの選択を行う「コントロールバー」部、貼り付けたコントロールの属性を設定する「プロパティページ」部、コントロールなどのオブジェクトにスクリプトを実際に記述する「スクリプトエディタ」から構成されています。これらのユーザーインタフェースについては、Microsoft Visual Studioなど一般的なWindowsアプリケーション開発環境と類似したものを採用しました(図1)。

図1 SCADALINXpro Editor 画面例

 (3) オブジェクト

 SCADALINXpro Editorにおいてフォーム自身や、フォーム上に貼り付けた各コントロールなど、すべてを総称して「オブジェクト」と呼びます。そして、すべてのオブジェクトはプロパティ注1)、メソッド注2)、イベント注3)をもっています。スクリプトは主に各オブジェクトのイベントに対して記述します(ユーザー定義関数の記述も可能)。

 (4)スクリプト例

 【例1】Hello World
 ここではスクリプトの簡単な記述例として、「Hello world」をメッセージ表示するスクリプトの記述について解説します。

 フォームに貼り付けた「Button」コントロール(図2(a))の「OnMouseUp」イベント(図2(b))に、以下のスクリプト(図2(c))を記述します。

図2 スクリプト記述画面例

event OnMouseUp(button)
{
::OpenMsg("Hello world");
}

 スクリプト実行時、「Button」をクリックすると「Hello world」というダイアログメッセージが表示されます(図3)。

図3 ダイアログメッセージ画面例

 【例2】トレンドグラフの日時指定ジャンプ(図4)
 「JUMP」ボタンをクリックすると(図4(a))、トレンドグラフの表示範囲を2つのエディットコントロールで入力した範囲に切り替えるスクリプトを示します。

event OnMouseUp(button)
{
 //先頭&末尾の時間取得
 var StartTime = ::CTime
   (parent.StartTimeEdit.Text);
 var EndTime = ::CTime
   (parent.EndTimeEdit.Text);

 //グラフ表示変更
 parent.Graph.SetTimeRange
   (StartTime, EndTime);
 parent.Graph.Refresh();
}

図4 トレンドグラフの日時指定ジャンプ画面例

 【例3】ユーザー定義関数
 スクリプトは、イベントや各オブジェクトのメソッド以外にも、ユーザー定義関数として記述することができます。

 下記の例では、引数valueにT(真値)が渡された場合には「成功しました」、F(偽値)が渡された場合には「失敗しました」という文字列を関数の呼び出し側に返します。

function GetReturnMessage(value)
{
 if (value == T) {
  return "成功しました";
 } else{
  return "失敗しました";
 }
}

 (5)デバッグ(図5)

 スクリプトが意図している動作をしない場合には、スクリプトデバッガを用いてデバッグを行います。スクリプトデバッガは以下の機能をもっています。

 • 指定行でスクリプトの実行を停止する(ブレークポイント機能)。
 • スクリプトを、1行ずつ確認しながら実行する(ステップ実行機能)。
 • オブジェクトの各プロパティの状態を参照する。
 • 変数の値を参照する。

図5 スクリプトデバッガ画面例

お わ り に

 以上、SCADALINXpro のスクリプト機能についてご紹介しました。スクリプトを使用することによって、エンドユーザーからの要求仕様に柔軟に対応し、強力な監視・制御システムを構築することが可能になります。

 SCADALINXpro については、今後も各機能の拡充に努めて参ります。ご意見やご要望など、お気軽にエム・システム技研のホットラインまでお寄せください。

注1)プロパティ
プロパティとは、背景色、大きさ、フォントなど、オブジェクトの属性のことです。また、プロパティは必ずプロパティ名をもっています。たとえば、背景色のプロパティ名は「FillColor」です。
注2)メソッド
メソッドとは、Scroll、AddPen など、オブジェクトがもつ関数のことです。メソッドを呼び出すと、各メソッドに応じたアクションが実行されます。たとえばグラフコントロールのScroll メソッドが呼び出されると、グラフコントロールは自身の表示をスクロールします。
注3)イベント
イベントとは、オブジェクトが外部からの操作や、内部からの処理要求に対して反応するために、オブジェクトがもつ機構のことです。たとえばオブジェクトがマウスでクリックされると、必ず OnMouseUp イベントが呼び出される仕組みになっています。ここで、OnMouseUp イベントには、マウスがクリックされた時に実行したい処理をスクリプトとして記述することができます。

SCADALINX は、エム・システム技研の登録商標です。


ページトップへ戻る