02-<< 12345678910111213141516171819202122232425262728293031>>03-

Automatic Feeding System

2017-02-27
たまに旅行に行ったり、家に帰れなかったりするのでAPEXの自動給餌器、Automatic Feeding System : AFSを購入しました。魚の数が多いし、痩せやすいアカネハナゴイやベラがいるので給餌無しはちょっと心配です

ひとまず箱はこんな感じ
20170227_010.jpg

裏側
20170227_020.jpg

中身はこんな感じです。本体と試供品の餌(Neptune Systems製)、長いAquabusケーブルがついてきます
20170227_030.jpg

結構な長さですね。水槽移設のときはこれで助かりました
20170227_040.jpg

給餌器の土台はこんな感じです。フランジ無し水槽用ですので使えません
20170227_050.jpg

本体の裏側はこんな感じです。2ポートあるのでもう一台接続も簡単にできますね。ACアダプタを挿してで単独動作もできるようです
20170227_060.jpg

フランジ付き水槽用に、こちらのマウンタを準備しました。かなり昔に買ったGEXの自動給餌器についていたものを取っておきました
20170227_070.jpg

タイラップで雑ですが固定
20170227_080.jpg

こんな感じで固定します
20170227_090.jpg

APEXに接続するとFeeder Outletとして認識されます
20170227_140.jpg

ONにすると中のケースが自動でせり出して、くるっとまわって給餌されます。普段は中に収まっているので、水槽の湿気が浸透しにくいようになっています。給餌器の回転は1回だけで、一度に複数回まわすことはできません
なおせり出すとき結構うるさいです
20170227_100.jpg

ケースの中にエサを入れておきます。下にあるオレンジ色の部分で給餌量を調整します
20170227_110.jpg

右にスライドさせると量が増える感じです。一段階調整するだけで4倍ぐらい出方が変わるので自動給餌器では良くあることですが調整が難しいです
20170227_120.jpg

ガラス面のコケ取りのときにちょっと邪魔なので置き場所に悩みますね。フタが網だと餌がすり抜けますが、ガラス板を置いている場合は隙間に入るように調整が必要ですね
20170227_130.jpg

APEXのプログラムはこんな感じです

-----Feeder-----
Fallback OFF
Set OFF
If Outlet V_FeedTime = ON Then ON
If FeedA 000 Then ON
If FeedB 000 Then OFF
If FeedC 000 Then OFF
If FeedD 000 Then OFF
Defer 003:00 Then ON

フィードモードAにするとメインポンプやスキマーが停止するので、3分後に給餌します

旅行に行っていると自動でフィードモードになって餌やりをして欲しいですよね。フィードモードそのものは手動じゃ無いと発動できないので、フィードモードを真似るVirtual Outletを定義します

-----V_FeedTime-----
Fallback OFF
Set OFF
If Time 07:00 to 07:15 Then ON
If FeedA 000 Then OFF
If FeedC 000 Then OFF
If FeedD 000 Then OFF

このVirtual Outletはフィードモードに入る時刻を定義します

自動でフィードモードを入るのを止めるときは、OFFにすれば良いです
20170227_150.jpg

-----V_FeedDL2M-----
Fallback OFF
Set OFF
If Outlet V_FeedTime = ON Then ON
Defer 000:05 Then ON
If Outlet V_FeedTime = OFF Then OFF
Defer 002:00 Then OFF

こちらは2分待ってから復帰する機材用です

-----V_FeedDL10M-----
Fallback OFF
Set OFF
If Outlet V_FeedTime = ON Then ON
Defer 000:05 Then ON
If Outlet V_FeedTime = OFF Then OFF
Defer 010:00 Then OFF

こちらは10分待ってから復帰する機材用です

-----Skimmer-----
Fallback ON
Set ON
If Outlet V_FeedDL10M = ON Then OFF
If FeedA 060 Then OFF
If FeedC 003 Then OFF
If FeedD 003 Then OFF

あとはIf FeedAを設定している機材のOutletに登録すればOKです。ここではプロテインスキマーなので10分待ちの方を設定してあります

即時復帰はこちらを設定します
If Outlet V_FeedTime = ON Then ON

ヒーターやクーラーなど、2分待ちさせるならこちらを使います
If Outlet V_FeedDL2M = ON Then OFF

というわけで、普段は自動給餌を使いませんが、緊急用や旅行用に良さそうです

スポンサーサイト


B!
★Neptune Apex★ | コメント:(2) | トラックバック:(0)

水換え用のRO水を自動でためる&ALD

2017-02-25
水量が250Lから470Lに増えたので自動給水を改善しました。以前の記事は「RO水を自動的にためる&自動給水」を見てください

新しい水槽はこんな感じです。250LのときはKZ Saltだと30Lで十分でした。水を溜めるのも1時間程度でできていました。
しかし水量470Lだと10%水換えしようと思うと47L、15%だと70Lにもなります。70L水を溜めるとメンブレンが古いのもあって4時間ぐらいかかります。
20170225_005.jpg

4時間もじっと待ってるのはもったいないので、自動的にRO水を溜められるようにします。

■バケツ
70Lの丸バケツも持っていますが、結構スペースが必要なのでベルク 角型ペール 90Sを購入しました。蒸発やゴミの侵入を防ぐためにフタ付きです
20170225_030.jpg

中は目盛付きです
20170225_040.jpg

水槽近くの壁ぎわのスペースに収まります。バケツはカーテンで見えなくなるので、置きっぱなしでも普段は気にしなくて済みます
20170225_050.jpg

アクリルトレーで万が一バケツから水が溢れても受け止めます。水槽を譲り受けたときにこのトレーも一緒にもらいました。最初は何のためのトレーなのかわからなかったのですが、半月経ってバケツ用だとようやく気付きました
20170225_055.jpg

RO水のハードチューブを通すために、フタに穴を開けます
20170225_060.jpg

そのあとはさみを差し込んでまわせば適正な大きさに簡単に広げることができます
20170225_070.jpg

エルボ等で抜けないようにします
20170225_080.jpg

こんな感じで、水用電磁弁を取り付けてあげます
20170225_090.jpg

これだと水の音がうるさかったので
20170225_100.jpg

少し出口を長くして、壁を伝うようにしたら静かになりました
20170225_105.jpg

■自動給水の仕組み

自動でRO水を作る仕組みはこんな感じです。前回との変更点は、「プレッシャータンクを無くした」ことと、「給水コントロールをタイマーでは無くAPEXから行うようにした」ことぐらいです。クリックで拡大します
20170225_010.jpg

自動給水は、従来からあったサンプ用のルートと、新たにバケツに水を溜めるルートを作りました。クリックで拡大します
20170225_020.jpg

プレッシャータンクはあった方が便利なのですが、設置スペースが結構必要なので出品しました。このためチェックバルブが必要なくなりましたがまぁあってもいいのでそのままです

今まではAPEXのEnergy Bar 2本で何とかやっていましたが、自動給水を実現するため1本追加して、Energy Bar 3本にしました。かなり前にオークションに出品されていたものを予備として買っておいたものを使いました

■バケツ用のフロートスイッチとマウンタ

バケツ用のフロートスイッチを購入しました。型番はRSF54Y100JCで、海外から取り寄せるより安いです
20170225_110.jpg

水が浸入しないようシールされているものを選びました
20170225_120.jpg

フロートスイッチのマウンタは無いので、2mmのアクリル板を曲げて作りました。アイロンで温めると結構簡単に曲げることができます。アクリル板を曲げるときは専用のヒーターがあると綺麗にできますが、まああまりじっくり見るものでも無いので…
20170225_130.jpg

ケーブルを通すために、はさみを使って穴を広げました。あまり力を入れると割れそうで不安
20170225_140.jpg

フロートスイッチを取り付けるとこんな感じ。フロートスイッチは上がらないことがあるので、二つ取り付けます
20170225_150.jpg

バケツに取り付けてみると良い感じです。バケツは90Lまで入りますが、そこまでは要らないので70Lのところにフロートスイッチを置きます
20170225_160.jpg

■APEXのAdvanced Leak Detection ModuleとI/O Breakout Box購入

APEXのモジュールを購入しました。
20170225_170.jpg

Advanced Leak Detection Moduleは、水漏れを検知するモジュールです
20170225_180.jpg

今まではI/O Breakout Boxに自作や他社の装置を取り付けて水漏れチェックしたりしていましたが、専用モジュールが発売されています。4つ接続できます
20170225_190.jpg

センサー部はこんな感じ
20170225_200.jpg

裏側はこんな感じ。仕組みはシンプルで、水等で通電するとAPEXがそれを検知します。なのでただのむき出しの導線でも同じことができます。
20170225_210.jpg

センサーはキャビネットなどの下に入れられる薄いものと
20170225_220.jpg

厚いものがあります。厚い方は水槽の裏辺りに置きます
20170225_230.jpg

フロートスイッチを二つ取り付けるため、I/O Breakout Boxを購入しました。こちらは6つ接続できますので余裕があります
20170225_240.jpg

■ALD取り付け

ALD Moduleの裏側はこんな感じになっていて、ネジ止めできます
20170225_250.jpg

ネジ止めは面倒なのでマジックテープを使いました
20170225_260.jpg

センサー部はバケツのトレイに置いて、フロートスイッチが2つとも異常になった場合でも最後の歯止めができるようにします
20170225_270.jpg

ALDを接続するとI/O Breakout Boxと同じ感じでスイッチとして認識されます
20170225_360.jpg

■フロートスイッチ取り付け

フロートスイッチはI/O Breakout Boxと接続すればOKです
20170225_370.jpg

ケーブルの延長をするときはねじ込みコネクターとか使うと楽ですね
20170225_280.jpg

ねじるだけで接続できるのは非常に楽です。逆に回せば取り外しできます
20170225_290.jpg

こんな感じになります
20170225_300.jpg

見えにくいですがI/O Breakout Boxの2と3に接続しました
20170225_310.jpg

スイッチはS_WF1、S_WF2という名前にしました。Openは水がたまっていない状態、水位があがってウキがあがるとClosedに変わります。
20170225_380.jpg

■RO水配管変更
いままではプレッシャータンクがあったので結構分岐させていましたが
20170225_320.jpg

今回の変更でシンプルにサンプ行きとバケツ行きだけになりました
20170225_325.jpg

クロノスレイン付近に排水の圧力計を移動させました
20170225_326.jpg

ついでに、水質測定したあとの瓶やシリンジを洗浄するために、流しに配管を追加しました
20170225_327.jpg

■APEXのEnergy Bar配置変更

Energy Barが3つになったので配線が短くなるように改善しました。クリックで拡大します。照明台にいろいろと置けるので、三つ目のEnergy Barをそこに置くようにしました。
20170225_329.jpg

バケツの中は塩を溶かすための水流ポンプとしてコンパクトポンプ1000と、バケツから水槽への給水用のホース付きポンプを設置しました
20170225_330.jpg

