■ 自動散水装置

⇒ TO Home Page
内容

1. 雨量計の計測値に基づき、自動散水する。
2. 散水装置は3系統(A〜C)あり、雨量計の値で2個のタイマ(T1/T2)を切り替える。
3. タイマは過去3時間の雨量にて選択する。(雨量>3mm:T2 雨量≦3mm:T1)
4. 雨量計は0.5mmごとに1パルス出力する。

サンプルコード ◆ 雨量計カウント (Count_Rain Module)
・左の画像をクリックすると、大きい画像が表示されます。

2行目 :PLC起動時の初期化。

4行目 :周期  1分のクロックを発生。[CLK]

7行目 :雨量計 のパルスの立上りで、カウント。

10行目 :[CLK] をトリガとして、1分毎のカウンタの値を記憶させるためのリングバッファ[@FM0〜@FM179]のアドレス[RING]のオーバーフローを制限し、 インデックスレジスタ[Z1]に代入。
リングバッファは3時間分(60分×3)、180確保しているので、[RING]=0〜179で循環させるため、[RING]を 180[NUM]で割ったあまりを再度[RING]に代入する。[RING]をインクリメント。

12行目 :これから書込もうとするアドレスは180分過去のデータなので、総雨量からこの値を引く。

14行目 :3時間分の総雨量[DM0]の積算。最新のカウンタ値をリングバッファに書込み、総雨量に加算。雨量カウンタ[C_Rain]をクリア。

18行目 :PLC起動時の初期化ルーチン。
19行目 :リングバッファの確保数(180)を定義。
20行目 :リングバッファに使っているローカル変数を宣言。
初期化完了フラグ[Initial]を真に変更。
サンプルコード ◆ 散水制御 (Main Module)
・左の画像をクリックすると、大きい画像が表示されます。

2行目 :PLC起動時の初期化。

4行目 :開始状態。スイッチが入れられると、まず散水操作を行う系のアドレス[SysNum]のオーバーフローを制限しインデックスレジスタ[Z10]に代入。 『◆雨量計カウント  10行目 :』 と同じ原理で[SysNum]を0〜2で循環。[SysNum]をインクリメント。状態を更新。

6〜8行目 :操作対象の散水系が自動([R002]〜[R004]: NOT自動スイッチ)の時は3時間の総雨量[DM0]を[Threshold](値は6 雨量3mmは6パルス)と比較し、3mmを超えるとT2 [R511]を、3mm以下ならT1[R510]をセット。状態を更新。
9行目 :手動の時は、4行目に戻る。

11行目 :タイマがアップするまで操作対象系のバルブ([R504]〜[R506])を開放。

13行目 :1秒の待ち時間。

15〜16行目 :タイマがアップしたら、タイマの出力をOFFにする。

18〜19行目 :シミュレーション用T1/T2。タイマ出力がONしたら、設定時間後にタイムアップ信号を出力。

23行目 :PLC起動時の初期化ルーチン。
25行目 :[Number]に3を代入(系の数)。[Threshold]に6を代入(6パルス)。
シミュレーション ・ 左の画像をクリックすると、大きい画像が表示されます。

シミュレーションできる方は下欄からプログラムコードと登録モニタをダウンロードしてください。

R007は雨量計パルスです。R007の現在値にカーソルを合わせ、「ダブルクリック」または「スペースキー」押下でON-OFFさせて下さい。
雨量計カウンタ[C_Rain]がアップします。1分経過すると、そのカウンタ値がバッファに転送され、カウンタがクリアされます。

系ごとにバルブが開くのも確認してください。[R504]〜[RR506]

[CLK]の1分が待ちきれない方は、(Count_Rain Module)の4行目「#600」を変更するか、モニタの [CLK]の設定値を変更してください。
●PDFを表示 ●コードをダウンロード ●登録モニタをダウンロード