Differences between revisions 1 and 118 (spanning 117 versions)
Revision 1 as of 2015-10-09 11:10:11
Size: 2301
Comment:
Revision 118 as of 2018-01-18 14:43:15
Size: 10546
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
= REM スクリプトの起動・設定方法 =

・REMスクリプトを起動する前に下記の確認が必要

1.REMのEPICSを起動していること
起動していなければ下記の手順で起動する

 a. cd /opt/rtcds/kamioka/k1/target/k1rack/
 b. ./bin/linux-86_64/k1rack ./iocBoot/iok1rack/st.cmd

2.温度計がFTPサーバにXMLファイルを転送していること
FTPサーバのXMLファイルは下記の手順で確認する
 a. ftp 172.16.34.56
 b. dgs
 c. kagradgs
 d. cd tmp
 e. ls

・REMスクリプトの起動方法
cd /tmp/
bash rem.sh

・REMスクリプトの大まかな流れ
FTPサーバに接続する
FTPサーバの/tmp/に存在するすべてのXMLファイルをLocalサーバに転送する
FTPサーバの/tmp/に存在するすべてのXMLファイルを削除する
Localサーバの/tmp/に存在するすべてのXMLファイルをFTPサーバの/archive/に転送する
 //バックアップのため、FTPサーバの/archive/にXMLファイルを保存する
FTPサーバの接続を切る
Localサーバの/tmp/に存在するXMLファイルを読み込む(XMLに記載されている各子機の温度、湿度を抽出)
抽出した値をTextファイルに書き込む
Textファイルを読み込み、EPICSに値を登録する
Localサーバの/tmp/に存在するXMLファイルを削除する
上記の動作を1分間隔で繰り返す

・子機を追加した場合
1.EPICSにチャンネルを追加する
= Rack Environmental Monitor =
<<TableOfContents(2)>>

== 親機リスト Base station list ==
||Name ||Serial # ||IP address ||Location ||Connected to ||
||Center ||52A0101E ||10.68.140.1 ||Center digital room in Mine ||Relay1, dr, outdr ||
||X end ||52A0112B ||--(192.168.10.4)-- 192.168.10.2 (local)<<BR>>10.68.10.209 ||X end station, on a AED rack ||1F EXC, 2F EXC, Racks ||
||Y end ||52A0107C ||192.168.10.5 (local)<<BR>>10.68.10.229 ||Top of EY1 rack || 1F EYC, 2F EYC, Racks ||
||Mozumi Station ||52A002A0 ||10.68.11.10 ||Control Room ||SVR ||
||Yend 2F ||52A01115 ||192.168.11.16 (local)<<BR>>10.68.10.230 ||Y end 2F area (EYV) || ||
||X500m (PX) ||52A01117 ||--(10.68.140.2)-- ||GIF Area || ||

== 中継器リスト Relay station list ==
||Name ||Connected to ||Serial # ||Location ||
||Relay1 ||Relay2, center ||529A13E8 ||Location ||
||Relay2 ||Relay3, imc, ioo, mcrack, pr2, prm, psl ||529A1401 ||Location ||
||Relay3 ||ixa ||529A1853 ||By IXA clean booth / Cryomachine room door ||
||Relay4 ||crydr ||529A1855 ||Location ||
||Relay5 ||iya ||529A186A ||Location ||


== 子機リスト Data logger list ==
=== Center Racks ===
||Name ||Serial # ||Location || koki # ||
||mc rack ||52C61128 ||MC Rack ||1 ||
||ioo ||52C610D7 ||IOO Rack ||6 ||
||pr2 ||52C61227 ||PR2 Rack ||7 ||
||prm ||52C61226 ||PRM Rack ||8 ||
||ixa ||52C61506 ||Around IXA duct ||10 ||
||iya ||52C61505 ||Around IYA duct ||11 ||