あと冬場は塩の溶け方がいまいちなのと、水換えでの水温変化を抑えたいのでヒータを入れてみました。温度固定です
20170225_340.jpg

■APEX Program

RO水をバケツにためる→温度あわせのプログラムを作っていきます。今回Outletの関係性が複雑なのでタイムテーブルにしてみました。クリックで拡大します。
20170225_390.jpg

大前提として、水換えは毎週日曜日に行います。
0時からRO水をため始めて、フロートスイッチで70Lまで溜めたら自動で給水を止めます。
そのあと水流ポンプを自動で動かし、自動でヒーターで温度あわせをします。
朝になったら適温になっているはずなので、塩を入れて溶かします(塩入れるのはどうしても手動)。
午前9時ぐらいに水換えを行いますが多少前後しても大丈夫です

プログラムはこんな感じです。タイムテーブルと組み合わせてみてみてください

-----自動給水タイマー(電磁弁) ROCharge-----
Fallback OFF
Set OFF
If Outlet WT_Charge = ON Then ON
If Outlet ROSValve = ON Then ON
If ALD_WT CLOSED Then OFF

クロノスレインにある電磁弁と加圧ポンプを制御します。ROSValveはサンプへの自動給水の場合で、一日4回ONになります。バケツで水漏れがあったら問答無用でOFFになります

-----みずため電磁弁 WT_Charge-----
Fallback OFF
Set OFF
If Outlet V_WTChTime = ON Then ON
If Outlet V_WTFlt = OFF Then OFF
If ALD_WT CLOSED Then OFF

バケツ用の電磁弁です。日曜日の時間になったらON

-----みずため水流ポンプ WT_Wave-----
Fallback OFF
Set OFF
If Outlet V_WT_WvHt = ON Then ON

バケツの中のコンパクトポンプ1000です。ヒーターと連動

-----みずためから給水 WT_Pump-----
Fallback OFF
Set OFF

バケツから水槽に入れるためのコンパクトポンプ1000です。手動で動かします

-----みずためヒーター WT_Heater-----
Fallback OFF
Set OFF
If Outlet WT_Wave = ON Then ON

バケツの中のヒーターです。空だきしないように制御されています

-----バケツ給水時間 V_WTChTime-----
Fallback OFF
Set OFF
If Time 00:01 to 06:00 Then ON
If DoW -MTWTFS Then OFF
If Outlet V_WTFlt = OFF Then OFF

バケツに水を溜める時間を制御します。DoWはDay Of Weekの略で、曜日を指定するときに使います

-----バケツのフロートスイッチ検知 V_WTFlt-----
Fallback OFF
Set OFF
If S_WF1 OPEN Then ON
If S_WF2 CLOSED Then OFF
Defer 020:00 Then OFF

バケツのフロートスイッチを制御します。フロートスイッチのどちらかがCLOSEDになるとOFFになります。Deferで20分を指定して、水が多めに入るようになっています(ギリギリだとON/OFFを繰り返すことになるので)

-----水流ポンプ&ヒーター V_WT_WvHt-----
Fallback OFF
Set OFF
If Outlet V_WTFlt = OFF Then ON
If Time 09:30 to 23:59 Then OFF
If DoW -MTWTFS Then OFF

ヒーターを制御します。曜日の指定と、フロートスイッチを条件にしていますので、9時30分を過ぎたら自動でOFFになりますし、9時30分前に水換えをはじめたときでも、水が減ってフロートスイッチがOpenになるので、ちゃんとヒーターは切れます
空焚きしたらヒーターは使えなくなってしまうので重要ですね

■動作チェック

プログラムが期待どおりに動くかどうかのチェックは重要ですね
20170225_340.jpg

掃除は35Lバケツが二つなので結構隅々までできますね
20170225_350.jpg

といった感じになりました。なお、水を溜めるバケツは使用後、タオルで拭いています。水が付いたままだと夏場はカビるので…

サンプからの排水用ポンプとフロートスイッチ、排水配管を設置すれば、
RO水をバケツにためる→温度あわせ→塩を入れる→水槽の水を適量排水→バケツから水槽に水を入れるといった感じで、塩を入れる部分以外は自動になりますね
まぁサンプや底砂掃除ができなくなるのでそこまではやらないと思いますが… ベルリンシステムで水換えのみで維持している方には良い方法かもですね



B!
★Neptune Apex★ | コメント:(2) | トラックバック:(0)

APEXで水温を季節変動させる

2016-09-10
APEXは季節変動の水温データを持っているので、それに水槽の水温を連動させる方法について説明します。

海は温度が安定していると言われますが、それでも季節で温度が変化しています。季節変動させることで水槽環境もより自然に近付けることと、省エネを狙います

APEXでもっているのは、サンゴの生息地であるインドネシア付近の海水温データです
20160910_070.jpg

APEXではSeason Tableとして、毎日の日の入り、日の出、月齢、そして海水温度をこんな風に持っています。なお下の方で設定を編集することができます
20160910_020.jpg

この水温データを年間グラフにするとこんな感じです。最高で8月に26.9℃、最低で2月に23.8℃となっています。これに連動させると毎日緩やかに温度が変化していくことになります。生体に急激な変化を与えずにゆっくり変えることができるわけです
20160910_060.jpg

ところで季節変動させると何故省エネになるのでしょうか
真冬に室温が18℃、水槽のヒーター設定が25℃、24℃、23℃設定の水槽があったとしたら、どの水槽が一番冷めにくいかというと、23℃設定の水槽が冷めにくいです
つまり、室温との温度差が少ないほど、温度変化しにくくなります

