HOME > ソフテックだより > 第417号(2023年1月4日発行) 技術レポート「zenonの開発ノウハウについて〜プロジェクト編〜」

「ソフテックだより」では、ソフトウェア開発に関する情報や開発現場における社員の取り組みなどを定期的にお知らせしています。
さまざまなテーマを取り上げていますので、他のソフテックだよりも、ぜひご覧下さい。

ソフテックだより(発行日順)のページへ
ソフテックだより 技術レポート(技術分野別)のページへ
ソフテックだより 現場の声(シーン別)のページへ


ソフテックだより 第417号(2023年1月4日発行)
技術レポート

「zenonの開発ノウハウについて〜プロジェクト編〜」

1. はじめに

私はソフテックに中途入社して4年目の社員です。2021年に所属グループの変更があり、その時からzenonを用いたシステム開発へ携わっております。
zenonはCOPA-DATA社が提供する工場向けのソフトウェアプラットフォームです。装置や設備からデータを取得し表示やデータ管理をするSCADAの機能はもちろん、データのライフサイクルを通じてデータインテグリティを確保することができるシステムです。
zenonは単体装置のHMIや制御端末としての活用から、全体統合監視としての活用、web配信、MESやクラウドとの連携などなど多くのシステムを柔軟に構成することができます。

クリックで拡大
図 1. システム構成例のイメージ

zenonについての詳しい説明は日本の総代理店である株式会社リンクスのサイトをご覧ください。
URL:https://linx.jp/product/copadata/zenon/

zenon構築の紹介を始めると膨大な量になりますので、今回はzenonのシステム構築の初めになるプロジェクトについての一部分を紹介いたします。

2. プロジェクトについて

zenonでは構築内容をプロジェクトとよばれる単位で管理します。zenonのプロジェクト間でデータをやり取りすることもでき、後述するプロジェクトの階層化を行うことで、各装置上のzenonプロジェクトから上位サーバー上のzenonプロジェクトへデータを統合するといったシステムを構築することも可能になっています。

3.  Engineering Studioについて

Engineering Studioとはzenonの各種設定を行うツールになります。
上部には様々なツールバーがあり、機能へ素早くアクセスすることが可能です。画面左側にはプロジェクトマネージャに一覧表示されたプロジェクトを含むワークスペースがあります。

クリックで拡大
図 2. Engineering Studio画面

3-1. ワークスペースについて

ワークスペースには複数のプロジェクトを含めることができます。
左上のウィンドウはプロジェクトマネージャとなっており、プロジェクトのツリーが表示されています。プロジェクトマネージャの横にあるウィンドウは選択したモジュールの詳細が表示されるビューになります。例えば、変数を選択するとプロジェクトに登録された変数の一覧、スクリーンを選択するとプロジェクトに登録されたスクリーンの一覧が表示されます。右側のウィンドウはエディターとなっており、メインのワークスペースになります。例えば、登録されているスクリーンを選択して開くと、スクリーンの内容が表示され、スクリーンに対して、エレメントの追加や削除などを行うことができます。左下のウィンドウには選択したオブジェクトのプロパティが表示されます。プロジェクトが選択されている状態だとプロジェクトのプロパティ、何らかの変数が選択されている状態だとその変数のプロパティ、となります。右下のウィンドウは簡易のヘルプとなっており、プロパティの項目を選択すると、項目の説明が表示されます。

4. プロジェクトについて

プロジェクトの各種設定を行うことで目的の構築を行います。今回はその中でもよく使われる項目について、簡単ですが、紹介いたします。

4-1. 設定可能な項目

4-1-1. 変数

変数の登録、設定の変更を行うことができます。変数は変数単体、構造体、配列として作成できます。変数の新規作成の際には、変数名、ドライバー設定、データタイプなどを指定します。その中でドライバー設定については、デフォルトで内部変数、システム変数、演算変数の3種が入っていますが、PLCとの接続用の特有のドライバーについては、追加する必要があります。

