「ソフテックだより」では、ソフトウェア開発に関する情報や開発現場における社員の取り組みなどを定期的にお知らせしています。
さまざまなテーマを取り上げていますので、他のソフテックだよりも、ぜひご覧下さい。
ソフテックだより(発行日順)のページへ
ソフテックだより 技術レポート(技術分野別)のページへ
ソフテックだより 現場の声(シーン別)のページへ
ソフテックでは色々な監視制御ソフトウェアの開発を手掛けており、SCADA(Supervisory Control And Data Acquisition)を使用したシステム開発を多く行ってきました。また、使用するSCADAは自社開発製品のFAVIEW(詳細はこちら⇒https://www.softech.co.jp/faview.htm)以外にも、様々なSCADAを使用したシステム開発を行っています。
今回はその中の1つでシュナイダーエレクトリック社の『Vijeo Citect(以下 Citectと呼称します)』を使用した開発を行いましたので、ご紹介したいと思います。
Citectは、世界80カ国を越える国々で、FA(Factory Automation)・BA(Building Automation)分野の幅広い監視・管理システムに採用される監視システム向けパッケージソフトウェアです。
また、Citectは各サーバー機能がそれぞれ独立したアプリケーションから構成されています。
これらのサーバー機能を1台のパソコンで起動することもできますし、複数のパソコンで分散して起動することもできます。
図1. Citectのアプリケーション構成
こうした独立したアプリケーションとなっている構成により、Citectは以下の特徴があります。
<高速性>Citectを使用したシステム構築を行う際の基本的な流れについて、ご紹介します。
・I/Oサーバー設定
プロジェクトを作成したら、まずはI/Oデバイス(シーケンサなどの監視・制御対象機器)との通信設定を行います。
図2. I/Oサーバー設定
主要なシーケンサ等の機器のI/Oドライバ以外に、OPCクライアント機能も用意されています。
そのため機器メーカー専用のドライバが無くても、別途OPCサーバーを立てる事で複数メーカーのPLCと通信することが可能です。(ただし、OPCサーバー毎に接続可能なPLCが異なります)
・タグ設定
通信設定を終えたら、タグ設定を行います。
図3. タグ設定
Excelでのタグ設定
Citectのインストーラにはタグ編集用のExcelアドインも含まれていますので、Excel上でタグ設定することもできます。
通信設定(I/Oサーバーの設定)を終えたら、Citect上で表示するグラフィック画面を作成していきます。
Citectでは、各画面をページと呼びページ内に数値表示部品、ボタン部品など各部品を配置していくことで作成します。
図4. グラフィックビルダー
図5. 部品プロパティ設定
Citectをインストールすると、サンプルプロジェクトがあらかじめ用意されています
。 サンプルプロジェクトは、アラームやトレンドなどの代表的な機能の画面があらかじめ組み込まれた状態で用意されています。独自のプロジェクトを開発する場合でも、このサンプルをひな型とすることで、各種主要機能を短時間で構築していくことができます。
また、サンプルプロジェクト以外にも”テンプレート”という形で、ユーザーが作成するグラフィック画面に背景のように配置できる画面も複数用意されています。
以下はシンプルなトレンド画面の例で、リアルタイムトレンド機能を持っています。日時選択による表示データ指定、表示スパンの変更、表示グラフ情報のCSVファイルに保存・印刷等、トレンドグラフに関する主な処理が実装されています。
図6. トレンド画面サンプル
テンプレート
上記のトレンド画面以外にもいくつかのテンプレートが用意されていて、トレンド画面の中でも複数のテンプレートが用意されています。
・メニュー画面
・アラーム画面
・トレンド画面
・サマリ画面
注意点
サンプルプロジェクトや用意されたテンプレートを流用すれば、比較的簡単に構築を行うことができます。ただし、ユーザー独自のグラフィック画面を作成する場合には、ユーザーで作成したプロジェクトに、サンプルプロジェクトやテンプレートから必要な部分だけを組み込む必要があります。
例えば、トレンド表示の場合、サンプルプロジェクトやテンプレート画面には、グラフ表示、スケール表示/選択などがそれぞれ部品化されて配置してあり、必要なものをコピーして各設定を行っていきます。このとき、部品として登録してあるオブジェクトも全てユーザープロジェクトに組み込む必要があります。そのため、ユーザー独自のプロジェクトに組み込みを行うには、それなりのソフトウェア解析スキルが必要かと思います。
必要に応じて、Citectのプログラミング言語(Cicode)にて機能処理の実装を行います。
以下の例は、”INT_TAG”タグの値をインクリメントする関数となります。
図7. Cicodeエディタ
図8. 部品プロパティ設定
代表的な関数
Citectでは、文字列関数のような基本的な関数以外にも様々な関数が用意されています。そのため、特殊なことでなければ外部アプリを使用しなくてもCitect内で処理を実装することが可能です。 主な関数は以下の通りです。
Citectを使用するのは初めてでしたが、今までタッチパネルやSCADAを使用した開発に携わってきたので、比較的簡単にシステム構築することができました。
実際に使用してみて感じたことは、他のSCADAに比べてCitectは全体的に動作が軽い点と、Cicodeを使用すれば自由度が高い点です。もしCitectだけでの処理実装が難しい場合でも、外部からタグに読み書きを行うためのWindow用APIも用意されていますので、外部アプリで制御することもできます。APIを利用すれば、ユーザーでI/Oサーバーの機能を持ったアプリケーションを作成することなどもできます。
ただし、機能が多いため色々なことができるが、その分使いこなすのは難しいという印象です。使いこなすにあたり海外製品のため英語のマニュアルが多いので最初はなかなか入りにくい部分はあるかと思います。 そういった場合には、シュナイダーエレクトリック社との技術サポート契約を行うすることもできますので利用するのがよいかと思います。
今回ご紹介したのは基本的な構築方法ですが、Citectには様々な機能が用意されていますので、機会があれば色々と使用していきたいと思います。
(Y. R.)
関連ページへのリンク
関連するソフテックだより