PLCopen

OPC UA IEC 611311-3(PLCopen)はPLCの情報モデルです。PLCopenはPLCのプログラミング言語を標準化する規格であるIEC 61131ファミリの3番目のプログラミング言語をOPC UAにコンバートしたCSです。よってIEC 611311-3及びOPC UA DIの基礎知識が必要になります。IEC 611311-3の解説はCS内でされています。CSはObjerctType、ReferenceType、DataType、Methodが含れますが、Eventは含まれません。

EmpressはPLCopenの概要を学ぶための無料セミナーを開設します。興味のある方はEmpressにコンタクトして下さい。

PLCopenの概要

IEC 61131-3の仕様ではデータタイプが定義されています。一般的なデータ型はブール、整数、実数、バイト、ワードですが、日付、時間の日などですが、 派生データ型と呼ばれる独自のデータタイプを定義できます。これらを使用しアナログ入力チャネルをデータタイプとして定義することができます。

CtrlVariableはCtrlConfiguration、CtrlResource、CtrlProgramにより入力と出力などのハードウェアアドレスに割り当てられます。CtrlVariableの適用範囲は宣言されている部分に制限されています。つまり、宣言名は競合することなく他の部分で再利用できます。 CtrlVariableがグローバル範囲を持つ必要がある場合は、VAR_GLOBALで宣言する必要があります。CtrlVariableは正しい設定をするために起動時とコールドリスタート時に初期値を割り当てます。

制御に関わる問題を解決するために必要なソフトウェア全体をCtrlConfigurationとして定義します。CtrlConfigurationはハードウェアの配置、つまり処理リソース、I / Oチャネルのメモリアドレス、システム機能など制御システムに固有の定義です。

CtrlConfigurationは1つ以上のCtrlResourceを定義できます。CtrlResourceはCtrlProgramを実行できます。

CtrlResource内で1つ以上のCtrlTaskを定義できます。CtrlTaskはCtrlProgramやCtrlFunctionBlockの実行を制御します。これらは定期的に実行することも、CtrlVariableの変更など、指定したトリガーが発生したときに実行することもできます。 CtrlProgramは定義したプログラミング言語で記述されたソフトウェアから構築されます。通常、CtrlProgramはCtrlFunctionとCtrlFunctionBlockで構成されます。CtrlFunctionとCtrlFunctionBlockはデータ構造とアルゴリズムを含む基本的なブロックです。

61131-3ではCtrlProgram、CtrlFunctionBlock、CtrlFunctionはCtrlProgramOrganizationUnits(POU)と呼ばれます。

IEC 61131-3では標準のCtrlFunctionとユーザー定義のCtrlFunctionの2つが定義されています。標準のCtrlFunctionは、たとえば、ADD(ition)、ABS(absolute)、SQRT、SINus、COSinusです。 ユーザー定義のCtrlFunction6は一度定義すると何度でも使用できます。

PLCopenのインスタンスの概要

このObjectTypeはOPC UA AddewssSpaceでのプログラマブルコントローラーシステムのCtrlConfigurationの表現を定義します。CtrlResourceとさまざまなタイプのCtrlVariableをグループ化するオブジェクトを紹介します。CtrlConfigurationTypeはDIで定義されたDeviceTypeから派生します。図13はCtrlConfigurationTypeを示しています。これは表7で定義されています。図の濃い灰色のNodeは例でありObjectType定義の一部ではありません。

CtrlConfigurationTypeのDefinitionは下記の通りです。CtrlConfigurationTypeはTopologyElementTypeのSubTypeです。HasComponentのObjectとしてMethodSetからStatusまでで構成されています。ModellingRuleはResourcesはMandatoryですが、その他はOptionalです。

CtrlConfigurationType ObjectTypeはConcreteですので直接インスタンス化します。ベンダーまたはユーザーは固有の構成のサブタイプを作成することをお勧めします。

具体的なCtrlConfigurationTypeまたはインスタンスはDIのTopologyElementTypeに対して定義されているように、ParameterSet、Parameters、FunctionalGroupsを含めることができます。

MethodSetはTopologyElementTypeによって定義され、CtrlConfigurationTypeで上書きされ、CtrlConfigurationTypeに対して定義されたMethodにHasComponent のReferenceとして追加します。

Object ResourceはCtrlConfigurationの一部であるCtrlResourceをグループ化するために使用されます。これにはDIの概念が適応されます。 CtrlResourceを表すCtrlResourceTypeのObjectとCtrlConfigurationでインスタンス化するCtrl Resorceタイプを含むフォルダーが含まれます。完全な構成としてIEC 61131-3の観点からは少なくとも1つのリソースが必要ですが、OPC UAの観点では必要ありません。Configurationのプロセス中は一時的に不完全な構成が許可されます。

FunctionalGroup GlobalVarsにはキーワードVAR_GLOBALによって宣言されたCtrlVariableに対応するリストが含まれています。

FunctionalGroup AccessVarsにはキーワードVAR_ACCESSによって宣言されたCtrlVariableの対応するリストが含まれています。

FunctionalGroup ConfigVarsにはキーワードVAR_CONFIGによって宣言されたCtrlVariableの対応するリストが含まれています。

FunctionalGroup構成にはstartやstopなどのconfiguration VariablesとMethodが含まれています。

FunctionalGroupステータスにはシステム変数、ステータス変数、診断コードなどの診断およびステータス情報が含まれています。

Ctrl Configurateionを開始するとグローバルCtrlVariableが初期化されすべてのCtrlResourceが開始されます。 Ctrl Configurateionを停止するとすべてのCtrlResourceが停止します。