分散ソース管理システム「Git」が良いようなので、必要に迫られて使い始めた。
SVNのようにTortoiseSVNみたいな万能GUIクライアントがあるわけではなく、CUIコンソールでコマンドを打たねばならない場面が多々あり、ほぼ1日かかりでなんとか使えるレベルになった。(汗)
今、メモしておかないと忘れちゃうことが多いので備忘録として残そう。
まあ、ほとんどの内容は GitHub Help に書かれているけど。
...
3年前に納めた、シーケンサのデータロギングシステムの追加改造案件の見積書を提出した。
三菱のデータロガーユニットは、当時は出たばかりで使い辛いことこの上なかったのだが、声を大にして改善要望を出し続けた結果、少しは反映されて良くなったらしい。
今回、サーバー側のPHPによるWEBプログラムも追加が入るので、3年間でXOOPS Cube関連で蓄積してきた知識も活用して効率的にこなそうと思う。 それの当時はJavaScriptで苦労して使ったグラフツールもきっと進化しているだろうし。
毎度言うけど、シーケンサとPCソフト、サーバーソフトをある程度使えるマルチドメイン業務には、私のような人間は重宝されるらしい。
ということで、受注が楽しみ。
三菱電機のシーケンサラインアップに、ユニバーサルモデルの高速タイプ Q03UDV, Q04UDV, Q06UDV, Q13UDV, Q26UDV が加わりました。
多くの魅力があるので、早速案件で使おうかということになっています。
メリット
- 超高速処理
- LD命令が、ユニバーサルモデルの9.5ns --> 1.9ns
- PC MIX値が、ユニバーサルモデルの60命令/μs --> 227命令/μs
- CPU内蔵デバイスメモリを、最大60Kワードに容量アップ。
- 内蔵Etherポート経由で、CSVロギング機能を提供
などなど、従来の価格ほぼ据え置きでの性能アップは嬉しいですね。
しかし、モーションコントローラの時でもそうだったのですが、こうした高速化の時には命令毎に高速化の度合いが違うので要注意です。
今回、三角関数などの浮動小数点計算とCALL命令周りの速度アップが芳しくないので注意しましょう。
単位:μs | QnH | Q04UDEH | Q04UDV |
LD, LDI, AND, ANI,OR,ORI | 0.034 | 0.0095 | 0.0019~0.0078 |
OUT | 0.068 | 0.0095 | 0.0039~0.0078 |
$+ S D | 29 | 8.1~13.9 | 1.9~6.2 |
BMOV S D K1 | 7.1 | 5.4~7.0 | 1.8~5.5 |
BMOV S D K96 | 14 | 5.9~7.6 | 2.3~6.0 |
SIN(単精度) | 50 | 4.1~5.7 | 1.6~6.7 |
SINP(倍精度) SIND | 837 | 8.5~13.8 | 2.6~20.5 |
CALL Pn(ファイル内) | 0.88 | 2.6~4.0 | 0.9~0.9 |
CALL Pn(共通ポインタ) | 14 | 4.0~5.3 | 3.2~12.3 |
CALL Pn S1~S5 | 48 | 28.7~33.4 | 8.5~29.5 |
あと、この記事執筆時点では、パソコンからPLCのEthernetポート直接アクセスに関して、EZsocketライブラリのバージョンアップが行われておらず通信できません。
MXcomponentのライブラリのほうは既に提供されています。
久しぶりに、仕事で使うツールを購入。
今回は、新分野へ飛びこみます。
主に組み込み用途として使われる、三菱のC言語コントローラーと、その周辺ツールソフト。
これがまた、高いんですよ。 ハードとソフト合わせると、定価ベースだと50万円オーバーします。 キャンペーンで30万円くらいで買えたけど、うちは個人企業ですからね、私一人の稼ぎで回収しなければいけない。 もうなんというか、笑っちゃいます。
- キャンペーンのお知らせ(pdf)
今のうちに勉強しておいて、食い付ける時がきたらガブっとね。 うまく行けばどんどん仕事請けて、がっちり儲けるのだあぁー。
しかしその前に、C言語でまともにアプリケーションを作ったことが無いという、未解決の問題が・・
買った物
- C言語コントローラCPUユニット
- Q24DHCCPU-V iQ Platform対応 リアルタイムOS(VxWorks標準搭載)
- C言語コントローラ用エンジニアリングツールCW Workbench Q24DHCCPU-V用
- SW1DND-CWWLQ24-E
- C言語コントローラ用設定・モニタツール Q24DHCCPU-V用
- SW4PVC-CCPU-J
工場設備のソフト製作には様々な課題があるけれど、技術論や精神論を超えたところに「まず動くようにすること」の重要性がある。
久しぶりに、simulatorと向き合って仕事をすることになっているので、今日はこの話題にお付き合いください。
simulationを行うことは、実際の立ち上げ業務を速やかに行うために今や非常にウエイトが高いといえる。 5年前にシーケンサのシミュレータ という記事を書いたときにはまだまだ認識が低い人も多かったが、最近では「少なくともシーケンスとタッチパネル間のバグアウトくらいはsimulationかけておいてね」が常識になりつつある。
一昔前になるが、豊田スタジアム のソフト作成・現場仕様変更には、物を動かすまでテストができない状況もあり、simulatorが大変強力な武器であった。 ただ、この時の方式はsimulatorそのものをVisualBasicで作ったので、応用性とか 他のメンバーによる改造には不向きなシステムだった。。
現在携わっているのは、ブラックボックス化された古い制御装置のレトロフィット(置き換え)の案件。 この場合、「今まで動いていた装置」であり、置き換え後に許される立ち上げ時間は短く、そしてバグによって機械を壊すことは即生産阻害に繋がる。
まさにsimulatorに期待される場面なのだが、今回はできるだけ簡便に、且つ改造が容易な方法でやってみた。
画像のように、制御装置のシーケンサと通信するポスト通信アプリケーションをVB.netで作ってPC上で動かす。一方で同PC内で実体の無いsimulator側シーケンスをGX-simulator上で稼働させ、電磁弁・シリンダモデルや、サーボ位置モデルを動かして、結果をポスト通信アプリ経由で実シーケンサに返すもの。
このようにしておけばsimulator自身はシーケンスで書けるので誰でもメンテできるし、実ソフトとsimulatorは完全分離できるため転用性も向上する。
ということで、9月に制御盤出荷予定の案件で、これを十分に活用してソフト製作に取り組んでいる。 simulatorソフト製作は案外面倒で、バグアウトが目的なのかsimulator製作が目的なのか、わからなくなることもあるのだが、今回の方法が今後のsimulation環境へプラスになることを期待している。
# 自分の仕事の歩みは、simulatorとの付き合い方の変遷という部分も大いにある、と思うこの頃。
今日は仕事ネタ。
モーションで多軸制御をしていると、シーケンスで同じ回路を沢山書く場面に良く遭遇しますね。
警報回路とか、各軸の位置決め回路とか。
同じ回路の展開はコピペ+デバイス置換で作ってゆく事が多いと思いますが、どうしてもタイプミスが残ってしまって、立ち上げ時にすぐに動かなかったり潜在バグになったり、変更の際の打ち込みの手間が大変だったり、悩みの種です。
どうしたら良いかなと考えていたところで、ふと三菱のGXWorks2の編集で右クリックしてみると、「CSVファイルからの読出」「CSVファイルへ書込」メニューがあるではないですか!
ということで、今回はこれを試してみました。
GXWorks2の回路編集状態で右クリックすると、コンテキストメニューが出てきます。その一番下に、ありますネ。
私が実行した手順は、以下のとおりです。
標準的な回路を1つ作って、CSVファイルへ書き込む
多軸展開したい回路のベース回路をひとつ、ラダーで作ります。
ここで、次のような注意点があります
- 後で変更する可能性がある回路はできるだけ無くしておく。
実際の運転プログラムからの指令やインターロックなど、軸単位で異なる条件や、現場で変更しそうなところは、総合接点として入れておき、そのコイル回路を別プログラムに書くような構成です。 - デバイスマップをよーく考えて作っておく
当然ながら、デバイスのマッピングには細心の注意を払い、無駄なく、デバイスのかぶりがないように設計しておきます。
書込んだCSVファイルを参考に、EXCELで編集
ここは腕の見せ所です。
- CSVで書きだしたファイルは、ニモニック表記になっています。 「そんなのわからない」 なんて言わずに良く見ているとすぐに理解できてきます。
- 多軸展開となる部分や、位置決めポイント展開となる部分などは変数としてEXCELでデバイス番号の計算式を作ります。
- 書き出しのために1行にしないといけないので、その部分は軸数ぶんのコピペは仕方ないでしょう。 必要に応じてマクロ化したりすれば、割と簡単になりそうですけど、変更しやすいように作っておくのがミソなので最小限がオススメです。
- 最終行に「END」をお忘れなく。
CSVファイルで保存
書き出した時のCSVを参考に、1シートの縦に長ーいシートをつくり、それをタブスペーサのテキスト形式で保存します。
CSV形式で保存すると、カンマ区切りになってしまうので、GXWorks2で読み込めません。 タブ区切りで保存しましょう。 私の場合はテキスト形式でやりました。
文字コードの変換
私のローカルPC環境の問題かもしれないですが、Shift-JISで書かれたタブ区切りのCSVファイルは、読み込みに失敗します。
- 一旦、テキストエディタで開いて、unicodeで保存。
- その後、拡張子をcsvに変更します。
GXWorks2で読み込み
例の右クリックのコンテキストメニューで、読み込みます。 表示中のプログラムにごっそり上書きされるので、要注意。
いかがでしょうか。 使い方は人それぞれですが、なかなか良いと思いますよこれ!
本日、朝5時から、公開サーバーのphp、mysqlのバージョンアップを敢行しました。
バージョン
- php 4.4.7 → 5.2.3
- mysql 4.0.25 → 5.0.27
巷のうわさで特に危険だったのは、mysqlのほうでして、 v4.0→4.1でマルチバイト文字の処理が変わっているためです。
今年の年初にxoopsを始めたとき、手順が悪くてmysql4.3にせずに旧バージョンで始めてしまったのが悔やまれますが、そろそろアップしないと機能に制約が出そうでしたので、時間がとれそうな今やっておこう、ということで始めました。...
山形県内の某所への出張、現地調整含め2週間の業務が全て終了しました!
思えば、4月末に見積もりを出した時は、現地近隣の競合他社との競争なのでまあ受注は難しかろうと思っていたのですが、 6月~7月に仕事がぽっかり空きそうだったので、思い切って利益を最小限にカットして回答したところ受注できた案件です。 一人でやっていると出てゆくお金が少ない分、こういう時に融通が効きますね。
仕事の中身は、この時の日記にも書いたように、RS485で専用制御機器と通信せねばならず、それなりに手がかかるだろうけど何とかなるさ、とたかをくくっていたところ。。
RS485通信は、上記の日記のとおり事前シミュレーションが功を奏して、割とスムーズに立ちあがりましたが、 枝葉の部分で事前準備が完全に整っていなかったところに、お客様から早速の多数の要望の洗礼。。
耳栓必須な騒音職場で、耳栓していてもうるさくて、昼間の調整が終わったら早々に定時で引き上げ、夜な夜なホテルでソフトを作り上げる毎日でした。
でも終わってみれば、実にスムーズに完了し、予定より1日早い引き渡しとなった次第。 今日、20ページオーバーの画面操作説明書を暫定版で提出し、一区切り付きました。 成功のカギは、事前の準備で一番危うそうなところを重点的に済ませてあったことと、現地でお客様が早めに要望を出してくれたことでしょうか。
そして忘れてはならないのが・・ ここにきた時だけ味わえる、この肉!
たまには、良いよねー。
さてと、増えた体重の減量計画を立てなくちゃ・・