MPC2000 Reference Manual [JAPANESE] [ENGLISH]
【コマンド】   【通信】
【使い方】
R_RTU

R_RTU   a c "W" RTU(8)
R_RTU a c dmy~Byt io~Byt
【書   式】 【機   能】
R_RTU a c Strings Array
R_RTU a c Argments

受信したRTU数値列を配列や変数に取り込む
【解   説】
R_RTUコマンドは、R_RTUコマンドで受信したRTU文字列を変数もしくは配列に取り込みます。
R_RTU(n)関数でCRCチェックを完了させてからの実行となります。
最初の二つの引数は固定で、それぞれアドレスとコマンドです。これは、X_RTUで送られたアドレスとコマンドのエコーとなります。
必要に応じて照合します。
数値列は、文字列によって型を指定して配列に取り込むか、一つの一つの変数に型指定を取り込むかいずれかの方法となります。
文字列によって型指定の場合は以下のようになります。
  R_RTU a c "BBWWL" d(4)
"BBWWL"であれば、Byte二個、Word二個、Long一個、計五個の数値列みなされ、次に指定された配列に順に取り込みます。
配列の番号は、取り込む最初の配列要素を示します。上の例では、d(4)〜d(8)にデータが収納されます。

これを変数に収納する場合は、以下のように記述します。
  R_RTU a c D1~Byt D2~Byt D3~Wrd D4~Wrd D5
受信数値列の数が少ない場合にこの記述は適しています。




MODBUS   2 "38400b8pns1NONE"
rega=0 : para=8
DIM RTU(10)
CONST REG_AD 0
CONST ONOFF_CMD 1
CONST ON_CMD &hFF00
CONST OFF_CMD &h0000
DO
RTU(ONOFF_CMD)=ON_CMD
FOR RTU(REG_AD)=16 TO 23
*ret0
X_RTU 10 5 "WW" RTU(REG_AD)
IF R_RTU(6)!=1 THEN : GOTO *ret0 : END_IF
R_RTU a b "WW" RTU(8)
TIME 5
NEXT
RTU(ONOFF_CMD)=OFF_CMD
FOR RTU(REG_AD)=16 TO 23
*ret1
X_RTU 10 5 "WW" RTU(REG_AD)
IF R_RTU(6)!=1 THEN : GOTO *ret1 : END_IF
*ret2
X_RTU 10 1 rega~Wrd para~Wrd
IF R_RTU(4)!=1 THEN : GOTO *ret2 : END_IF
' R_RTU a c "W" RTU(8) : PRX a c RTU(8)
R_RTU a c dmy~Byt io~Byt : PRX a c io
TIME 5
NEXT
LOOP
  [LASTMODIFY]2016-01-19 14:46:22 [CREATEDATE]2016-01-19 14:27:21
MPC2000 Reference Manual -R5.11-   (C)2007 ACCEL Corp. all right reserved.