Skip to main content

ラダー図におけるバイナリ回路

ラダー図におけるPOUのサンプル選択

例 13. 例:押しボタンでランプのスイッチを入れる

LDブロック: FB_AssignToLamp.fb.ld

_c4ld_img_tutorial_assign_to_lamp

STでの同等表現:

FUNCTION_BLOCK FB_AssignToLamp
VAR_INPUT    
    bPushButton : BOOL := FALSE;
END_VAR
VAR_OUTPUT
    bLamp : BOOL;
END_VAR
VAR
END_VAR
bLamp := bPushButton;


例 14. サンプルカウンタブロック:FB_StorageCounter

カウンターブロックFB_StorageCounter CTUDカウンターをカプセル化します(事前選択:PV=100)。

_c4ld_img_tutorial_storage_counter.png


例 15. 開始/停止ブロックの例:FB_Latch

xMotor := (xStart OR xMotor) AND NOT xStop

2番目の分岐線はParallelClosedブランチは自身の出力を読み返すxMotor(自己保持型)xStopシリーズではオープニングとして登場する。

  • xStart簡単にTRUE→xMotorそのまま留まる(固定される)

  • xStopTRUE→xMotorシャットダウンします。

_c4ld_img_tutorial_latch.png


例 16. 演算子の例
  • ネットワーク1 : iSum := iValue1 + iValue2約ADD - 演算子ブロック。

  • ネットワーク2 : xGreater := (iValue1 > iValue2)約GT - オペレーターブロック。

両方の演算子ブロックにはEN入力とENO出力を有効にする。入力はiValue1そしてiValue2出力はiSumそしてxGreater

PROGRAM PRG_CompareArithmetic
VAR
    iValue1  : INT := 10; // first operand
    iValue2 : INT := 5;  // second operand
    iSum     : INT;       // result iValue1 + iValue2
    xGreater : BOOL;      // TRUE if iValue1 > iValue2
END_VAR
_c4ld_img_tutorial_compare_arithmetic.png


例 17. 例:セット/リセットコイル、SRラッチPRG_SetReset
  • ネットワーク1 : xSet→ コイル(S)をオンに設定するxLatch(Modifier.Storage = 1 )

  • ネットワーク2 : xReset→ コイル(R)をリセットxLatch(Modifier.Storage = 2 )

xLatch残った後xSet保存TRUEそしてリセットされるxReset。

FUNCTION_BLOCK FB_Latch
VAR_INPUT
    xStart : BOOL; // start button (NO)    
    xStop  : BOOL; // stop button (logic: TRUE = pressed)
END_VAR
VAR_OUTPUT
    xMotor : BOOL; // latched motor output
END_VAR
VAR
END_VAR
_c4ld_img_tutorial_prg_setreset.png


例 18. メインプログラムの例:PLC_PRG
  • ネットワーク1 :

    インスタンス化するStorage1 : FB_StorageCounterそして信号入力を配線します(xLightBarrierIn、 xLightBarrierOut、xAck、xPreset信号ランプの出力へ(xLampFull、xLampEmpty)そしてディスプレイ用(iDisplay )

  • ネットワーク2 :

    xLamp50 := (iDisplay >= 50) GEコンパレータを介して。

PROGRAM PLC_PRG
VAR
    Storage1   : FB_StorageCounter; // counter instance
    xLightBarrierIn  : BOOL; // infeed light barrier  -> xInfeed
    xLightBarrierOut : BOOL; // outfeed light barrier -> xOutfeed
    xAck       : BOOL; // acknowledge / reset   -> xReset
    xPreset    : BOOL; // preset to 100         -> xLoad
    xLampFull  : BOOL; // "storage full" lamp
    xLampEmpty : BOOL; // "storage empty" lamp
    xLamp50    : BOOL; // ">= 50% full" lamp
    iDisplay   : INT;  // stock display
END_VAR
_c4ld_img_tutorial_plc_prg.png