LoginSignup
4
4

More than 3 years have passed since last update.

三菱PLC#構造化プロジェクトについて

Posted at

最近三菱のgxworks 2使って色々悲鳴が上がっててね。今回はまずこのくそ仕様を一回洗い出しにしたいと思います。ラダー自体が、構造体をinput output inout宣言することできて、でもラダーの中に呼ばされたらコンパイルエラーになる様々なくそ仕様。。

  • ラダー
    • まぁ、普通のラダーです。
  • 構造体ラダー
    • ラダーみたいだけど、Siemensのような書き方になる。
  • ST
    • 私が一番愛してるの言語です。
  • SFC
    • 今回の記事は、対象外です。

呼び出しルール

image.png

呼び出しの制限

image.png

ラダー

ラダーからラダー(1層まで)

例えばプログラム部品の中にMyLadderというプログラムがあります。
image.png
FB_Ladder1の中身はこれしかないけど。
image.png

ラダーからST

FB/FUNの中にMyST1があり。
image.png
MyST1の中にはこれしかないけど。

myOUT:=myIN;

それもOK。
image.png

ラダーから配列あるのST

FB/FUNの中にMyST2があり。
image.png

Interfaceが配列が入っています。
image.png

それはNG。WTF?構造体、配列などCALLできない?どういう思想なの?まぁ、NGです。
image.png

FBラダーの中にSTをCALL

今度はFB_Ladder1の中に、MyST1を呼び出してみます。
image.png

呼び出すことできるが、コンパイルするとエラーが出る。Point4ですね。
image.png

Function

Functionを呼び出してみます。
image.png
そもそも呼び出すこと自体も許されない。
image.png

構造化FBDをCALL

STなどのBlockがもうCallされたら、このエラー出ますが。。
image.png
ですが、新規の、新しく作った構造化FBDならCALLはできる。うん~
image.png

構造化FBD

image.png

ラダー呼び出し

うん、もちろんラダーのFucntion Blockが呼び出しますね。
image.png

ST Function Block呼び出し

OK。
image.png

ST Function Block(Arrayあり)

ほ、InterfaceがArrayも含めてるのST Function Blockも呼び出しOKね。
image.png

Function

Functionも呼び出しできますね。
image.png

Function、戻り値が配列

今回はちょっと意地悪して、戻り値を配列してみます。
image.png
それでもいけますね。
image.png

構造化FBDのFunction Block中に構造化FBDをCall

それもOK。
image.png

どうやら制限ないのは本当ですね。

ST

最後、STも一回やってみます。
もちろん、全部OK。さすが!

(*Ladded Function Block*)
FB_Ladder1_1(in1:= M1 ,out1:= M2 );

(*ST Function Block*)
MyST1_1(myIN:= M2 ,myOUT:= M4 );

(*ST Function Block with Array Input Interface*)
MyST2_1(myINArray:= gBoolArray ,myOUT:= M2 );

(*Function *)
M3:=MyFunction1(M2 );
(*Function with return value of Bool Array *)
boolArray:=MyFunction2(M2);

(*Structed FB*)
FB_StructFB_1();

最後に

個人の感覚ですが、Function Blockを呼び出すのはやっばりSTから呼び出すのは一番よいかと思います。
そしてロジックが構造化FBDで組んで、最後はラダーを使うってイメージかな。
お疲れ様ですー

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4