内容
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を表示 ●コードをダウンロード ●登録モニタをダウンロード |