この法則は感覚でなんとなくわかると思います。どれぐらい違いが出るかについては、アイザック・ニュートンが冷却の法則として数式化していますのでシミュレーションが可能です。
この数式に従うと、1時間で25℃の水槽の水が約1℃下がる水槽があったとして、ヒーター設定を下げるほど温度が下がりにくくなります(Excelで数式を元にフラグ化しました) 25℃設定から23℃設定に変えると3割違ってきますね
※クリックで拡大します
20160910_010.jpg

というわけで、夏場は水温を高めに、冬場は水温を低めに設定してあげると室温との温度差が小さくなり、温度変化しにくくなることでクーラーとヒーターの稼働率が下がり省エネになるわけです
※ここでは温度差だけに着目していますが、熱が逃げる表面積を減らす、ガラス水槽とアクリル水槽の違い、ポンプなどの機材有無でも当然変わります。冷却の法則ではそれらに該当する定数部分に影響します

さて、Season Tableを基準に水温設定してしまうと最高で8月に26.9℃、最低で2月に23.8℃なのでちょっと高いですね
20160910_030.jpg

Season Tableから-1℃のところを基準にすることで、最高で8月に25.9℃、最低で2月に22.8℃を基準として、±0.5℃の範囲を設定温度としたいとおもいます
20160910_040.jpg

■プログラム
クーラーとヒーターの温度設定はこんな感じです。RT+がSeason Tableの温度で、それに±で相対温度を設定してあればOKです

-----Chiller 修正前-----
Fallback OFF
If Temp > 25.4 Then ON
If Temp < 25.1 Then OFF

If FeedA 002 Then OFF
If FeedC 002 Then OFF
If FeedD 002 Then OFF
Defer 000:20 Then ON
Defer 001:00 Then OFF
If Outlet 2ndPump = ON Then OFF


-----Chiller 修正後-----
Fallback OFF
If Temp > RT+-0.5 Then ON
If Temp < RT+-0.8 Then OFF

If FeedA 002 Then OFF
If FeedC 002 Then OFF
If FeedD 002 Then OFF
Defer 000:20 Then ON
Defer 001:00 Then OFF
If Outlet 2ndPump = ON Then OFF


-----Heater 修正前-----
Fallback OFF
If Temp < 24.6 Then ON
If Temp > 24.9 Then OFF

If FeedA 002 Then OFF
If FeedC 002 Then OFF
If FeedD 002 Then OFF
Defer 000:20 Then ON
Defer 001:00 Then OFF


-----Heater 修正後-----
Fallback OFF
If Temp < RT+-1.3 Then ON
If Temp > RT+-1.0 Then OFF

If FeedA 002 Then OFF
If FeedC 002 Then OFF
If FeedD 002 Then OFF
Defer 000:20 Then ON
Defer 001:00 Then OFF


というわけで、この日の22時から季節変動するようになりました。この日はプログラム変更初日なので結構変化が大きいですが、以降は0.1℃単位でほんの少しずつ変化することになります
20160910_050.png

季節変動させることで冬場は水温が低めになります。サンゴも魚も問題ない水温ではあります。ただし水温が下がることによってサンゴの成長は遅くなると考えられ、従ってKHの変動も緩やかになるためカルシウムリアクターの調整に注意した方が良さそうです



B!
★Neptune Apex★ | コメント:(0) | トラックバック:(0)

APEXで予備ポンプ、予備クーラー自動起動

2016-04-24
Jebao DC-9000Jが故障&モーターブロック交換で記事にしたとおり、今のポンプは2年ぐらいでモーターブロックが壊れることがあります。
APEXで故障を検知できるようにしていましたが、そうなったら予備ポンプの設置と起動が必要になります。旅行とかで不在だと困るので、今回は以下を行います。
・予備のポンプの設置
・予備クーラーの設置
・ポンプの故障を検知して自動的に予備ポンプが動作するようにプログラミング

■設置

予備ポンプはエーパイプコンパクトポンプ1000です。内径15mmホースをアロンアルファNo5で接着しました。これをメインポンプと同じ層に沈めてあります。
20160424_010.jpg

水槽用クーラーはZR-75Eで、水槽横に設置します。水換えの水を冷やすために極まれに使っていたものを流用します。冷却能力はZRW400と比べれば低いですが、無いよりはずっと良いです。
20160424_020.jpg

給水は耐衝撃 13A 塩ビを使ってコの字で水槽の縁に引っかけます。耐衝撃は色が黒なので目立ちにくいようにそれを選びました。
20160424_030.jpg

反対側はこんな感じ。ホースをお湯で温めて、塩ビ側はワセリンを塗ってねじ込めばOKです。心配ならホースバンドで締めておくと良いですが、やらなくても漏れたりはしないと思います。
20160424_040.jpg

上から見ると配管が目立ちますが、正面からは見えません。
20160424_090.jpg

■プログラム

メインポンプが停止したことはフロートスッチで検知しています。
20160424_050.jpg

フロートスイッチでメインポンプ動作をチェックするプログラムは以前から変更ありません。
-----V_MainPmpChk-----
Fallback OFF
Set OFF
If S_MPck OPEN Then ON
Defer 012:00 Then ON
If Outlet MainPump = OFF Then OFF


予備ポンプ予備クーラーの動作はこのプログラムで制御します。
-----2ndPump-----
Fallback OFF
Set OFF
If Outlet V_MainPmpChk = ON Then ON
Defer 002:00 Then ON
If Outlet V_MainPmpChk = OFF Then OFF
Defer 720:00 Then OFF


