Changes between Initial Version and Version 1 of epics/streamdevice/Aloka_MAR_783/control


Ignore:
Timestamp:
11/29/13 11:33:54 (10 years ago)
Author:
michkawa
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • epics/streamdevice/Aloka_MAR_783/control

    v1 v1  
     1= Aloka ポータブルエリアモニタ MAR-783 制御方法 = 
     2 
     3== 接続 == 
     4 
     5RS-422が製品のデフォルトらしいが、今回の製品はRS-232C版なので、MOXAのEther-Serialコンバータで接続する。[[br]] 
     6 
     7 * ケーブル: D-Sub 9pin クロス  
     8 
     9 
     10 || baud rate || 9600 || 
     11 || parity    || even || 
     12 || data bits ||   7  || 
     13 || stop bits ||   2  || 
     14 || flow ctrl || none || 
     15 
     16 
     17RS-422版をRS-232版へ変更するには、内部基板のコネクタを付け替えて、メニューから制御方法の設定を変更するだけでOK。 
     18 
     19[[Image(Aloka_rs232.png)]] 
     20 
     21RS-422版は画像のJ4 RS422のコネクタにケーブルがつながっているので、J5 RS232に繋ぎ直す。[[br]] 
     22その後、フロントパネルから、システム設定モードに入って、RS OUTの設定をRS232Cに変更する。設定方法の詳細は[aloka_MAR783.pdf マニュアル]を参照。 
     23 
     24 
     25== データフォーマット == 
     26 
     27データの送受信はバイナリコマンドで行う。[[br]] 
     28詳しくは[aloka_MAR783.pdf マニュアル]の6章に書いてあるが、基本的には以下のフォーマットを実装するだけでOKみたい。 
     29 
     30 * 測定値要求コマンド 
     31 
     32 送信 
     33 
     34 || 項目名 ||   型   || サイズ(byte) || 説明 || 
     35 ||  STX   || 文字列 ||   1          || 0x02固定 || 
     36 || コマンド ||  文字列 ||   2       || R0   || 
     37 ||   ETX  || 文字列 ||   1          || 0x03固定 || 
     38 
     39 受信 
     40 
     41 || 項目名 ||   型   || サイズ(byte) || 説明 || 
     42 ||  STX   || 文字列 ||   1          || 0x02固定 || 
     43 || コマンド ||  文字列 ||   2       || D0   || 
     44 || 測定値1 ||  文字列 ||   4       || 測定値の小数点以下   || 
     45 || 測定値2 ||  文字列 ||   1       || 測定値の10のべき乗   || 
     46 || 状態コード || 文字列 ||   1       || 状態コード  || 
     47 || ダミー || 文字列 ||   1        || 0x31固定 || 
     48 ||   ETX  || 文字列 ||   1          || 0x03固定 || 
     49 
     50 
     51取得したデータは、(0.測定値1 * (10^測定値2^)) uSv/h となる。 
     52 
     53例として 測定値1が "0998"、測定値2が "1" とすると、 
     54 
     55 0.0998 * 10^1^  = 0.998 uSv/h 
     56 
     57となる。 
     58 
     59 
     60== サンプルスクリプト == 
     61 
     62{{{ 
     63#!/usr/bin/python 
     64import socket 
     65import struct, binascii 
     66 
     67host = '172.28.5.253' 
     68port = 4001 
     69 
     70clientsock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
     71clientsock.connect((host,port)) 
     72 
     73sendVal = (0x02, 'R0', 0x03) 
     74 
     75ss  = struct.Struct('b 2s b') 
     76ssp = ss.pack(*sendVal) 
     77 
     78print 'Send bin: ' + binascii.hexlify(ssp) 
     79 
     80clientsock.sendall(ssp) 
     81rcvp = clientsock.recv(1024) 
     82 
     83print 'Recv bin:  ' + binascii.hexlify(rcvp) 
     84 
     85rs = struct.Struct('b 2s 4s c c c b') 
     86 
     87print 'Recv pack: ' + str(rs.unpack(rcvp)) 
     88 
     89clientsock.close() 
     90 
     91}}} 
     92 
     93このスクリプトを実行すると以下の様な結果が出力される。 
     94 
     95{{{ 
     96[michkawa@pfrproc4 test]$ ./testClient.py 
     97Send bin: 02523003 
     98Recv bin:  0244303130363830363103 
     99Recv pack: (2, 'D0', '1068', '0', '6', '1', 3) 
     100 
     101[michkawa@pfrproc4 test]$ ./testClient.py 
     102Send bin: 02523003 
     103Recv bin:  0244303039353930363103 
     104Recv pack: (2, 'D0', '0959', '0', '6', '1', 3) 
     105 
     106[michkawa@pfrproc4 test]$ ./testClient.py 
     107Send bin: 02523003 
     108Recv bin:  0244303039353230363103 
     109Recv pack: (2, 'D0', '0952', '0', '6', '1', 3) 
     110 
     111[michkawa@pfrproc4 test]$ ./testClient.py 
     112Send bin: 02523003 
     113Recv bin:  0244303039343530363103 
     114Recv pack: (2, 'D0', '0945', '0', '6', '1', 3) 
     115 
     116[michkawa@pfrproc4 test]$ ./testClient.py 
     117Send bin: 02523003 
     118Recv bin:  0244303039333830363103 
     119Recv pack: (2, 'D0', '0938', '0', '6', '1', 3) 
     120 
     121[michkawa@pfrproc4 test]$ ./testClient.py 
     122Send bin: 02523003 
     123Recv bin:  0244303039333830363103 
     124Recv pack: (2, 'D0', '0938', '0', '6', '1', 3) 
     125 
     126[michkawa@pfrproc4 test]$ ./testClient.py 
     127Send bin: 02523003 
     128Recv bin:  0244303037333230363103 
     129Recv pack: (2, 'D0', '0732', '0', '6', '1', 3) 
     130 
     131}}}