この文書の現在のバージョンと選択したバージョンの差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
mae3xx_devel:communicate_with_xio100:start [2017/02/09 17:20] development [Modbus/TCP接続] |
mae3xx_devel:communicate_with_xio100:start [2021/06/15 14:59] (現在) admin [Modbus レジスタ] |
||
---|---|---|---|
ライン 1: | ライン 1: | ||
+ | ====== 弊社製品 FutureNet XIO-1xx の制御 ====== | ||
+ | |||
+ | [[http://www.centurysys.co.jp/products/protocol/xio100.html|FutureNet XIO-100]] / [[https://www.centurysys.co.jp/downloads/industrial/xio110/index.html|XIO-110]] を、Modbus により | ||
+ | 拡張 DIO として制御・利用することができます((プログラムを作成していただく必要があります))。 | ||
+ | |||
+ | {{http://www.centurysys.co.jp/images/photo/industrial/pic_xio100_new.jpg|FutureNet XIO-100}} | ||
+ | |||
+ | [[mae3xx_devel:modbus_programming:start]] で紹介している、pylibmodbus を利用する例を紹介します。 | ||
+ | |||
+ | \\ | ||
+ | ===== Modbus TCP接続 ===== | ||
+ | |||
+ | MA-E300 と XIO-1x0 を Ethernet で接続し ModbusTCP で通信を行い DIO を制御します。\\ | ||
+ | MA-E300 を Master、XIO-1x0 を Slave として通信を行います。 | ||
+ | |||
+ | |||
+ | <code> | ||
+ | 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) | ||
+ | </code> | ||
+ | |||
+ | * [1] pylibmodbus モジュールを読み込みます。 | ||
+ | * [2] Modbus TCP のインスタンスを初期化します。 | ||
+ | * [3] 接続します。 | ||
+ | * [4] Slave 機器のアドレスを設定します。 | ||
+ | * [5] 入力ステータスのアドレス 0 を読み、XIO の DI0 の状態を確認します。 | ||
+ | * [6] コイルのアドレス 1000 に 1 を書込み、XIO の DI0 のパルスカウンタを有効にします。 | ||
+ | * [7] 入力レジスタのアドレス 0 から 16 までを読み込み、XIO のパルスカウンタ値及び、基板温度を確認します。 | ||
+ | * [8] コイルのアドレス 0 に 1 を書込み、XIO の DO0 を ON に設定します。 | ||
+ | * [9] コイルのアドレス 1100 に 1 を書込み、XIO の DI0 のパルスカウンタをリセットします。 | ||
+ | |||
+ | \\ | ||
+ | |||
+ | |||
+ | ===== Modbus レジスタ ===== | ||
+ | |||
+ | XIO-1x0 のレジスタは下記の構成になっています。 | ||
+ | |||
+ | |<50em 5em 25em 8em>| | ||
+ | ^ アドレス ^ 内容 ^ 機種 | | ||
+ | ^ コイル ^^^ | ||
+ | | 0-7|接点出力 0 - 7 1:ON / 0:OFF|XIO-100| | ||
+ | | 1000-1007|接点入力 0 - 7 パルスカウンタ開始 / 停止 1:開始 / 0:停止|:::| | ||
+ | | 1100-1107|接点入力 0 - 7 パルスカウンタリセット 1:リセット|:::| | ||
+ | | 0-1|接点出力 0 - 1 1:ON / 0:OFF|XIO-110| | ||
+ | | 1000-1001|接点入力 0 - 1 パルスカウンタ開始 / 停止 1:開始 / 0:停止|:::| | ||
+ | | 1100-1101|接点入力 0 - 1 パルスカウンタリセット 1:リセット|:::| | ||
+ | | 2000|DC 電源出力 1:ON / 0:OFF|:::| | ||
+ | ^ 入力ステータス ^^^ | ||
+ | | 0-7|接点入力 0 - 7 1:ON / 0:OFF|XIO-100| | ||
+ | | 0-1|接点入力 0 - 1 1:ON / 0:OFF|XIO-110| | ||
+ | ^ 入力レジスタ ^^^ | ||
+ | | 0|接点入力 0 パルスカウンタ上位 16 ビット|XIO-100/110| | ||
+ | | 1|接点入力 0 パルスカウンタ下位 16 ビット|:::| | ||
+ | | 2|接点入力 1 パルスカウンタ上位 16 ビット|:::| | ||
+ | | 3|接点入力 1 パルスカウンタ下位 16 ビット|:::| | ||
+ | | 4|接点入力 2 パルスカウンタ上位 16 ビット|XIO-100| | ||
+ | | 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|基板温度 0.1 ℃単位(例: 34.2 ℃ => 342)|XIO-100/110| | ||
+ | | 32|アナログ入力 0 データ 16ビット|XIO-110| | ||
+ | | 33|アナログ入力 1 データ 16ビット|:::| | ||
+ | | 34|アナログ入力 2 データ 16ビット|:::| | ||
+ | | 35|アナログ入力 3 データ 16ビット|:::| | ||
+ | |||