一往確認日記 |
2016年12月22日 [長年日記]
_ Escalator - 命令のデコード(1)
Escalatorというのは、各種PLCがメーカーや機種毎にプロジェクトデータが異なるため互換性がなく、移植するのが大変なのを解決しようとするものです。
ここのescalatorのカテゴリーを見てもらえると今までの経緯を見てもらうことができます。
では実際にEscalatorのプログラムを読み込んでいくところを説明します。
P10のfetch 1 byteはプログラムデータを1byte読み込むサブルーチンになっています。 (これはまた後で説明します)
読み込むとsub_argsからの配列に入ります。 1byteなので先頭のsub_args[0]にコードがはいっています。 これをoperandに一旦移してoperand_bitsから始まるbitデバイスに展開しています。
命名をデコードする際、多量の条件分岐が発生しますが、bit展開しておくとラダーのORとANDで表現できる様になり見通しが良くなるかなということで、使用しています。
その分、無駄に256bitも使用してしまっています。