デバッグするときにデバイスがプログラム内でどこ使用してるかを検索するとき、みなさんよく使ってるのはそのCross Reference ですね。
Hot KeyはCtrl Eです。
実際はこのようなデバイスリストが出てきますが、少しみづらいですよね。
そこでDataflow Analysis機能を使ったことがあるでしょうか。
Data Flow Analysis
Dataflow AnalysisはCross Reference よりもう少しデータの流れを意識して作られたツールです。下図のようにデータが注目した変数を中心として値がどこから流れてきたか、どこへ流れていくかをDiagram感覚で表示します。
Project Stucture
Initial
OB100
起動するとき変数値を0.0に書き込みます。
Scan
pou_ST
Functionを呼び出したり転送したりするプログラムです。
pou_Ladder1
三菱によくある簡単ラダー言語で、単なる2つのA接点により変数の書き込み値が異なります。
pou_FBDLD1
慣れない方が多いかもしれませんが、構造化FBD/LDです。Beckhoff/Siemens/Codesys/PLCNEXTなどのドイツメーカーの標準ラダーFormatです。
変数を実数から整数に変換し、最後は足す50のプログラムだけです。
pou_Ladder2
三菱によくある簡単ラダー言語で、もう少し条件判断を入れ、論理結果により変数の書き込み値が異なります。
pou_Ladder3
三菱によくある簡単ラダー言語で、もう少し条件判断を入れ、論理結果により変数の書き込み値が異なります。
FB/FUN
FC_UnitChange
STのプログラムで呼び出しされたFunctionになります。
Global Label
今回追跡するGlobal変数です。
Try Dataflow Analysis!
では実際にDataflow Analysisを使ってみましょう。調査したい変数やデバイスを右クリック>Dataflow Analysisを選択する、もしくはCtrl + Shift+ Eします。
そうすると、Defaultで画面の下にDataflow Analysisツールが表示されています。
Browse it
次はそのEMOVの隣にある+ボタンをクリックしてみます。
JumpそうするとそのGr32ValueのEMOVEがどこのプログラムから流れ込んでたのかわかります。以下の例だとpou_Ladder1からE50をEMOVE関数使用し、Gr32Valueに書き込むことがわかります。
実際クリックすると、該当するプログラムに飛んできます。
Flow View
Dataflow Analysisのメリットとしてはその与えがどごから流れ込んでたを最初から最後までを追跡することが可能です。以下の例だとLadder1のGarr16Bool[2]の論理よりEMOVをE34.2を書き込む、そしてOB100のプログラムからは0.0をさらに書き込み、そしてGArr16Bool[5]、GArr16Bool[6]、GArr16Bool[7]の論理結果によりE-関数実行するの流れになります。
View Direction-write
次は信号流れの方向ですが、左側は書き込みされる側です。
Vew Direction-read
そして右側は読み込まれる側になります。
View in read direction
では今度読み込む側をみてみましょう。Dataflow Analysisもう1つのメリットはプログラム言語にこだわらず、Functionに混じってるところでも全部一覧できます。例えば下記の例だとGr32ValueはFC_UnitChangeの関数のInputパラメタとして表示します。
実際Gr32Valueはどこで使用するか一覧できます。例えばFunctionのパラメタとして使うとか、D502:Eに転送したり。
Monitoring
Dataflow Analysisツール上で変数をMonitorすることできます。
画面右クリック>Monitor>Start Monitoringします。
画面が灰色になり、Dataflow Analysis内に関連してる変数の現在値が表示されています。
Update
ツールで右クリック>UpdateするといまのDataflow Analysis図を更新できます。
Bookmark
Bookmark機能を使用することにより大事なプログラムに常にアクセスすることができます。Bookmarkしたい変数を右クリックし>BookMarkします。
GXWORKSの左にBookmark Tabが表示されます。
そしてBookmarkされてるプログラムが一覧できます。
わかりやすくするために、Bookmark>右クリック>Chnage the Bookmark NameでBookMark名を変更できます。
そしてクリックするとBookMarkのところに飛び出すことができます。
Display
変数の現在値の表示Fomratを変更できます。
右クリック>DEC/HEX 10進数・16進数を切り替えます。
Move to base Point
Dataflow Analysisを使用すると迷子になりやすいので、右クリック>Move to Base PointするとOrigin Pointに戻すことできます。
Change Monitor Signal
最後は左上で別の変数を入力するとMonitorする変数が変更できます。