Codesys#CFCにComposerとSelector使う

今回はCodesys CFC言語の中にあるComposerとSelectorの使え方について紹介したいと思います。CFC言語の基本については下記のLINKでお願いします。

Codesys#CFC Programming

Composer

CodesysのOnline Helpからみると、


https://help.codesys.com/webapp/_cds_cfc_element_composer;product=codesys;version=3.5.13.0

The composer element is for handling structural components. The individual components of a structure are made available to you as an input. For this purpose you must name the composer element like the structure concerned (replace the ???).
The composer element is the counterpart to the selector element.

うんうん、つまり、composerは構造された変数を扱うために使われるもので、そして構造された変数を個別扱えるよう、BlockのInputとして使えるように作られたもの、です。なので、composerを使うとき???というMarkがついてて、その???をあなたが定義した構造体に入力する必要があります。

では、まずDUTを作りましょう。
Application>Add Object>DUTを。

このあたりは適当でOKです。NameはmyDUTにします。

中身は実数、Bool、整数、など色々なテスト用の変数を作ります。

次はFunction Blockを作ります。

Application>Add Object>POUを。

Function Blockの名前あmyFBにします。(まぁ、適当でOKですよ!)

そして、myFBの中にInputを先定義したDUTを”inVar”として追加します。

OutputはDUTと同じなものでOKです。

FBのプログラムは入力された変数はなにかしらの変更し出力にします。

次はToolboxからEmpty Boxを引っばってきます。

???を先作成したmyFBにします。

先myFBを定義したInterfaceがそのもの出てきますね。

次はToolboxからComposerを引っばってきます。

そして…というボタンをクリックします。

Input AssistantのPop Upが出てきます。

その中にmyDUT-最初に定義した構造体に割り付けます。

そうすると、Composerの部品が勝手にmyDUTの中身を”ばらして”くれます。

赤のエラーついてるのは、もちろん、Inputをちゃんと割り付けてくださいのことです。

なにかしらの変数を全部ふってあげましょう。

もちろんそれだけじゃおわりません。

Composerの出力をちゃんとmyFBの入力として接続しましょう。

CPUにプログラムをダウンロードし、結果を見ましょう。

Selector

次はSelectorを見ましょう。簡単にいうと、SelectorはComposerの逆操作って感じです。

Composerはばらばらの変数を構造体としてまとめてくれるの代わりに、Selectorは構造体をばらして出力してくれるのイメージです。

実験するために、myFB2を追加します。

中はあまりわかりません、出力も構造体するだけです。

プログラムも入力された変数をなにかしらの変化で出力します。

ToolboxからSelectorを引っばってきます。

…のボタンをクリックします。

同じく、Input AssistantのPop-upが出てきます。myDUTを選びます。

SelectorはmyDUTが入力すれば、myDUTが持ってる変数たちをばらしてくれるようになります。

ここで先作ったのComposerを一緒に使います。

結果を見てみましょう。

はーい、お疲れ様です。

なにかあったらコメントしてね。

Footer_Basic

Please Support some devices for my blog

Amazon Gift List

Find ME

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

シェアする

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

フォローする