画像処理ライブラリの機能追加

今月も色々と社内画像処理ライブラリに機能追加を行いました。

1.演算に使用する値や論理値を式入力できるようにする。また式で使用できる関数を色々と実装。これにより値操作がとても楽になりました。

2. 配列の作成や連結を行うタスクを追加。

3.画像処理評価ソフトのデザイン変更。今までよりスッキリし、ノートパソコン等の小さい画面でも操作しやすくなりました。

SFCプログラム

QのSFCを勉強しました。
シュミレーションも含めてなかなか便利なものだと思いました。
現在の案件はステップシーケンスではないので残念ながら
使えませんが機会があればぜひ使いたいと思っています。

花粉症の時期になりました。

こんにちはmgcです。

いよいよ春も近づき、花粉が飛ぶ時期になりましたね。
私は極度の花粉症もちでこの時期はマスクとティッシュ、点鼻薬が欠かせませんが
皆様はいかがでしょうか?

そういえば以前聞いたのですが、
田舎に住まれている方は花粉症にはならないそうです。
花粉に慣れてしまっているのだそうです。
私はどこに住んでも花粉とは仲良く出来そうにないです。

誰でも作れることの利点、欠点。

こんにちはMTJです。

最近Unityというゲーム開発エンジンを触ってみました。

どういうものかというと、軽くPGができる程度でゲームが作れてしまう便利ツールという
感じがしました。

アセットという機能を配置していくだけで、地形の衝突判定、物理演算、キャラクターの移動
など殆どのことが可能になる便利ツールです。

適当な2Dゲーム等も簡単にできてしまうので、アイデアさえあればプログラマーも
グラフィックデザイナー等も無しでゲームがつくれてしまうすぐれものです。

今までゲームに必要だった部分が1人でできてしまうのでゲーム開発の敷居がかなり低くなり
市場が賑わうような気がします、日本で言うPS時代のゲーム開発競争のようなものですね(謎ゲーラッシュ)
まあ、利点と欠点については謎ゲーラッシュと似たような物です。

利点。
1.開発者は様々な知識がなくてもゲームを開発できる。
2.デフォルトのアセットも豊富で様々な要素を簡単に実装できる。
3.アセットを追加購入することで開発期間の短縮が容易。

欠点。
1.アセットの知識がない場合は修正ができない。
 (独特の挙動に悩まされたり、カスタマイズできない)
2.簡単に作れる手前作りが酷いゲームでも簡単に作れてしまう。
 (リスクが少ないので安直に作れてしまう。)
3.自作のアセット等を作らない場合グラフィック、見た目、音楽、
 挙動等似通った作りになってしまい、変化が無い。

もちろん欠点はあれどアセットの組み合わせで様々な物を作れるのでアイデア次第では無限大。
アイデアだけでも作れるという利点は、ゲーム開発としてみるとものすごい利点です。

今までは開発の敷居が高くアイデアがあっても埋もれていた事を簡単に実現でき、アイデアを
埋もれさすこと無く表現できるのはゲームとしてすごい大事だと思います。

画像案件

12月頃から開発を進めていた画像案件がもうすぐ一段落します。
今回の装置屋さんはとても優秀で、指示したとおりカメラと照明の微調整が行いやすいように作成してくれました。
おかげで現地調整が効率良く行え、今後の保守も行いやすそうです。
他の装置屋さんもこれくらい良い仕事をしてくれると助かるのですが・・・。

PLCopen

NJのe-learningを通してPLCopenを勉強しました。
PLCはメーカー毎にハードウェアとコマンドが異なります。
したがって、A社のPLCで作成したラダーは他社のPLCには使えません。
また、低レベルのコマンドを使用するのでラダーの書き方が千差万別です。
PLCopenはそんなラダーを共通化してしまおうという世界的な動きです。
まず、I/Oや内部デバイスのアドレスを直接使わない。すべてを変数として扱う。
そして、FUN(ファンクション)とFB(ファンクションブロック)を用いることにより、内部ロジックを意識しないプログラムを作成する。
FA機器のベンダーが商品用のFUNとFBの内部ロジックを各PLCメーカー別に用意すればプログラムを共通化できる。
と、夢のような構想ではあるのですが・・・。
NJ自体もむちゃくちゃ高価なPLCなので一体どの様な案件で使用されるのか見当もつきません。単体で64軸のモーション制御ができるので恐らくその筋ではないかとは思うのですが。
プログラムが共通になれば使う方はできるだけ安いPLCを選ぶ。
ということは高性能PLCの価格競争が始まる・・・のでしょうか?
機会があればはやってみたいPLCではあります。

