2012年12月20日木曜日

libmodbusのコマンドとファンクションコードの対応

とりあえず、必要そうなところだけまとめてみる。

Read data
code func
0x01 modbus_read_bits()
0x02 modbus_read_input_bits()
0x03 modbus_read_registers()
0x04 modbus_read_input_registers()
- modbus_report_slave_id()
Write data
code func
0x05 modbus_write_bit()
0x06 modbus_write_register()
0x0F modbus_write_bits()
0x10 modbus_write_registers()
Write and read data
code func
0x17 modbus_write_and_read_registers()


2012年12月12日水曜日

libmodbusを使う

VoyageLinuxでlibmodbusを使う。

ソースをダウンロードする。
http://libmodbus.org/

解凍する。
tar xvfz libmodbus-3.0.3.tar.gz


解凍されたディレクトリに入り、
./configure
make
make install
でOKのよう。

/tests のサンプルを実行する。
こちらも
make
だけで、コンパイルされた。


逆にtests/READMEに書いてある方法だとコンパイルできない??
gcc ./random-test-server.c -o random-test-server `pkg-config --libs --cflags libmodbus`
この場合、ソース内の
#include <modbus.h>

#include <modbus/modbus.h>
とする。

後は、ソース内のttyUSB0とかをttyS1などに変更した。

とりあえず、modbus接続された機器になんらかの指令は出せている模様。

VoyageLinuxのremountroとremountrwについて

VoyageLinuxのremountroとremountrwについて調べてみる。

場所はどこ?

# which remountrw# which remountrw
/usr/local/sbin/remountrw

それぞれの中身を見てみる。
# cat remountro
#!/bin/sh
sync
sleep 1
mount -o remount,ro /

# cat remountrw
#!/bin/sh
mount -o remount,rw,noatime /

syncの後のsleep1ってなぜ?
1秒じゃない場合、syncはどう動くの?
と謎が出たが、とりあえず未調査。

VoyageLinuxでlm_sensorsを動かす(失敗?)

VoyageLinux上で、CPU温度を取りたい。


apt-get install lm-sensors
sensors-detect
で出力されたログの通り以下を編集する。
vi /etc/modules

再起動し、
lsmod
で確認すると、
i2c_i801
が読み込まれている模様。

CPU温度を取得してみるが、温度がまったく変化しない。
# sensors
acpitz-virtual-0
Adapter: Virtual device
temp1:        +26.8 C  (crit = +100.0 C)

何かがおかしい。。。

2012年12月7日金曜日

Voyage Linuxをインストール

Voyage Linuxをインストールする。

以下ハードウェアへインストール。
IEI WAFER-CV-N26001

インストール時の設定など。
Grubにいくつか設定追加が必要なよう。
i8042.nopnp
nolapic_timer
などを
vi /boot/grub/menu.lst
kernel ~~の行に追加。

インストール手順は、以下を参考にした。ステキなまとまりっぷり。

インストール後に、ファイルの書換が出来なくてあわてるというオチもあり。
remountrw
をいれて、マウントを行う必要がある。

~~~~
少し使っていて、以下のダイアログが出るようになった。
 EXT2-fs (sda1): warning: mounting unchecked fs, running e2fsck is recommended

指示の通り、以下を入力してみた。
e2fsck -c -f /dev/sda1

修復できた模様。