新しく発言する  EXIT  インデックスへ

ラダーロジック-リレーによる論理回路


  ラダーロジック - リレーによる論理回路 山中和義 2008/04/23 17:12:03 
ラダーロジック - リレーによる論理回路  返事を書く  ノートメニュー
山中和義 <drdlxujciw> 2008/04/23 17:12:03
!ラダーロジック - リレーによる論理回路

DEF AND(x,y)=MIN(x,y) !基本論理演算
DEF OR(x,y)=MAX(x,y)
DEF NT(x)=1-x


LET N=9 !機器の数

DIM X(0 TO N) !スイッチの接点
MAT X=ZER !状態 ※開

DIM Y(0 TO N) !リレーの接点 ※最大9個
MAT Y=ZER !状態 ※開
SUB relay(n, L) !リレー型の出力(コイル)
LET Y(n)=L
END SUB

DIM T(0 TO N) !タイマの接点
MAT T=ZER !状態 ※開
DIM TMR(0 TO N)
MAT TMR=ZER
SUB tim(n,t0, L) !タイマ型の出力
IF L=1 THEN !オンなら
IF TMR(n)>0 THEN !時間経過を監視する
LET TMR(n)=TMR(n)-1
IF TMR(n)=0 THEN LET T(n)=1 !経過(タイムアップ)
ELSE !設定
LET TMR(n)=t0
END IF

ELSE !オフなら、リセット
LET TMR(n)=0
LET T(n)=0
END IF
END SUB

DIM C(0 TO N) !カウンタの接点
MAT C=ZER !状態 ※開
DIM CNTR(0 TO N)
MAT CNTR=ZER
SUB cnt(n,c0, L,r) !カウンタ型の出力
IF r=1 THEN !リセットなら
LET CNTR(n)=0
LET C(n)=0
ELSE
IF L=1 THEN !Hなら
IF CNTR(n)>0 THEN !エッジ(L→H)なら
LET CNTR(n)=-ABS(CNTR(n)-1) !※Lになるのを待つ
IF CNTR(n)=0 THEN LET C(n)=1 !完了
ELSEIF CNTR(n)=0 THEN !設定
LET CNTR(n)=-c0 !※Lになるのを待つ
ELSE !負の場合、何もしない
END IF
ELSE !Lなら
LET CNTR(n)=ABS(CNTR(n))
END IF
END IF
END SUB
!------------------------------ ここまでがサブルーチン

  つづき 山中和義 2008/04/23 17:15:13 
  │└つづき 山中和義 2008/04/23 17:16:33 
  │ └テストrunの結果 島村1243 2008/04/23 21:23:26 
  │  └試用、ありがとうございます。 山中和義 2008/04/23 22:30:51 
  ラダー図からのシミュレーション 山中和義 2008/04/25 16:14:17  (修正1回)
   └つづき 山中和義 2008/04/25 16:14:55  (修正2回)
    └つづき 山中和義 2008/04/25 16:16:32  (修正3回)
     └つづき 山中和義 2008/04/25 16:17:11 
      └つづき(DATA文) 山中和義 2008/04/25 16:18:46  (修正1回)

 インデックスへ  EXIT
新規発言を反映させるにはブラウザの更新ボタンを押してください。