#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からレーザーを制御することが可能.

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS