Commit Graph

131 Commits

Author SHA1 Message Date
2159753398 avoid deadlock in proxy
in secop.proxy the callers modules method announceUpdate is
called from an other thread while the accessLock is locked,
creating a deadlock. solve this by creating an other lock
'updateLock' for the update.

+ add status parameter even to non-Readable proxy modules,
  in order to indicate a failed connection
+ fix an error in secop_psi/softcal.py

Change-Id: Iae7c6d5a74001150a47aa9dc99209c15d972cd5e
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/28130
Tested-by: Jenkins Automated Tests <pedersen+jenkins@frm2.tum.de>
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
2022-04-22 16:35:24 +02:00
b1a24b253a improved trinamic driver
- safe_current: current limit for unlimited move
- move_limit: max. angle to move with high current > safe_current
- direct axis parameter access is not exported by default
- support for home switch
- allow use without encoder
- automatic reset for motors in a configuration, where the motor
  current is deliberatly low for a limited torque
- improved error message on driving failures

Change-Id: I25f8516905a2c4c3cda09d091d5a43004ec6dc6f
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/28029
Tested-by: Jenkins Automated Tests <pedersen+jenkins@frm2.tum.de>
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
2022-04-22 16:35:24 +02:00
5a553dbdeb motor valve using trinamic motor
This valve needs 8 turns to open. As the encoder forgets
the number if turns on power cycle, a home switch is
mounte, which engages during the last turn when closing.
The final close position is determined by closing the valve
with a defined motor current/torque.

+ fix an issue in StateMachine.start: the first cycle
  must be called after the new state is assigned

Change-Id: I34cd05d10d97b043f9e3126310943b74ee727382
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/28030
Tested-by: Jenkins Automated Tests <pedersen+jenkins@frm2.tum.de>
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
2022-04-22 16:35:24 +02:00
774f33122a fixes in secop_psi/sea.py
is_running parameter
2022-04-20 15:52:43 +02:00
d5924567da fix statemachine
- fix: calling state.start(<new state>) on restart must ensure
  that the function <new state> is called before state.start()
  returns.
- modify slighly behaviour of cleanup function

Change-Id: I483a3aefa6af4712b3cf13f62c86d4c06edd1d8d
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/28020
Tested-by: Jenkins Automated Tests <pedersen+jenkins@frm2.tum.de>
Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
2022-04-08 15:36:23 +02:00
2e21bcdd0a HasConvergence mixin
the HasConvergence mixin runs a state machine to determine
when the value has reached target from parameters 'tolerance',
'settling_time' or detects convergence failure depending on
the parameter 'timeout'.

Change-Id: Iccc3d43bcf5ab54ae02ce3a81423c2decc1b392d
Reviewed-on: https://forge.frm2.tum.de/review/c/sine2020/secop/playground/+/27967
Tested-by: Jenkins Automated Tests <pedersen+jenkins@frm2.tum.de>
Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
2022-04-08 15:36:23 +02:00
b1ddc01fbb merge until "support write_ method on readonly param and more"
from gerrit

Change-Id: I8d2ad2a381d3a37947d8afc5e17be0428d94df36
2022-03-21 14:00:12 +01:00
7c9296fe2e even more merges from gerrit
Change-Id: I4cfddc8fd4157ceae353789f2f60d834ec05974e
2022-03-08 10:54:04 +01:00
10018b8cad some more merges from gerrit
- removed files
- modified drivers
- fixed READE.md

Change-Id: I47ae486df4dde3d60cc5e0e328194718dd396d87
2022-03-08 08:54:47 +01:00
9320541754 result from merge with gerrit
drivers in secop_psi

Change-Id: I7fd8312b11f365b423e66b2417b9e54ec6558a11
2022-03-08 08:35:41 +01:00
5e3fb10884 trinamic (psi repo!) as of 2022-02-01
Change-Id: I87b94ff0fa7a56abc6eae65fa76539a0c6a8f396
2022-02-02 09:56:44 +01:00
3b25251e10 ppms fixes (psi repo!) as of 2022-02-01
Change-Id: I96c81a0772baf5e6038d27d3a40e1163c4669289
2022-02-02 09:56:08 +01:00
903e17a6e5 mercury, as of 2022-02-01
Change-Id: Ifdbb2afc827b894874edaec50e82b645023beda9
2022-02-02 09:55:43 +01:00
05d0cfb193 history, as of 2022-02-01
Change-Id: I725a57546df8f7c9e5ffe04eb98872f2a609efe4
2022-02-02 09:52:01 +01:00
c523e8f84e [WIP] work on history writer
Change-Id: If8c42091c734fb8c7b386c06429f1b21a7e169ec
2021-12-03 16:50:34 +01:00
6e73420d0f add doc strings to commands missing them
Change-Id: Ib0320cc4653ff695a7ee2bad3486eeec5309d3b1
2021-12-03 16:49:48 +01:00
7690481938 secop_psi.softcal: default path for calib
Change-Id: I5ad2159587f13e1a0bcb75764397d4c784ed1c87
2021-11-08 14:24:09 +01:00
l_samenv
3d9e9c59d6 fixes in sea
- call explicitely __set_name__ on produced parameters
- as Parameters.override has changed, do not use it
2021-11-04 12:56:42 +01:00
7d2eacfe5c fixes in sim_uniax 2021-11-04 13:01:40 +01:00
ccf38f87d9 remove do_now argument for next_action 2021-11-04 12:58:33 +01:00
1c1911f8a8 adapt uniax simulation to newest uniax version
Change-Id: Iad13306edf007ecfa4aebafdfb0bd38fa6be9c6a
2021-10-27 16:35:54 +02:00
99ebb9d110 closed loop force control 2021-10-27 16:36:44 +02:00
e47d07f706 fix set_zero
and cosmetic changes
2021-10-27 16:35:57 +02:00
5f034a40f8 new version using actions state machine
Change-Id: I3de3ee8077aa11b66a0b15232d8f9313c2ab0226
2021-10-08 13:26:23 +02:00
57082e276f uniax, version 7.10.2021
- driving with a generator
- 3 phases
  1) find active range (low current, far movement until force over hysteresis)
  2) release force until well below target
  3) adjusting using pid_p. (this is in fact an integral factor)