=== Center Fields ===
||Name ||Serial # ||Location || koki # ||
||out dr ||52C61234 ||Outside of the mine digital room || 2 ||
||dr ||52C61234 ||Inside of the mine digital room ||3 ||
||center ||52C61128 ||On the wall close to the BS booth ||4 ||
||imc ||52C610DB ||On the big white shelf close to the IMC and PSL ||5 ||
||crydr ||52C6122A ||低温機械室 tent1 ||12 ||
||crydr2 ||52C6122E ||低温機械室 tent2 ||13 ||
||psl ||52C61518 ||Entrance of the PSL enclosure ||9 ||
||psl2 || 52C61A2C ||In front of PSL's airconditioner || 19 ||

=== Center Booth ===
||Name ||Serial # ||Location || koki # ||
||pr booth ||52C6199F || PR booth || 15 ||
||mcf booth || 52C619A0|| mcf booth || 16 ||
||bs booth || 52C61A27|| bs booth || 17 ||
||pslbooth ||52C61A29 ||PSL clean area || 18 ||
||PR2booth ||52C61A20 || || ||
||PR3booth ||52C61A18 || || ||
||SR2booth ||52C61A1F || || ||
||IXAbooth ||52C61A21 || || ||
||IYAbooth ||52C614C9 || || ||




=== X end ===
||Name ||Serial # ||Location ||
||ex1 || ||Xend, DGS rack ||
||exc1f ||52C6199E ||X end, EXC clean booth 1F ||
||exc2f ||52C614D9 ||X end, EXC clean booth 2F ||
||exa ||52C61A03 ||X end, EXA. ||
||old exa || ||Sealed in the EXA metal rack and not accessible. Not used or not registered to the base station ||

=== X Mid (500m) ===
||Name ||Serial # ||Location ||
||px1 ||52C61A00 ||Special DGS rack (not online yet) ||
||field_px ||52C61A22 ||In Field (not online yet)||

=== Y end ===
||Name ||Serial # ||Location || Koki # ||
|| ey1 || 52C614D8 || EY0 rack || 1 ||
|| eyc1f || 52C614DC || Yend clean booth 1F|| 2 ||
|| eyc2f || 52C61A1E || Yend clean booth 2F|| 3 ||
|| eya || 52C61A01 || iKAGRA EYA booth || 4 ||

=== Y end 2F ===
||Name ||Serial # ||Location ||
|| eyv1 || 52C61A2B || EY1 (2F) rack ||
|| eyv2 || 52C61A17 || EY2 (2F) rack ||
|| eyvbooth || 52C61A02 || EY 2F clean booth ||


=== Mozumi ===
||Name ||Serial # ||Location ||
||SVR ||52C61229 ||Mozumi server room rear ||

=== Outside ===
||Name ||Serial # ||Location || koki # ||
||fanhut ||52C61A04 ||ファン小屋 || 14 ||


== 在庫リスト ==
||Name ||Number of stock ||
||親機 ||1 ||
||中継機 ||5 ||
||中継機電源 ||10 ||
||バッテリ付き子機 ||22 ||
||probeのみ ||7 ||
||バッテリ || 40ぐらい ||

=== Y end ===
||Name ||Serial # ||Location || Koki # ||
|| old exc || 52C614Da || Back in Storage || N/A ||

== REM (Rack Environmental Monitor) スクリプトの起動・設定方法 ==
=== ・REMプログラムを起動する前に下記の確認が必要 ===
==== 1.REMのEPICSを起動していること ====
確認方法

 . {{{
 ps -ef | grep ./st.cmd
}}}

===== 起動していなければ下記の手順で起動する =====
EPICS ioc を走らせるマシンへログイン

 . {{{
 ssh k1script
}}}

ioc をスタートさせる

 . {{{
 sudo supervisorctl start rem_ioc
}}}

==== 2.温度計がFTPサーバにXMLファイルを転送していること ====
===== FTPサーバのXMLファイルは下記の手順で確認する =====
 . {{{
 ftp 10.68.10.10
}}}

 . {{{
 cd /kagra/rem/data/$(location)
}}}
 . {{{
 ls
}}}

.xmlファイルが存在すればOK

=== ・REMプログラムの起動方法 ===
 . {{{
sudo supervisorctl start $(location)
}}}

