Beckhoff#TwinCAT CFC Basic-1

今回の記事ではBeckhoff TwinCAT3でCFC言語を使用したプログラムを作成する方法を紹介します。まずは簡単な部品から話しましょう。

CFCとは?

CFCは”Continuous Function Chart”という名前で、IEC61131-3の拡張です。

Userが簡単な線繋がり、部品追加、パラメータ振り分けの操作でプログラムを作成できます。もちろんCFC SHEET内Function Block・Functionも使用できます。

SiemensではS7-400でCFC言語を使用し複雑なプロセス処理を簡単に分別・まとめます。(最近はTIAV17にも使用できるらしいが、ライセンスが必要)

CFC Editorでは部品の位置が自由配置でき、処理の順番も自由設定が可能です。部品の追加はMouseでDrop and Play、InputとOutputのPinsは線繋がりの感覚で完結します。

今回説明するのはBox・Input・Output・Connection Mark・Commentになります。

Activate Tools Bars

View>Toosbars>TwinCAT PLC CFCをクリックします。

Options

CFC Editorに設定を変更したいなら、Tools>Optionsをクリックします。

TwinCAT>PLC Environment>CFC Editorで設定を変えてください。

Activate Toolbox

View>Toolboxをクリックします。

そうすると、右側にToolboxが表示され、CFC プログラムするに必要な部品が表示されます。

Add New Porgram

では新しいPOUを作成し、CFCプログラムしてみましょう。

Implementation LanguageをCFCとCFC Page-orientedのどちらかを選択しましょう。今回の記事は一番基本のCFCだけにします。

CFC Editorも自動で開きました。

Box (Function Block)

Box 部品はFunction・Function Block・Operatorを定義できます。DefaultではBoxをCFC Sheetに挿入すると???の名前になります。そのあとに直接入力するかinput assistant経由で入力できます。このExmapleではIEC Timer TONを作成します。

Toolbox>Boxを選び>左にひっばります。

先ほど説明した通り、Defaultが???になっています。

Method1-input assistant

???をクリックすると、右に白いボタンがあります。

そのボタンからinput assistantが表示され、該当するBoxにFunction Blockを振り分けます。

Method2-Directory Input

???直接Function Blockなど入力もOKです。ここにTONを入れます。

そうするとBoxがTONになり、InstanceはTON_0です。

Input

Boxでは左側がInputで、右側がOutputになります。先ほどTONのBoxが追加されましたが、IN/PT/Q/ETもまだ振り分けてません。これからINPUT部品を入れBoxのInput側と繋がります。Input部品がDefault追加されたときは???です。

Toolbox>Inputを選び、CFC Sheetにひっばります。

先に説明した通り、InputのDefaultは???です。

そのInput部品の線をそのままTON BoxのINにつながればOkです。

下記のGIFのように!

それでINPUT部品はTON_0 BOXのIN Pinと繋がりました。

次は???のところをクリックします。

変数を入れて完成です。

簡単明瞭ですが、いまTON_0はbInとINが繋がってて、PTはT#3s設定されています。

Output

Boxでは左側がInputで、右側がOutputになります。先ほどTONのBoxが追加されましたが、IN/PT/Q/ETもまだ振り分けてません。これからINPUT部品を入れBoxのInput側と繋がります。Input部品がDefault追加されたときは???です。

次はOutput 部品を追加します。先も書いたがBoxでは左側がInputで、右側がOutputになります。いまからこれからOUTPUT部品を入れ、BoxのOutput側と繋がります。Output部品がDefault追加されたときは???です。

Toolbox>Outputを選び>CFC Sheetにひっばります。

前にも書いてたが、Default???のOutput部品がSheetに追加されました。

先Input部品と同じように線と線をつながればよいのです。

でもいまはすべてのInput/Ouput部品も揃えました。

RuntimeにDownloadします。FBDやSTやSFCと同じように現在値をMonitorできます。

Result

True/Falseに切り替えるにはFBDやSTなどと同じくダブルクリックすればOKです。

bInをTrueになると、TONが3s後にONなります。

Add More Box

もう少し複雑なプログラムを作成しよう。ToolboxからさらにBoxをもう1つCFC Sheetに追加します。

AND Logic Blockを追加します。???のところにANDをそのまま入力すればAND LOGIC Blockに変換します。

AND Blockが追加されました。

AND Logicは比較するLogicは常に2つとは言えません。例えば3つ目の条件や4つ目の条件を追加したいときはLogic Blockを右クリック>Pins>Add Input PinすればOKです。

このように、いまAND Logic BlockはInput pinsが4つになりました。

少しロジックを変更し4つのBool デバイスをAND Logic BlockのInput Binに割り当てます。つまりいまbInをTrueするにはArrayBIns[0]から[3]まではTrueする必要があります。

Result

結果はAND Logicの動作そのまま通りになります。

Source/Target

次はConnect MarkのSourceとTargetについて説明します。その部品を使用することにより、複雑なロジックを簡単にまとめてUserにみやすくすることができます。

Connect Markというのは部品間で直接Lineで接続する代わりにために使われています。

Connect Markが追加されたときDefaultは ”C-<nr>”です。そのnrは番号だと思ってください。1からCountします。もちろんUserが自由にそのConnection Mark名を変更でき、TwinCATが便利なところはSource のConnection Mark名を変更すると、該当するTarget Connection Markを自動的に反映します。(でもTarget Connection Markの名前を変更してもSource Connection Markが自動反映しませんので)

Source

Sourceは英語の名前通り、他の部品のOutputとして繋がります。

Toolbox>Connection Mark-Sourceを選び>CFC Sheetに貼り付けます。

先に書いてた通り、DefaultはC-<nr>になります。

AND Logicの出力にそのSource Connection Markと接続し、名前をArrayBins0_4ONに変更します。

Sink

Sinkは英語の名前通り、他の部品のInputとして繋がります。

Toolbox>Connection Mark-Sinkを選び>CFC Sheetに貼り付けます。

???のConnection Mark-Sinkが追加されました。

そのように入力すれば自動補完ができます。

では先追加したArrayBins0_4ONと接続します。

いまの状態ではAND Logicの出力はArrayBins0_4ONのSource Connection Markに接続し、TON_0のINに再利用します。

Result

結果はまったくおなじです。

Comment

今回の記事では、最後にComment部品を説明します。Comment部品はプログラムの説明に役に立ち、改行するときはCtrl+Enterです。

Toolbox>Commentを選び、CFC Sheetに貼り付けます。

このようにComment部品が追加されました。

Comment部品を選択すると文字入力できます。

簡単なCommentを入れましょう。

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

シェアする

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

フォローする