Contents
Overview
This system is to control the stepper motor of GAS and IP in VIS suspension using the KAGRA DGS network.
If you control with serial in local place, please see the manual written by Sekiguch JGW-T1402512.
- In this system, anyone control stepper motor with medm screen via EPICS channels managed by PCAS (Potable Channel Access Server).
- 2017/10/13 : medm screen is not yet.
Motor Specifications
Environment
- Controller: TMCM-6110
- Motor: AML D42.2
Motor drive method and motor Rotation
- FULL step: 200steps / Rotation
- Micro step(x256): 51200steps / Rotation
stallGuard2
How to use
About the control script
コマンド送信はPythonのソケット通信ライブラリを使って実装、ライブラリ化した。
- モータドライバ側はBinaryでコマンドを受け付けるので注意が必要。設定すればASCIIでも可。
- バイナリコマンドを直接socketで送りつけるPythonコードがあったので、それを使う。
- それ改変して、最小限動かすのに必要な関数を集めたPythonクラス ’KAGRA_stepper’ を用意した。
- 実際のモータを動かすための設定ファイルを用意した。(モータの配線、IPの自由度へのマトリックス)
Quick Start
Run the PCAS to activate the EPICS channels for stepper motor control.
- PCAサーバは、各EPICSチャンネルの値の変更に応じて指定のコマンドを送るためのもの
- なので起動しないと、ボタンを押してもコマンドが送れずモータが動作しない。
- 起動をするには、MEDM画面からボタンを押すだけ(の予定)
After activate, control the stepper motor using the medm screen
まだスクリーンをつくっていない
- 速度を設定する。デフォルトで500
- 加速度を設定する。デフォルトで500
- 動かす。FWDで正転、REVで反転
Setup
See Stepper motor driver installation
Nport5150
Serial setting
Network setting
- IPaddress : 10.68.150.xx (Please change the IP address according to where you want to use it.)
- Netmask : 255.255.0.0
- Gateway : 10.68.10.1
- IP Configuration : Static
Operation Mode setting
- choose ’TCP Server Mode’
- port : 4001
TMCM6110
Do not use in ASCII mode. Use binary mode.
Control Script (No need)
ドライバーに接続されているモータの名前をparam.pyに書き下す。
- param.py はモータ名とドライバに接続するポート番号を定義するためのファイル。
- 原則的に一台目をGAS,二代目をIPにつかう。
- しかし,TypeBではランダムで配線しているので,かならずparam.pyを書き換える。
IPだけ,どのモータがIPの自由度にたいしてつながっているかparam.pyに書き下す
- 同時に動かすべきモータの組み合わせをparam.py内にある行列に書き換える。
How to actuate (On 18/02/26)
Actuate fishing rods from medm screen (On 18/06/04)
Initial activate
$ ssh k1script1 $ step_start SERVER_NAME
SERVER_NAME is the EPICS channel name after K1:STEPPER_. (i.e., PR2_GAS) If the lines
Stepper has been migrated from k1script (Python2) to k1script1 (Python3).
Reconnecting... Testing connection: ...ok
appears in the command line, it is ok. otherwise, check server configuration.
When the work is finished, step_start is exited. After 2020/10/26, you can add "-kill" to the command argument to terminate it.
$ step_start SERVER_NAME -kill
How to use
- Press "UPDATE" to check the current position of the motor. Note that the number is initialized when you turn the driver off.
Set RELATIVE steps to actuate in "STEP" box. (i,e, it does driver.setTargetPosition(POSITION+STEP,motorAddress))
Press ENTER one or more times until the desired position is reached.
- Press "STOP" for emergency stop.
(ref: klog4161)
How to actuate IP stepping motors from medm screen (On 18/02/28)
Initial Activate
$ ssh k1script1 $ step_start SERVER_NAME
SERVER_NAME is the EPICS channel name after K1:STEPPER_. (i.e., BS_IP) If the lines
Stepper has been migrated from k1script (Python2) to k1script1 (Python3).
Reconnecting... Testing connection: ...ok
appears in the command line, it is ok. otherwise, check server configuration.
When the work is finished, step_start is exited. After 2020/10/26, you can add "-kill" to the command argument to terminate it.
$ step_start SERVER_NAME -kill
Configuration
There are two types of alignment of the IP stepping motors, which we call Type-SR (left), Type-BS (center), and Type-TM (right).
SRs have Type-SR, while BS has Type-BS. Type-A towers have Type-TM.
The connection assign is loaded from conf.py in the script file, including the sign of the motor actuation. Refer the table below for the connection assignment as well.
How to check the log
The log files remain in /kagra/Dropbox/Subsystems/VIS/Scripts/StepMotor/LogFiles/ Check the log files with each prefix.
How to actuate from the command line (On 17/10/5)
確認のしかた
- Go to the directory: /kagra/Dropbox/Subsystems/VIS/TypeBp/Scripts/steppingmotor/
- start ipython
- in ipython, type the command as follows.
from Trinamic_control6110 import * driver = Trinamic_control6110() driver.connectTCP('your ip address', 4001) driver.reconnect()
and if it says '...ok', the motors are replying. If error occurs, try to restart the motor drivers as well as Nport. Just turn off and on the power.
- In order to check the current position,
driver.getTargetPosition(motor_number)
- In order to move it,
driver.setTargetPosition(step,motor_number)
Insert the absolute step in to the 'step', and insert the motor number into 'motor_number.'
Also, there is a convenient script which Miyamoto-san wrote. The script moves all the three stepping motors at once for the type A IPs so that one can request the motion in (L, T, Y) basis.
import controlInvertedPendulum as myip miyamoto = myip.controlIP() miyamoto.connectTCP('your ip address', 4001) miyamoto.reconnect()
- In order to move it,
miyamoto.move_LONG(step)
Caution that the step value in the move_(LONG|YAW|TRANS) command corresponds to the relative move from the current position.
Driver List
EPICS channel name |
Driver IP Address |
Installation |
klog |
JGW-S |
Memo |
Motor assign |
Sign of the script (when positive value) |
K1:STEPPER_PR2_GAS |
10.68.160.40 |
◯ |
- |
- |
0:BF, 2: SF |
Supposed to rotate right |
|
K1:STEPPER_PR0_GAS |
10.68.160.41 |
◯ |
- |
- |
0:BF, 1: SF |
Supposed to rotate right |
|
K1:STEPPER_PR0_GAS |
10.68.160.41 |
◯ |
- |
- |
2:BF, 3: SF |
Supposed to rotate right |
|
K1:STEPPER_ITMX_GAS |
10.68.160.43 |
◯ |
- |
0:F0, 1:F1, 2:F2, 3:F3, 4:BF, 5:- (2021/04/07) |
Supposed to rotate right |
||
K1:STEPPER_ITMX_IP |
10.68.160.44 |
◯ |
- |
- |
Supposed to rotate right |
||
K1:STEPPER_ETMX_GAS |
10.68.160.45 |
◯ |
- |
See ETMX status(IP A:1, B:2, C:3, YAW:0) |
Supposed to rotate right |
||
K1:STEPPER_ETMX_IP |
10.68.160.46 |
◯ |
- |
Supposed to rotate right |
|||
K1:STEPPER_ITMY_GAS |
10.68.160.47 |
◯ |
- |
- |
Supposed to rotate right |
||
K1:STEPPER_ITMY_IP |
10.68.160.48 |
- |
- |
- |
- |
Supposed to rotate right |
|
K1:STEPPER_ETMY_GAS |
10.68.160.49 |
◯ |
- |
See ETMY status(IP A:1, B:2, C:3, YAW:0) |
Supposed to rotate right |
||
K1:STEPPER_ETMY_IP |
10.68.160.50 |
◯ |
- |
Supposed to rotate right |
|||
K1:STEPPER_BS_GAS |
◯ |
BS second floor |
0: BF, 1: F1, 2: not used, 3: F0 |
Supposed to rotate right |
|||
K1:STEPPER_BS_IP |
◯ |
BS second floor |
0:A, 1:B, 2:C, 3:YAW |
Supposed to rotate right |
|||
K1:STEPPER_SR2_GAS |
◯ |
- |
SR2 small rack second floor |
0: BF, 1: F1, 2: F0 |
Supposed to rotate right(Plans to change the value of 15272in the future) |
||
K1:STEPPER_SR2_IP |
◯ |
- |
SR2 small rack second floor |
0:A, 1:B, 2:C, 3:YAW |
Supposed to rotate right(Plans to change the value of 15272in the future) |
||
K1:STEPPER_SR3_GAS |
◯ |
- |
SR3 second floor |
0: BF, 1: F1, 2:not used, 3: F0 (2020/11/26change from 2 to 3:Klog#15541) |
Supposed to rotate right(Plans to change the value of 15272in the future) |
||
K1:STEPPER_SR3_IP |
◯ |
- |
SR3 second floor |
0:A, 1:B, 2:C, 3:YAW |
Supposed to rotate right(Plans to change the value of 15272in the future) |
||
K1:STEPPER_SRM_GAS |
◯ |
- |
SRM small rack second floor |
0: BF, 1: F1, 2: F0, 4: Doesn't work(15685) |
Supposed to rotate right(Plans to change the value of 15272in the future) |
||
K1:STEPPER_SRM_IP |
◯ |
- |
SRM small rack second floor |
0:A, 1:B, 2:C, 3,4: not used(Broken), 5:YAW (2020/11/25 change from 4 to 5) |
Supposed to rotate right(Plans to change the value of 15272in the future) |
||
K1:PHY_ETMY |
10.68.150.59 |
- |
- |
ETMY for cryo-p |
Ch.1:Pitch(HR), Ch.2:Roll, Ch.3:Pitch(AR) |
|
|
K1:PHY_ETMX |
10.68.150.60 |
- |
- |
ETMX for cryo-p |
Ch.1:Pitch(HR), Ch.2:Roll, Ch.3:Pitch(AR) |
|
|
K1:PHY_ITMY |
10.68.150.61 |
- |
- |
ITMY for cryo-p |
Ch.1:Pitch(HR), Ch.2:Roll, Ch.3:Pitch(AR) |
|
|
K1:PHY_ITMX |
10.68.150.62 |
- |
- |
ITMX for cryo-p |
Ch.1:Pitch(HR), Ch.2:Roll, Ch.3:Pitch(AR) |
|
|
- |
- |
- |
- |
water damaged; klog 7190 |
- |
|
|
K1:STEPPER_TEST |
10.68.150.63 |
- |
- |
- |
STANDALONE |
- |
- |
K1:STEPPER_TEST2 |
10.68.150.64 |
- |
- |
- |
STANDALONE2 |
- |
- |
Limit Switch Install Status (2021/02/19)
EPICS channel name |
DOF |
Limit Switch Install |
Limit Switch Enable/Disable |
Memo |
K1:STEPPER_PR2_GAS |
SF |
None |
|
|
BF |
None |
|
|
|
K1:STEPPER_PR0_GAS(PRM) |
SF |
None |
|
|
BF |
None |
|
|
|
K1:STEPPER_PR0_GAS(PR3) |
SF |
None |
|
|
BF |
None |
|
|
|
K1:STEPPER_ITMX_GAS |
F0 |
None(Plans to install) |
Disable(Plans to Enable) |
|
F1 |
None |
|
|
|
F2 |
None |
|
|
|
F3 |
None |
|
|
|
BF |
None |
|
|
|
K1:STEPPER_ITMX_IP |
IP H1(A) |
Installed & Not Check(Plans to check) |
Disable(Plans to Enable) |
|
IP H2(B) |
Installed & Not Check(Plans to check) |
Disable(Plans to Enable) |
|
|
IP H3(C) |
Installed & Not Check(Plans to check) |
Disable(Plans to Enable) |
|
|
F0 YAW |
None(Plans to install) |
Disable(Plans to Enable) |
|
|
K1:STEPPER_ETMX_GAS |
F0 |
None(Plans to install) |
Disable(Plans to Enable) |
|
F1 |
None |
|
|
|
F2 |
None |
|
|
|
F3 |
None |
|
|
|
BF |
None |
|
|
|
K1:STEPPER_ETMX_IP |
IP H1(A) |
Installed & Not Check(Plans to check) |
Disable(Plans to Enable) |
|
IP H2(B) |
Installed & Not Check(Plans to check) |
Disable(Plans to Enable) |
|
|
IP H3(C) |
Installed & Not Check(Plans to check) |
Disable(Plans to Enable) |
|
|
F0 YAW |
None(Plans to install) |
Disable(Plans to Enable) |
|
|
K1:STEPPER_ITMY_GAS |
F0 |
None(Plans to install) |
Disable(Plans to Enable) |
|
F1 |
None |
|
|
|
F2 |
None |
|
|
|
F3 |
None |
|
|
|
BF |
None |
|
|
|
K1:STEPPER_ITMY_IP |
IP H1(A) |
Installed & Not Check(Plans to check) |
Disable(Plans to Enable) |
|
IP H2(B) |
Installed & Not Check(Plans to check) |
Disable(Plans to Enable) |
|
|
IP H3(C) |
Installed & Not Check(Plans to check) |
Disable(Plans to Enable) |
|
|
F0 YAW |
None(Plans to install) |
Disable(Plans to Enable) |
|
|
K1:STEPPER_ETMY_GAS |
F0 |
None(Plans to install) |
Disable(Plans to Enable) |
|
F1 |
None |
|
|
|
F2 |
None |
|
|
|
F3 |
None |
|
|
|
BF |
None |
|
|
|
K1:STEPPER_ETMY_IP |
IP H1(A) |
Installed & Not Check(Plans to check) |
Disable(Plans to Enable) |
|
IP H2(B) |
Installed & Not Check(Plans to check) |
Disable(Plans to Enable) |
|
|
IP H3(C) |
Installed & Not Check(Plans to check) |
Disable(Plans to Enable) |
|
|
F0 YAW |
None(Plans to install) |
Disable(Plans to Enable) |
|
|
K1:STEPPER_BS_GAS |
F0 |
Installed & Check OK |
Enable |
|
F1 |
None |
|
|
|
BF |
None |
|
|
|
K1:STEPPER_BS_IP |
IP H1(A) |
Installed & Check OK |
Enable |
|
IP H2(B) |
Installed & Check OK |
Enable |
||
IP H3(C) |
Installed & Check OK |
Enable |
||
F0 YAW |
Installed & Check OK |
Enable |
||
K1:STEPPER_SR2_GAS |
F0 |
None(Plans to install) |
Enable |
|
F1 |
None |
|
|
|
BF |
None |
|
|
|
K1:STEPPER_SR2_IP |
IP H1(A) |
-Yaw(Left): Bad, +Yaw(Right):OK |
Disable(H1,H2 Broken) |
|
IP H2(B) |
Both(L,R) OK, Install Spring useless? |
Disable(H1,H2 Broken) |
||
IP H3(C) |
Both(L,R) OK, Install Spring useless? |
Disable(H1,H2 Broken) |
||
F0 YAW |
None(Plans to install) |
Enable |
||
K1:STEPPER_SR3_GAS |
F0 |
Installed & Check OK |
Enable |
|
F1 |
None |
|
|
|
BF |
None |
|
|
|
K1:STEPPER_SR3_IP |
IP H1(A) |
-Yaw(Left) Bad +Yaw(Right):OK |
Disable(H1 Broken) |
|
IP H2(B) |
Both(L,R) OK Installed Spring useless? |
Disable(H1 Broken) |
||
IP H3(C) |
Both(L,R) OK Installed Spring useless? |
Disable(H1 Broken) |
||
F0 YAW |
None(Plans to install) |
Enable |
||
K1:STEPPER_SRM_GAS |
F0 |
Installed? Change the polarity? |
Disable(Plans to Enable) |
|
F1 |
None |
|
|
|
BF |
None |
|
|
|
K1:STEPPER_SRM_IP |
IP H1(A) |
-YAW(Left):didn't come back. Installed Spring useless |
Disable(Plans to Enable) |
|
IP H2(B) |
Installed Spring useless |
Disable(Plans to Enable) |
||
IP H3(C) |
Installed Spring useless |
Disable(Plans to Enable) |
||
F0 YAW |
Installed & Check OK |
Disable(Plans to Enable) |
Stepper Screw pitch(2021/01/15)
optic |
DOF |
Screw pitch |
1step辺りの駆動量[um/step] |
PRM,PR3,PR2_GAS |
SF/BF |
M6(1.0mm) |
0.01953125 |
ITMX,ETMX,ITMY,ETMY_GAS |
F0/F1/F2/F3/BF |
M6(1.0mm) |
0.01953125 |
ITMX,ETMX,ITMY,ETMY_IP |
IP H1/H2/H3 |
M6(1.0mm) |
0.01953125 |
F0YAW |
M5(0.8mm) |
0.015625 |
|
BS_GAS |
F0/F1/BF |
M6(1.0mm) |
0.01953125 |
BS_IP |
IP H1/H2/H3 |
M5(0.8mm) |
0.015625 |
F0YAW |
M5(0.8mm) |
0.015625 |
|
SRM,SR2,SR3_GAS |
F0/F1/BF |
M6(1.0mm) |
0.01953125 |
SRM,SR2,SR3_IP |
IP H1/H2/H3 |
M6(1.0mm) |
0.01953125 |
F0YAW |
M5(0.8mm) |
0.015625 |
The direction of KeyStone movement relative to the StepperMotor.
The direction of KeyStone movement
Driver Box List according to JGWDoc on 2018-02-08
- S1605642 2018-02-08 found in PR2 cleanbooth driving PR2 by Mark B.
- S1706031 18/01/19- Testing in mozumi by K. Miyo
- S1706032 2017-10-18 installed in BF second floor (klog 3527) by Enzo
- S1706033 2018-02-08 Found in PR3 cleanbooth driving PR3/PRM by Mark B.
- S1706034 2018-02-08 Found in AEL stockroom by Mark B.
- S1706035 Moved to PRM at 2017/8/8 (A.Shoda) [but not found 2018-02-08 by Mark - apparently replaced by 6033 for both PR3 and PRM]
- S1706036 2017-12-27 Installed in second floor of SR2 area as SR-GAS by Shoda-san.
- S1706037 [2017/10/24] Installed into K1EX2 rack by K.Okutomi
- S1706038 2018-02-07 Reallocated to SR3 and moved to SR3 second floor by Mark
- S1706039 2017-12-06 Installed in K1EY1 rack as EYV_IP by K. Okutomi (klog 3790).
- S1706040 2017-12-27 Installed in second floor of SR2 area as SR-PI by Shoda-san.
- S1706041 [2017/08/22] Installed into K1EX2 rack by K. Okutomi
- S1706042 2018-02-08 Found in AEL stockroom by Mark B.
- S1706043 2017-12-06 Installed in K1EY1 rack as EYV_GAS by K. Okutomi (klog 3790).
- S1706044 2018-02-07 Reallocated to SR3 and moved to SR3 second floor by Mark
- S1706045 2017-10-18 installed in BF second floor (klog 3527) by Enzo