mhasi
2020年10月27日 13時23分
Armadilloにある電力メータ(IFはRS482:Modbus)を接続・運営する方法について
IFがRS482:Modbusの場合として、ドライバ準備、電力メータ制御、データ取得など必要と考えます。
具体的な、接続手順、データ取得方法などご教授願います。
コメント
at_koseki
古関です。
大枠は仲村様が回答くださいましたので
参考情報を記載します。
■ オムロン: 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
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回の取得コマンドで
データが採れると思います。
・採ったデータは?
採ったデータを処理するのは、なにかアプリを書くことになりますが。
すみません、モヤッとした回答で...