またまた、福岡のお客様よりご注文いただきまして、行って参ります。 サーボモーターを沢山使うお客様は、本当にありがたいです。 毎度ありがとうございます。
今回もMotion制御ですがSFCをほとんど使わず位置決めユニットを踏襲するような使い方ですので深い知恵は要りません。
でもサーボモーター台数がバカ多い(ここには書けませんが)ので、力技を少なくする基本設計が重要です。
その部分は終わっていてプログラミングに入っていますが、マルチCPUの共有メモリ領域が既に満杯です。(涙) シーケンスのSTEP回路も既設を参考に展開という、これまた力技が待っています。
そしていつものようにメカが遅れていて、そのしわ寄せは全て制御屋に来ます。(T_T) ・・これから月末まで、長くて暑い夜が続きそうです。 徹夜は避けたいですが、2時?3時はたびたびありそう・・ これから歳をとってゆくのに、こんな仕事ばっかりだと辛いなあ。 「メカ屋に戻ってみたい」なんて思ってしまいそう。。
仕事で、めずらしく制御盤の図面を書いた。
テスト盤ということで急ぐくせにコストをかけられないので、止む無くAutoCAD-LTを使って。
まあ、実績のある図面からほとんど拝借したのだが、元々電気屋ではない自分は図面は読むものであって書く機会はほとんどなく、1面分全て自分で書いたのは初めて。
今日はその出荷前検査を行い、ユニバーサルモデルのモーション制御のACサーボモーターをJOG運転まで実施し、引き取ってきた。 明日は客先工場へ持ち込んで、配線工事を立会い。 来週には不具合なく引渡しの予定。
たまには自分で図面を書かないと勘が鈍るから、今回の案件はちょうど良かった。
今日は仕事ネタ。
モーションで多軸制御をしていると、シーケンスで同じ回路を沢山書く場面に良く遭遇しますね。
警報回路とか、各軸の位置決め回路とか。
同じ回路の展開はコピペ+デバイス置換で作ってゆく事が多いと思いますが、どうしてもタイプミスが残ってしまって、立ち上げ時にすぐに動かなかったり潜在バグになったり、変更の際の打ち込みの手間が大変だったり、悩みの種です。
どうしたら良いかなと考えていたところで、ふと三菱のGXWorks2の編集で右クリックしてみると、「CSVファイルからの読出」「CSVファイルへ書込」メニューがあるではないですか!
ということで、今回はこれを試してみました。
GXWorks2の回路編集状態で右クリックすると、コンテキストメニューが出てきます。その一番下に、ありますネ。
私が実行した手順は、以下のとおりです。
標準的な回路を1つ作って、CSVファイルへ書き込む
多軸展開したい回路のベース回路をひとつ、ラダーで作ります。
ここで、次のような注意点があります
- 後で変更する可能性がある回路はできるだけ無くしておく。
実際の運転プログラムからの指令やインターロックなど、軸単位で異なる条件や、現場で変更しそうなところは、総合接点として入れておき、そのコイル回路を別プログラムに書くような構成です。 - デバイスマップをよーく考えて作っておく
当然ながら、デバイスのマッピングには細心の注意を払い、無駄なく、デバイスのかぶりがないように設計しておきます。
書込んだCSVファイルを参考に、EXCELで編集
ここは腕の見せ所です。
- CSVで書きだしたファイルは、ニモニック表記になっています。 「そんなのわからない」 なんて言わずに良く見ているとすぐに理解できてきます。
- 多軸展開となる部分や、位置決めポイント展開となる部分などは変数としてEXCELでデバイス番号の計算式を作ります。
- 書き出しのために1行にしないといけないので、その部分は軸数ぶんのコピペは仕方ないでしょう。 必要に応じてマクロ化したりすれば、割と簡単になりそうですけど、変更しやすいように作っておくのがミソなので最小限がオススメです。
- 最終行に「END」をお忘れなく。
CSVファイルで保存
書き出した時のCSVを参考に、1シートの縦に長ーいシートをつくり、それをタブスペーサのテキスト形式で保存します。
CSV形式で保存すると、カンマ区切りになってしまうので、GXWorks2で読み込めません。 タブ区切りで保存しましょう。 私の場合はテキスト形式でやりました。
文字コードの変換
私のローカルPC環境の問題かもしれないですが、Shift-JISで書かれたタブ区切りのCSVファイルは、読み込みに失敗します。
- 一旦、テキストエディタで開いて、unicodeで保存。
- その後、拡張子をcsvに変更します。
GXWorks2で読み込み
例の右クリックのコンテキストメニューで、読み込みます。 表示中のプログラムにごっそり上書きされるので、要注意。
いかがでしょうか。 使い方は人それぞれですが、なかなか良いと思いますよこれ!
工場設備のソフト製作には様々な課題があるけれど、技術論や精神論を超えたところに「まず動くようにすること」の重要性がある。
久しぶりに、simulatorと向き合って仕事をすることになっているので、今日はこの話題にお付き合いください。
simulationを行うことは、実際の立ち上げ業務を速やかに行うために今や非常にウエイトが高いといえる。 5年前にシーケンサのシミュレータ という記事を書いたときにはまだまだ認識が低い人も多かったが、最近では「少なくともシーケンスとタッチパネル間のバグアウトくらいはsimulationかけておいてね」が常識になりつつある。
一昔前になるが、豊田スタジアム のソフト作成・現場仕様変更には、物を動かすまでテストができない状況もあり、simulatorが大変強力な武器であった。 ただ、この時の方式はsimulatorそのものをVisualBasicで作ったので、応用性とか 他のメンバーによる改造には不向きなシステムだった。。
現在携わっているのは、ブラックボックス化された古い制御装置のレトロフィット(置き換え)の案件。 この場合、「今まで動いていた装置」であり、置き換え後に許される立ち上げ時間は短く、そしてバグによって機械を壊すことは即生産阻害に繋がる。
まさにsimulatorに期待される場面なのだが、今回はできるだけ簡便に、且つ改造が容易な方法でやってみた。
画像のように、制御装置のシーケンサと通信するポスト通信アプリケーションをVB.netで作ってPC上で動かす。一方で同PC内で実体の無いsimulator側シーケンスをGX-simulator上で稼働させ、電磁弁・シリンダモデルや、サーボ位置モデルを動かして、結果をポスト通信アプリ経由で実シーケンサに返すもの。
このようにしておけばsimulator自身はシーケンスで書けるので誰でもメンテできるし、実ソフトとsimulatorは完全分離できるため転用性も向上する。
ということで、9月に制御盤出荷予定の案件で、これを十分に活用してソフト製作に取り組んでいる。 simulatorソフト製作は案外面倒で、バグアウトが目的なのかsimulator製作が目的なのか、わからなくなることもあるのだが、今回の方法が今後のsimulation環境へプラスになることを期待している。
# 自分の仕事の歩みは、simulatorとの付き合い方の変遷という部分も大いにある、と思うこの頃。
先日、機械屋脱却宣言をしたところだが、早速 近所の工場から電話が入り、緊急対応を要請された。
以前、前職場で作った仮想モードのソフトを、今回Qmotionへ置き換える仕事で、うまく行かないので来てほしいとのこと。 さて、どうなることか。
***
詳しい状況は書けないが、大きなメカが大きく振動して床が揺れていた。
1年も実践から離れていたのでmotionの勘を取り戻すのに時間がかかったが、共有メモリの設定ミスと、演算周期の設定の問題で、位置指令抜けが発生しているのが原因であった。
現場では散々悩んでいたようだが、嘘のようにスムーズに動くようになって感激された。
「仮想モードを安易に考えてはいけません。悩む前に私に相談してください」 (もちろん真意は、最初から私に発注してください、ということ。) と言っておいた。
久しぶりに自分の庭に戻ってきたような感じで、とても楽しく仕事ができた。 この続きは、また来週に続行。 やっぱりこれでなくっちゃ。
いつも自社のITばかり紹介していてはブログの意味が無いので、たまには本業の話題を。
(右の写真の右側です)
三菱電機の AJ65BT-G4-S3 (通称:G4-S3) を買いました。 CCリンク経由でリンク内PLCのモニタ/書き込みを行うためです。
ずいぶん昔からG4ユニットはありましたが、Aシーケンサ限定のものでした。 2000年にQモードに対応した後継機種G4-S3が発売になりましたが、あまり使う機会はありませんでした。
今回は、古い機械でAnAシーケンサで制御している装置の一部をQモーションに置き換えるもので、全体制御は今までどおりAnAで行うものです。
当時のネットワークはMelsecnet2でしたから、Qシーケンサは割り込めません。 かといって、このためだけにNet10にするのも勿体無い。 → 必然的に、CCリンク(トランジェント通信を使用:下記注2参照)を採用となりました。
また、新規制御盤と既存制御盤が離れているため遠隔読み出しできないと不便なのですが、生憎AシリーズのCCリンクではCPU経由での読み書きは出来ません。 G4-S3ユニットをCCリンクに割り込ませておけば、AシーケンサもQシーケンサも読み書きできます。(注3)
下の画像はGX-Developerの接続先指定のスクリーンショット。
AnAシーケンサでは通信速度が通常のCPU接続では9.6Kbpsですが、G4-S3を経由すると38.4Kbpsになります。 今となっては38.4Kbpsでも遅いのですが、9.6Kbpsはめちゃくちゃ遅いので この速度アップはばかになりません。 Qシーケンサ相手なら、115Kbpsで通信できます。
現場の効率アップを考慮すると今回の案件だけでも十分ですが、1つ持っていれば今後も有益か(?) とも考えて購入に踏み切りました。
今月一杯はソフトデバグやら盤メーカー・機械メーカー立会いなどの出張で手一杯の予定。 現地が終わったら、このG4-S3は外して持って帰ります。(笑)
** 注意
注1: G4-S3を使用して、古い大型AシリーズのPLCを読み書きする場合は、CCリンクマスタ/ローカルユニット(AJ65BT11)の機能バージョンB以降、ソフトウエアバージョンJ以降が必要です。
資料: PDFファイル
注2: AnAシーケンサへのトランジェント通信は、デバイス直接指定はできません。 ランダムアクセスバッファメモリ経由となります。
注3: 実はまだ通信できていなかったりします。 構成に無理があるのか、三菱電機へ問い合わせをしてみます。
→ 061126追記: AnAのユニットが古かったようでして、00年の別のユニットに交換したら通信できました。 これで38.4Kbpsで通信できます。(嬉)
やってしまいました
データの誤消去。
いつも仕事で使っているPCです。 取り急ぎ、重要な仕事のデータは、ほぼ復元できました。
発端は、「DISK残量も少なくなってきたし、古いデータは圧縮アーカイブにして一旦外付けHDDに退避させ、その間にデフラグでもやっておくかな。」 という軽い気持ち。 忙しい時にはできないから、こういう仕事の狭間は絶好のチャンス。
使った外付けHDDは、いつものUSB2.0外付けケースに、160GBのディスクを入れたもの。 そもそも、この判断が誤り。 大事なデータゆえ、Raidでミラーリングされたサーバーに退避すべきだったし、このディスクは、以前サーバーで酷使してきたものでありました。
データ消失までの成り行き
- まず、PC上でアーカイブ化した仕事のデータを、外付けHDDに転送。この時点ではきちんと退避されていたことを確認済み。
- 続いて、PC上の元データの消去を開始。
- 消去が終わる頃、欲を出して「あ、このデータも退避しておこう・・」 と思って外付けHDDにコピーを開始した時、悲劇が起こった。 「遅延書き込みに失敗しました。ディスクにエラーがある可能性・・」
- あっと思ったとき、丁度データ消去は完了していた。 ハイ、デフラグかけるのですから、shift+delでごみ箱スルーの一発消去してましたし。
- 外付けHDDを一旦離脱させ、改めて接続してみたけれども、「カチカチカチ、ジーッ・・」の繰り返し。やっちまったぁ
一瞬の判断ミスが命取りになりました。
その後の復旧トライ
- まずは駄目元で、「ドライブの復活」を試してみました。 これ、結構いけます。 何度か途中でエラーになるのを我慢して繰り返していたら、接続できるようになりました。
おかげで、いくつかのデータを救うことが可能に。 しかし、壊れたディスクですから限界があります。 1MB以上クラスのファイルは救えませんでした。
- 続いて、消去したばかりのPCのディスク上で「復元」にトライ。 フリーソフトでいくつか試してみたうち、フォルダ構造で救える「データ復活/完全削除 【無料版】」が(XP限定ながら)一番使いやすかったです。
注意すべきは、元のフォルダ位置を認識できないような場合にも、Windowsフォルダの下の階層にくっついている場合があるので、見失わないように。 知らないとファイルひとつずつ救出するという恐ろしい作業が待っています。
それから、この手のソフトを使っても、すべてが救えるわけでは無いです。 今回のものでは、ざっと50%位だったかな。
以上により、OUTLOOKのオフラインデータや、最近の重要なデータは無事に救えました。 救えなかったのは、自社かお客様のサーバーにバックアップ済みデータのみ。
そして今、晴れてそのPCはドライブのバックアップ後に無事にデフラグ中。
教訓
- 作業ミスの可能性を考慮して、手順を踏むべし。
- たとえ一時的なものであっても、データ退避は信頼できる複数のディスクかメディアに取るべし。
- ディスクのパーティションは、適切に切っておくべし。 今回、データが起動ドライブにあったのがそもそもの要因。
- データ復旧ソフトの1本くらいは買ってたほうが幸せかも。