=== ・REMプログラムの大まかな流れ ===
 . {{{
1.温度計の親機がk1nfsの/kagra/rem/data/$(location)にデータをFTP転送する。
2.ディレクトリに存在するXMLファイルを解析する。
---
XMLファイルは<num>で括られた数字が子機番号となっている。(一番最初のnumはグループ番号となっているため注意)
<value>で括られている数字は温度と湿度となっている。
---
3.$(location)_db.shに値を渡して実行することで各チャンネル名にcaputしている。
4.上記の動作を1分間隔で繰り返す
}}}

=== ・親機を追加した場合 ===
==== 1.温度計プログラムを修正してビルドする ====
 . {{{
cd /kagra/rem/data/src/
}}}
 . {{{
cp rem_Yend1f.c rem_$(Location).c
 }}}
 . {{{
vim rem_$(Location).c
 }}}

==== 2.ディレクトリの場所の指定をする ====
===== 下記の内容を編集する =====
 . {{{
#define xml_dir "/kagra/rem/data/Yend1f/"
#define archive_dir "/kagra/rem/archive/Yend1f/"
#define exe_command "bash /kagra/rem/data/bin/rem_Yend1f_db.sh"

===== 下記のように編集する =====
#define xml_dir "/kagra/rem/data/$(Location)/"
#define archive_dir "/kagra/rem/archive/$(Location)/"
#define exe_command "bash /kagra/rem/data/bin/rem_$(Location)_db.sh"
}}}

==== 3.ビルドする ====
なんかエラー出るが無視する
 . {{{
gcc rem_$(Location).c -o rem_$(Location)
 }}}
 . {{{
cp rem_$(Location) ../bin/
 }}}

==== 4.親機からデータを受け取るためのディレクトリを作成する ====
 . {{{
mkdir /kagra/rem/data/$(Location)/
 }}}
 . {{{
chmod 777 /kagra/rem/dara/$(Location)/
 }}}

==== 5.supervisorの設定をする ====
 . {{{
cd /etc/supervisor/
 }}}
 . {{{
sudo vim supervisord.conf
 }}}

===== 下記の内容を追加する =====
 . {{{
[program:rem_$(Location)]
user=controls
environment=PATH="/bin/:/usr/bin:/kagra/apps/epics/base/bin/linux-x86_64"
command=/kagra/rem/data/bin/rem_$(Location)
autorestart=true
autostart=true
redirect_stderr=true
stdout_logfile=/kagra/rem/log/rem_$(Location).log
}}}

==== 6.supervisorを再起動する ====
 . {{{ sudo supervisorctl reload }}}


=== ・子機を追加した場合 ===
==== 1.EPICSにチャンネルを追加する ====
 . {{{
Line 39: Line 232:
}}}
 {{{
Line 40: Line 235:

下記の内容を追加する
}}}

===== 下記の内容を追加する =====
 . {{{
Line 43: Line 240:
grecode(ai,”K1:RACK-子機名_T”) grecode(ai,”K1:PEM-TEMPERATURE_FIELD_子機名”)
Line 47: Line 244:
grecode(ai,”K1:RACK-子機名_H”) grecode(ai,”K1:PEM-HUMIDITY_FIELD_子機名”)
Line 52: Line 249:

2.スクリプトファイルを編集する
cd /tmp/
vim rem.sh

下記の内容を追加する
———————————————————rem.sh———
省略
caput K1:RACK-MC_H ${arr[3]}
###連番になるように追加###
caput K1:RACK-子機名_T ${arr[4]}
caput K1:RACK-子機名_H ${arr[5]}
省略
}}}

==== 2.DAQにチャンネルを追加 ====
 . {{{
chans
cd daq
gedit K1EDCU_REM.ini
}}}

example_rack.db に追加したチャンネル名を書き足す

 . {{{
[K1:PEM-TEMPERATURE_$(name)]
[K1:PEM-HUMIDITY_$(name)]
}}}