今年も早ひと月が過ぎました。

初めましてmgcです。
今年も一か月が経ち二月も中旬になろうとしています。
時間が経つのは早いものですね。

以前なにかの番組で見たことがあるのですが、
時間が経つのを早く感じるのは
日々朝起き、仕事や、学校などで授業を受け帰宅するという
毎日の繰り返しの内容を脳が省くからだそうです。
脳の機能はすごいなと感心した瞬間でした。

小型化にともなう技術

こんにちはMTJです。

この数年PC関係はかなりの小型化が進んできました、ブラウジングをするなら
PDAのようなサイズで事足りる、さらにはWindowsもスティック型PCでUSBフラッシュメモリサイズ程度
で稼働可能です。

自分がWinVISTAのノートを買ったころ、今では320GBの外付けHDDが数万もするなんて
考えられないでしょう。
その時では考えられないくらいの小型化です。

そう考えると今小型化するのに必要なのはあながちマイコンではなく
ARM上で動くOSなら何でもいいのかもしれません、安定性等を考えれば
LINUX系一択かもしれませんが。

もちろんマイコン等を選択する利点はかなりあります。

それでも小型デバイスを作るために必要な技術はマイコンのみ
とはならないかもしれません。

また、PGも進めばC等取っ付き難い言語を扱わなくても開発ができるように
なるのかもしれません。

C#スクリプト

先日、C#スクリプトを試して見ました。
これを使用すればC#プログラムからスクリプトを実行できるようになります。

C#スクリプトの導入方法は他のサイトにも記載されているので置いといて、どのように実装するかだけ。

<実装例>
private int Test(string text) {
 var args = new TestArgs { Text = text }; ・・・(1)
 var script = CSharpScript.Create(
  ”Value = Text.Length * 2;” ・・・(2)
  , ScriptOptions.Default, typeof(TestArgs));
 var scriptState = script.RunAsync(args);
 scriptState.Wait();
 return args.Value;
}

public class TestArgs {
 public int Value { get; set; }
 public string Text { get; set; }
}

上記の(2)の個所がC#スクリプトのプログラム部分です。
上記は1行だけですが複数行のプログラムを記載できます。
おこなっている内容も特に意味が無く、Textプロパティの文字数を2倍して、Valueプロパティに代入しているだけです。
この計算結果を呼び出し元のC#側で使用することができます。

(1)でnewしているTestArgsクラスは、C#スクリプトへの入力と出力に使用するクラスで、上記ではTextプロパティを入力に、Valueプロパティを出力に使用しています。

上記の簡単な実装でスクリプトを実行できるのは非常に面白いです。
ですが、実際にどのような用途にこの機能を使うかは悩むところです。
思いつくのは、マクロとして使ったり、動的に演算式や判定条件を変更するなどでしょうか。
スクリプトなので速度はC#で実装するよりも遅いですし、もちろんビルド時に静的コードチェックもされないですし、よく考えて使わないと痛い目に遭うかも知れません。

PLCの教育

PLCの教育は大変です。
昔のように「A接点」と「B接点」と「自己保持回路」だけでは足りません。
ビットとワード、16進数、論理演算、実数演算・・・・。
中でも苦戦するのは「インデックスレジスタ」です。
プログラム上の「実アドレス」が存在しなくなった時点で「???」になります。
また、理解したように見えても「Z0~Z15ではとても足りませんが」と質問されたり・・・。
「アドレスの間接指定」といっても、元々目に見えないものなので、直接も間接もないのです。
私の経験上、想像力豊かな人の方が理解も早い気がします。