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

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


  ラダーロジック - リレーによる論理回路 山中和義 2008/04/23 17:12:03 
  つづき 山中和義 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回)
Re: ラダーロジック - リレーによる論理回路  返事を書く  ノートメニュー
山中和義 <drdlxujciw> 2008/04/25 16:14:17 ** この記事は1回修正されてます
ラダー図からのシミュレーション



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

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) !スイッチの接点 ※a接点側、b接点はNT(X(i))とする。
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) !タイマ型の出力 ※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) !カウンタ型の出力
IF C(n)=0 AND CNTR(n)=0 THEN LET CNTR(n)=-c0 !電源投入時 ※Lになるのを待つ

IF L=1 THEN !オンなら
IF CNTR(n)>0 THEN !エッジ(L→H)なら
LET CNTR(n)=-(CNTR(n)-1) !※Lになるのを待つ
IF CNTR(n)=0 THEN LET C(n)=1 !完了
ELSE !負の場合、何もしない
END IF
ELSE !オフなら
LET CNTR(n)=ABS(CNTR(n))
END IF
END SUB
SUB cntclr(n, L) !カウンタ型の出力のリセット
IF L=1 THEN !オンなら
LET CNTR(n)=0 !リセット
LET C(n)=0
END IF
END SUB
!------------------------------ ここまでがサブルーチン

   └つづき 山中和義 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
新規発言を反映させるにはブラウザの更新ボタンを押してください。