«前の日記(2020年12月16日) 最新 次の日記(2020年12月23日)» 編集

一往確認日記


2020年12月20日 [長年日記]

_ PLCでmruby (4) ニーモニック変換に方針転換

mrubyをPLCで動かせないかな〜という企画です。

mrubyをPLCで動かすにはmrubyのVirtual Machineを実装すればできると思っていましたが、前回の出力をみるとmrubyのニーモニックからラダーのニーモニックに変換するのが手取り早い気がします。

ニーモニック変換器を作ることを当面の目標としましょう。

前回の出力を再掲します。

% mrbc --verbose a.rb
00001 NODE_SCOPE:
00001   local variables:
00001     a
00001   NODE_BEGIN:
00001     NODE_ASGN:
00001       lhs:
00001         NODE_LVAR a
00001       rhs:
00001         NODE_INT 1 base 10
irep 0x7f897b4059c0 nregs=3 nlocals=2 pools=0 syms=0 reps=0 iseq=8
local variable names:
  R1:a
file: a.rb
    1 000 OP_LOADI_1	R2		
    1 002 OP_MOVE	R1	R2		; R1:a
    1 005 OP_RETURN	R2		
    1 007 OP_STOP

これなら、ラダーで下の様な感じで作れれば置き換えができそうです。(ニーモニックは特定のPLCではなく雰囲気です)
ただ、クラスなど絡んでくるとそんなに簡単ではなく、難しいことは予想されます。

LD ON
@SET SCOPE
LD SCOPE
MOV #1, R2
MOV R2, R1
RST SCOPE

つづく


Amazon | Canon 純正 インクカートリッジ BCI-381(BK/C/M/Y)+380 5色マルチパック BCI-381+380/5MP 長さ:5.3cm 幅:13.9cm 高さ:10.75cm | キヤノン | パソコン・周辺機器 通販