Mitsubishi#GXWorks_Global VAR,Local VAR

みんなさん、お早うございます。この2週間はずっと三菱PLCの仕事をされGXWORKSを色々いじってみたり余計な発見が結構ありました。うちはいまシーメンスがメインなのでどうしてもなにもBlock化したくてできるだけアドレスを入力するのは避けたくて…(私はアドレス入力凄く苦手で間違ってるときが多くてね。)ではでは、これからGXWorksのGlobal VARとLocal Varについてちょっとメモしますね。

言葉の意味通り、

Global Varはプログラムの中に他のBlockでもアクセスできるの変数です。例えばAIモジュールの変換結果、PIDの数字などはGlobal Varのほうが便利でしょう。

Local Varはつまり自分自身のBlockでしかアクセスできないの変数です。例えば途中の演算結果などは外のBlockでアクセス必要がないからLocal Varで充分…と思ったら!ここで、GXWorksがFunction Blockというものもあります!

Function Blockはつまりプログラムをカプセル化するものです。中身を気にせず必要なINPUTを入れれば演算し結果をOUTPUTしれくれます。そうすると同じな演算(例えばアナログからデジタルに変換する)のは50回があって、単なるBlockをCtrl+CとCtrl+Vで、INPUTとOUTPUTデバイスを変えれば終わります。ここでFunction Blockが一番気になるのはMemoryが必要です。Blockの中に演算結果なども保存する場所が必要でここで”呼びされるProgramのMemomry”を使うか、それども”Global変数として保存するか”の選択肢が出てきます。

m12

プロジェクト新規作成します。

プロジェクト種別はシンプルプロジェクトを選択したら、ラベルを使用をCheck入れてください。じゃないとラベルさえ使えません。一番古いのアドレスかつかつ入力の方法しかできなくなります。

m1

ここでプログラム部品→FB管理の中にFunc_Block1を作りました。

m3

これはFunc_Block1のInterfaceです。
VAR_INPUT-IN1、Bool。
VAR_OUTPUT-OUT1、Bool。
VAR-Contructor、いまは無視しておきましょう。
VAR-Ins1-Func_Block1の中の変数。Func_Block1が定義されるときGlobalかLocalかによってアクセスできるかどうかに変わります。

m2

今回はあくまでもTEST用なので簡単なプログラムで実験します。

m4

そのあとにプログラム部品→ブログラム→MAIN1を新規作成します。

m5

パラメータ→PCパラメータ→プログラム設定でMAIN1もスキャンサイクル入れます。

m11

MAINのところにFBを引っ張って呼び出しましょう。ここでは大事なポイントです。ローカルラベルかグローバルかに設定できます。ここで1個つつ追加します。

m7

コンパイルとCPUへダウンロードし、RUNします。
ここで見えるのはM3がONになりますと、Func_Local.IN1、Func_Local.OUT1、Func_Local.Ins1、もONに見えます。

BlockName.VarName

これがFunction Blockの変数のアクセス方です。ですが、Func_LocalはLocalなので、つまりMAINの中だけで使えます。MAIN1はアクセスできません。

m8

今度はM4をONします。Func_Global.IN1、Func_Global.OUT1、Func_Global.Ins1、もONに見えます。うん?なにが違うですか?

m10

これはMAIN1のプログラムです。つまり、別のプログラムでもMAINで定義されたFunc_Global変数使うことできます。アクセス方は同じ:

BlockName.VarName

注意するのは三菱のFBは構造体、配列をVAR_INPUT、VAR_OUTに定義するとコンパイルできますか、実際プログラムの中に呼び出してみるとエラーになります。ここだけですね!

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

シェアする

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

フォローする