変数の作成画面
図 3. 変数の作成画面

プロパティでは、変数名、変数IDや単位、最大値、最小値、小数点の設定など基本的な設定を行うことができます。PLCドライバーを設定している場合には、レジスタの種類、アドレスなどもプロパティで設定を行います。また、リミット値という変数の値が指定した条件になった場合に、アラームを発生させたり、ファンクション(後述)を設定して何らかの処理を行ったり、という設定を行うこともできます。

◇ドライバー
変数ツリーを展開するとドライバーの項目があります。
ドライバーの新規作成を選択すると、登録できるPLCドライバーの一覧が表示されます。作成したいPLCドライバーを選択、ドライバー名称を入力することでドライバーは新規作成されます。新規作成されたPLCドライバーをダブルクリックすると、PLCドライバーの詳細設定を行い、zenon上でPLCドライバーとして利用することができるようになります。

◇ アラームイベント グループ/クラス
アラームが発生した場合のアラームグループ、クラスの観点から設定することができ、変数のリミット値の設定でアラーム発報の有効化、アラームイベント グループ/クラスを設定することで、アラーム発報を行うことができるようになります。また、アラームイベント グループ/クラスごとにファンクション(後述)を設定することができ、アラームが発生した場合にブザーを鳴らす、などの処理を行いたい場合に使用します。

4-1-2. スクリーン

スクリーンの登録、表示内容の変更を行うことができます。エディターウィンドウにて画面で表示するテキスト、オブジェクト、ボタンなどの追加、削除などを行います。スクリーンを新規作成する際に、スクリーンタイプを選択することができ、画面で処理したい内容に応じてスクリーンタイプを指定します。例えば、アラームの一覧を表示するためのスクリーンを作成する場合には、スクリーンタイプは「アラームメッセージ リスト」を選択することで特有の機能を有したスクリーンを作成することができます。

クリックで拡大
図 4. スクリーンの作成画面

4-1-3. ファンクション/スクリプト

ファンクション/スクリプトの登録、設定の変更を行うことができます。ファンクションは何らかの制御処理を行う設定であり、変数の値変更、スクリーンの展開を行う、などの設定を行います。基本的な用途としては、ボタンのエレメントに設定することで、ボタン押下時に設定したファンクションの動作を実行する、という流れになります。また、ボタン押下時などに複数の処理を一括で実施したい、というケースが発生することと思います。その際にはスクリプトを実行することとなります。スクリプトは複数のファンクションを一括で実行するためのオブジェクトとなっており、複数のファンクションを登録し、そのスクリプトを実行することで複数のファンクションを一括で処理させることができます。

ファンクションの作成画面
図 5. ファンクションの作成画面

4-2. プロジェクトの階層化について

3-1章でも説明した通り、1つのワークスペースに複数のプロジェクトを含めることができます。作成した段階では、他のプロジェクトと同じ階層に登録されますが、他のプロジェクトに属させることで、プロジェクト同士を親子のような関係で構築することも可能です。
やり方はプロジェクトを選択し、関係を構築したいプロジェクトに対してドラッグ&ドロップします。そうすると、選択した側のプロジェクトが選択された側のプロジェクトツリーの下側に表示されるようになり、操作が完了となります。

プロジェクト階層化(操作前/操作後)
図 6. プロジェクト階層化(操作前/操作後)

5. おわりに

いかがでしたでしょうか。今回紹介した内容は一部であり、実案件では目的の要件に合わせ、様々な設定を行うことになります。
はじめにでふれました通り私自身zenonに触れて1年弱であり、私自身まだまだ習得中の身であります。

そんな中でも今回の内容がzenonを知るきっかけになっていただけたら幸いです。

(T.M.)

[注釈]
データインテグリティとは
すべてのデータがライフサイクルを通じて一貫性を保ち、完全かつ正確であることを意味します。「データの完全性」とも訳され、製薬業界において遵守が求められている概念です。

関連ページへのリンク

関連するソフテックだより

ページTOPへ