メインポンプの電源が入っているのにサンプ水位が高くなり、フロートスイッチが12分間継続してOPENになると、V_MainPmpChkがON…つまりメインポンプが異常と判断します。
そしてその状態になって2分経過すると、予備ポンプと予備クーラーが動作します。

なお、そうなるとサンプ水位が上昇するので、V_MainPmpChkはOFFになります。そのままだと予備ポンプも止まってしまうので、Defer 720:00 Then OFFで12時間は動作するようにしています。12時間後、メインポンプが復旧していなければ、14分後にまた予備ポンプが稼働します。以降はその繰り返しです。

■動作テスト

メインポンプの電源を抜いてテストしました。無事予備ポンプが動作して、水槽に給水されました。
20160424_060.jpg

予備クーラーも動作。水温設定はAPEXと一致するように調整してあります。
20160424_070.jpg

コンパクトポンプ1000なので、給水量はほどほどに弱い感じです。メインポンプが何らかの理由で復帰して動き始めても、水槽から溢れることは無い程度の強さです。ちょうど良いですね。
20160424_080.jpg

なお、メインポンプ排水配管上にある水槽用クーラーだけは予備ポンプが動作中は停止させます。
-----Chiller-----
Fallback OFF
If Temp > 25.4 Then ON
If Temp < 25.1 Then OFF
If FeedA 002 Then OFF
If FeedC 002 Then OFF
If FeedD 002 Then OFF
Defer 000:20 Then ON
Defer 001:00 Then OFF
If Outlet 2ndPump = ON Then OFF


カルシウムリアクターも配管上にありますが、ポンプを動かしておくと水槽やサンプから水を吸ってちょっとだけサンプに流れますので、嫌気状態にならないようにするため、ONにすると良いかと思います。

というわけで、これで不在時にポンプが壊れても自動的に復旧してくれるようになりました。
メインの水槽用クーラーZRW400が故障した場合も、今回設置した予備ポンプと予備クーラーで水温維持ができるようになりました。ただしこちらは手動コントロールになります。

ちなみに予備クーラーに水が結構残るので、動作した後は持ち上げて排水してあげる必要があります。そのために、アクセスしやすい位置に設置してあります。本当はマメスナ専用水槽とか置きたかったんですけどね… まぁ…中の生体を守るために必要なので水槽全体の安全性を高める方を優先します。



B!
★Neptune Apex★ | コメント:(0) | トラックバック:(0)

Apexでクーラー、ヒーターの長時間動作チェック

2015-03-28
4月からゼンスイのZCシリーズクーラーがリニューアルされて、新しくこんな機能が加わるそうです。

①水温アラート機能
 設定温度よりも水温差があるとアラームが鳴る機能。
②オーバータイム機能
 連続運転時間が2時間以上になるとランプで知らせる機能。

③クリーニングタイム機能
 500時間ごとに吸気フィルターのクリーニングランプが点灯する機能。

今使っているApexでは、いろいろなアラート条件をプログラムしてあります。上記の ①水温アラート機能 は実装済みですが、 ②オーバータイム機能 は実装していなかったのでアイディアをもらって実装してみたいと思います。
なお、③クリーニングタイム機能 については、Apexで累積動作時間を記録する機能がないので、実装は無理です。今使っている水槽用クーラーは外置きのZRW400なので、そもそもホコリが詰まることはほぼ無いので実装する必要もありません。

プログラムの前提としてはこんな感じです
・水槽用クーラーをApexでON/OFF制御している。
・ヒーターもApexでON/OFF制御している。

せっかくApexを買った人であれば、市販されているサーモやクーラーコントローラよりもApexでコントロールさせていると思いますので、前提は満たせていると思います。

プログラムの考え方はこんな感じです。
・水槽用クーラー、ヒーターが動作し始めてから長時間OFFにならない場合、異常として検知させます。
・検知時間は60分間とします。この時間は水槽のサイズやクーラー、ヒーターの性能によって調整が必要です。

では実装します。Virtual Outletを使います。
アラートを発行するプログラムはこんな感じです。このVirtual OutletがONになると異常発生となります。
-----V_ChillerChk-----
Fallback OFF
Set OFF
If Outlet Chiller = ON Then ON
Defer 060:00 Then ON
If Outlet Chiller = OFF Then OFF


水槽用クーラーは「Chiller」のOutletで制御しています。
If Outlet Chiller = ON Then ON  でクーラーが動作した事を検知します。
そしてDefer 060:00 Then ON で、クーラーが60分間ずーっと動作していると異常検知となります。
2時間で異常としたい場合は、
Defer 120:00 Then ON
に書き換えてください。

同様に、ヒーターについても異常検知プログラムを定義します。考え方は水槽用クーラーと同じです。時間はクーラー、ヒーターで個別に設定できます。
-----V_HeaterChk-----
Fallback OFF
Set OFF
If Outlet Heater = ON Then ON
Defer 060:00 Then ON
If Outlet Heater = OFF Then OFF


あとは異常検知した場合にメールを送るOutletに定義を追加してあればOKです。
-----EmailAlarm-----
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 > 52.0 Then ON
If Cond < 29.0 Then ON
If pH < 7.00 Then ON
If pH > 8.50 Then ON
If pHCR < 6.20 Then ON
If pHCR > 8.50 Then ON
If ORP < 160 Then ON
If Outlet V_Emergency = ON Then ON
If Outlet V_CO2chk = ON Then ON
If Outlet V_CO2chk2 = ON Then ON
If Outlet V_MainPmpChk = ON Then ON
If Outlet V_HeaterChk = ON Then ON
If Outlet V_ChillerChk = ON Then ON

