日記一覧
当サイトに登録されている日記一覧本日、今年最後の仕事を引き渡してきました。
一年の締めくくりに相応しい、質の高いMotion仕事ができました!
既存制御装置の置き換え案件。
今年の5月頃から地道に準備してきて、10月末から本格的にソフト作成を行い、制御盤出荷前検査を経て現場へ。 ・・いつもなら可能な機械メーカー試運転は既存機械転用なのでありません。
そして現地短期間の集中工事・試運転立ち上げによって、製品の生産が可能となりました。
思えばここ1年、国内で設計して機械メーカー試運転・倉庫納入までで引き渡す仕事の数々、現地での立ち上げ仕事はありませんでした。 そのぶん楽でしたが、 やはり機械を動かして最後の製品を出すのが結果なので、久しぶりに充実した仕事ができました。
(追記)今回は一人ではなくて共同でソフトを作って組み合わせ、試運転も複数名で行い完成させた、ということも、楽しくできた要因だったです。
来年もまた、こういう仕事ができると良いなあ。
工場設備のソフト製作には様々な課題があるけれど、技術論や精神論を超えたところに「まず動くようにすること」の重要性がある。
久しぶりに、simulatorと向き合って仕事をすることになっているので、今日はこの話題にお付き合いください。
simulationを行うことは、実際の立ち上げ業務を速やかに行うために今や非常にウエイトが高いといえる。 5年前にシーケンサのシミュレータ という記事を書いたときにはまだまだ認識が低い人も多かったが、最近では「少なくともシーケンスとタッチパネル間のバグアウトくらいはsimulationかけておいてね」が常識になりつつある。
一昔前になるが、豊田スタジアム のソフト作成・現場仕様変更には、物を動かすまでテストができない状況もあり、simulatorが大変強力な武器であった。 ただ、この時の方式はsimulatorそのものをVisualBasicで作ったので、応用性とか 他のメンバーによる改造には不向きなシステムだった。。
現在携わっているのは、ブラックボックス化された古い制御装置のレトロフィット(置き換え)の案件。 この場合、「今まで動いていた装置」であり、置き換え後に許される立ち上げ時間は短く、そしてバグによって機械を壊すことは即生産阻害に繋がる。
まさにsimulatorに期待される場面なのだが、今回はできるだけ簡便に、且つ改造が容易な方法でやってみた。
画像のように、制御装置のシーケンサと通信するポスト通信アプリケーションをVB.netで作ってPC上で動かす。一方で同PC内で実体の無いsimulator側シーケンスをGX-simulator上で稼働させ、電磁弁・シリンダモデルや、サーボ位置モデルを動かして、結果をポスト通信アプリ経由で実シーケンサに返すもの。
このようにしておけばsimulator自身はシーケンスで書けるので誰でもメンテできるし、実ソフトとsimulatorは完全分離できるため転用性も向上する。
ということで、9月に制御盤出荷予定の案件で、これを十分に活用してソフト製作に取り組んでいる。 simulatorソフト製作は案外面倒で、バグアウトが目的なのかsimulator製作が目的なのか、わからなくなることもあるのだが、今回の方法が今後のsimulation環境へプラスになることを期待している。
# 自分の仕事の歩みは、simulatorとの付き合い方の変遷という部分も大いにある、と思うこの頃。
仕事始めに合わせて、恒例の、今年の抱負を。
一昨年が「初心」、昨年は「心機一転」。 今年は、、
にします。
「意志貫徹」という四字熟語はありませんが、
「意志」:思い志すこと。 「貫徹」:貫き通すこと。
ということで、 「何事に対しても自分の意志を強く持ち、決めたことに向かって進み完遂する」 ことを今年の抱負に致します。
これに決めた理由ですが、 昨年は前半が仕事量が少なく、自身のモチベーション維持に苦労しました。 しばしば弱さが出て、時にはウッドデッキに仰向けになり1時間ほど青空を見上げていた、という時期もありました。
おかげで、Xoopsモジュール「d3diary」の開発を行うことができたわけで、思い返せば貴重な時間だったわけです。
今年は年初から大忙しで、厳しいこのご時世のなか、大変幸せなことと思っています。 限られた時間を有効に使って、自分で納得のゆくアウトプットが出せるよう、しっかり「意志」をもって「貫徹」したいと思います。
4日半の仕事の旅から帰ってきたのが、5日の朝。
その後関西方面出張でしたが、昨晩無事に帰宅して、1週間ぶりに自宅のベッドで寝ました。 やっぱり睡眠は自宅が一番です。
仕事は暑い現場で汗だらだらでした。 技術営業の成果は、まだ出ません。
12年ぶりにタイ英語と会話しましたけど、何とかコミュニケーションは取れました。 ホテルに電話でレイトチェックアウトを依頼する時がいちばん大変だった(汗)。。
宿泊地は、タイのリゾート、PATTAYA。 ホテルは、短期滞在のため優遇していただけまして、「AMARI ORCHID RESORT & TOWER」 でした。 オーシャンビューの部屋。
パタヤ市内の移動は、以前半年間滞在した先輩に連れられて、ソンテウを使いました。 荷台に乗って、降りたい時にブザーを押し、ひとり大体10バーツくらいで移動できます。
短い旅でしたが、タイ料理も沢山いただきました。 本場のトムヤムクンは、最高。
帰りに、お土産屋さんによって買い込みました。
子供たちには何が良いか悩みましたが、全然タイとは無関係っぽい民芸メカ人形があったので、それで。
一応、家内にも翡翠のネックレス。
次回も行けるかどうかは、今回の結果を持っての受注が成功するかどうかに拠ります。 微妙なところ。
先日以来、PHPで案件に取り組んでいます。
三菱のデータロガーユニットの「クセ」に悩まされつつ、だいぶ進んできました。 昨日と今日は、WEB画面でのグラフ表示にチャレンジ。
WEBブラウザ上でのグラフ表示には色々な方法がありますが、今回はできるだけ簡単に(書くコードが少ないという意味)時間をかけず、見栄えをあまり凝らずに行きたいので、 Javascriptでやってみました。
といっても、いつものように、オープンソースを使います。
Chart Widget Demo(WebFX)
自由度は相当低いですが、その分、敷居が低いですね。 今の私には丁度良い。(笑)
結果、こんな感じです。 20~1000レコードを60秒おきにリロードし、データロガーユニットからFTPでダウンロードしグラフ描画します。 意外に軽い。
今回はこんな感じで済ませましたが、もっと本格的なグラフ表示も試してみたいですね。
仕事にPHPを使って自身新分野に挑戦中!
概要
こちらのデータロガーユニット を使ってPLCから受信したEXCELレポートを、ユーザーがWEBサーバー経由で最新版をダウンロードする、というもの。 EXCELのファイル名が固定化していないので、WEBサーバーにFTPクライエントを立てて、ユニットのFTPサーバーへ接続してファイル名を得ることから。
ASPで?
サーバーはWindowsXPのIIS。 ならばASPだね、ってことでASPでFTPクライエントコードを探したのだが、見つからず。 結局、ASP.netなこのページか。
WebClientクラスでFTPによりファイル転送を行うには? [@IT .NET TIPS]
しかし、このためだけに.aspxに踏み込むのはいかにも時間の無駄。 やはり色々準備されているPHPかな。 XOOPSで馴染んできたPHPなのでハードルは低くなっているし、イントラ内のシステムなので、セキュリティーへの配慮も負担が少ない。
PHPで?
ということで、PHP5をインストール。 IIS+PHPはあまりメジャーではないのだが、下記ページを参考にSAPIでやってみたらOK。
PHP5 インストール・設定方法(IIS 編) [Windows で PHP を使おう]
(注意)
IISで仮想ディレクトリを使う場合、「No input file specified」というエラーが出たら
doc_root =
としておくと良さげ。
FTP関数?
そして、PHP5に準備されているFTP関数を使えば、OK?
FTP関数 [PHP マニュアル]
これ、間違いなく使えて他のPCのWEBサーバーともログイン・「ftp_nlist」によるファイル名取得、ともOKなのに、このデータロガーユニット内のFTPサーバーとは相性が悪いのか、「ftp_nlist」でも「ftp_rawlist」でも 空の配列が返るだけで取得できない。
半日悩んだ挙句、下記のページを参考に fputsとfgetsで返答文字列を確認しながらやってみると、どうやらうまくいきそうな予感。
FTPクライアント [PHPのちょっとしたTIPS]
最終的には、上のページで配布されている、このクラスを使うことにして、無事にファイル名を得ることができた。
まとめ
私にとっては新分野ではあったが、ひとつ心配なハードルがクリアできたので、このまま行くつもり。
設備制御分野では「電気屋」と「システム屋」のドメインが分かれているので、こういうコラボで小ぶりな仕事には、私のようなマルチ人間は便利で重宝されるため、今後も突っ込んでいきたいと思う。
やってしまいました
データの誤消去。
いつも仕事で使っているPCです。 取り急ぎ、重要な仕事のデータは、ほぼ復元できました。
発端は、「DISK残量も少なくなってきたし、古いデータは圧縮アーカイブにして一旦外付けHDDに退避させ、その間にデフラグでもやっておくかな。」 という軽い気持ち。 忙しい時にはできないから、こういう仕事の狭間は絶好のチャンス。
使った外付けHDDは、いつものUSB2.0外付けケースに、160GBのディスクを入れたもの。 そもそも、この判断が誤り。 大事なデータゆえ、Raidでミラーリングされたサーバーに退避すべきだったし、このディスクは、以前サーバーで酷使してきたものでありました。
データ消失までの成り行き
- まず、PC上でアーカイブ化した仕事のデータを、外付けHDDに転送。この時点ではきちんと退避されていたことを確認済み。
- 続いて、PC上の元データの消去を開始。
- 消去が終わる頃、欲を出して「あ、このデータも退避しておこう・・」 と思って外付けHDDにコピーを開始した時、悲劇が起こった。 「遅延書き込みに失敗しました。ディスクにエラーがある可能性・・」
- あっと思ったとき、丁度データ消去は完了していた。 ハイ、デフラグかけるのですから、shift+delでごみ箱スルーの一発消去してましたし。
- 外付けHDDを一旦離脱させ、改めて接続してみたけれども、「カチカチカチ、ジーッ・・」の繰り返し。やっちまったぁ
一瞬の判断ミスが命取りになりました。
その後の復旧トライ
- まずは駄目元で、「ドライブの復活」を試してみました。 これ、結構いけます。 何度か途中でエラーになるのを我慢して繰り返していたら、接続できるようになりました。
おかげで、いくつかのデータを救うことが可能に 。 しかし、壊れたディスクですから限界があります。 1MB以上クラスのファイルは救えませんでした。 - 続いて、消去したばかりのPCのディスク上で「復元」にトライ。 フリーソフトでいくつか試してみたうち、フォルダ構造で救える「データ復活/完全削除 【無料版】」が(XP限定ながら)一番使いやすかったです。
注意すべきは、元のフォルダ位置を認識できないような場合にも、Windowsフォルダの下の階層にくっついている場合があるので、見失わないように。 知らないとファイルひとつずつ救出するという恐ろしい作業が待っています。
それから、この手のソフトを使っても、すべてが救えるわけでは無いです。 今回のものでは、ざっと50%位だったかな。
以上により、OUTLOOKのオフラインデータや、最近の重要なデータは無事に救えました。 救えなかったのは、自社かお客様のサーバーにバックアップ済みデータのみ。
そして今、晴れてそのPCはドライブのバックアップ後に無事にデフラグ中。
教訓
- 作業ミスの可能性を考慮して、手順を踏むべし。
- たとえ一時的なものであっても、データ退避は信頼できる複数のディスクかメディアに取るべし。
- ディスクのパーティションは、適切に切っておくべし。 今回、データが起動ドライブにあったのがそもそもの要因。
- データ復旧ソフトの1本くらいは買ってたほうが幸せかも。