k1dc0のdaqdのリスタート /!\ データを使っている人がいないか確認してから /!\

 . {{{
ssh k1dc0
ps -ef | grep daqd
kill $(daqd ###)
}}}

==== 3.スクリプトファイルを編集する ====
 . {{{
cd /kagra/rem/data/bin/
}}}
 {{{
vim(or emacs) rem_center_db.sh
}}}

===== 下記の内容を追加する =====
 . {{{
———————————————————rem_center_db.shの編集の仕方———
下記の部分をコピーして貼り付ける。
ここでいう13は子機番号なので、EPICSのチャンネル名と共に適宜変更すること。
elif [ $1 -eq 13 ] && [ $rtn -eq 0 ]; then
caput K1:PEM-TEMPERATURE_FIELD_CRYDR2 $2
caput K1:PEM-HUMIDITY_FIELD_CRYDR2 $3
Line 66: Line 290:




}}}

=== ・EPICSに使用する.adlファイルの場所 ===
 . {{{
/opt/rtcds/userapps/release/rem/common/medm/K1REM_PLOT.adl
}}}

===== 下記のコマンドを実行してmedmを編集 =====
 . {{{
medm &
}}}

メモ

{{{
 cd /opt/rtcds/userapps/release/rem/common/scripts/
}}}

=== ・設定の半自動化スクリプト ===
「親機を追加した場合」から「子機を追加した場合」までをワンライナーで行えるようにした
(daqdのリスタートのみ、自動化から除外している)
==== 使い方 ====
{{{
/kagra/rem/data/src/Admin_rem.sh Zend1F RACK_EZ0 1
}}}


==== 補足 ====
1. 第一引数は$Location(監視ディレクトリ)に相当<<BR>>
上記例では /kagra/rem/data/Zend1F が監視ディレクトリに追加される<<BR>>
既に監視ディレクトリになっている場合何もしないので、子機設定(チャンネル名追加)のみ行いたい場合も上記コマンドOK

2. 第二引数は子機名(チャンネル名の末尾)<<BR>>
上記例では K1:PEM-TEMPERATURE_RACK_EZ0 と K1:PEM-HUMIDITY_RACK_EZ0 が追加される<<BR>>
(既に登録されているチャンネル名を指定すると何もせずエラー終了)

3. 第三引数は子機番号<<BR>>
上記例では子機番号1<<BR>>
(既に登録されている子機番号を指定すると何もせずにエラー終了)

4. 第一引数だけを与えると親機の設定までを行って終了する
{{{
/kagra/rem/data/src/Admin_rem.sh Zend1F
}}}

5. おそらくちゃんと動く


== おんどとり設定メモ ==
https://goo.gl/photos/bHgQJfxKcKDVpzuD9

Rack Environmental Monitor

親機リスト Base station list

Name

Serial #

IP address

Location

Connected to

Center

52A0101E

10.68.140.1

Center digital room in Mine

Relay1, dr, outdr

X end

52A0112B

192.168.10.4 192.168.10.2 (local)
10.68.10.209

X end station, on a AED rack

1F EXC, 2F EXC, Racks

Y end

52A0107C

192.168.10.5 (local)
10.68.10.229

Top of EY1 rack

1F EYC, 2F EYC, Racks

Mozumi Station

52A002A0

10.68.11.10

Control Room

SVR

Yend 2F

52A01115

192.168.11.16 (local)
10.68.10.230

Y end 2F area (EYV)

X500m (PX)

52A01117

10.68.140.2

GIF Area

中継器リスト Relay station list

Name

Connected to

Serial #

Location

Relay1

Relay2, center

529A13E8

Location

Relay2

Relay3, imc, ioo, mcrack, pr2, prm, psl

529A1401

Location

Relay3

ixa

529A1853

By IXA clean booth / Cryomachine room door

Relay4

crydr

529A1855

Location

Relay5

iya

529A186A

Location

子機リスト Data logger list

Center Racks

Name

Serial #

Location

koki #

mc rack

52C61128

MC Rack

1

ioo

52C610D7

IOO Rack

6

pr2

52C61227

PR2 Rack

7

prm

52C61226

PRM Rack

8

ixa

52C61506

Around IXA duct

10

iya

52C61505

Around IYA duct

11

Center Fields

Name

Serial #

Location

koki #

out dr

52C61234

Outside of the mine digital room

2

dr

52C61234

Inside of the mine digital room

3

center

52C61128

On the wall close to the BS booth

4

imc

52C610DB

On the big white shelf close to the IMC and PSL

5

crydr

52C6122A

低温機械室 tent1

12

crydr2

52C6122E

低温機械室 tent2

13

psl

52C61518

Entrance of the PSL enclosure

9

psl2

52C61A2C

In front of PSL's airconditioner

19

Center Booth

Name

Serial #

Location

koki #

pr booth

52C6199F

PR booth

 15

mcf booth

52C619A0

mcf booth

 16

bs booth

52C61A27

bs booth

 17

pslbooth

52C61A29

PSL clean area

18

PR2booth

52C61A20

PR3booth

52C61A18

SR2booth

52C61A1F

IXAbooth

52C61A21

IYAbooth

52C614C9

X end

Name

Serial #

Location

ex1

Xend, DGS rack

exc1f

52C6199E

X end, EXC clean booth 1F

exc2f

52C614D9

X end, EXC clean booth 2F

exa

52C61A03

X end, EXA.

old exa

Sealed in the EXA metal rack and not accessible. Not used or not registered to the base station

X Mid (500m)

Name

Serial #

Location

px1

52C61A00

Special DGS rack (not online yet)

field_px

52C61A22

In Field (not online yet)

Y end

Name

Serial #

Location

Koki #

ey1

52C614D8

EY0 rack

1

eyc1f

52C614DC

Yend clean booth 1F

2

eyc2f

52C61A1E

Yend clean booth 2F

3

eya

52C61A01

iKAGRA EYA booth

4

Y end 2F

Name

Serial #

Location

eyv1

52C61A2B

EY1 (2F) rack

eyv2

52C61A17

EY2 (2F) rack

eyvbooth

52C61A02

EY 2F clean booth

Mozumi

Name

Serial #

Location

SVR

52C61229

Mozumi server room rear

Outside

Name

Serial #

Location

koki #

fanhut

52C61A04

ファン小屋

14

在庫リスト

Name

Number of stock

親機

1

中継機

5

中継機電源

10

バッテリ付き子機

22

probeのみ

7

バッテリ

40ぐらい

Y end

Name

Serial #

Location

Koki #

old exc

52C614Da

Back in Storage

N/A

REM (Rack Environmental Monitor) スクリプトの起動・設定方法

・REMプログラムを起動する前に下記の確認が必要

1.REMのEPICSを起動していること

確認方法

  •  ps -ef | grep ./st.cmd

起動していなければ下記の手順で起動する

EPICS ioc を走らせるマシンへログイン

  •  ssh k1script

ioc をスタートさせる

  •  sudo supervisorctl start rem_ioc

2.温度計がFTPサーバにXMLファイルを転送していること

FTPサーバのXMLファイルは下記の手順で確認する
  •  ftp 10.68.10.10
  •  cd /kagra/rem/data/$(location)
  •  ls

.xmlファイルが存在すればOK

・REMプログラムの起動方法

  • sudo supervisorctl start $(location)

・REMプログラムの大まかな流れ

  • 1.温度計の親機がk1nfsの/kagra/rem/data/$(location)にデータをFTP転送する。
    2.ディレクトリに存在するXMLファイルを解析する。
    ---
    XMLファイルは<num>で括られた数字が子機番号となっている。(一番最初のnumはグループ番号となっているため注意)
    <value>で括られている数字は温度と湿度となっている。
    ---
    3.$(location)_db.shに値を渡して実行することで各チャンネル名にcaputしている。
    4.上記の動作を1分間隔で繰り返す

・親機を追加した場合

1.温度計プログラムを修正してビルドする

  • cd /kagra/rem/data/src/
  • cp rem_Yend1f.c rem_$(Location).c
  • vim rem_$(Location).c

2.ディレクトリの場所の指定をする

下記の内容を編集する
  • #define xml_dir "/kagra/rem/data/Yend1f/"
    #define archive_dir "/kagra/rem/archive/Yend1f/"
    #define exe_command "bash /kagra/rem/data/bin/rem_Yend1f_db.sh"
    
    ===== 下記のように編集する =====
    #define xml_dir "/kagra/rem/data/$(Location)/"
    #define archive_dir "/kagra/rem/archive/$(Location)/"
    #define exe_command "bash /kagra/rem/data/bin/rem_$(Location)_db.sh"

3.ビルドする

なんかエラー出るが無視する

  • gcc rem_$(Location).c -o rem_$(Location)
  • cp rem_$(Location) ../bin/

4.親機からデータを受け取るためのディレクトリを作成する

  • mkdir /kagra/rem/data/$(Location)/
  • chmod 777 /kagra/rem/dara/$(Location)/

5.supervisorの設定をする

  • cd /etc/supervisor/
  • sudo vim supervisord.conf

下記の内容を追加する
  • [program:rem_$(Location)]
    user=controls
    environment=PATH="/bin/:/usr/bin:/kagra/apps/epics/base/bin/linux-x86_64"
    command=/kagra/rem/data/bin/rem_$(Location)
    autorestart=true
    autostart=true
    redirect_stderr=true
    stdout_logfile=/kagra/rem/log/rem_$(Location).log

6.supervisorを再起動する

  •  sudo supervisorctl reload 

・子機を追加した場合

1.EPICSにチャンネルを追加する

  • cd /opt/rtcds/kamioka/k1/target/k1rack/db/
    vim(or emacs) example_rack.db

下記の内容を追加する
  • ——————————example_rack.db———
    grecode(ai,”K1:PEM-TEMPERATURE_FIELD_子機名”)
    {
    省略
    }
    grecode(ai,”K1:PEM-HUMIDITY_FIELD_子機名”)
    {
    省略
    }
    ————————————————————————————

2.DAQにチャンネルを追加

  • chans
    cd daq
    gedit K1EDCU_REM.ini

example_rack.db に追加したチャンネル名を書き足す

  • [K1:PEM-TEMPERATURE_$(name)]
    [K1:PEM-HUMIDITY_$(name)]

k1dc0のdaqdのリスタート /!\ データを使っている人がいないか確認してから /!\

  • ssh k1dc0
    ps -ef | grep daqd
    kill $(daqd ###)

3.スクリプトファイルを編集する

  • cd /kagra/rem/data/bin/
    vim(or emacs) rem_center_db.sh

下記の内容を追加する
  • ———————————————————rem_center_db.shの編集の仕方———
    下記の部分をコピーして貼り付ける。
    ここでいう13は子機番号なので、EPICSのチャンネル名と共に適宜変更すること。
    elif [ $1 -eq 13 ] && [ $rtn -eq 0 ]; then
    caput K1:PEM-TEMPERATURE_FIELD_CRYDR2 $2
    caput K1:PEM-HUMIDITY_FIELD_CRYDR2 $3
    ————————————————————————————

・EPICSに使用する.adlファイルの場所

  • /opt/rtcds/userapps/release/rem/common/medm/K1REM_PLOT.adl

下記のコマンドを実行してmedmを編集
  • medm &

メモ

 cd /opt/rtcds/userapps/release/rem/common/scripts/

・設定の半自動化スクリプト

「親機を追加した場合」から「子機を追加した場合」までをワンライナーで行えるようにした (daqdのリスタートのみ、自動化から除外している)

使い方

/kagra/rem/data/src/Admin_rem.sh Zend1F RACK_EZ0 1

補足

1. 第一引数は$Location(監視ディレクトリ)に相当
上記例では /kagra/rem/data/Zend1F が監視ディレクトリに追加される
既に監視ディレクトリになっている場合何もしないので、子機設定(チャンネル名追加)のみ行いたい場合も上記コマンドOK

2. 第二引数は子機名(チャンネル名の末尾)
上記例では K1:PEM-TEMPERATURE_RACK_EZ0 と K1:PEM-HUMIDITY_RACK_EZ0 が追加される
(既に登録されているチャンネル名を指定すると何もせずエラー終了)

3. 第三引数は子機番号
上記例では子機番号1
(既に登録されている子機番号を指定すると何もせずにエラー終了)

4. 第一引数だけを与えると親機の設定までを行って終了する

/kagra/rem/data/src/Admin_rem.sh Zend1F

5. おそらくちゃんと動く

おんどとり設定メモ

https://goo.gl/photos/bHgQJfxKcKDVpzuD9

KAGRA/Subgroups/DGS/Projects/Rem (last edited 2023-02-17 19:13:21 by KeikoKokeyama)