«前の日(04-26) 最新 次の日(04-28)» 追記

一往確認日記


2016年04月27日

_ iQ WorksとiQ-Fシリーズのトライアルセットが届いているのだが…

iQ WorksとiQ-Fシリーズのトライアルセットの事を以前紹介しました。 私も入手し数週間前に届いていましたが、ようやく開封出来る時間ができて昨日試してみました。

が、USBポートはなくどうやって接続するの???と思いました。 FX5Uを手にするのは初めてです。 irBoardではFX5Uもサポートになっていますが、それはMX Component for iOSが対応しているということで、自分ではまだ試してはいなかったのです。

Ethernetが付いているからEthernet経由で繋げるんだよなと思いつつ設定されているIPは何?とか疑問に思い、DHCPなら自動で繋がるんではと淡い期待をしましたが、予想通り卵が先か鶏が先かの様な話になっています。

SDカードにプロジェクトを入れてしまえばSDカードからブート出来るのでは?とか色々ドキュメントを当たったりしましたが結局分からずじまいでした。 RS-232Cの拡張モジュールを購入すれば済むことでしょうが、もうちょっとあくせくしてみます。


2019年04月27日

_ Timerの置き換えからRubyらしい考え方 - PLCのRuby言語コントロールユニット(4)

PLCのソフトをラダーの代わりにRubyで書けたらという企画です。

Rubyらしい置き換え

それではどうだったら考えやすいかと切り替えて考えます。

Rubyはオブジェクト指向言語ですから、シリンダーセンサーというオブジェクトとしてとらえます。

cs = CylinderSensor.new(x4, x5, 5)
m4 = cs.moved?
m5 = cs.returned?
m6 = cs.error?

csというのがシリンダーセンサーオブジェクトです。 これはCylinderSensorというクラスから実態化したものです。 クラスとは何?ということになりますが、ここでは無視して進みます。 x4とx5のセンサー入力があって、5秒のタイムアウトが絡んでいる程度の認識でいいです。

m4はシリンダーが動作状態かどうかということですからcs.moved?で動作状態かどうか問い合わせて代入しているということになります。 m5、m4も同様です。

実際にmoved?やreturned?やerror?の中身はどうなっているか?ということは知る必要がなく、CylinderSensorクラスの中に隠蔽していて私がごりごり頑張ればいいだけの事です。(前回の例の様に分かりにくくにっているかもしれません)

ファンクションブロックの様なものと考えてもらえればなんとなくお分かりかと思います。