2021-10-08 08:53:22 +02:00
2c6b42f2aa merged after getting from uniax
Change-Id: I1049ac1a22fd3013c360dba4eda9e53784ac36a5
2021-10-06 14:26:05 +02:00
762913012b uniax.Uniax: fixed tolerance
Change-Id: I201c54715ef7f70a164f0f72116c5a8e737c128f
2021-10-06 14:19:20 +02:00
c0fbbdb419 remove whitespace
Change-Id: Ibe7acffe1dcdcd4932fa4275d14e8b9b87573537
2021-10-06 14:02:55 +02:00
29226a1062 uniax: added force control as seperate module
Change-Id: I8b14fc90f5885834e342f6bc5e5dd0ea711b27ea
2021-10-06 13:33:34 +02:00
0d3df7be92 sameside approaching
Change-Id: I8b73d0ae0475bc727b49edd6f245c2204c51695b
2021-10-06 09:08:29 +02:00
5b7f4604ad more precise wording, typos
Change-Id: I6ca052fa512b5864b1ce29a22808a432c6f527db
2021-10-06 09:07:55 +02:00
09056ea87e set unit together with datatype
Change-Id: I412471880e71792160ee56a79375dc62dd4aaafc
2021-10-06 09:07:09 +02:00
544e42033d fix merge errors 2021-09-21 16:58:29 +02:00
8bbf65f6e8 Merge branch 'uniax' into wip
Conflicts:
	cfg/uniax.cfg
	secop/core.py
	secop_psi/trinamic.py
2021-09-21 16:52:15 +02:00
e98f81a7c9 reduce communication traffic
- expermental change: no updates of unchanged values within 1 sec
- reduce fast_pollfactor in trinamic
- improve stop behaviour of dpm.DPM
2021-09-21 16:40:54 +02:00
8f1375aa31 added/modified new drivers
mercury, phytron, cryotel

Change-Id: I2288dd39ec4eb3dd2a11ecd5acb4ca7fd704e017
2021-08-09 15:42:36 +02:00
584a293643 fix secop.io imports
Change-Id: I8abe4836312cdd2d17847ca0a117dceebaaac235
2021-07-27 09:19:28 +02:00
73e06c590b add Phytron driver
+ updates of cfg files

Change-Id: Ief24ee681423e18cae0fca29fe41419018d394dd
2021-07-27 08:16:36 +02:00
a037accbb8 backport fixes from MLZ repo
- unification of secop.stringio/bytesio to secop.io
- persistent parameters

Change-Id: I76307cccc5191ac8cbb5cfec6fb7450fcf6945f1
2021-07-27 08:11:51 +02:00
b30bd308a9 fixes for uniax device 2021-06-11 16:45:45 +02:00
3687ed85e5 first tries with uniax stick
Change-Id: I70da38aff091f7fc64f409485db335cde07163c9
2021-06-08 15:32:12 +02:00
7ff88cf819 fix issues with sea is_running 2021-06-08 14:59:45 +02:00
25b8780b11 persistent module fixed 2021-06-08 14:59:20 +02:00
246ab99e12 experimental persistent mixin
- still contains changes in mouduls/params ...
2021-06-08 14:59:20 +02:00
229604439b remove debug print statement 2021-06-08 14:59:20 +02:00
114af36ac6 first tries with uniax stick 2021-06-08 14:59:20 +02:00
49ad153605 trinamic driver and bytesio module
Change-Id: Id634e7514fecab6fd6bc3edf81e25ad41c2bb12f
2021-06-08 14:58:19 +02:00
c6157049d7 fix issue with a module based on a SEA subobject
Change-Id: I15102ef0e17cd4414e8699e2967292b3853d2ac0
2021-06-08 14:58:19 +02:00
3977fad3f3 correct to readonly=False for target parameter 2021-06-08 11:59:02 +02:00
8d6ba91a5e changes defaults in ls370sim
Change-Id: I6388358c42a4b115fc5aec4df0d4588457140744
2021-06-04 12:26:58 +02:00