If FeedA 015 Then OFF
If FeedB 015 Then OFF
If FeedC 015 Then OFF


ちなみにメール送信するとApexから音で教えてくれる設定もしてあります。
-----SoundAlarm-----
Set OFF
If Outlet EmailAlarm = ON Then ON
If Outlet EmailAlarm = OFF Then OFF


これで、クーラー、ヒーターの故障や性能劣化で機能していない場合に、メール&音で教えてくれるようになります。

-----

ところで、ヒーターのサーモが暴走したり、クーラーコントローラが暴走したりして崩壊するケースを結構見ますね。水槽を安定させるための機材が崩壊トリガーを引いてくれるのはなかなか辛いものがあります。

水槽の機材制御と異常検知のために、ちょっと使うのが難しいですがApexはやはりお勧めです。ひとまずヒーターやクーラーのコントローラ、異常検知としてApex Jrあたりから始めると良いかなと思います。
20150328_010.jpg

これだけでも、こんなことはできます。
・水温計の信頼性向上(Long-life Temperature Probe)&古くなったら気軽に交換
・アラーム&メールで異常検知
・クーラー、ヒーターのコントロール
・異常時に機材を強制停止
・照明他のタイマーコントロール
・スイッチ一つで機材まとめて停止&自動復帰(Feed Mode)
・水温のグラフ化、情報公開(APEX FusionやReeftronics.net)
・PC、スマートフォンやタブレットPCから情報確認とコントロール

繋げる機材が足りない場合は、EnergyBar 8を追加で購入すると良いかもです。
まあ、日本ではまだ売っていないので個人輸入しないといけないんですけどね。アメリカのMarineDepotでApex Jr扱っています。

Apex Jrで物足りない方はApex LiteApexもあります。
どうせApexを導入するならという方には、
・水温計の2重化(Long-life Temperature Probe)
・カルシウムリアクターをpHで監視(Lab Grade pH Probe)
・フロートスイッチで自動給水やメインポンプ動作チェック(フロートスイッチとI/O Breakout Box)
・漏水チェック、キャビネットドア開けたら自動的に照明点灯(I/O Breakout Box)
・ORPのモニタリング(Lab Grade ORP Probe)
あたり買うとより安全かつ便利かなと思います。
※Probe挿すところが足りないときは、Probe Moduleを追加で購入する必要があります。
水槽そのもののpHや塩分濃度監視はそこまでいらないかも。



B!
★Neptune Apex★ | コメント:(0) | トラックバック:(0)

Apexのファームウェア更新

2014-03-30
Apexのファームウェア「4.20_CA12」から、最新のファームウェア「4.31_3B14」に更新したときに少し困ったので、記録として書いておきます。

reef buildersにApex Fusionのオープンベータの記事が掲載されました。リンクは「Apex Fusion オープンベータを公開」です。
これに伴い、Apex Fusion対応のファームウェア「4.31_3B14」も公開されています。最新ファームウェアからダウンロードできます。

ファームウェア更新で以下が変わっています。
・バグの修正
・Apex Fusionへの対応
・新しい機材への対応
・probeやswitchの名前変更が可能に
・Apex画面のアクセス高速化
・ヘルプメニュー追加

今までI/O Breakout boxの各スイッチは
「Switch1」、「Switch2」、…
と固定で、何のためのスイッチなのかわかりずらかったのですが、ようやく名前を付けられるようになりました。
設定は「Probe/Input Setup」からできます。

-----

ファームウェア更新時に発生したトラブルと対処はこんな感じです。

■時間ズレ
ファームウェア更新後、点くはずの無い時間帯に照明が点いたので、なぜかと思ったら… Time Zoneの設定が「-8」になっていました。
日本で使うなら以下のとおり9を設定します。これは初期設定の時に行ったことと同じですね。
20140330_010.jpg

■Energy BarのOutlet一部消失
ファームウェア更新により、EnergyBarのOutletの一つが認識されなくなりました。
対策としてはEnergyBarのファームウェアを更新すれば良いようです。

モジュール類のファームウェア更新は、Apexの画面から行うことができます。
Configuration - Module Setupを選びます。
ドロップダウンリストから更新したいEnergy Bar(ここではEB8_3)を選び、「Update Firmware」を選択して「Submit Module Change」をクリックしてください。数十秒でファームウェアが更新されます。
(画像クリックで拡大します)
20140330_020.jpg

Configuration - Module Setupの下の方に、Apexが認識しているモジュールのファームウェアバージョンが表示されています。
こちらは更新前です。
20140330_030.jpg

更新後はこんな感じ。ついでなのでDisplay Moduleを含めて全て更新しておきました。
20140330_040.jpg

上記によりOutletが認識されたと思いますので、Configuration - Outlet Setupから設定をし直してください。

-----

ファームウェア更新の手順は最新ファームウェアに書いてありますので、よく読んでください。無線LANから更新しようとすると確実に失敗します。

また、Outletのプログラムは念のためどこかにメモしておいた方が良さそうです。
reeftronicsに登録されている方は、プログラムのPDFを保存しておくだけで良いと思います。
また、Apexの画面のXML - XML programを待避でもOKかと思います。



B!
★Neptune Apex★ | コメント:(0) | トラックバック:(0)

Apexによる、メインポンプ動作チェックプログラム

2014-03-09
先日メインポンプが故障しました。詳しくは「DC-10000の故障とJebao DC-9000Jの購入」を見てください。
その日は偶然起きたときに気付きましたが、長時間気付けないと水槽への影響が大きくなるので、できるだけ早く気付けるようにApexプログラムを変更しました。

