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


Ignore:
Timestamp:
11/29/13 11:33:54 (11 years ago)
Author:
Tetsuya Michikawa
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • TabularUnified 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}}}