CodeSys#Properties

今回はPropertiesについて書きます。

Properties とは?

Online Helpはいつもあなたの友達です。CodesysのOnline Helpによりますと…

Properties are an extension of the IEC 61131-3 standard and a tool for object-oriented programming. Properties are used for data encapsulation because they allow for external access to data and act as filters at the same time. For this purpose, a property provides the accessor methods Get and Set which allows for read and write access to the data of the instance below the property.

PropertiesはIEC61131-3標準のOOP拡張ツールです。Propertiesはデータのカプセル化として使われ、それを使うによって外部から内部のデータにアクセスすることができようになり、そして読み書き読みが同時行うことを防止します。PropertiesはGetとSetのMethodがあり、外部からそのProperties持ってる変数をアクセスできます。

ここからは質問です。
下は3つのルートがあります、どっちがアクセスできるでしょうか?

  1. FB4のInputをアクセスするルート
  2. FB4のInternal変数をアクセスするルート
  3. FB4のOutputをアクセスするルート
image.png

ちなみにCodeはこちらです。
image.png

コンパイルしたらVAR2だけはエラーが出てきますね。つまり、そのまま直接_FB4.VAR2はルール違反です。
image.png

プログラム

ここでPropertiesを作れば、VAR2がアクセスできるようになります。
Function BlockのところにAdd Object>Propertyを選択します。
image.png

名前決めて、Return typeはIntにします。Addをクリックし作成します。
image.png

そうすると、ValueVAR2の下にGetとSetが2つのPropertyがあります。
image.png

Online HelpにはGetとSetは以下のような説明があります:

When the Set accessor is called, the property is written. It is then used in the same way as an input parameter. When the Get accessor is called, the property is read. It is then used in the same way as an output parameter. Access is restricted by means of access specifiers, and the objects are marked accordingly.
When a property is accessed as read only or write only, you can delete the unneeded accessors.

Setが呼び出しされた場合、Propertyが上書きされ、Inputパラメタとして使われています。
Getが呼び出しされた場合、Propertyが読みされる、Outputパラメタとして使われています。
そして変数のアクセスはAccessによって制限されています。もし変数のPropertyが書きだけ・読みだけを設定したいのであれば、どっちかを削除すればよいです。

image.png

実装

ここで簡単な例を作ってみましょう。

FB4

プログラムは空ですね。今回のPropertyを使うの例はVAR2でございます。
image.png

Get

VAR2の値をValuveVAR2に渡す。
image.png

Set

ValuveVAR2の値をVAR2へ渡す。
image.png

OB125

もしSW1がONすればValueVAR2はSP1の値になります。
そしてSP2はValuveVAR2の値になります。
image.png

Get実際やってること

image.png

Set実際やってること

image.png

結果

Prop1.gif

はーい、お疲れ様です。

Footer_Basic

Find ME

Twitter:@3threes2
Email:soup01threes*gmail.com (* to @)
YoutubeChannel:https://www.youtube.com/channel/UCQ3CHGAIXZAbeOC_9mjQiWQ

シェアする

  • このエントリーをはてなブックマークに追加

フォローする