検知方法としては、フロートスイッチを使います。空回り防止用にフロートスイッチを使っていましたが、これをそのまま流量します。まずはポンプ動作中に水面の上になる高さまで引き上げます。
20140309_010s.jpg

メインポンプを止めたらスイッチが入る高さにします。
20140309_020s.jpg

検知プログラムはVirtual Outletを使います。プログラムはこんな感じ。

-----V_MainPmpChk-----
Fallback OFF
Set OFF
If Switch6 OPEN Then ON
Defer 012:00 Then ON
If Outlet MainPump = OFF Then OFF


Switch6にはフロートスイッチが繋がっています。通常は水面の上にあるので OFF となりますが、ポンプが停止しサンプ水位が上昇すると ON になります。ただしメンテナンスや給餌等でポンプを止めることが多いと思いますので、以下のとおり検知しないケースを設けます。
・12分間未満でフロートスイッチが下がれば、異常検知扱いとしない(Defer命令)
・メインポンプがOFFなら異常検知扱いとしない

あとはEmailAlarmも1行追加します。

-----EmailAlarm-----
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 > 52.0 Then ON
If Cond < 30.0 Then ON
If pH < 07.40 Then ON
If pH > 08.50 Then ON
If pHCR < 06.70 Then ON
If pHCR > 08.50 Then ON
If ORP < 160 Then ON
If Outlet V_Emergency = ON Then ON
If Outlet V_CO2chk = ON Then ON
If Outlet V_CO2chk2 = ON Then ON
If Outlet V_MainPmpChk = ON Then ON
If FeedA 015 Then OFF
If FeedB 015 Then OFF
If FeedC 015 Then OFF


これでメインポンプが動いているのにサンプ水位が高いままなら、異常を知らせるメールが届くようになります。
メールには以下のとおりメインポンプ異常である旨が記載されています。
Alarm Statement: If Outlet V_MainPmpChk = ON Then ON

給水しすぎてサンプ水位が上昇した場合でも異常検知されるので、自動給水の安全性を高める意味でもちょうど良いかも。なお、フロートスイッチを長期間使用しているとゴカイ等がついて動きが悪くなるので、たまに分解して掃除してください。



B!
★Neptune Apex★ | コメント:(2) | トラックバック:(0)

カルシウムリアクターのトラブルで、水槽のpHが異常低下?

2013-08-11
ApexでモニタリングしているpHに明らかな異常が検知されたので報告します。
Apexを導入して半年になりますが、異常値も無く安定稼働しているシステムでも突然こんなことが起こりえるんだ…というのが正直な感想です。

◆事象

こちらがカルシウムリアクター内部のpH値です。1週間分を表示しています。
CO2添加はタイマーで行ってるので、左側から見ていくと 6.7付近までpH低下(CO2添加開始)と、7.8付近までpH回復(CO2添加停止)を繰り返して綺麗なグラフが描かれていますが…
後半はpHが5.6付近まで極端に低下し、その後一気に回復しています。
20130811_010s.jpg

こちらがサンプのpH値です。カルシウムリアクター内の異常に伴い徐々にpHが低下し、7.3付近まで低下した後に回復しています。
20130811_020s.jpg

カルシウムリアクター内部のpH値を直近1日分だけ表示しています。
CO2添加を停止してもpHが回復せず、CO2添加を開始した1時間ぐらい後に回復しています。
20130811_030s.jpg

サンプのpH値を直近1日分だけ表示しています。
一気にpHが7.3付近まで下がっています。
20130811_040s.jpg

pH回復後のカルシウムリアクターの状態です。水槽リセット時にリアクターもメンテナンスしたので、約半年経過しています。
20130811_050s.jpg

ファーストステージのスポンジがやたらと圧縮されています。
20130811_060s.jpg

pH低下中は夏休み中で不在だったので、Apexの値ぐらいしか事象を確認できていません。水槽については特に問題ない感じでした。事象回復後のKHは7.9dKHぐらいで、ZEOvitとしては普通の値です。

◆原因

正直、確かなことはわかりません。以下は仮説です。

・カルシウムリアクター内部のpHが通常よりも低下していたこと
・その変化がゆるやかであること
・水槽のpHがゆるやかに下降傾向であったこと(KH低下が原因?)
から、カルシウムリアクター内部にCO2が添加されているときに、カルシウムリアクターの排水が詰まるなどして完全に停止していた可能性が考えられます。
この場合、カルシウムリアクター内部は高圧になりますので、耐えきれずに一番弱いところから水漏れするか可能性があります。塩が固まった痕跡がポンプ付近にありましたが、このタイミングでできた物かは不明です。
他の可能性としては、CO2のチューブ付近から耐えきれずにCO2だけが漏れ出ていたことも考えられます。

その後数日はずっと詰まったままでしたが、ついに詰まりが取れて、カルシウムリアクター内部の低pHとなった海水がサンプに流れ、一時的に水槽のpHが大きく低下したものと考えられます。

◆ちなみに

以前記事にした「Apexによる、CO2添加チェックプログラム」で、カルシウムリアクター内のpHに異常があればメールにて気付けるはずでした。
が… OCNのパスワード流出騒動でパスワード変更したのに、Apexの方の設定変更をわすれていたのでメール送信エラーとなっていました
ログを確認してみたら、ちゃんと異常検知できていたのに… 意味なーい!

-----

さて、なんでこの事象が起きたのかはわかりませんでしたがそろそろカルシウムリアクターのメンテナンスが必要なようです。とりあえずメンテしてしばらく様子をみることにします。

