#author("2024-08-23T16:30:32+09:00","default:LabMember","LabMember") #author("2024-08-29T07:34:20+09:00","default:LabMember","LabMember") [[DigitalSystem]] * Software for Digital System [#e7e63fb8] LIGO CDS用に作ったソフトウェア一覧 作った人: 高野 #contents ** Temperature Monitor [#od307c02] #ref(temp_readd.py) WorkstationでLake Shoreの温度計とGPIBでやりとりして,0.1秒ごとにCDSのチャンネルに記録する. 基本となるコードは大昔に牛場さんが作ったもの([[TOBA wikiに残っている>https://granite.phys.s.u-tokyo.ac.jp/wiki/TOBA/index.php?src]]). ファイルは/home/controls/script/PEM/ にあり,daemonで起動と同時に動き出すようになっているので&color(red){決して移動しない・名前を変更しないこと.}; *** 基本動作 [#fba21c67] + 温度を書き込むEPICS channelの定義 -- 生データ: T1:PEM-TEMP_TEMP{1~8} -- キャリブレーション後: T1:PEM-TEMP_TEMP{1~8}_CALIB + Lake Shoreの温度計にアクセスする -- GPIB IP address: 192.168.11.11 -- GPIB number: 12 + キャリブレーション元のファイルの読み込み -- キャリブレーションは下田さんの測定結果を利用([[elog>https://granite.phys.s.u-tokyo.ac.jp/elog/?p=2763]]) -- キャリブレーション元のファイルは /home/controls/script/PEM/data_calibtemp/ 以下にある + 温度の読み取り -- デフォルトでは0.1秒ごとに読み取る + 温度のキャリブレーション -- キャリブレーション元のデータを補完して推定 + EPICS channelへの書き込み *** Daemon [#gc3d1562] バックグラウンドで動かすため,起動と同時にデーモンで動くようにしてある. デーモンの設定ファイルは /lib/systemd/system/temp_readd.service においてあり,/home/controls/script/PEM/temp_readd.py を見るようになっているので,勝手に移動したり名前を変えたりすると動かなくなるので注意. デーモンの状態は systemctl status temp_readd.service で確認できる.温度計の電源を切ったなど再起動が必要な場合は sudo systemctl restart temp_readd.service とする. ** Vacuum Monitor [#od307c02] #ref(vac_readd.py) Workstationで真空計の値を読み取り,0.5秒ごとにCDSのチャンネルに記録する. 真空計とRS-232で繋いで,pyserialを使ってシリアル通信をする. ファイルは/home/controls/script/PEM/ にあり,daemonで起動と同時に動き出すようになっているので&color(red){決して移動しない・名前を変更しないこと.}; *** 基本動作 [#fba21c67] + 真空度を書き込むEPICS channelの定義 -- 生データ: T1:PEM-VAC_VAC -- logスケール: T1:PEM-VAC_LOG + 真空計にアクセスする -- port: /dev/ttyUSB0 -- ポートが変わったら適宜変える + 真空度の読み取り -- デフォルトでは0.5秒ごとに読み取る + EPICS channelへの書き込み *** Daemon [#gc3d1562] バックグラウンドで動かすため,起動と同時にデーモンで動くようにしてある. デーモンの設定ファイルは /lib/systemd/system/vac_readd.service においてあり,/home/controls/script/PEM/vac_readd.py を見るようになっているので,勝手に移動したり名前を変えたりすると動かなくなるので注意. デーモンの状態は systemctl status vac_readd.service で確認できる.温度計の電源を切ったなど再起動が必要な場合は sudo systemctl restart vac_readd.service とする. ** Koheres Laser Control [#pf2c6eca] #ref(koheras.py) Koherasのレーザーとやりとりするためのモジュール #ref(pcas_koheras.py) KoherasのレーザーとやりとりするためのEPICS serverを立てるコード *** koheras.py [#t8593e8d] + KoherasのレーザーとUSBで繋ぐ + USBのポートを確認する -- ここでは /dev/USB0 とする + pythonを開いて(ipythonの方がいい),モジュールを読み込み,インスタンスを作る import koheras Koheras = koheras.Koheras(port="/dev/USB0") -- "module type: ..." と出れば接続成功 ++ レーザーの出力をonにする Koheras.emission(1) ++ レーザーの出力をoffにする Koheras.emission(0) ++ 波長のセットポイントを -10 pm にする Koheras.wl_offset_sp_write(-10) ++ 出力パワーを 20 mW にする Koheras.power_sp_write(20) ++ 今の波長を読む Koheras.wl_read() -- その他の使い方は中身を参照 *** pcas_koheras.py [#o800e09a] python pcas_koheras.py (USBのポート) (EPICS channelのprefix) でサーバーが起動する. medmでGUIを作ってCDSからレーザーを制御することが可能.