FutureNet

FA,XIOシリーズ

XIO-110編

4. ASシリーズとの連携

4.5 アナログ入力状態をスケジュールで外部HTTPサーバに送信する

本設定例では、XIO-110のアナログ入力の状態を設定したしきい値により判断して、仮想接点出力(ON/OFF)と連動させます。ASシリーズは仮想接点入力を利用してXIO-110の仮想接点出力の状態を検知し、それをスケジュールで定期的に外部HTTPサーバに送信します。外部HTTPサーバへの送信は、ASシリーズのHTTP POSTリクエスト機能を利用します。

 

【 構成図 】

XIO_AI_AS_HTTP_POST

 

【 XIO-110 設定例 】

ip route default 192.168.254.254
ai 0 threshold 15000
ai 1 threshold 5000
ai 0 bind 100
ai 1 bind 101 reversal
do 100 map modbus 1 100 5 5
do 101 map modbus 1 101 5 5
mb slavemap 1 tcp 192.168.254.254

 

【 XIO-110 設定例解説 】

ip route default 192.168.254.254

インターネット側と通信するため、デフォルトゲートウェイはASシリーズのLAN側IPアドレス(192.168.254.254)を設定します。

 

ai 0 threshold 15000
ai 1 threshold 5000

アナログ入力0とアナログ入力1のしきい値を設定します。ここでは、アナログ入力0のしきい値を15000、アナログ入力1のしきい値を5000に設定します。

 

ai 0 bind 100
ai 1 bind 101 reversal

アナログ入力0の入力値が設定したしきい値(15000)を上回った際に仮想接点出力100をON、下回った際に仮想接点出力100をOFFにします。また、アナログ入力1の入力値が設定したしきい値(5000)を下回った際に仮想接点出力101をON、上回った際に仮想接点出力101をOFFにします。

 

mb slavemap 1 tcp 192.168.254.254

スレーブ番号1をASシリーズ (192.168.254.254)に対応付けます。

 

do 100 map modbus 1 100 5 5
do 101 map modbus 1 101 5 5

仮想接点出力を登録します。仮想接点出力100をスレーブ番号1(ASシリーズ)の仮想接点入力100に対応付けます。同様に仮想接点出力101をスレーブ番号1(ASシリーズ)の仮想接点入力101に対応付けます。また、失敗判定回数とポーリング間隔に値を指定することで、スレーブ番号1(ASシリーズ)の仮想接点入力100~101の状態を定期的(5秒間隔)に読み取り、XIO-110の仮想接点出力100~101の状態と一致しない場合には、スレーブ番号1(ASシリーズ)の仮想接点入力100~101の状態変更を行います。

※仮想接点出力とは実際の接点出力ではなく、mapコマンドを利用してスレーブ側の接点出力および仮想接点入力と紐付ける仮の接点出力です。

 

【 ASシリーズ 設定例 】

rsport 0 lcpkeepalive on
domain 0 soracom.io userid password 0.0.0.0/0 0.0.0.0
nat 0 192.168.254.254 tcp www ipcp 8080
nat 1 192.168.254.254 tcp telnet ipcp 8023
nat 2 192.168.254.254 tcp 2222 ipcp 0
nat 3 192.168.254.252 tcp telnet ipcp 2323
nat 4 192.168.254.252 tcp 2222 ipcp 3333
nat 47 * * * ipcp 0
dnsrelay activate on
alwaysonconnect activate on
alwaysonconnect domainname soracom.io
template 0 '{"timestamp":"${NOW}", "XIO AI0":"${DI100}", "XIO AI1":"${DI101}"}'
template 1 'wpost http://URL/ none template:0,application/json 3 20'
schedule 0 0:30 * * template:1
mb tcp-server enable

 

【 ASシリーズ 設定例解説 】

rsport 0 lcpkeepalive on
domain 0 soracom.io userid password 0.0.0.0/0 0.0.0.0
nat 0 192.168.254.254 tcp www ipcp 8080
nat 1 192.168.254.254 tcp telnet ipcp 8023
nat 2 192.168.254.254 tcp 2222 ipcp 0
nat 3 192.168.254.252 tcp telnet ipcp 2323
nat 4 192.168.254.252 tcp 2222 ipcp 3333
nat 47 * * * ipcp 0
dnsrelay activate on
alwaysonconnect activate on
alwaysonconnect domainname soracom.io

本設定は一般的なASシリーズの設定例です。詳細は、AS-250へのリモートアクセス等を参照ください。

 

mb tcp-server enable

Modbus/TCPサーバ機能を有効にします。

以上の設定により、XIO-110のアナログ入力0~1がしきい値をまたぐ変化があった場合、XIO-110の仮想接点出力100~101を通じて、ASシリーズの仮想接点入力100~101が変化します。

 

template 0 '{"timestamp":"${NOW}", "XIO AI0":"${DI100}", "XIO AI1":"${DI101}"}'
template 1 'wpost http://URL/ none template:0,application/json 3 20'
schedule 0 0:30 * * template:1

テンプレート0 の登録とHTTP POSTクライアント設定については、HTTP POSTクライアント機能のリクエスト本文にテンプレートを利用する を参照ください。

ここでは、現在時刻に置換する置換キーワード NOW や仮想接点入力状態に置換するキーワード DI100 、 DI101 を利用するために、テンプレート0に ${NOW}、${DI100}、${DI101}を設定しています。

(☞) SORACOM Harvest DataにHTTP POSTリクエストを送信するためには、POST先URLをhttp://harvest.soracom.io/に設定して動作を確認ください。

wpost http://harvest.soracom.io/ none template:0,application/json 3 20

 

また、スケジュールを利用してテンプレート1に登録した処理を実行する設定については、 スケジュールで接点入力状態を外部HTTPサーバに送信する を参照ください。

これにより、毎日0時30分に、ASシリーズのHTTP POSTリクエスト機能を利用して、XIO-110のアナログ入力の状態をON/OFFの形式で外部HTTPサーバに送信できます。