02-<< 12345678910111213141516171819202122232425262728293031>>03-

Apexによる、CO2添加チェックプログラム

2013-06-10
ミドリイシ水槽において、カルシウムリアクターは重要な機器の一つです。ミドリイシはKHを食べるサンゴと言われるほどなので、ミドリイシがたくさん入っていると、あっという間にKHが消費されていってしまいます。
このKHを維持するためにカルシウムリアクターを使うわけですが、CO2のボンベが空になっていたり、CO2電磁弁が故障したりして正常に動作していなかったら…サンゴの白化や最悪の場合は水槽崩壊に繋がります。

というわけで、せっかくApexを導入したなら、カルシウムリアクターが正常に動作しているかチェックするプログラムを書いてみましょう。

■前提
・カルシウムリアクターにApexのpH Probeを挿してモニタリングしている
・CO2電磁弁はタイマー制御している

こちらがカルシウムリアクター内のpHをグラフ化したもので、Apexで常にモニタリングしています。
クリックで拡大します。
20130611_010.jpg

グラフの動きにコメントを付けたのが次の画像です。クリックで拡大します。
19時からCO2電磁弁をONにしてCO2を添加し、翌日11時にCO2電磁弁をOFFにしてCO2の添加を停止します。
CO2を添加するとカルシウムリアクター内のpHが下がるのでメディアが溶け、KHが上昇します。CO2の添加を停止するとpHが上昇するので、KHの供給も停止します。
これを毎日繰り返して、KHを安定させます。
20130611_020.jpg

このような制御をしているときに発生する事象は以下のとおりです。
・CO2ボンベが空になった → CO2電磁弁がONでもpHが下がらない
・CO2電磁弁が故障し、CO2が添加されない → CO2電磁弁がONでもpHが下がらない
・CO2電磁弁が故障し、CO2が添加され続ける → CO2電磁弁がOFFでもpHが下がったまま

上記をみると、pHの状態を評価すれば異常を検知できそうなことがわかるでしょうか?

■Apexプログラミング
今回の機能を実現するには、ApexのVirtual Outletという機能を使います。「Virtual」とは「仮想の」という意味です。例えばEnergy Barのプラグ差し込み口一つ一つをApexはOutletとして認識しますが、実際に繋がっていない機器でもApexはOutletとして認識し、そこにプログラムを書くことができます。
Apexプログラムは通常、機材を制御するのに使用しますが、Virtual Outletにプログラムを書くことで、異常判定関数として使うことができます。
この他、よく使う条件(例えば昼になったとか、夜になったとか、水もれが起きたとか、自動給水の時間がきたとか)をVirtual Outletに定義しておくと、個々のプログラムが読みやすくなり、個々のプログラムに同じ条件を書かなくて良くなるので制御や変更がしやすくなります。

では、Apexでプログラムを作っていきます。
ApexのWeb画面から、「Configuration」 - 「Module Setup」を開きます。
20130611_040.jpg

Add moduleのところで「DirectConnect 8(DC8)」を選び、Start control addressは「A1」のままAdd Moduleボタンを押下します。これで実際には存在しない仮想のOutletが8つ追加されました。

ちなみに、不要なOutletは「Delete outlet」のところで削除できます。Virtual Outletはいろいろな使い道があるので、消してしまうこともないかなと思います。

あとは通常のOutletと同じように、Outlet Setupからプログラムを入力できます。Virtual Outletは区別のため、Outlet nameは「V_~」としておいた方が良いと思います。
20130611_050.jpg

Virtual Outletを2つ使って、以下のプログラムを入力します。
-----チェックプログラム1つ目 V_CO2chk-----
Fallback OFF
Set OFF
If Time 00:00 to 00:01 Then ON
If pHCR < 07.30 Then OFF


-----チェックプログラム2つ目 V_CO2chk2-----
Fallback OFF
Set OFF
If Time 14:00 to 14:01 Then ON
If pHCR > 07.50 Then OFF


このプログラムの動作イメージは以下のとおりです。
20130611_030.jpg
V_CO2chk2は、14時頃のカルシウムリアクター内pHを評価します。CO2添加していない時間帯なので、pHが7.5超なら正常です。もし7.5以下なら、CO2電磁弁が故障してCO2が添加しっぱなしになっていると考えられます。

V_CO2chkは、0時頃のカルシウムリアクター内pHを評価します。CO2添加して、十分pHがさがっているはずの時間帯なので、pHが7.3未満であれば正常です。もし7.3以上なら、CO2ボンベが空になっていたり、CO2電磁弁が故障してCO2が添加されなかったり、スピードコントローラの設定がおかしい可能性が考えられます。

あとはE-mail通知Outletに対して、以下の赤字の2行を追加してあげます。
Set OFF
If Temp > 27.7 Then ON
If Temp < 22.5 Then ON
If TempT > 27.7 Then ON
If TempT < 22.5 Then ON
If Cond > 38.0 Then ON
If Cond < 27.0 Then ON
If pH < 07.40 Then ON
If pH > 08.50 Then ON
If ORP < 280 Then ON
If Outlet V_Emergency = ON Then ON
If Outlet V_CO2chk = ON Then ON
If Outlet V_CO2chk2 = ON Then ON

If FeedA 000 Then OFF
If FeedB 000 Then OFF
If FeedC 000 Then OFF
If FeedD 000 Then OFF
Defer 000:30 Then ON

※Deferのところに問題があったので修正しました。

これで、カルシウムリアクター内pHがおかしな状態になっていたら、自動的にE-mailで教えてくれるようになります。

-----

なお、CO2電磁弁を時間では無くpHで制御している場合は、どの時間帯でもpHが低いはずなので、CO2添加しっぱなしに対するチェックがしにくいかもしれません。
この場合の対応案は
案1 CO2を添加しない時間帯を作って、V_CO2chk2で評価する
案2 pHが極端に低くなっていないかを評価する
ぐらいかなと思います。

関連記事
スポンサーサイト


B!
★Neptune Apex★ | コメント:(4) | トラックバック:(0)
コメント:
No title
こんにちは~

そろそろ本格始動ですか!?
凄いっすね、、nekoさん、、
ちょっと尊敬の眼差しですw

ヤドクガエルの部屋にコレを設置したいんですが
円安で手がだせないのもあるんですが設定が超難しそうなんですが、、
私の為にもう少しわかりやすくお願いしますw
有田海水さんへ
こんばんは

一月ぐらいからずっと使っていますが、何かあったらすぐに教えてくれるので安心です。
説明をたくさん見るよりも、実際に触ってみると意外と簡単かも知れませんよ。

いまやや円高なので今がチャンスかもw
No title
mjnekoさん、こんばんは。とっちです。
Virtual OutletによるCO2添加の異常検知方法は目鱗です。
参考にさせていただきます。
私はいまだにCAリアクターの設定に四苦八苦しておりまして・・・
pHではなく時間による添加に変えてみたのですがどうも過剰添加になってしまうみたいで、
難しいです。
とっちさんへ
こんばんは
時間で添加するときは、最初、何時間添加したらよいかわからないので難しいかもしれませんね
KH測定しつつ、最小限から少しずつ増やして均衡するポイントを見つけるのが簡単かもしれません

そいやこのプログラム、メール通知のdeferが2分なのでちゃんと通知されませんね。(バグですね)
deferを30秒ぐらいにするか、チェックプログラムの時間のところを5分ぐらいに延ばせばちゃんと動きそうです。

管理者のみに表示

FC2 Blog Ranking Related Posts Plugin for WordPress, Blogger...