Armadilloフォーラム

Armadilloに電力メータ(IFはRS482:Modbus)を接続・運営する方法について

mhasi

2020年10月27日 13時23分

Armadilloにある電力メータ(IFはRS482:Modbus)を接続・運営する方法について

IFがRS482:Modbusの場合として、ドライバ準備、電力メータ制御、データ取得など必要と考えます。
具体的な、接続手順、データ取得方法などご教授願います。

電力メータ例
https://www.fa.omron.co.jp/products/family/3413/

コメント

smmakoto

2020年10月27日 14時29分

仲村と申します。
RS485ですよね?

・640にRS485をつなげるようにする。
 USB-RS485 アダプタ or ドングルを使うのが楽だと思います。多くの製品が /dev/ttyUSB0 とかに割り付けられます。
 RS232Cポートに制御線がつながっていないから?
 https://armadillo.atmark-techno.com/forum/armadillo/3547

・電力量計の設定、取得アドレス
 メーカーマニュアルを参照してください。
 ちなみにOMRONは、三層3線、単相2線とかでchのつなぎ方が変わります。また、測定chごとにmodbusのアドレスが1つになります。

・CやC++ でアプリを書く場合は、Modbusのライブラリを使ってしまうのが手っ取り早いと思います。
 フォーラムの記事が参考になるかと。
 https://armadillo.atmark-techno.com/forum/armadillo/4217
 https://armadillo.atmark-techno.com/forum/armadillo/3493
 https://armadillo.atmark-techno.com/howto/connect-armadillo-iot-g3l-wit…

・データ取得
 OMRONやPANAでしたら、Modbus I/Fのアドレス番号と、データ内容が公開されています。
 事前にメニューで設定してやると、電力量計側で勝手に計測して、特定のアドレスに書かれます。
 必要なアドレスのデータをModbusのライブラリで取得できます。
 OMRONだと、必要なものが連続のアドレスになっていると思いますので、1回の取得コマンドで
 データが採れると思います。

・採ったデータは?
 採ったデータを処理するのは、なにかアプリを書くことになりますが。

すみません、モヤッとした回答で...

at_koseki

2020年10月27日 14時58分

古関です。

大枠は仲村様が回答くださいましたので
参考情報を記載します。

■ オムロン: KM-N1を動作させるPython サンプルコードに関して

Armadillo-640では無く別製品のArmadillo-IoT G3ですが、
弊社でも「オムロン: KM-N1」を動作させた実績があります。

以下のアプリケーションノートに記載があります。
https://manual.atmark-techno.com/application-note/aiotg3-powermonitor/a…

Armadillo-IoT G3もUserlandは同じDebianですので、
サンプルコードはArmadillo-640でも動作します。
※ シリアルポート名等、多少合わせ込みは必要

ソフトウェアはArmadillo-IoT G3専用インストールディスクイメージの形でリリースしていますので、
このままではArmadillo-640へインストールはできません。

下記の手順でサンプルコード部のみ取り出せは確認が可能です。

よろしくお願いします。

###############################################################
サンプルコードの取り出し手順

ATDE7で確認

$ wget https://download.atmark-techno.com/application-note/aiotg3-powermonitor…

$ sudo fdisk -l -u install_disk_sd_aiotg3_powermonitor-1.0.0.img
Disk install_disk_sd_aiotg3_powermonitor-1.0.0.img: 1.5 GiB, 1581252608 bytes, 3088384 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x6b334154

Device Boot Start End Sectors Size Id Type
install_disk_sd_aiotg3_powermonitor-1.0.0.img1 2048 2123775 2121728 1G b W95 FAT32
install_disk_sd_aiotg3_powermonitor-1.0.0.img2 2123776 3088383 964608 471M 83 Linux

$ mkdir mnt

$ sudo mount -t ext4 -o loop,offset=1087373312 install_disk_sd_aiotg3_powermonitor-1.0.0.img mnt
offsetアドレス計算: 2123776 × 512 = 1087373312

$ mkdir debian
$ sudo tar xf mnt/images/debian-stretch-armhf_aiotg3_20200827.tar.gz -C debian/
$ sudo umount mnt

debian/opt/powermonitor/ 以下にサンプルコードがあります。

KM-N1のRS485/Modbus制御サンプルは以下になります。
debian/opt/powermonitor/modules/kmn1handler.py