Differences between revisions 1 and 101 (spanning 100 versions)
Revision 1 as of 2015-10-09 11:10:11
Size: 2301
Comment:
Revision 101 as of 2017-05-22 14:32:14
Size: 9933
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 (local) ||X end station, on a AED rack ||1F EXC, 2F EXC, Racks ||
||Y end || || 192.168.10.5 (local)|| EY1 rack at Yend station || 1F EYC, 2F EYC, Racks ||
||Mozumi Station ||52A002A0 ||10.68.11.10 ||Control Room ||SVR ||
||Yend 2F || 52A01115|| 192.168.11.16|| Y end 2F area (EYV) || ||
||X500m (PX) || ? || 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 || 子機# ||
||mc rack ||52C61128 ||MC Rack ||1 ||
||ioo ||52C610D7 ||IOO Rack ||6 ||
||pr2 ||52C61227 ||PR2 Rack ||7 ||
||prm ||52C61226 ||PRM Rack ||8 ||
||psl ||52C61518 ||Entrance of the PSL enclosure ||9 ||
||ixa ||52C61506 ||Around IXA duct ||10 ||
||iya ||52C61505 ||Around IYA duct ||11 ||


=== Center Fields ===
||Name ||Serial # ||Location || 子機# ||
||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 ||

=== Center Booth ===
||Name ||Serial # ||Location || 子機 ||
||pr booth ||52C6199F || PR booth || 15 ||
||mcf booth || 52C619A0|| mcf booth || 16 ||
||bs booth || 52C61A27|| bs booth || 17 ||


=== 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 || 子機 ||
||fanhut ||52C61A04 ||ファン小屋 || 14 ||


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

=== Y end ===
||Name ||Serial # ||Location || Kolo# ||
|| 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 223:
}}}
 {{{
Line 40: Line 226:

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

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

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 281:




}}}

=== ・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 (local)

X end station, on a AED rack

1F EXC, 2F EXC, Racks

Y end

192.168.10.5 (local)

EY1 rack at Yend station

1F EYC, 2F EYC, Racks

Mozumi Station

52A002A0

10.68.11.10

Control Room

SVR

Yend 2F

52A01115

192.168.11.16

Y end 2F area (EYV)

X500m (PX)

?

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

子機#

mc rack

52C61128

MC Rack

1

ioo

52C610D7

IOO Rack

6

pr2

52C61227

PR2 Rack

7

prm

52C61226

PRM Rack

8

psl

52C61518

Entrance of the PSL enclosure

9

ixa

52C61506

Around IXA duct

10

iya

52C61505

Around IYA duct

11

Center Fields

Name

Serial #

Location

子機#

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

Center Booth

Name

Serial #

Location

 子機

pr booth

52C6199F

PR booth

 15

mcf booth

52C619A0

mcf booth

 16

bs booth

52C61A27

bs booth

 17

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

 子機

fanhut

52C61A04

ファン小屋

14

在庫リスト

Name

Number of stock

親機

1

中継機

5

中継機電源

10

バッテリ付き子機

29

probeのみ

7

バッテリ

21

Y end

Name

Serial #

Location

Kolo#

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)