なーお さんの日記
先日の日記で報告したとおり、サンプルを公開しました。
仕事が立て込んできたので、早めに片付けておきたかったので、予定より早くの公開です。
例によってお約束ですが、これを使用した場合のいかなる不具合も筆者及び(有)モーションクリエイトは保障致しません。 各人で独自に検証のうえ、自己責任でご使用ください。
では。
モーション制御フェチの皆さん、こんにちは。
(そんな奇特な人間は私だけかな)
主題のように、Q17xDCPUの一定バージョンから使えるようになった、ラベル機能を検証中です。
いやぁ、さすが三菱、色々と痒いところに手が届いていないです。 その辺の詳細はまた日を改めてご紹介します。
とはいえ、基本構造的にはなかなか良さそうなので、細部の使い勝手が改善されれば使いどころがありそうです。
何が良いのかって、構造体が使えること。
モーションSFCで一番の苦痛は、何といっても1CPUあたり32軸の各軸のフラグやデータデバイス番号を間違いのないように記述することですね。
ラベル機能を使えば、パソコンのプログラム言語ツールに似た感じのツールヒントが出てきて、入力が容易になって間違いも減ります。
ラベル機能の参考例
以下の例では、「Ax(n)St」でn軸の状態フラグ構造体、「Ax(n)Rq」でn軸の指令フラグ構造体を定義しています。
- まず、軸番号の頭文字「Ax」と入力すると、Ax__と続く構造体ブロックの候補が出てきます。 ここで「↓」矢印キーで候補から該当軸をセレクト状態にして「ENTER」で確定し、「.」ドットを入力すると
- 構造体の(該当軸内の)候補が現れます。 そのままタイプしてゆけば、どんどん絞り込んで表示が減りますから、名称を覚えるにつれて入力が楽になってゆきますね。
- 同様に、状態フラグの入力です。
- もちろん、普通にデバイスで入力することもできます。
- 上記の、デバイスで入力した制御文も、メニューの
- 「検索/置換」
- 「置換」
- 「ラベル名に一括置換」
- 「置換」
- 「検索/置換」
を実行すると、このとおりに同じ記述に変換してくれます。
ラベル名記述をデバイス番号に戻すには?
便利で間違いの生じにくいラベルプログラミングですが、残念なことに「デバイス番号に戻す」という操作ツールがありません。
MT Works2のヘルプ(私が現在使っているのはVer.1.56J)に出てくる説明には、 CPUにSFCソースだけ書いて、ラベルの登録されていないプロジェクトで読み出すと、デバイス表記になると書かれていますが、実際にはデバイス番号に戻らずラベル名記述のままです。
そのプロジェクトにはラベルを登録していないので、SFCを一括返還すると盛大にエラーが出てきて変換に失敗します。
まあおそらくこれはバグだと思うのですが、せめてメニューに「ラベル名をデバイスに戻す」という機能は必須だと思います。 なぜなら、ラベル定義そのものを変更した時に、その機能がないとSFC内の記述を全部手書きで修正する必要があるからです。
一旦デバイス番号記述に戻せれば、修正したラベル定義にあらためて一括置き換えすれば終了します。
今のところ、デバイス番号に戻すには、かなり手順を経る必要がありますが、何とかしてMT Developer1形式のファイルに変換してそれを再度MT Works2にインポートすれば戻る、という確認までは取れています。
その他、ここに書いていない細々とした部分でもまだ痒いところに手が届いていないですが、ベースは良くできていると思うので、今後に期待したいです。
最後に、私からのプレゼントの予告です。
便利で今後に期待できるラベル機能ですが、 なぜだかプリインストールや三菱のサイトでも定義済みのサンプルすらありません。(私が気付いていないだけならどうぞご指摘を)
ということで、感謝の意味を込めて、私が作るサンプルを(たぶん4月中に)このサイトで公開します。 MT Works2の1ファイルプロジェクト形式でダウンロード可能とするので、皆さんどうぞお楽しみに!
当サイト内の、SFC演算時間一覧表にQ17xDSCPUを追記するなど改定しました。
- 論理判定式処理時間を追加しました。
- IF~ELSE~IEND
- SELECT~CASE~SEND
- FOR~NEXT
の代表的な1種類のみですが追記しました。
この論理判定式演算を使うとSFC図の選択分岐判定を用いる場合に比べてかなり高速に動作するので、数値の上下限判定とクランプ処理など、使える場面では積極的に活用したいですね。
但し、従来のQ/QHシリーズでは動作しないので、それらと共通ソフトでは注意が必要なことと、MT Developerでは編集できないので、MT Works2使用に限られると思います。
- Q17xDSCPUを追記しました。
Q17xDCPUに比べて、概ね少々高速化していますが、Q17xDCPUの処理時間は初期のマニュアルにあった数値が、Q17xDSCPU発売後のマニュアルで修正されており、ほとんどの項目の時間が微妙に伸びているので、少々注意を要します。(大勢には影響しないレベル)
なぜQ17xDCPUの処理時間が変更されたのかは、確認が必要かもしれませんが、推測すると、発売後の機能アップその他で他の演算周期処理計算量が増えたのかもしれませんね。
- Q17xDSCPUで追加された、同期制御専用関数を追加しました。
CAMRD、CAMWR、CAMWR2、CAMMK、CAMPSCL などです。
このままただ案件を待つだけではいかん!
と思って、C言語コントローラー Q24DHCCPU-V を購入し試しています。 気付いた点をいくつか。
- 買って初めて電源入れて、通信しようとしても ユーザー認証で受け付けされない・・ どうやら最初に初期化が必要らしい。 普通、工場出荷段階で初期化されてくるものじゃないのか?
- 初期化するには、このCPUをベースの一番左のCPU0の位置にセットしないといけない。 マルチCPUの場合にいちいち面倒。
- ユーザーLANポートの通信優先度が高くないので、ユーザープログラムが暴走したり、優先度が高いタスクが占有してしまうと、FTPも何もかもできなくなる。
せめて、「STOP状態」で立ち上げればユーザープログラムの開始をSTOPできるようになっていればFTPも繋げるんだが、トラブル時に毎回、上記の初期化処理が必要でCPUを抜き差しして、IP設定から転送になおして・・ が必要。
- このコントローラで、標準入出力はどこなんだろう? PCだと入力はキーボード/出力はコンソール画面。
- 三菱の技術相談で聞いてみたところ、「このユニットはシーケンサの代わりを務めるためのもので、コンソールやキーボード入力が必要なのであれば、PCユニットのほうが良いのでは?」というような寂しいお答え。 そんなもんなのか??
まだ慣れていないのもあるけど、この先が思いやられる。