こちらがカルシウムリアクターのメディアです。ゴミが結構含まれていたり、削れたメディアの粉もあるので、ざるにあけて淡水洗浄→バケツに入れて浮いてくるゴミを除去→RO水でリン酸抜きを行いました。
リアクターに入っていたメディアも一度取り出して、米を研ぐように洗浄しました。メディアはCO2で溶けて一部泥状にまでなっているので、こういうのも詰まりの原因になってそうですね。
20130811_070s.jpg

あとはそれを詰め直して稼働再開です。
20130811_080s.jpg

今回はApexでモニタリングしていたおかげで異常に気付けたので導入した甲斐があったかなと思います。こういった一時的な異常を繰り返していると、気付かぬうちに水槽の崩壊に繋がりそうで怖いですね。



B!
★Neptune Apex★ | コメント:(0) | トラックバック:(0)

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)

Apex導入までの電気配線の経緯

2013-05-12
Neptune Apex導入よって電気配線もだいぶ整理できてきたので今までの経緯を整理してみました。昔の記事はここにあります。


■2012年4月まで

イレクターと金網を使って整理してました。タップ多すぎですが、これでも半分ぐらいです。
20120429_010.jpg

20120429_020.jpg

この上側に照明用のタップとか、Vortech用のタップとかもありました。(写真なし)
20130512_050.jpg

水槽側はこんな感じで… Mazarra + スポットですごいことになってます。
20130512_040.jpg



■2012年5月から

とりあえず電気配線を見えなくしたくて、この収納を買いました。
20120429_023.jpg

クーラーのコントローラはガラス戸の中にいれて、いつでも水温が見られるようにしました。
20120429_050.jpg

電気配線はとりあえず外から見えなくなりました。
20120429_080.jpg

ドーシングポンプは全力で使っていましたw
20120429_070.jpg

Vortechコントローラは水槽の上あたりに変更しました。
20120629_044.jpg


■2012年12月頃

配置変更しましたが、整理する気全くなしだったので雑ですw
20130114_020.jpg

水槽キャビネット内はこんな感じ。
20130114_010.jpg


■現在

Apex導入後です。クーラーコントローラは不要になったので取り外しました。
20130429_340.jpg

水槽キャビネット内はこんな感じに。
Apexが全て集中コントロールしてくれるので、マメスイッチのリレースイッチや保険として繋いでいたサーモ、デジタルタイマーの類いは全て撤去できました。また、大量のタップは、Energy Bar2つとタップ3つに集約できました。
金網の代わりにマジックテープを使って固定しています。配線はサンワサプライのケーブルダクトに入れています。amazon.co.jpで購入できるので調達しやすさからこれを選んでいます。
20130512_010.jpg

Vortechコントローラ等は全てキャビネット内に収めました。ACアダプタ系はもう少し整理したいと思っています。
20130512_030.jpg

収納の方はこんな感じに。
20130512_020.jpg

水槽まわりはこんな感じになりました。
※照明は点灯させていない状態です。
MazarraからATI T5にしたので、水槽上面がだいぶすっきりしたかなと思います。ダイアモンドアクアソーの置き場が微妙ですが、良い場所が無いです。
20130512_060.jpg

Apex導入したおかげでだいぶ整理できたかなと思います。
・大量のタップ → 余計な機材を撤去&Apexプログラムで連動できるので不要になったタップを撤去。
・大量のタイマー → Energy Barのポート全てタイマー制御できるので、撤去。
・大量の3ピン→2ピン変換 → Energy Barが3ピン対応のため撤去。
・マメスイッチ → I/O Breakout Boxに繋いだフロートスイッチに置き換え。大きなリレーボックスが無くなったので省スペースに。
・クーラーコントローラ → Apexプログラムで制御できるので撤去。
・ドーシングポンプ → RCPのコーラルカラーシリーズは添加しないように変更。3つ(ZEOstart3、K-Balance、リーフストロンチウム)だけに集約。他は手で添加してます。手で添加しやすくする方法はこちらを見てください。
・pHモニタ → Apex側で測定しているので撤去。Apexはセンサー類にACアダプタが不要です。

Apex導入前に出来ていたのはこんな事です。
・自動点灯、自動消灯(デジタルタイマーの機能)
・自動給水(マメスイッチ他の機能)
・異常水温時のアラーム(クーラーコントローラの機能)
・pHモニタリング(FUKUROWの機能)
・メインポンプと他の機材の連動(タップで…メインポンプ止めたらスキマーやカルシウムリアクターポンプも止まるとか)

Apex導入によって、上記は当然できるとして、より便利に&より安全になっています。
水槽の自動化にかなり貢献しています。
あと、水槽に何かあってもすぐに教えてくれるので、水槽の心配がかなり減りました。
・各種センサー類(水温、pH、ORP、塩分濃度)によるモニタリング&グラフ化
・各種センサー異常値検出時にアラーム&メール通知
・カルシウムリアクターのCO2が空になったらアラーム&メール通知
・漏水したらアラーム&メール通知
・Energy Barでアンペア値モニタリング&グラフ化
・水温上昇時に照明の自動消灯
・Feedモード&自動復帰
・キャビネットを開いたら、キャビネット内の照明を自動点灯(地味に便利)
・タイマーズレ無し(インターネットから時間を取るので)

ちなみにコスト度外視しでやろうと思えばこんなことも出来ます。
・自動水換え(塩の計測だけは無理かも)
・水温上昇時、サブポンプ&サブクーラー起動



B!
★Neptune Apex★ | コメント:(6) | トラックバック:(0)
 | ホーム | Next »

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