Check list for real time system
Real time systemを動かすために、どのようなモジュール、サービス、ソフトなどが必要かはここに書いてある。
Simple check list
medmに数字が出て、その数字が変化しているか? [How to check]
- 症状: 数字が出ない
- 症状: 数字が出ても0のまま動かない
- 症状: 数字が出て、0以外の数が表示されているが、数字が動かない
原因: 最初のADCにtiming信号が入っていない -> 65536Hz, 0-5V square wavesがADCにきちんと入力されているかチェック。
dataviewerで現在、及び過去のデータが見えるか? [How to check]
- 症状: channel名が出てこない:
- 症状: DAQ channel名は見えるがTP channelが一つも出てこない:
原因: masterファイルに問題がある[解決策]
- 症状: 現在のデータも過去のデータも見えない:
原因: ndsが動いていない。[解決策]
- 症状: 現在のデータは見えるが、過去のデータが見えない:
- 症状: 過去のデータは見えるが、現在のデータが見えない:
- 原因: DAQ networkのどこかが切れている。[解決策の例:data concentratorやndsのresolve.confが間違っていないか調べる。]
- 症状: Fastチャンネルの現在のデータを選択するとdataviewerの画面が出ないが、過去のデータは画面は出るが値は0のまま。Slowチャンネルはデータがきちんと見える。
- 原因: mx_streamが動いていない。RT PC上でps -ef | grep mx等してチェック。
- 症状: データは見えるが、数十秒で止まる。
症状: diagguiではデータが見えるのに、dataviewerでは
Error in obtaining chan info. Connecting....connect(); errno=111
というメッセージが出て、channel名が出てこない:原因: dataviewerのバージョンがRTSのバージョンに比べて古い、もしくはLinuxのカーネルとバージョンがあっていない->RTSのバージョンに一致したdataviewerをビルドしてインストールする。[How to install]
diaggui(DTT)で現在、及び過去のデータが見えるか? [How to check]
- 症状: channel名が出てこない:
- 症状: DAQ channel名は見えるがTP channelが一つも出てこない:
原因: masterファイルに問題がある[解決策]
- 症状: dataviewerではchannel名が出てくるのに、diagguiでは出てこない:
diag -iでチェック
desktop1:burt>diag -i Diagnostics configuration: awg 22 0 192.168.11.100 822095894 1 192.168.11.100 awg 88 0 192.168.11.100 822095960 1 192.168.11.100 nds * * 127.0.0.1 8088 * 127.0.0.1 nds * * 192.168.11.100 8088 * 192.168.11.100 tp 22 0 192.168.11.100 822091798 1 192.168.11.100 tp 88 0 192.168.11.100 822091864 1 192.168.11.100
ndsのところがmaster等となっていないことを確認。- 原因: /opt/rtcds/kamioka/k1/target/gds/param/diag_K.confの設定が間違っている。
- 症状: synchronization errorがでる:
原因: real time PCの計算機自身の時間と、real time software上の時間がずれてしまっている。->real time PCを再起動。
- 症状: time outになってしまう:
原因: real time PCとdiagguiを走らせているclient PCの内部時間がずれている。->client PCのntpが動いていているか確認。時刻を合わせる。
- 症状: 現在のデータも過去のデータも見えない:
原因: ndsが動いていない。[解決策]
- 症状: 現在のデータは見えるが、過去のデータが見えない:
原因: daqdが動いていない。[解決策]
- 症状: 過去のデータは見えるが、現在のデータが見えない:
- 原因: DAQ networkのどこかが切れている。
上記項目がおかしい場合、まず試すこと
mbuf及び、real time moduleは動いているか?
controls@standalone ~ $ lsmod Module Size Used by k1vex 9455730 0 k1x01 9198550 1 k1vex mbuf 7317 10 k1vex,k1x01
とmbufが動いていて、モジュールとしてIOCとreal time model(ここでは一例としてk1vex及びk1x01)が走っているか?- mbufは/etc/rc.localから呼び出されている。
RT model等は/opt/rtcds/kamioka/k1/scripts/startk1vex等から呼び出されている(startスクリプトの一例)。これをたどっていくと、何が起動されているかが分かる。ここも参照するといい。
- /opt/rtcds/kamioka/k1/target/k1vex/scripts/startupK1rtを見ると、insmodコマンドでRT modelをLinuxカーネルのmoduleとして起動していることが分かる。ログが/opt/rtcds/kamioka/k1/target/k1vex/logs/log.txtに書かれているので、見る。
起動できない原因の一つが、現在走っているlinuxカーネルと違うバージョンのカーネルの元でbuildされた可能性がある。その場合現在走っているカーネルで再ビルドしなくてはならない。
- 現在のカーネルのバージョンはuname -aで分かる。
- /opt/rtcds/kamioka/k1/target/k1vex/k1vexepics/burt以下にログがたまっているとうまくRT moduleが立ち上がらないことが確認されている。その場合、そこにあるログを全て削除し、cd ..で一つ上がってsudo chown root:root burtとしておくと次回からはうまく立ち上がるようになるはずである。
- それでもRT moduleが走らない場合、matlabで.mdlファイルを開いて、左上の方にあるモデルを定義しているboxのオプションをよく見るといい。例えば、Dolphin RFMが無いのにpciRFM=1が設定されていると、RT moduleをinsmodするところで Unknown sumbol in module というエラーで読み込めなくなる。
epics caRepeater及びepics IOCが走っているか?
controls@standalone ~ $ ps -ef | grep epics controls 5045 1 0 14:38 ? 00:00:00 /opt/rtapps/epics/base/bin/linux-x86_64/caRepeater controls 5085 1 0 14:38 ? 00:00:01 ./k1x01epics k1x01epicsK1.cmd controls 5189 1 4 14:38 ? 00:00:10 ./k1vexepics k1vexepicsK1.cmd
- caRepeaterは/etc/rc.localから呼び出されている。
- それぞれのモデルのepics IOCは、それぞれのモデルのstartスクリプトから起動されている。
log(example): /opt/rtcds/kamioka/k1/target/k1vex/k1vexepics/iocK1.log
- burtは1になっているか?
- medmで/opt/rtcds/kamioka/k1/medm/k1x01/K1X01_GDS_TP.adlや/opt/rtcds/kamioka/k1/medm/k1vex/K1VEX_GDS_TP.adlを開いて「BURT」のところが緑になっているか確認する。
- WatchdogがOFFになっていないか?
- /opt/rtcds/kamioka/k1/medm/k1vex/K1VIS_ETMX_F0.adlを開いて、右下のWatchdogがONになっていることを確認。
awgtpmanは走っているか?
controls@standalone ~ $ ps -ef | grep awg root 5159 1 0 14:38 ? 00:00:12 /opt/rtcds/kamioka/k1/target/gds/bin/awgtpman -s k1x01 -4 -l /opt/rtcds/kamioka/k1/target/gds/awgtpman_logs/k1x01.log root 5280 1 0 14:39 ? 00:00:12 /opt/rtcds/kamioka/k1/target/gds/bin/awgtpman -s k1vex -l /opt/rtcds/kamioka/k1/target/gds/awgtpman_logs/k1vex.log
- それぞれのモデルのawgtpmanは、それぞれのモデルのstartスクリプトから起動されている。
log: /opt/rtcds/kamioka/k1/target/gds/awgtpman_logs/k1vex.log
ndsは走っているか?
controls@standalone ~ $ ps -ef | grep nds controls 5534 1 0 14:39 ? 00:00:00 su controls -c /opt/rtcds/kamioka/k1/target/fb/nds /opt/rtcds/kamioka/k1/target/fb/pipe controls 5539 5534 0 14:39 ? 00:00:00 /opt/rtcds/kamioka/k1/target/fb/nds /opt/rtcds/kamioka/k1/target/fb/pipe
ndsは/etc/inittabから呼び出されている
controls@standalone ~ $ tail -n 2 /etc/inittab fb:2345:respawn:/opt/rtcds/kamioka/k1/target/fb/start_daqd.inittab nds:2345:respawn:/opt/rtcds/kamioka/k1/target/fb/start_nds.inittab
- log: /opt/rtcds/kamioka/k1/target/fb/logs/nds.log (通常問題なく起動するとログには何も記述されない)
daqdは走っているか?
controls@standalone ~ $ ps -ef | grep daqd controls 20077 1 0 16:42 ? 00:00:00 su controls -c /opt/rtcds/kamioka/k1/target/fb/daqd -c /opt/rtcds/kamioka/k1/target/fb/daqdrc controls 20081 20077 3 16:42 ? 00:00:00 /opt/rtcds/kamioka/k1/target/fb/daqd -c /opt/rtcds/kamioka/k1/target/fb/daqdrc
daqdは/etc/inittabから呼び出されている
controls@standalone ~ $ tail -n 2 /etc/inittab fb:2345:respawn:/opt/rtcds/kamioka/k1/target/fb/start_daqd.inittab nds:2345:respawn:/opt/rtcds/kamioka/k1/target/fb/start_nds.inittab
- daqdが走っているかどうかの確認方法の一つは/frames以下にfame dataが書き込まれているかどうかを見ることである。
pipeの指定が正しいか確認。daqdrc.nds0等の中でnds-jobs-dirを指定しているが、これがpipeに引き渡す位置になる。基本的にfb以下にpipeがあるのでfbまでの指定とする。この場合
T0=15-04-30-06-34-40; Length=600 (s) No data output. .. done read(); errno=0 LONG: DataRead = -1 No data found
と言うようなエラーメッセージがdataviewerから出る。また、diagguiでも過去データは見えない。
指定されたjobsとpipeの位置関係は正しいか?
controls@k1nds0 ~ $ grep 'jobs' /opt/rtcds/kamioka/k1/target/k1daqnds0/daqdrc set nds-jobs-dir="/opt/rtcds/kamioka/k1/target/k1daqnds0"; controls@k1nds0 ~ $ ls -l /opt/rtcds/kamioka/k1/target/k1daqnds0 total 24 drwxr-xr-x 2 controls controls 4096 Jan 20 2016 bin_archive lrwxrwxrwx 1 controls controls 26 Nov 11 13:27 daqd -> bin_archive/daqd.rcg-2.9.7 -rw-r--r-- 1 controls controls 1453 Nov 14 14:13 daqdrc drwxr-xr-x 2 controls controls 12288 Nov 14 14:20 jobs lrwxrwxrwx 1 controls controls 25 Nov 11 13:27 nds -> bin_archive/nds.rcg-2.9.7 srwxr-xr-x 1 controls controls 0 Nov 14 14:19 pipe
nds-jobs-dirで指定したディレクトリ直下にjobs, pipeが無いといけない。(k1nds1も同様)
- /opt/rtcds/kamioka/k1/target/fb/masterをチェック。特に最終行の最後に改行が入っているか。
- /frames以下にきちんと書き込めているか?
- dfコマンドで/dev/sdc1の空き容量をチェック。
- /dev/sdc1があるかチェック。3台目のHDDがsdcとなるので、2台目を抜いてきどうしたりすると本来sdcになるものがsdbになってしまったりすることがある。
- /frame/full/XXXX/以下にファイルが随時書き込まれていくか確認してみる。
More check list
- ezcaコマンド群は問題なく動くか?
- BURTは裏できちんと動いていて、epicsの変化を記録しているか?
- Conlogは作動しているか?
- CPU meterの値は十分小さいか?
- IRIG-Bのところに大きな時間のずれが表示されていて赤くなっていないか?
- Dolphin RFMで制御信号はやりとりできるか?
- GE RFMで制御信号はやりとりできるか?
Model building test
- Client Workstation上でMatlabが立ち上がるか?
- modelをbuildできるか?
- 再起動で問題なく動くか?
動作の挙動がおかしい
- RTSの動作が重い、medmの各K1XXX_GDS_TP.adlの「CYC/USR」の左の数字が黄色または赤になっている:
原因: データ保存用HDDがいっぱいになっている。 [解決策]