以前のリビジョンの文書です
FutureNet XIO-100 を、Modbus により 拡張 DIO として制御・利用することができます1)。
Modbus のプログラミング (pylibmodbus) で紹介している、pylibmodbus を利用する例を紹介します。
MA-E300とXIO-100をEthernetで接続しModbusTCPで通信を行いDIOを制御します。
MA-E300をMaster、XIO-100をSlaveとして通信を行います。
root@plum:/# ipython3 Python 3.4.3 (default, Nov 17 2016, 01:29:34) Type "copyright", "credits" or "license" for more information. IPython 1.2.1 -- An enhanced Interactive Python. ? -> Introduction and overview of IPython's features. %quickref -> Quick reference. help -> Python's own help system. object? -> Details about 'object', use 'object??' for extra details. In [1]: import pylibmodbus In [2]: client = pylibmodbus.ModbusTcp('192.168.254.252') In [3]: client.connect() In [4]: client.set_slave(0) In [5]: client.read_input_bit(0) Out[5]: 1 In [6]: client.write_bit(1000,1) In [7]: client.read_input_registers(0,17) Out[7]: [0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 339] In [8]: client.write_bit(0,1) In [9]: client.write_bit(1100,1)
XIO-100のレジスタは下記の構成になっています。
アドレス | 説明 |
---|---|
コイル | |
0-7 | 接点出力0-7 |
1000-1007 | 接点入力0-7パルスカウンタ開始/停止 1:開始 0:停止 |
1100-1107 | 接点入力0-7パルスカウンタリセット 1:を書くとリセット |
入力ステータス | |
0-7 | 接点入力0-7 1:ON, 0:OFF |
入力レジスタ | |
0 | 接点入力0パルスカウンタ上位16ビット |
1 | 接点入力0パルスカウンタ下位16ビット |
2 | 接点入力1パルスカウンタ上位16ビット |
3 | 接点入力1パルスカウンタ下位16ビット |
4 | 接点入力2パルスカウンタ上位16ビット |
5 | 接点入力2パルスカウンタ下位16ビット |
6 | 接点入力3パルスカウンタ上位16ビット |
7 | 接点入力3パルスカウンタ下位16ビット |
8 | 接点入力4パルスカウンタ上位16ビット |
9 | 接点入力4パルスカウンタ下位16ビット |
10 | 接点入力5パルスカウンタ上位16ビット |
11 | 接点入力5パルスカウンタ下位16ビット |
12 | 接点入力6パルスカウンタ上位16ビット |
13 | 接点入力6パルスカウンタ下位16ビット |
14 | 接点入力7パルスカウンタ上位16ビット |
15 | 接点入力7パルスカウンタ下位16ビット |
16 | 基板温度 10分の1度単位です。(例: 34.2℃ ⇒ 342) |