表面粗さを計測したいという案件などについて。連休の日曜と月曜にCM社の工場でスキャナを取り付ける工事があるので準備。赤外線が見えるように改造したカメラで光軸合わせをするのだ。OptrimaSDKのヘッダのコメントを読んでいたら電源周波数によってフレームレートを変えるように推奨されていたので見守りシステムに電源周波数の設定項目を追加する。50Hzならフレームレートを25fpsに、60Hzなら30fpsにすると蛍光灯のチラチラが少なくなる。2012-12-20(木)やりたい事や、やらなければならない事がいっぱいあるので早出。引き続きS社向けユニットのFPGA改造のデバグ。従来ソフトウェア転送でサンプリング限界が650kHz程度だったのがハードウェア転送になって1.8MHzまで行けるようになった。S社から戻ってきたユニット3台にDIOのノイズ対策。2台に干渉外信号なしのプログラム、もう1台に先ほど完成した最新のプログラムを書き込む。SoftKineticのDS311で撮った距離画像とカラー画像を重ね合わせて3次元変換し、ロール、ピッチ、ヨーをぐりぐり動かせるようにする。1GHzのWindowsXPだと10fpsがやっとなのに2.4GHzのWindows7は30fpsでサクサク動く。2012-12-19(水)DT社の動かないAGVメインボード。出力FETが1個壊れていた。全てのCHでモータが片方にしか回らなかったのはテストプログラムでモータを回すタイミングに壊れたFETが電源を引っ張って落していたからだった。壊れた原因が分からない。現場を見せていただくようリクエスト。SoftKineticのDS311を組み込んだ見守りシステムをあれこれテスト。以前のP社のものより明らかにノイズが少ない。DS311の電源は5VでUSBポートを2口使って供給できるようにもなっている(専用のACアダプタも付属している)。USBだけの供給はディスクトップでは動いたけど、うちにある2台のノートではどちらもだめだった。1.5Aくらい食うらしい。午後から矢野のDT社へ。AGVの現物を見せてもらう。修理したメインボードは問題なく動いた。残り8枚のメインボードも受け入れ検査でOKなら良いということに。SoftKineticの測距カメラは案外使えそうということで研究用にDS325を1台買うことに。S社向けユニットのFPGA改造のデバグ。S社から計測終了後の待機位置移動時は破損防止機能を無効にしてほしいとの要望。アルテラのFPGA書き込み器USB-Blasterを壊してしまう。USB-BlasterのインターフェースはFTDIのUSBチップと初期化用EEPROMが載っているのだが、ユニットが繋がっていると思ってユニットのEEPROMをイレースしたつもりがUSB-Blasterが繋がっていてUSB-BlasterのEEPROMを消してしまったorz。I君がもうひとつUSB-Blasterを持っていたので借りてEEPROMの内容を読み出して壊れたUSB-Blasterに書き込んで復旧。引き続きS社向けユニットのFPGA改造のデバグ。2012-12-18(火)SoftKineticのDS311のプログラムを見守りシステムに組み込む。2年前に作ったアンテナ制御システムのCDが欲しいとの要望で作成。S社から要望のあったM社製サーボモータを使うためのケーブルピンアサインを調べてメールで送信。見守りシステムの制御フローを作成。S社ユニットで[A/D]→[FIFO]→[SH4ソフトウェア]→[FIFO]→[USB]と流れているデータを[A/D]→[FIFO]→[FPGA]→[FIFO]→[USB]という処理とするための改造。FPGAのプログラムをしこしこ。通信プロトコルの処理をFPGAに組み込むのでややこしい。DT社から先日納めたAGVメインボードが焼けたと戻ってきた。見た目焼けてはいないが全てのCHでモータが片方にしか回らない。明日詳細を調べてみよう。2009年8月30日にも書いたが何事も極端なのはよろしくない。P制御しかしていないダメダメな制御のよう。SoftKineticのDS311。optrima_enable_camera()でよくエラーになっていたがUSBケーブルを付属のごつい物に交換したら出なくなった。カラー画像の取得にも成功。今度は表示がフリーズするようになった。距離データや画像データの取得イベントでImageへの描写をするとよくないみたい。描写の部分をタイマイベントに移したらフリーズしなくなった。Windows7機で試してみるとカラー画像の取得イベントが起きない。ドライバのせい?カラー画像のイベントが起きないのは環境変数を設定していなかったから。DLLの起動時に参照しているらしくプログラムの最初でputenv()を実行しても効かなかった。2012-12-16(日)家で仕事。S社向けの見積もり資料を作成して営業へメールで送信。SoftKineticのDS311をあれこれ。optrima_exit()を実行する前にoptrima_removehandler_newframe()を実行して時間待ちを入れないとフリーズする。距離画像を表示できるようになった。2012-12-15(土)蟄居。2012-12-14(金)福山方面から戻ってきた含水率計1台の修理。久々に逆挿しでコンデンサとICを破裂させてしまったorz。スキャナに手動でマスクを掛けられる機能を実装。バージョン表示を実装。M氏に預けていてもなかなか進まないSoftKineticのDS311を強奪。OptrimaSDKというヤツでやるとCでなんとか動いた。最新の物にはサンプルは付いているけどDLLが古くて動かず、9月にダウンロードしたDLLの方が新しかったりで戸惑う。2012-12-13(木)CM社設備更新の予備機。営業に持って帰ってもらった本来のスキャナをつないだら問題なく認識できた。スキャナの設定を読み出して保存しておく。CD社からシーケンサ出力とTTL入力をつなぐ件について相談がくる。TELやらFAXでやり取り。シーケンサのインタフェースは24Vのシンクかソースがほとんどなので経験がないらしい。S社から読み込み時に「インデックス範囲を超えている」のエラーが出るというデータを送ってもらう。こちらでは再現できなかった。使っているプログラムが古い疑い。CM社改修工事について不明点をメールで質問。元のVBのプログラムに納得のいかない部分がある。VBから移植した部分をあれこれうまく動くように独自に改造。2012-12-12(水)AGVセンサボード2枚の修理。クリスタルの頭が飛んでいたのを見逃して罪のないCPUを交換してしまったorz。PLCのデータを読み出して保存しておく。確かめたかったデバイスの値を調べてみる。出張中のS社のかたから判定条件(and/or)が違うのではないかとの指摘。調べてみると違う所を参照していた。修正してメールで送信。乾燥機コントローラの中国語バージョンを1セット準備。CM社設備更新の予備機を準備。XPのsp3をインストールしてVSやらINtimeやらC++Builderやらの開発環境をインストール。出張中のS社のかたからウインドの名前を変更してほしいとの要望と、パラメータ設定のアクノリッジが返らないことがあるとの報告。アクノリッジは1度要求があると計測開始をしないと2度とは出さないようになっていた。修正してメールで送信。CM社設備更新の予備機。INtimeの設定に手間取る。イーサネットでPLCは繋がったがスキャナはだめ。借りている違う機種で試したのだがどうやらスキャナの設定が違うらしい。本来の機種を1台持って帰ってもらうように営業にリクエスト。2012-12-11(火)S社向けユニット3台の出荷検査。ユニットの基板をケースに組み込もうとしたらケースのセルスペーサが立っていない。ケースを板金屋さんへ返送。USBコネクタが実装できないと言われて戻ってきた基板をチェック。M氏にリピートで製作してもらった基板なのにフットプリントが違っている。ライブラリか何かが入れ替わったんだな。手付けで無理やり実装。AGVメインボード1枚の修理。基板が焼損していて丸ごと交換。AGVメインボード9枚の出荷作業。S社より計測開始時に待機位置でスピンドル回転数が上がるまで待つようにしたいとの要望でプログラムを変更してテストしてメールで送信。AGV用赤外線リモコン受光基板8枚製作。板金屋さんからケースが戻ってきたのでS社向けユニット3台をケースに組み込み出荷。AGV用センサボード8枚出荷検査。TempoSonic制御ユニットにノイズフィルタ用のコンデンサを取り付け。2012-12-10(月)VBから移植したプログラムがどうも思うように動かない。先日の不可解な部分も含めて最新のプログラムではない疑い。S社から依頼されていた判定条件(and/or)を判定行ごとに設定できるようにするプログラムの改造。ファイルオープンしたデータに対応していなかったので修正。S社向けユニット1台の修理。プログラムが起動しない。S社向けユニット3台の出荷準備、組み立て。2012-12-9(日)家で仕事。VBだと変数を宣言すると0で初期化されるがCでは初期化されない部分。2012-12-8(土)家で仕事。VBだとなぜうまく動くのだろうという疑問が。5;}これでCだとhoge[1]とhoge[1]以外は違う値になるのだがVBだと同じ値になるらしい。2012-12-7(金)油圧シリンダのジョグの反応が少し遅いので改造。シーケンサとの通信は大きなブロックで少ない回数行ったほうが速いはず。レジスタの常時読み込みを大きなブロックにする。シリンダの制御をWin側からINtime側に移す。昼に出かけて市内CD社へ。ジョグの反応は良くなった。CM社からオペレータの方が来られて動作を見てもらい操作方法を伺う。ある操作で不動小数点エラーが出たり思うような動作ができなかったり。シーケンサを借りて帰る。シーケンサとの通信の実時間をオシロで見ると旧プログラムでは25msecサイクルだったのが新プログラムでは15msecになっていた。シーケンサのレジスタ書き込みも大きなブロックでするように変更。2012-12-6(木)営業に連れ出されて呉のH社へ。見守りシステム2(仮称)の会議に出席。メール送信のデモをしようとしたら送信できない。短いメールアドレスだと送れるのに長いメールアドレスを設定すると「宛先が設定されていない」とのエラーになる。社内のテストでは問題なかったのに。