#author("2023-05-22T04:33:51+09:00","default:LabMember","LabMember")
[[DigitalSystemに戻る>DigitalSystem]]

Note: 2013/09/10 system updated
Note: 2022/05/10 system updated to LIGo CDS ver. 4.2

* How To [#ee7be9cf]
Realtime digital systemの基本的な使い方。
LIGO CDSの基本的な使い方

#contents


** 起動 [#o4c54398]
*** 電源の入れ方 [#zcadcef1]
1. ケーブル類を正しく繋ぐ。~
2. 0-5V、65536Hzの矩形波(timing signal)をADC/DACカードに入れる。~
3. 拡張シャーシの電源を2つONにする(この時点では電源は入らない)。~
4. 計算機の電源を入れる。~
+ 各種ケーブル類が適切に刺さっていることを確認する.
++ AA chassis: 電源(ヒロセの4ピン),ADCボード(80ピン),クロック(LEMO)
++ AI chassis: 電源(ヒロセの4ピン),DACボード(68ピン),クロック(LEMO)
++ サーバー: 電源,ADC/DACボード,キーボード,モニター,LANケーブル
+ AA/AI chassisへTEXIOの安定化電源から±15Vを供給する.
++ 電源が入ると中の回路のLEDが緑に光るので確認できる.
++ 全ての回路に電源を供給すると~1A程度消費するはず.それよりかなり大きいor小さい場合は故障が疑わしいので開けて確認する.
+ シンセサイザーからクロックの信号をAA/AI chassisに入れる.
++ 画面表示で0-5V,65536kHzの矩形波を入れる.オシロで見ると0-10Vの矩形波になっていればOK.~
&color(red){信号が大きすぎるとボードのクロック入力が壊れるので気をつけること.};(既に2回やらかしている)
+ サーバーの電源を入れる.表面右上あたりにボタンがある.

*** 再起動の方法 [#e68811f1]
standalone上で~
 sudo reboot
とする。一番よく使うコマンドかもしれない。
*** 再起動の方法,復旧 [#e68811f1]
サーバーに接続した状態で~
 sudo reboot now
とする.now をつけないと数10秒待たされるので注意. ~
再起動後,
 rtcds status
でモデルが動いているか確認する.(だいたい動いていないので)動いていないものを以下の方法でスタートする.
+ IOPモデルをスタートする.
 rtcds start (IOPのモデル名)
一般ユーザーでログインしていればパスワードを求められるので適宜入力する.
+ CAMモデルをスタートする.
 rtcds start (CAMのモデル名)
CAMは複数同時にスタートできる.
+ local_dcをスタートする.
 sudo systemctl start rts-local_dc.service
serviceはなくてもいい.
+ 各モデルのGDS_TP.adlを確認する.インジケーターが全部緑になっていればOK.

** standaloneに入る方法 [#f9dfa138]
*** standaloneのモニタを使う場合 [#l1e4e1e3]
ユーザー名:controls、パスワード:????で入る。
*** desktop1を使う場合 [#c32fd178]
desktop1でterminalを開き、~
 ssh -Y controls@standalone
として、パスワードを入力する。
*** 研究室外から使う場合 [#kfc019dd]
自分のパソコンのterminalを開き、~
 ssh -Y ユーザー名@granite.phys.s.u-tokyo.ac.jp
として、自分のパスワードを入力する。するとgraniteに入れるので、そこから
 ssh -Y controls@AirStationのIPアドレス
として、パスワードを入力する。AirStationのIPアドレスは[[ここ>InternalIPaddressList]]を参照。すると、desktop1に入れるので、そこから
 ssh -Y controls@standalone
として、パスワードを入力する。~
自分のパソコンのOSがLinux、またはX11の入ったMacならMEDM screenやMATLABも開けるので便利。Windowsでやりたい場合はVMWare Playerなどを使うといい。terminal上の操作だけできれば十分なら、Tera Termなどでもいい。
** サーバーに入る方法 [#f9dfa138]
*** サーバーのモニターを使う場合 [#l1e4e1e3]
ユーザー名:controls、パスワード:????で入る.
*** workstationを使う場合 [#c32fd178]
ssh接続をする.適当なターミナルから
 ssh controls@(サーバーのホスト名)
として,パスワードを入力する.
*** 研究室から入る場合 [#kfc019dd]
自分のPCのターミナルから
 ssh controls@(ルーターのIPアドレス) [-p (ポート番号)]
として,パスワードを入力する.ルーターのIPアドレスは[[ここ>InternalIPaddressList]]を参照.
ポート番号は指定しなければworkstationに繋がる.
*** 研究室外から入る場合 [#qd2f4916]
一番簡単なのはVPN接続をすること.その場合は研究室内と同じ方法でアクセスできる.~
VPN接続をしない場合,一旦graniteサーバーを踏む必要がある.
 ssh ユーザー名@(graniteのIPアドレス)
でgraniteへ入り,その後研究室内の場合と同じ方法でアクセスできる.

** 様々な動作チェックの方法 [#geeaa533]
*** 拡張シャーシが認識されているかどうか [#n6b25c0a]
standalone上で~
 sudo lspci
とする。[[このような結果>https://granite.phys.s.u-tokyo.ac.jp/wiki/Lab/index.php?plugin=attach&pcmd=open&file=lspci.txt&refer=DigitalSystem]]にならなければ、何かがおかしい。~
~
新しいPC上での結果~
#ref(lspci.txt)
*** awg, nds, tpが動いているかどうか [#mc68bc21]
standalone上で
 diag -i
とする。結果が~
 Diagnostics configuration:
 awg 22 0 192.168.11.100 822095894 1 192.168.11.100
 awg 89 0 192.168.11.100 822095961 1 192.168.11.100
 nds * * 192.168.11.100 8088 * 192.168.11.100
 tp 22 0 192.168.11.100 822091798 1 192.168.11.100
 tp 89 0 192.168.11.100 822091865 1 192.168.11.100
となれば正常。awgやtpが出てこない場合は、拡張シャーシの認識がおかしいかもしれない。ndsが出てこない場合はネットワークがおかしいかもしれない。
*** 動いているモデルのチェック [#l8d672fb]
サーバー上で
 rtcds status
とする.例えば結果が以下のような場合…
 Build kernel-mode models by default
 Kernel Module Status\n

 mbuf                   20480  38 t1tst,t1visavit,t1pem,t1ioptoba
 gpstime                32768  5 t1tst,t1visavit,t1pem,t1ioptoba

 t1ioptoba            9392128  3 t1tst,t1visavit,t1pem
 t1pem                8880128  0
 t1tst                9093120  0
 t1visavit            9261056  0
 Kernel Module Status = ALL LOADED

 System Status
 system         epics          module         awgtpman
 ------------------------------------------------------
 t1ioptoba       ON             ON             ON
 t1pem           ON             ON             ON
 t1tst           ON             ON             ON
 t1visavit       ON             ON             ON
 Systems Status =       ALL ACTIVE


 Overall Status =       OK
モデルはt1ioptoba, t1pem, t1tst, t1visavitが動いていることがわかる.System Statusがどれか1つでもOFFであれば正常でないので以下の方法で確認する.

*** 各モデルでawg, tp, epicsが動いているかどうか [#mc68bc21]
サーバー上で
 rtcds status (モデル名)
とする.モデル名がt1vistobaの場合,結果が~
 Build kernel-mode models by default
 ● rts@t1visavit.target - Advanced LIGO RTS target: t1visavit
    Loaded: loaded (/lib/systemd/system/rts@.target; disabled; vendor preset: enabled)
   Drop-In: /run/systemd/generator.early/rts@t1visavit.target.d
            └─part_of_rts-user-models.target.conf
    Active: active since Sat 2022-11-26 17:47:38 JST; 3 weeks 1 days ago

 ● rts-awgtpman@t1visavit.service - Advanced LIGO RTS awgtpman: t1visavit
    Loaded: loaded (/lib/systemd/system/rts-awgtpman@.service; static; vendor preset: enabled)
   Drop-In: /run/systemd/generator.early/rts-awgtpman@t1visavit.service.d
            └─after_rts-module@t1visavit.service.conf
    Active: active (running) since Sat 2022-11-26 17:47:38 JST; 3 weeks 1 days ago
  Main PID: 21860 (awgtpman)
    CGroup: /system.slice/system-rts\x2dawgtpman.slice/rts-awgtpman@t1visavit.service
            └─21860 awgtpman -s t1visavit

 ● rts-epics@t1visavit.service - Advanced LIGO RTS EPICS IOC sequencer: t1visavit
    Loaded: loaded (/lib/systemd/system/rts-epics@.service; static; vendor preset: enabled)
   Drop-In: /run/systemd/generator.early/rts-epics@t1visavit.service.d
            └─after_rts-awgtpman@t1ioptoba.service.conf, after_rts-module@t1ioptoba.service.conf, require_rts-module@t1io
    Active: active (running) since Sat 2022-11-26 17:47:30 JST; 3 weeks 1 days ago
  Main PID: 21805 (t1visavitepics)
    CGroup: /system.slice/system-rts\x2depics.slice/rts-epics@t1visavit.service
            └─21805 ./t1visavitepics t1visavitepicsT1.cmd

 ● rts-module@t1visavit.service - Advanced LIGO RTS kernel module: t1visavit
    Loaded: loaded (/lib/systemd/system/rts-module@.service; static; vendor preset: enabled)
   Drop-In: /run/systemd/generator.early/rts-module@t1visavit.service.d
            └─after_rts-epics@t1visavit.service.conf, after_rts-module@t1ioptoba.service.conf, bindsto_rts-module@t1iopto
    Active: active (exited) since Sat 2022-11-26 17:47:38 JST; 3 weeks 1 days ago
   Process: 21806 ExecStart=/usr/bin/rts_module_ctrl start t1visavit (code=exited, status=0/SUCCESS)
  Main PID: 21806 (code=exited, status=0/SUCCESS)
となれば正常.左上の●が全て緑色になっていればOK.

*** モデルが正常に動いているかのチェック [#b5788ae9]
各モデルのGDS_TP.adlを確認する.インジケーターが全て緑色になっていればOK.

*** ネットワーク接続のテスト [#h77ba28a]
standalone上で~
 ping desktop1
またはdesktop1上で~
 ping standalone
として反応があるか確かめる
*** realtime modelが走っているかどうかのチェック [#c42d6b12]
standalone上で~
 lsmod
とする。例えば、結果が~
 Module                  Size  Used by
 x1x16fe              4495987  0 
 x1x14fe              4989783  1 x1x16fe
 mbuf                    7672  9 x1x16fe,x1x14fe
となったら、x1x16とx1x14のfrontendが走っていることがわかる。また、x1x14がx1x16によって使われているので、x1x14がmaster、x1x16がslaveとなっていることも確認できる。
サーバー上で~
 ping (workstationのホスト名)
またはworkstation上で~
 ping (サーバーのホスト名)
として反応があるか確かめる.

** MEDM関連 [#ld88fd7b]
フィルタのON/OFF、ゲインの変更、各種スイッチングなどはMEDM screenを用いて行うことができる。
フィルタのON/OFF,ゲインの変更,各種スイッチングなどはMEDM screenを用いて行うことができる。
*** MEDMの開き方 [#kf32a094]
terminalで
 // cd /opt/rtcds/tst/x1/medm/
 cd /opt/rtcds/kamioka/k1/medm/
 medm -x &
とするか、desktop1のMEDMと書かれたデスクトップアイコンをダブルクリックする。
 /opt/rtcds/(site)/(ifo)/medm
 medm  &
とするか,MEDMと書かれたデスクトップアイコンをダブルクリックする.

*** MEDM screenの見方 [#u147fa4f]
/opt/rtcds/kamioka/k1/medmの中の、各realtime model名フォルダの中に、自動生成されたMEDM screenがある。例えば、X1X16_GDS_TP.adlではCPUがちゃんと動いているか、timing signalは来ているかなどを確認することができる。また、K1VEX_ADC_FILTER_01.adlなどでフィルタのON/OFF、ゲインの変更ができる。
/opt/rtcds/(site)/(ifo)/medmの中の,各モデル名のフォルダの中に,自動生成されたMEDM screenがある.~
MEDMを起動して出てきた画面の"Mode"から"Execute"を選択すると,ゲインの調整やフィルターのON/OFFなどができるようになる.~
MEDM screenを編集したい場合,"Mode"から"Edit"を選択して編集したい画面を開く.
編集モードは癖があるので触って慣れる必要あり.

*** MEDM screenの編集 [#ub2c7ab0]
terminalで
  medm &
としてMEDMを起動すれば、MEDM screenの編集もすることができる。触ってみて覚えるしかない。

** DTT関連 [#o0371788]
dataviewer、Fourier Tools、fotonなどをまとめてDTT(diagnostics test tools)と呼ぶ。~
詳しい使い方は[[ここ>http://gwwiki.icrr.u-tokyo.ac.jp/JGWwiki/KAGRA/Subgroups/DGS/Manual]]にも書いてある。
diaggui, foton, awgguiなどをまとめてDTT(diagnostics test tools)と呼ぶ.~
詳しい使い方は[[ここ>http://gwwiki.icrr.u-tokyo.ac.jp/JGWwiki/KAGRA/Subgroups/DGS/Manual]]にも書いてある.

***DTTの開き方 [#v0580a1c]
terminalで
 dtt &
とするか、desktop1のDTTと書かれたデスクトップアイコンをダブルクリックする。するとDTTのメインメニューが開かれるので、使いたい機能を選べばよい。
*** スペクトル,伝達関数などの測り方 [#v0580a1c]
diagguiを使う.terminalで
 diaggui &
とするか、diagguiと書かれたデスクトップアイコンをダブルクリックする.~
詳しい使い方は[[ここ>https://gwdoc.icrr.u-tokyo.ac.jp/cgi-bin/private/DocDB/ShowDocument?docid=5912]]を見るか,詳しい人に聞く.

*** 時系列データの見方 [#t12707c6]
dataviewerを用いて行う。~
Signalタブで見たい信号を選び、Realtimeタブで表示したい信号を選んでStartボタンをクリックすれば、オシロスコープとして使える。
過去のデータまでさかのぼりたい時はPlaybackタブのなかのメニューで行えばよい。~
ndscopeを使う.terminalで
 ndscope &
とするか,ndscopeと書かれたデスクトップアイコンをダブルクリックする.~
詳しい使い方は… いい文献があったら教えてください.

terminalから直接dataviewerを開きたい場合は
 dv &
とする。

*** スペクトル、伝達関数の測り方 [#gb952c24]
Fourier Toolsを用いて行う。~
InputタブでData Source SelectionをOnline Systemにし、Measurementタブでスペクトルを測りたい信号を選んで、Startボタンをクリックすれば、Resultタブに結果が表示される。~
伝達関数を測りたい場合はMeasurementタブでSwept Sine Responseを選択し、Excitationタブでexcitationを注入する場所を設定すればよい。~
伝達関数がうまく測定できない場合はMeasurment Timeを0.7 sec以上にしてみるとうまくいくかもしれない。~

terminalから直接Fourier Toolsを開きたい場合は
 diaggui &
とする。

*** フィルタの編集方法 [#e6b6fa27]
fotonを用いて行う。~
フィルタの編集から反映までの流れは下記の通り。~
1. fotonを開く。~
2. Module Selectionで/opt/rtcds/kamioka/k1/chans/を開き、編集したいmodel名のtxtファイルを開く(例えば、X1X16.txt)。編集したいModule名を選択する(例えば、ADC_FILTER_01)。各Moduleには10個のフィルタを入れることができる。~
3. FileメニューのRead Onlyを外す。~
4. Selectionsで編集したいフィルタを選び、名前をつける。~
5. Designを用いてフィルタを作成する。作成したフィルタの形は「Bode Plot」ボタンをクリックすると、「Graphics」タブに表示される。~
6. 編集後Saveし、該当するModuleのMEDM screenを開く(例えば、K1VEX_ADC_FILTER_01.adl)。~
7. 「LOAD COEFFICIENTS」ボタンをクリックすると、フィルタの変更が反映される。~

terminalから直接fotonを開きたい場合は
fotonを用いて行う。terminalで
 foton &
とする。
とするか,fotonと書かれたデスクトップアイコンをダブルクリックする.~
フィルタの編集から反映までの流れは下記の通り.
+ fotonを開く.
+ Module Selectionで/opt/rtcds/(site)/(ifo)/chans/を開き,編集したいmodel名のtxtファイルを開く(例えば,T1VISAVIT.txt).
+ 編集したいmodule名を選択する(例えば,SERVO_X).各moduleには10個のフィルタを入れることができる.
+ FileメニューのRead Onlyを外す.~
+ Selectionsで編集したいフィルタを選び,名前をつける.~
+ Designを用いてフィルタを作成する.作成したフィルタの形は「Bode Plot」ボタンをクリックすると,「Graphics」タブに表示される.
+ 編集後Saveし,該当するModuleのMEDM screenを開く(例えば,T1VIS_SERVO_X.adl).
+ 「LOAD COEFFICIENTS」ボタンをクリックすると,フィルタの変更が反映される.

** Simulink関連 [#ud9b6101]
MATLABのSimulinkを用いて、realtime modelを編集することができる。
MATLABのSimulinkを用いて,モデルを編集することができる.

*** MATLABの開き方 [#r22809d9]
terminalで
 //cd /opt/rtcds/tst/x1/core/advLigoRTS/trunk/src/epics/simLink/
 rtr
 cd src/epics/simLink
 matlab &
とするか、desktop1上のMATLABと書かれたデスクトップアイコンをダブルクリックする。
とする.

*** realtime modelの編集 [#fd4edb5d]
1. MATLABを開き、編集したいモデルを開く(例えば、k1vex.mdl)(/opt/rtcds/rtscore/tags/advLigoRTS-2.6.3/src/epics/simLink)。~
2. Simulinkを用いて配線を行う。フィルタモジュールなど、使えるパーツはCDS_PARTS.mdlの中に入っているので、コピー・ペーストして作っていく。~
3. 編集後Saveする。~
4. standalone上で
// cd /opt/rtcds/tst/x1/core/advLigoRTS/trunk
// killx1x16
// ./dbuild x1x16
// startx1x16
 rtr
 make k1vex
 make install-k1vex
 killk1vex
 startk1vex
とすると、編集した後の新しいk1vexが走り出すようになる。MEDM screenなどもこの操作で自動生成される。~
&color(red,white){新しいモデルを作った後はDAQがリセットされているので必ず再設定すること。};
*** モデルの編集 [#fd4edb5d]
+ MATLABを開き,編集したいモデルを開く.例えば,t1tst.mdlなら,/opt/rtcds/usercode/models にある.
+ Simulinkを用いて配線を行う.フィルタモジュールなど,使えるパーツはCDS_PARTS.mdlの中に入っているので,コピー・ペーストして作っていく.
++ CDS_PARTS.mdl はMATLABのコンソール上で
 CDS_PARTS
と打てば出てくる.
+ 編集後Saveする.
+ サーバー上で
 rtcds build t1tst
 rtcds install t1tst
 rtcds restart t1tst
とすると,編集した後の新しいt1tstが走り出すようになる.MEDM screenなどもこの操作で自動生成される.~
+ モデルを編集した後はDAQのチャンネルを再設定する.サーバー上で
 sudo systemctl rts-daqd.service restart
とする.

*** モデルの追加 [#p931a74d]
モデルを追加する場合,やることが少し増える.
t1new というモデルと追加する場合,
+ サーバーに入り /etc/advligorts に移動する.
+ env というファイルの USER_MODELSに追加するモデルの名前を追加する.
 USER_MODELS="(元々書いてあるモデル名) t1new"
+ systemd_env というファイルの USER_MODELS, local_dc_args に追加するモデルの名前を追加する.
 USER_MODELS="(元々書いてあるモデル名) t1new"
 local_dc_args='(色々書いてある) "(元々書いてあるモデル名) t1new"(色々書いてある)'
+ masterというファイルに以下を追記する.
 /opt/rtcds/tyo/t1/chans/daq/T1NEW.ini
 /opt/rtcds/tyo/t1/target/gds/param/tpchn_t1new.par
tyo, t1は適宜置き換える.
+ あとはモデルを編集するときと同じようにする.ただしモデルを走らせるときは restart ではなく startにする.
 rtcds start t1new

**epicsの値の復元 [#fb88d928]
通常ならstandaloneをrebootするとfilterのゲインやon/off, matrixの値など、epicsの値がデフォルトに戻ってしまい再現されない。しかし、新しいRT systemにはburtというepicsの値を保存しておいてくれるシステムがある。~
-保存方法~
epicsの値は1時間おきに自動的に保存されるが、手動で保存する場合は、standalone上で
 startk1vex
とする。
-復元方法~
control PC上で
 cd /opt/rtcds/kamioka/k1/burt/autoburt/snapshots/
 burtgooey &
とし、Restore -> Snapshot Files... -> 該当する日付のフォルダから*.snap fileを選択し、OKをクリック。~
上部に出たfileを選択し、Restoreをクリックすると値が復元される。
通常ならモデルをリスタートするとfilterのゲインやon/off, matrixの値など,epicsの値がデフォルトに戻ってしまい再現されない.そのような場合に値を復帰するために,SDFというepicsの値を保存しておいてくれるシステムがある.~
詳しい使い方は[[ここ>https://gwdoc.icrr.u-tokyo.ac.jp/cgi-bin/private/DocDB/ShowDocument?docid=9228]]を参照.

*** 保存方法 [#da17e42a]
+ 各モデルのSDF_TABLE.adlを開く.
+ 値を保存したいチャンネルの ACCEPT ボタンを押す
+ 保存したいチャンネルを全て選択したら,右上の CONFIRM ボタンを押す.

*** 復元方法 [#ed67cc31]
+ 値を復元したいチャンネルの REVERT ボタンを押す
+ 復元したいチャンネルを全て選択したら,右上の CONFIRM ボタンを押す.


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS