HTP#Part04_Taskscript – Extract/Logic Gate/Temp Variables

HTP Junction BOX PLCとTaskscriptのTutorial第4話です。今回は前回の記事とほぼ同じ制御ですが、プログラムは別の方法で組みます。

各Stepは直接出力するのではなく、一旦各StepにもStep番号振り分け、該当するStepに当たって必要な出力を制御するようにします。

さ、はじめよう!

Reference Link

HTP#Part01_Junction BOX PLC Openbox
HTP#Part02_Junction BOX with Taskscript‐ Create new project
HTP#Part03_Taskscript‐ Local Variables/Delay Operator

Implementation

こちらのLinkで前回のTutorialのプロジェクトをDownloadできます。今回の記事ではこのプロジェクトから作成していきます。

https://github.com/soup01Threes/Taskscript/blob/main/char03.hgr

Define Global Variable

Global変数を追加します。

Word Keepをプロジェクトに追加します。

Done!

ダブルクリックし、Word Keep部品の設定を行います。

Variable NameをSubseq1Wordにします。

Done!

Edit Subseq

次はSubseqを編集します。

こちらが前回のTutorialのFlowです。

これから各Step内に直接出力を制御するプログラムを削除します。

こちらは前回Step制御です。

Delete the original Action

各StepにTrue/Falseで直接すべての出力と繋がってるOutput Lineを削除します。

Done!

Assign Values to  Global Variable

この代わりに、Step0なら0x0、Step1なら0x1のようにStep番号を振り分けます。Word Valueを追加します。

Done!

次はWord ValueとGlobal変数と繋がりましょう。

Done!

Using Hex Value

HEX Valueを直接使用したい場合は0x04のように設定すればOKです。

Insert New Task Model

新しいTask Modelを追加するため、プロジェクト名>右クリック>Open Context Diagram Editorをクリックします。

右のToolbarからTask Modelを追加します。

Done!新しいModelTM_1が追加されました。

Rename it

プログラムするには、わかりやすい変数名は基本中の基本です。新しいTask ModelをOut_Seqと命名します。

Edit the Model

Task Modelを右クリック>Open Task EditorでTaskを編集します。

Insert Step

下図のようにInitStepとStep部品を1つずつ追加します。

Rename it

Stepをわかりやすいように変更します。

Create Infinite Looping

Task Modelに無限Loopを作成します。つまり無条件でOutSeq0>OutEND>またOutSeq0に戻るようにします。

Insert Word Local Keep

今度はまたLocalのKeep 変数を追加します。右にあるToolbarからWord Local Keep部品を追加しましょう。

Done!Word Local Keep部品が追加されました。

Word Local Keep変数をLocalTemp_Stepという名前に変更します。

Insert Bit Local Temp

今度は右のToolbarからBit Local TempをTask Modelに追加します。

Done!

Bit Local Temp部品の名前を変更します。

Flowに書いた通り、6つのTemp変数を追加します。

Edit Step

OutEndを選択し>右クリック>Open Step Editorします。

こちらは今回編集するStepになります。

Assign Value to temp Variables

Global変数Subseq1Wordの現在値をローカル変数LocalTemp_Stepに格納します。

それはPLCでよくある制御回路を実行する前にまず必要な変数を別のデバイスに移す動作です。

Done!

Edit the Path

部品で繋いてるLineを整理整頓するためにLineを右クリック>Edit Path>HVHVH Pathします。

Done!

Access the Global Variables

Word Variable Name部品を追加します。こちらの部品はプロジェクト内の変数をTask Modelにもっと自由にアクセスできるように作られた部品です。

Done!

部品を編集するためにダブルクリックします。

Choose Variable

該当するWord Variable 部品と紐つける変数を設定できます。

Local Name

こちらはStep内にその変数の表示名を設定できます。
Defaultでは<Same as variable>で、つまり紐付けられた変数と同じ表示ですが、変数名が長くなる場合はこの機能使えばプロジェクトの可読性をUpできます。

今回はTemp1にします。

Done!Temp1という変数が追加されました。

Access the Bit inside the Word

次はTemp1のBitを単体にアクセスするため、Extract部品を追加します。

Extract部品が追加されました。

Extract部品をダブルクリックすると、Value of Constant Indexという設定項目があります。

Value of Constant Index

こちらはWordの何Bit目のTrue/Falseを取得するかを設定します。

0ならBit0になります。

いまBit0とBit6にアクセスするようになります。

Connect 

Temp1とExtract部品を繋がります。

Done!いまTemp1のBit0とBit6を取得するようになりました。

Create the OR Logic

今度はOR Logic部品を追加します。

Done!OR Logic部品が追加されました。

次はTemp1から取り出したBit0とBit6のTrue/False値をOR Logic部品のInputと繋がります。

Done!

ラダー図からではこのような回路になります。

次はOR Logicの結果をLocalTemp_1の入力と接続します。

Done!

ラダー図からではこのような回路になります。

The End Flow

こちらは今回記事で完成したプロジェクトFlowになります。

IF More than 3 Conditions in One OR Gate…

注意する点は3つ以上のOR Logicが同時に繋がりたいとき、下図のように2つのOR Logic部品で分けてください。

Call the Model

最後はTask Modelを呼び出すため、プロジェクト>Open Context Diagram Editorします。

Main>右クリック>Open Task Editorします。

先程追加したOutSeq Task Modelを追加しましょう。

Result

こちらの動画でFlowの動作を確認できます。

Download

今回のプロジェクトを下記のGithub LinkからDownloadできます。

https://github.com/soup01Threes/Taskscript/blob/main/char04.hgr

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

シェアする

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

フォローする