三菱シーケンサのK4X000(応用命令)の使い方

シーケンサ

先輩や師匠のコードを見ると、K4X0 とか K4M0 とか随所に散りばめられていますよね。

参考コードをそのまま貼り付けるのも良いですが、
きちんと動きを理解すると、とても便利なシロモノだと分かります。

 

どうも!ずぶ です。今回は 三菱シーケンサのK4X000(応用命令)の使い方

K4X000 の動きを把握しよう

取説には、
「ビットデバイスは桁指定により、ワードデータを扱うことができます。」
と書いてあります。

 

ちょっと何言ってるのか分かりませんよね。

 

だけど、使うのは超簡単!

 

取説より抜粋

 

つまり、

連続するビット を16個引っ付けたら、16進数のワードと同じじゃね?
じゃあ、ケタ(KETA)の頭文字Kを付けたら、ワード扱い って事で良くね?!
って事です。

KETAのKかどうかは知りませんが(笑)

 

 

ワードデータとして扱うと云うのが、どういう事かと言えば

こういう事

 

扱いが、もう完全にワード

 

K4〇〇 の箇所をいつもの D0 とかに置き換えると、見慣れたコードになりますよね。

 

 

指定はビットだけど、ワードって事にするから、いつもみたいに 桁を指定して、(1桁4ビット)良いように使ってよ
って事です。

 

合わせて読みたい

↓ワードの桁操作について説明しています。
レジスタ内の数値データの扱い方

 

MOVでの注意点

K4 の扱いに慣れてきたら、色んな所に放り込んで使うようになりますが、MOV での扱いに気を付けたい箇所が出てきます。

 

MOV命令は、16ビット転送命令 でしたよね。

と、いう事は

まぁ、16ビット動く わけです(笑)

 

 

 

Kは1~8 まで対応とあります。(K8だとDワード32ビット)

 

そこで、お互いのバランスを変えて動きを見てみましょう。

 

K1 を K4 に、

K4 を K1 に入れてみたりしましたが、プログラムは全て通ります

 

結果はこの通り

 

B10 と B20 ですが、同じ結果です。(コードの2行目、3行目の効果です)

 

ですが、

 

違いを見る為に、プログラムを追加してみましょう。

ターゲット外にビットを立てました。

 

結果はこの通り

 

B25 は残っていますが、B15 が消えてしまっています。

 

プログラムの動きを、概念図で追ってみましょう。

各指定桁に、扉 が付いてるイメージで見てみて下さい。

 

K4 → K1 の場合

送り側から、4ケタ データを取り出したのですが、受け側が1ケタ しか開いていません。

 

K1 → K4 の場合

送り側から、1ケタ しかデータを取り出していませんが、受け側は4ケタ 開いています。

 

 

取り出す時は見たままですが、
送り込む時に扉が開いていたら、0で帳尻を合わせている のです。

 

なので、プログラムで追加した B15 は立ちはしましたが、0でオーバーライトされてしまった という動きになるのですね。

 

どちらかというと、MOVの説明 なのですが Kを付けた時点でワードデータ です。
覚えておくに越したことはないですよ。

 

基点ビットを変えてみよう

取説の挿絵だけを見ると、ついつい X0 とか M0 とかじゃないとダメなの?と勘違いしてしまいますが、そんな事はありません。

 

先程も、 K4B10 などを通していましたしね。
という事は、K3B33 とか、K1Y10E とか、基点はどこでも構わない訳です。

 

ちなみに、結果はこう

K3B33 の場合

K1Y10E の場合

 

B33からK3(12ビット)
Y10EからK1(4ビット)が転送されていますよね。

 

基点ビットを先頭に指定ケタ数分操作された 事が分かります。

 

 

条件で使ってみよう

今までは出力寄りの説明でしたが、もちろん条件などでも使用できます。

 

例えば、こう

 

 

1番目の条件式だと、X103 から4ビット内にONしているものがあるか?

2番目の条件式だと、M2000から8ビットとM3000から8ビットを比べて同じか?

3番目の条件式だと、B440から12ビットがH0FF以上か?

 

を監視しているのですね。

勿論、バラバラと記述しても構わないのですが、範囲で比較や監視等いろいろな使い方ができます。

まさに、ビットの監視 等にはもってこいの機能です。

 

以前ご紹介した、アラーム回路の作り方 でも 、実践的なK4使用の応用例 を紹介しています。

 

まとめ

先輩や師匠が居られる方は、
入力は順に固めて配置するとか
4ビット基準で設計するように 等と言われた事があるかもしれません。

実配線を絡めて、プログラムの簡素化が測れるからですね。

現在はプログラム圧縮の為に、実配線に無理に絡めて行く程の事はありませんが、コード自体は使い勝手も良く、非常に便利です。

例えば、ビット状態 を ワードに転送 してレシピや履歴を作成したりもできますね。

実配線と結びついた、シーケンサならではの機能と言えますね。

 

合わせて読みたい

三菱シーケンサのZ(インデックスレジスタ)の使い方