Version 1 (modified by michkawa, 11 years ago) (diff) |
---|
Aloka ポータブルエリアモニタ MAR-783 制御方法
接続
RS-422が製品のデフォルトらしいが、今回の製品はRS-232C版なので、MOXAのEther-Serialコンバータで接続する。
- ケーブル: D-Sub 9pin クロス
baud rate 9600 parity even data bits 7 stop bits 2 flow ctrl none
RS-422版をRS-232版へ変更するには、内部基板のコネクタを付け替えて、メニューから制御方法の設定を変更するだけでOK。
RS-422版は画像のJ4 RS422のコネクタにケーブルがつながっているので、J5 RS232に繋ぎ直す。
その後、フロントパネルから、システム設定モードに入って、RS OUTの設定をRS232Cに変更する。設定方法の詳細は[aloka_MAR783.pdf マニュアル]を参照。
データフォーマット
データの送受信はバイナリコマンドで行う。
詳しくは[aloka_MAR783.pdf マニュアル]の6章に書いてあるが、基本的には以下のフォーマットを実装するだけでOKみたい。
- 測定値要求コマンド
送信
項目名 型 サイズ(byte) 説明 STX 文字列 1 0x02固定 コマンド 文字列 2 R0 ETX 文字列 1 0x03固定
受信
項目名 型 サイズ(byte) 説明 STX 文字列 1 0x02固定 コマンド 文字列 2 D0 測定値1 文字列 4 測定値の小数点以下 測定値2 文字列 1 測定値の10のべき乗 状態コード 文字列 1 状態コード ダミー 文字列 1 0x31固定 ETX 文字列 1 0x03固定
取得したデータは、(0.測定値1 * (10測定値2)) uSv/h となる。
例として 測定値1が "0998"、測定値2が "1" とすると、
0.0998 * 101 = 0.998 uSv/h
となる。
サンプルスクリプト
#!/usr/bin/python import socket import struct, binascii host = '172.28.5.253' port = 4001 clientsock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) clientsock.connect((host,port)) sendVal = (0x02, 'R0', 0x03) ss = struct.Struct('b 2s b') ssp = ss.pack(*sendVal) print 'Send bin: ' + binascii.hexlify(ssp) clientsock.sendall(ssp) rcvp = clientsock.recv(1024) print 'Recv bin: ' + binascii.hexlify(rcvp) rs = struct.Struct('b 2s 4s c c c b') print 'Recv pack: ' + str(rs.unpack(rcvp)) clientsock.close()
このスクリプトを実行すると以下の様な結果が出力される。
[michkawa@pfrproc4 test]$ ./testClient.py Send bin: 02523003 Recv bin: 0244303130363830363103 Recv pack: (2, 'D0', '1068', '0', '6', '1', 3) [michkawa@pfrproc4 test]$ ./testClient.py Send bin: 02523003 Recv bin: 0244303039353930363103 Recv pack: (2, 'D0', '0959', '0', '6', '1', 3) [michkawa@pfrproc4 test]$ ./testClient.py Send bin: 02523003 Recv bin: 0244303039353230363103 Recv pack: (2, 'D0', '0952', '0', '6', '1', 3) [michkawa@pfrproc4 test]$ ./testClient.py Send bin: 02523003 Recv bin: 0244303039343530363103 Recv pack: (2, 'D0', '0945', '0', '6', '1', 3) [michkawa@pfrproc4 test]$ ./testClient.py Send bin: 02523003 Recv bin: 0244303039333830363103 Recv pack: (2, 'D0', '0938', '0', '6', '1', 3) [michkawa@pfrproc4 test]$ ./testClient.py Send bin: 02523003 Recv bin: 0244303039333830363103 Recv pack: (2, 'D0', '0938', '0', '6', '1', 3) [michkawa@pfrproc4 test]$ ./testClient.py Send bin: 02523003 Recv bin: 0244303037333230363103 Recv pack: (2, 'D0', '0732', '0', '6', '1', 3)
Attachments (2)
- Aloka_rs232.png (367.1 KB) - added by michkawa 11 years ago.
-
aloka_MAR783.pdf
(674.0 KB) -
added by michkawa 11 years ago.
マニュアル
Download all attachments as: .zip