MPC2000 Reference Manual [JAPANESE] [ENGLISH]
【コマンド】   【CUnet】
【使い方】
POST

POST 2 P(100)
POST 5 MBK(20)
POST -2 MBK(100)
POST 2 P(100) 2
POST 64 P(100) 3
【書   式】 【機   能】
POST dst ary [m]

CUnet経由でのデータの転送
【解   説】
CU_POSTが起動されている相手に対してデータを転送します。

POSTコマンド一回の転送単位は240byteです。
点データでは、 15 point (240byte/16byte) 32ブロック
MBKデータでは、120個 (240byte/2byte) 32ブロック

引数mを入力すると転送ブロック数を少なくして、時間節約になります。(1.14_82より対応)
例: デフォルトではシェアメモリ512byteの時、凡そ90msecの転送時間に対して、点4個の場合は、33msecになります

POST 2 P(n) m (1<= m <= 15) 点の個数を意味します  例: 8個の場合18ブロックの転送
POST 2 MBK(n) m (1<= m <= 200) データ個数を意味します  例: 40個の場合18ブロックの転送
*1ブロックは8byteです


【例】
POST 2 P(100)
SA=2のステーションに対して、P(100)〜P(114)のデータが転送されます。

POST 3 MBK(20)
SA=3のステーションに対して、MBK(20)〜MBK(139)のデータが転送されます。

また、dstを負の数にすると、データ転送を要求します。(注)SA0に対する要求は0のかわりに64を設定します。)
この場合、自己側でもCU_POSTが起動されていなければなりません。応答が帰ってくるまでこのコマンドは待ち状態になります。
2秒以内に応答が無いとCUM_ERRのBIT6がセットされます。

【例】
POST -3 MBK(20)
SA=のステーションに対してMBK(20)〜MBK(139)のデータを要求し、自分の同じエリアに書き込みます。
なお、アドレス0への要求はadrsに64をセットします。

このコマンドにより、CUnetを備えたMPC間で、点データやMBKデータのデータの共有を行うことができます。
しかし、応答速度は0.1秒程度です。リアルタイム性はありませんので、高速共有は、CUnetのメモリI/Oで行ってください。

送信が正常に完了したかどうかは、CUM_ERRを参照します。
送信エラーとなると、BIT7が1となり、詳細は、BIT0〜BIT6に反映されます。

CUM_ERR
BIT7: MAIL SEND ERROR
BIT6: 転送要求の応答が無い
BIT5: 通信停止
BIT4: 送信タイムアウト不正(通常0)
BIT3: 送信ブロック不正(通常0)
BIT2: 送信タイムアウト発生
BIT1: 送信相手不在
BIT0: 送信相手が受信待機となっていない


POST 3 MBK(20)
IF CUM_ERR!=0 THEN : PRINT "X_ERR" CUM_ERR : END : END_IF
SA=3のステーションに対して、MBK(20)〜MBK(139)のデータが転送され、正常に送信終了したかどうか確認します。

"POST n"のように、データを指定しないと、相手側と自己のCU_POSTが起動されているかどうかの確認できます。
正常であれば、"Ok"と表示されます。

【サンプルブログラム】
MPC-AとMPC-BがCU-netで連結され、A側にのみタッチパネルが接続されたシステムを想定しています。
この時、MBK(1000)〜をMPC-Aの操作画面、MBK(2000)〜をMPC-Bの操作画面とします。




/*MPC-A
CUNET 2 2 32
MEWNET 38400 2
CU_POST
FORK 1 *SHARE_MBK
END
*SHARE_MBK
DO
POST 4 MBK(2000) /* MPC-B OUT AREA
POST -4 MBK(2200) /* MPC-B IN AREA
TIME 100
LOOP

/*MPC-B
CUNET 4 2 32
CU_POST
END
  [LASTMODIFY]2022-04-05 11:14:42 [CREATEDATE]2008-10-14 11:34:31
MPC2000 Reference Manual -R5.11-   (C)2007 ACCEL Corp. all right reserved.