16 Commits
0.1.0 ... 0.4.0

Author SHA1 Message Date
48c6070a62 Fix paths to pics 2024-02-28 14:06:14 +01:00
dd1b229322 Add comment 2024-02-28 14:04:48 +01:00
10d5b1deb7 Add test pics to REDAME.md 2024-02-28 14:03:31 +01:00
f68a2602d5 Rename addAxisToGroup.cmd to addAxisToSafetyGroup.cmd 2024-02-28 13:54:40 +01:00
ed84fa26e3 Rename addAxisToGroup.cmd to addAxisToSafetyGroup.cmd WIP 2024-02-28 13:47:17 +01:00
8f3a9d5b59 Adapt emerg decelration to ensure ramp down before the 500ms sto delay 2024-02-28 12:24:27 +01:00
0eb4a8032e Merge branch 'master' of git.psi.ch:epics_ioc_modules/ecmc_plugin_safety 2024-02-28 12:21:37 +01:00
f9cf3e1fe2 Use default version of plugin 2024-02-28 12:21:15 +01:00
68210c6e40 Merge branch 'master' of git.psi.ch:epics_ioc_modules/ecmc_plugin_safety 2024-02-28 12:18:25 +01:00
c7a147b219 Also check act velo 2024-02-28 12:18:15 +01:00
7f28d95db4 Merge branch 'master' of git.psi.ch:epics_ioc_modules/ecmc_plugin_safety 2024-02-28 12:17:33 +01:00
0d22b4f935 Add test with 4 ax box and safety relay 2024-02-28 12:17:04 +01:00
19a46aa738 Update README.md 2024-02-23 20:59:43 +01:00
added6a7cd Merge branch 'master' of git.psi.ch:epics_ioc_modules/ecmc_plugin_safety 2024-02-21 16:10:11 +01:00
611dce9c7a Use default versions in test script 2024-02-21 16:09:53 +01:00
72c4bf0697 Update test.script 2024-02-21 16:01:47 +01:00
11 changed files with 586 additions and 22 deletions

View File

@@ -43,5 +43,5 @@ HEADERS += $(foreach d,${SRC_DIR}, $(wildcard $d/*.h))
DBDS += $(foreach d,${SRC_DIR}, $(wildcard $d/*.dbd))
SCRIPTS += $(BASE_DIR)/startup.cmd
SCRIPTS += $(BASE_DIR)/scripts/addSS1Group.cmd
SCRIPTS += $(BASE_DIR)/scripts/addAxisToGroup.cmd
SCRIPTS += $(BASE_DIR)/scripts/addAxisToSafetyGroup.cmd
TEMPLATES += $(wildcard $(DB_DIR)/*.template)

View File

@@ -18,11 +18,12 @@ The plugin supports stopping axes according to a concept described as SS1-t, see
Basically the safey system is interfaced with two binary signals (ethercat I/O):
* Ramp down command (from safety system to ecmc)
* Axis stand still status (to safety system from ecmc)
If, for instance, an safety event is triggerd by the safety system, it will immediately command this plugin to rampdown velocity of all axes (that a configured to stop). When all axes, that are configured to rampdown, have stopped then this plugin will disable the axes and set an ethercat output informing the safety system that the axes are standstill. After a certain timout the safety system will make sure power is removed from the motion axes by triggering an STO or removing power. The removal of power or triggering of STO will made regardless if the axes are at rest or not. A reset of the safety system, allowing power to the drives, will only be possible once the safety system gets a confirmation that all axes are at rest.
The configuration is made by two commands:
1. ecmcAddSS1SafetyGroup()
2. ecmcAddAxisToSafetyGroup()
1. ecmcAddSS1SafetyGroup() wrapped into addSS1Group.cmd
2. ecmcAddAxisToSafetyGroup() wrapped in snippet addAxisToSafetyGroup.cmd
## ecmcAddSS1SafetyGroup()
@@ -37,9 +38,21 @@ ecmcAddSS1SafetyGroup(<name>, <ec_rampdown_cmd>, <ec_standstill_status>,<time_de
Each group is interfacing the safety system through the same I/O (ethercat).
Axes that needs the SS1 fucntionality can be added to this group with the ecmcAddAxisToSafetyGroup() command.
This command is also wrapped in a snippet:
* addSS1Group.cmd
This command is also wrapped in a snippet addSS1Group.cmd with the follwoing parameters:
* NAME : Name of group
* EC_RAMP_DOWN : Ethercat input of ramp down signal from safety PLC
* EC_AXES_STANDSTILL : Ethercat output for signaling safetysystem that all axes are at rest.
* DELAY_MS : Safety system delay time of STO or removal of power
Example:
```
# Create SS1 group
epicsEnvSet(EC_RAMP_DOWN,"ec${ECMC_EC_MASTER_ID}.s${BI_SLAVE}.binaryInput08.0")
epicsEnvSet(EC_AXES_STANDSTILL,"ec${ECMC_EC_MASTER_ID}.s${BO_SLAVE}.binaryOutput07.0")
epicsEnvSet(SAFETY_TIMEOUT,500)
${SCRIPTEXEC} ${ecmc_plugin_safety_DIR}addSS1Group.cmd "NAME=first,EC_RAMP_DOWN=${EC_RAMP_DOWN},EC_AXES_STANDSTILL=${EC_AXES_STANDSTILL},DELAY_MS=${SAFETY_TIMEOUT}"
```
## ecmcAddAxisToSafetyGroup()
With the "ecmcAddAxisToSafetyGroup()" command an ecmc axis can be added to a safety group.
All axes linked to a certain group will act on command from the safety system (initiation of velocity rampdown).
@@ -56,8 +69,15 @@ Note: The "filter_time" parameter is not used right now. As soon as the axis is
Note: The plugin checks the trajectory generated velocity setpoint and not the actual velocity.
This command is also wrapped in a snippet:
* addAxisToGroup.cmd
This command is also wrapped in a snippet addAxisToSafetyGroup.cmd with the following parameters:
* NAME : Name of group to add axis to (group must be created first with addSS1Group.cmd)
* AX_ID : ecmc axis index of axis to add
* VELO_LIM : Velocity limit [EGU of axis], default 0. If setpoint and actual velocity is lower or equal than VELO_LIM the axis is considered to be at rest
Example:
```
${SCRIPTEXEC} ${ecmc_plugin_safety_DIR}addAxisToSafetyGroup.cmd "NAME=first,AX_ID=1,VELO_LIM=1"
```
# Example of startup script:
```
@@ -72,8 +92,18 @@ epicsEnvSet(STANDSTILL_STAT,"ec${ECMC_EC_MASTER_ID}.s${DRV_SLAVE}.ZERO.1")
${SCRIPTEXEC} ${ecmc_plugin_safety_DIR}addSS1Group.cmd "NAME=first,EC_RAMP_DOWN_CMD=${RAMP_DOWN_CMD},EC_STANDSTILL_STAT=${STANDSTILL_STAT},DELAY_MS=500"
# Add axes to group "first"
${SCRIPTEXEC} ${ecmc_plugin_safety_DIR}addAxisToGroup.cmd "NAME=first,AX_ID=1,VELO_LIM=1"
${SCRIPTEXEC} ${ecmc_plugin_safety_DIR}addAxisToGroup.cmd "NAME=first,AX_ID=2,VELO_LIM=1"
${SCRIPTEXEC} ${ecmc_plugin_safety_DIR}addAxisToGroup.cmd "NAME=first,AX_ID=3,VELO_LIM=1"
${SCRIPTEXEC} ${ecmc_plugin_safety_DIR}addAxisToSafetyGroup.cmd.cmd "NAME=first,AX_ID=1,VELO_LIM=1"
${SCRIPTEXEC} ${ecmc_plugin_safety_DIR}addAxisToSafetyGroup.cmd.cmd "NAME=first,AX_ID=2,VELO_LIM=1"
${SCRIPTEXEC} ${ecmc_plugin_safety_DIR}addAxisToSafetyGroup.cmd.cmd "NAME=first,AX_ID=3,VELO_LIM=1"
....
```
# Test
Triggering of e-stop:
* Velo 500mm/s
* Stop ramp 1200mm/s/s
[Test data](docs/data_log.txt)
![Velocity](docs/velo.png)
![Digital](docs/digital.png)

425
docs/data_log.txt Normal file
View File

@@ -0,0 +1,425 @@
c6025a:m0s006-BI08 2024-02-28 12:07:05.294742 1
c6025a:m0s005-BO07 2024-02-28 12:07:05.294742 1
c6025a:Axis1-EnaAct 2024-02-28 12:07:05.294742 0
c6025a:Axis1-VelAct 2024-02-28 12:07:05.294742 0
c6025a:Axis1-EnaAct 2024-02-28 12:07:05.294742 1
c6025a:Axis1-VelAct 2024-02-28 12:07:06.894679 0.28125
c6025a:m0s005-BO07 2024-02-28 12:07:06.894708 0
c6025a:Axis1-VelAct 2024-02-28 12:07:06.904782 0.5625
c6025a:Axis1-VelAct 2024-02-28 12:07:06.914794 1.125
c6025a:Axis1-VelAct 2024-02-28 12:07:06.924633 1.96875
c6025a:Axis1-VelAct 2024-02-28 12:07:06.934677 2.8125
c6025a:Axis1-VelAct 2024-02-28 12:07:06.944878 3.9375
c6025a:Axis1-VelAct 2024-02-28 12:07:06.954778 5.34375
c6025a:Axis1-VelAct 2024-02-28 12:07:06.964832 6.75
c6025a:Axis1-VelAct 2024-02-28 12:07:06.974675 8.4375
c6025a:Axis1-VelAct 2024-02-28 12:07:06.984744 10.4063
c6025a:Axis1-VelAct 2024-02-28 12:07:06.994771 12.375
c6025a:Axis1-VelAct 2024-02-28 12:07:07.004719 14.3438
c6025a:Axis1-VelAct 2024-02-28 12:07:07.014668 16.3125
c6025a:Axis1-VelAct 2024-02-28 12:07:07.024860 18.2812
c6025a:Axis1-VelAct 2024-02-28 12:07:07.034780 20.25
c6025a:Axis1-VelAct 2024-02-28 12:07:07.044877 22.5
c6025a:Axis1-VelAct 2024-02-28 12:07:07.054717 24.4688
c6025a:Axis1-VelAct 2024-02-28 12:07:07.064741 26.4375
c6025a:Axis1-VelAct 2024-02-28 12:07:07.074748 28.6875
c6025a:Axis1-VelAct 2024-02-28 12:07:07.084629 30.6563
c6025a:Axis1-VelAct 2024-02-28 12:07:07.094523 32.625
c6025a:Axis1-VelAct 2024-02-28 12:07:07.104632 34.5937
c6025a:Axis1-VelAct 2024-02-28 12:07:07.114639 36.5625
c6025a:Axis1-VelAct 2024-02-28 12:07:07.124609 38.5313
c6025a:Axis1-VelAct 2024-02-28 12:07:07.134548 40.7812
c6025a:Axis1-VelAct 2024-02-28 12:07:07.144687 42.4687
c6025a:Axis1-VelAct 2024-02-28 12:07:07.154661 44.7187
c6025a:Axis1-VelAct 2024-02-28 12:07:07.164621 46.9687
c6025a:Axis1-VelAct 2024-02-28 12:07:07.174524 48.6562
c6025a:Axis1-VelAct 2024-02-28 12:07:07.184630 50.625
c6025a:Axis1-VelAct 2024-02-28 12:07:07.194575 52.875
c6025a:Axis1-VelAct 2024-02-28 12:07:07.204647 54.8437
c6025a:Axis1-VelAct 2024-02-28 12:07:07.214532 57.0937
c6025a:Axis1-VelAct 2024-02-28 12:07:07.224681 59.0625
c6025a:Axis1-VelAct 2024-02-28 12:07:07.234638 61.0313
c6025a:Axis1-VelAct 2024-02-28 12:07:07.244621 63
c6025a:Axis1-VelAct 2024-02-28 12:07:07.254531 64.9688
c6025a:Axis1-VelAct 2024-02-28 12:07:07.264625 66.9375
c6025a:Axis1-VelAct 2024-02-28 12:07:07.274624 69.1875
c6025a:Axis1-VelAct 2024-02-28 12:07:07.284604 71.1562
c6025a:Axis1-VelAct 2024-02-28 12:07:07.294620 73.125
c6025a:Axis1-VelAct 2024-02-28 12:07:07.304609 75.375
c6025a:Axis1-VelAct 2024-02-28 12:07:07.314694 77.0625
c6025a:Axis1-VelAct 2024-02-28 12:07:07.324532 79.3125
c6025a:Axis1-VelAct 2024-02-28 12:07:07.334747 81.2813
c6025a:Axis1-VelAct 2024-02-28 12:07:07.344719 83.5313
c6025a:Axis1-VelAct 2024-02-28 12:07:07.354545 85.2187
c6025a:Axis1-VelAct 2024-02-28 12:07:07.364593 87.4687
c6025a:Axis1-VelAct 2024-02-28 12:07:07.374513 89.4375
c6025a:Axis1-VelAct 2024-02-28 12:07:07.384706 91.4062
c6025a:Axis1-VelAct 2024-02-28 12:07:07.394533 93.375
c6025a:Axis1-VelAct 2024-02-28 12:07:07.404724 95.3438
c6025a:Axis1-VelAct 2024-02-28 12:07:07.414536 97.5938
c6025a:Axis1-VelAct 2024-02-28 12:07:07.424718 99.2812
c6025a:Axis1-VelAct 2024-02-28 12:07:07.434576 101.531
c6025a:Axis1-VelAct 2024-02-28 12:07:07.444675 103.5
c6025a:Axis1-VelAct 2024-02-28 12:07:07.454711 105.469
c6025a:Axis1-VelAct 2024-02-28 12:07:07.464727 107.438
c6025a:Axis1-VelAct 2024-02-28 12:07:07.474662 109.406
c6025a:Axis1-VelAct 2024-02-28 12:07:07.484694 111.656
c6025a:Axis1-VelAct 2024-02-28 12:07:07.494580 113.625
c6025a:Axis1-VelAct 2024-02-28 12:07:07.504554 115.594
c6025a:Axis1-VelAct 2024-02-28 12:07:07.514593 117.562
c6025a:Axis1-VelAct 2024-02-28 12:07:07.524542 119.812
c6025a:Axis1-VelAct 2024-02-28 12:07:07.534518 121.5
c6025a:Axis1-VelAct 2024-02-28 12:07:07.544705 123.469
c6025a:Axis1-VelAct 2024-02-28 12:07:07.554553 125.719
c6025a:Axis1-VelAct 2024-02-28 12:07:07.564548 127.687
c6025a:Axis1-VelAct 2024-02-28 12:07:07.574571 129.656
c6025a:Axis1-VelAct 2024-02-28 12:07:07.584575 131.625
c6025a:Axis1-VelAct 2024-02-28 12:07:07.594579 133.594
c6025a:Axis1-VelAct 2024-02-28 12:07:07.604569 135.563
c6025a:Axis1-VelAct 2024-02-28 12:07:07.614496 137.531
c6025a:Axis1-VelAct 2024-02-28 12:07:07.624543 139.5
c6025a:Axis1-VelAct 2024-02-28 12:07:07.634565 141.75
c6025a:Axis1-VelAct 2024-02-28 12:07:07.644578 143.719
c6025a:Axis1-VelAct 2024-02-28 12:07:07.654534 145.687
c6025a:Axis1-VelAct 2024-02-28 12:07:07.664575 147.656
c6025a:Axis1-VelAct 2024-02-28 12:07:07.674540 149.625
c6025a:Axis1-VelAct 2024-02-28 12:07:07.684578 151.875
c6025a:Axis1-VelAct 2024-02-28 12:07:07.694520 153.563
c6025a:Axis1-VelAct 2024-02-28 12:07:07.704569 155.812
c6025a:Axis1-VelAct 2024-02-28 12:07:07.714592 157.781
c6025a:Axis1-VelAct 2024-02-28 12:07:07.724494 159.75
c6025a:Axis1-VelAct 2024-02-28 12:07:07.734526 161.719
c6025a:Axis1-VelAct 2024-02-28 12:07:07.744597 163.688
c6025a:Axis1-VelAct 2024-02-28 12:07:07.754577 165.656
c6025a:Axis1-VelAct 2024-02-28 12:07:07.764576 167.625
c6025a:Axis1-VelAct 2024-02-28 12:07:07.774517 169.594
c6025a:Axis1-VelAct 2024-02-28 12:07:07.784631 171.281
c6025a:Axis1-VelAct 2024-02-28 12:07:07.794569 173.531
c6025a:Axis1-VelAct 2024-02-28 12:07:07.804553 175.5
c6025a:Axis1-VelAct 2024-02-28 12:07:07.814502 177.469
c6025a:Axis1-VelAct 2024-02-28 12:07:07.824549 179.437
c6025a:Axis1-VelAct 2024-02-28 12:07:07.834559 181.125
c6025a:Axis1-VelAct 2024-02-28 12:07:07.844593 183.375
c6025a:Axis1-VelAct 2024-02-28 12:07:07.854506 185.344
c6025a:Axis1-VelAct 2024-02-28 12:07:07.864635 187.312
c6025a:Axis1-VelAct 2024-02-28 12:07:07.874661 189.563
c6025a:Axis1-VelAct 2024-02-28 12:07:07.884596 191.25
c6025a:Axis1-VelAct 2024-02-28 12:07:07.894512 193.5
c6025a:Axis1-VelAct 2024-02-28 12:07:07.904671 195.188
c6025a:Axis1-VelAct 2024-02-28 12:07:07.914657 197.156
c6025a:Axis1-VelAct 2024-02-28 12:07:07.924587 199.406
c6025a:Axis1-VelAct 2024-02-28 12:07:07.934617 201.375
c6025a:Axis1-VelAct 2024-02-28 12:07:07.944662 203.062
c6025a:Axis1-VelAct 2024-02-28 12:07:07.954738 205.031
c6025a:Axis1-VelAct 2024-02-28 12:07:07.964674 207.281
c6025a:Axis1-VelAct 2024-02-28 12:07:07.974606 208.969
c6025a:Axis1-VelAct 2024-02-28 12:07:07.984655 211.219
c6025a:Axis1-VelAct 2024-02-28 12:07:07.994602 212.906
c6025a:Axis1-VelAct 2024-02-28 12:07:08.004556 215.156
c6025a:Axis1-VelAct 2024-02-28 12:07:08.014613 217.125
c6025a:Axis1-VelAct 2024-02-28 12:07:08.024574 218.812
c6025a:Axis1-VelAct 2024-02-28 12:07:08.034573 221.063
c6025a:Axis1-VelAct 2024-02-28 12:07:08.044554 223.031
c6025a:Axis1-VelAct 2024-02-28 12:07:08.054509 225.281
c6025a:Axis1-VelAct 2024-02-28 12:07:08.064582 226.969
c6025a:Axis1-VelAct 2024-02-28 12:07:08.074572 228.937
c6025a:Axis1-VelAct 2024-02-28 12:07:08.084616 230.906
c6025a:Axis1-VelAct 2024-02-28 12:07:08.094522 232.875
c6025a:Axis1-VelAct 2024-02-28 12:07:08.104545 234.844
c6025a:Axis1-VelAct 2024-02-28 12:07:08.114632 236.812
c6025a:Axis1-VelAct 2024-02-28 12:07:08.124551 239.062
c6025a:Axis1-VelAct 2024-02-28 12:07:08.134601 240.75
c6025a:Axis1-VelAct 2024-02-28 12:07:08.144662 242.719
c6025a:Axis1-VelAct 2024-02-28 12:07:08.154610 244.688
c6025a:Axis1-VelAct 2024-02-28 12:07:08.164547 246.656
c6025a:Axis1-VelAct 2024-02-28 12:07:08.174630 248.625
c6025a:Axis1-VelAct 2024-02-28 12:07:08.184625 250.875
c6025a:Axis1-VelAct 2024-02-28 12:07:08.194636 252.844
c6025a:Axis1-VelAct 2024-02-28 12:07:08.204622 254.531
c6025a:Axis1-VelAct 2024-02-28 12:07:08.214551 256.781
c6025a:Axis1-VelAct 2024-02-28 12:07:08.224561 258.469
c6025a:Axis1-VelAct 2024-02-28 12:07:08.234632 260.719
c6025a:Axis1-VelAct 2024-02-28 12:07:08.244638 262.969
c6025a:Axis1-VelAct 2024-02-28 12:07:08.254549 264.656
c6025a:Axis1-VelAct 2024-02-28 12:07:08.264547 266.344
c6025a:Axis1-VelAct 2024-02-28 12:07:08.274631 268.594
c6025a:Axis1-VelAct 2024-02-28 12:07:08.284625 270.281
c6025a:Axis1-VelAct 2024-02-28 12:07:08.294527 272.25
c6025a:Axis1-VelAct 2024-02-28 12:07:08.304614 274.5
c6025a:Axis1-VelAct 2024-02-28 12:07:08.314635 276.469
c6025a:Axis1-VelAct 2024-02-28 12:07:08.324638 278.438
c6025a:Axis1-VelAct 2024-02-28 12:07:08.334528 280.406
c6025a:Axis1-VelAct 2024-02-28 12:07:08.344631 282.375
c6025a:Axis1-VelAct 2024-02-28 12:07:08.354587 284.344
c6025a:Axis1-VelAct 2024-02-28 12:07:08.364635 286.594
c6025a:Axis1-VelAct 2024-02-28 12:07:08.374554 288.562
c6025a:Axis1-VelAct 2024-02-28 12:07:08.384685 290.531
c6025a:Axis1-VelAct 2024-02-28 12:07:08.394625 292.781
c6025a:Axis1-VelAct 2024-02-28 12:07:08.404630 294.75
c6025a:Axis1-VelAct 2024-02-28 12:07:08.414552 296.719
c6025a:Axis1-VelAct 2024-02-28 12:07:08.424636 298.969
c6025a:Axis1-VelAct 2024-02-28 12:07:08.434677 300.656
c6025a:Axis1-VelAct 2024-02-28 12:07:08.444640 302.906
c6025a:Axis1-VelAct 2024-02-28 12:07:08.454526 304.875
c6025a:Axis1-VelAct 2024-02-28 12:07:08.464783 306.844
c6025a:Axis1-VelAct 2024-02-28 12:07:08.474788 309.094
c6025a:Axis1-VelAct 2024-02-28 12:07:08.484778 311.344
c6025a:Axis1-VelAct 2024-02-28 12:07:08.494686 312.75
c6025a:Axis1-VelAct 2024-02-28 12:07:08.504781 315
c6025a:Axis1-VelAct 2024-02-28 12:07:08.514644 316.969
c6025a:Axis1-VelAct 2024-02-28 12:07:08.524646 318.656
c6025a:Axis1-VelAct 2024-02-28 12:07:08.534652 321.188
c6025a:Axis1-VelAct 2024-02-28 12:07:08.544703 322.875
c6025a:Axis1-VelAct 2024-02-28 12:07:08.554719 324.844
c6025a:Axis1-VelAct 2024-02-28 12:07:08.564640 327.375
c6025a:Axis1-VelAct 2024-02-28 12:07:08.574526 329.062
c6025a:Axis1-VelAct 2024-02-28 12:07:08.584638 330.75
c6025a:Axis1-VelAct 2024-02-28 12:07:08.594675 333.281
c6025a:Axis1-VelAct 2024-02-28 12:07:08.604566 335.25
c6025a:Axis1-VelAct 2024-02-28 12:07:08.614530 337.219
c6025a:Axis1-VelAct 2024-02-28 12:07:08.624670 339.187
c6025a:Axis1-VelAct 2024-02-28 12:07:08.634730 340.875
c6025a:Axis1-VelAct 2024-02-28 12:07:08.644675 343.125
c6025a:Axis1-VelAct 2024-02-28 12:07:08.654589 345.375
c6025a:Axis1-VelAct 2024-02-28 12:07:08.664629 347.063
c6025a:Axis1-VelAct 2024-02-28 12:07:08.674658 349.031
c6025a:Axis1-VelAct 2024-02-28 12:07:08.684631 351.281
c6025a:Axis1-VelAct 2024-02-28 12:07:08.694558 353.25
c6025a:Axis1-VelAct 2024-02-28 12:07:08.704666 355.219
c6025a:Axis1-VelAct 2024-02-28 12:07:08.714633 356.906
c6025a:Axis1-VelAct 2024-02-28 12:07:08.724594 359.438
c6025a:Axis1-VelAct 2024-02-28 12:07:08.734569 361.687
c6025a:Axis1-VelAct 2024-02-28 12:07:08.744528 363.375
c6025a:Axis1-VelAct 2024-02-28 12:07:08.754723 365.062
c6025a:Axis1-VelAct 2024-02-28 12:07:08.764646 367.312
c6025a:Axis1-VelAct 2024-02-28 12:07:08.774660 369.281
c6025a:Axis1-VelAct 2024-02-28 12:07:08.784783 371.25
c6025a:Axis1-VelAct 2024-02-28 12:07:08.794773 373.5
c6025a:Axis1-VelAct 2024-02-28 12:07:08.804756 375.188
c6025a:Axis1-VelAct 2024-02-28 12:07:08.814574 377.719
c6025a:Axis1-VelAct 2024-02-28 12:07:08.824743 379.125
c6025a:Axis1-VelAct 2024-02-28 12:07:08.834760 381.094
c6025a:Axis1-VelAct 2024-02-28 12:07:08.844610 383.063
c6025a:Axis1-VelAct 2024-02-28 12:07:08.854743 385.594
c6025a:Axis1-VelAct 2024-02-28 12:07:08.864865 387.281
c6025a:Axis1-VelAct 2024-02-28 12:07:08.874783 389.531
c6025a:Axis1-VelAct 2024-02-28 12:07:08.884777 391.781
c6025a:Axis1-VelAct 2024-02-28 12:07:08.894662 393.188
c6025a:Axis1-VelAct 2024-02-28 12:07:08.904839 395.437
c6025a:Axis1-VelAct 2024-02-28 12:07:08.914789 397.125
c6025a:Axis1-VelAct 2024-02-28 12:07:08.924780 399.375
c6025a:Axis1-VelAct 2024-02-28 12:07:08.934554 401.344
c6025a:Axis1-VelAct 2024-02-28 12:07:08.944572 403.875
c6025a:Axis1-VelAct 2024-02-28 12:07:08.954670 405.281
c6025a:Axis1-VelAct 2024-02-28 12:07:08.964716 407.25
c6025a:Axis1-VelAct 2024-02-28 12:07:08.974672 408.937
c6025a:Axis1-VelAct 2024-02-28 12:07:08.984756 411.188
c6025a:Axis1-VelAct 2024-02-28 12:07:08.994706 413.438
c6025a:Axis1-VelAct 2024-02-28 12:07:09.004777 415.406
c6025a:Axis1-VelAct 2024-02-28 12:07:09.014692 417.375
c6025a:Axis1-VelAct 2024-02-28 12:07:09.024787 419.625
c6025a:Axis1-VelAct 2024-02-28 12:07:09.034704 421.312
c6025a:Axis1-VelAct 2024-02-28 12:07:09.044693 423
c6025a:Axis1-VelAct 2024-02-28 12:07:09.054529 425.531
c6025a:Axis1-VelAct 2024-02-28 12:07:09.064598 427.5
c6025a:Axis1-VelAct 2024-02-28 12:07:09.074568 429.469
c6025a:Axis1-VelAct 2024-02-28 12:07:09.084623 430.875
c6025a:Axis1-VelAct 2024-02-28 12:07:09.094540 433.125
c6025a:Axis1-VelAct 2024-02-28 12:07:09.104589 435.375
c6025a:Axis1-VelAct 2024-02-28 12:07:09.114614 437.063
c6025a:Axis1-VelAct 2024-02-28 12:07:09.124543 439.312
c6025a:Axis1-VelAct 2024-02-28 12:07:09.134559 441.562
c6025a:Axis1-VelAct 2024-02-28 12:07:09.144724 443.531
c6025a:Axis1-VelAct 2024-02-28 12:07:09.154719 445.219
c6025a:Axis1-VelAct 2024-02-28 12:07:09.164719 447.188
c6025a:Axis1-VelAct 2024-02-28 12:07:09.174616 449.437
c6025a:Axis1-VelAct 2024-02-28 12:07:09.184700 451.688
c6025a:Axis1-VelAct 2024-02-28 12:07:09.194669 453.094
c6025a:Axis1-VelAct 2024-02-28 12:07:09.204819 455.344
c6025a:Axis1-VelAct 2024-02-28 12:07:09.214639 457.594
c6025a:Axis1-VelAct 2024-02-28 12:07:09.224767 459.281
c6025a:Axis1-VelAct 2024-02-28 12:07:09.234744 461.25
c6025a:Axis1-VelAct 2024-02-28 12:07:09.244766 463.219
c6025a:Axis1-VelAct 2024-02-28 12:07:09.254707 465.188
c6025a:Axis1-VelAct 2024-02-28 12:07:09.264731 467.156
c6025a:Axis1-VelAct 2024-02-28 12:07:09.274712 469.125
c6025a:Axis1-VelAct 2024-02-28 12:07:09.284713 471.375
c6025a:Axis1-VelAct 2024-02-28 12:07:09.294630 473.344
c6025a:Axis1-VelAct 2024-02-28 12:07:09.304679 474.75
c6025a:Axis1-VelAct 2024-02-28 12:07:09.314716 477
c6025a:Axis1-VelAct 2024-02-28 12:07:09.324576 478.687
c6025a:Axis1-VelAct 2024-02-28 12:07:09.334664 481.219
c6025a:Axis1-VelAct 2024-02-28 12:07:09.344739 483.187
c6025a:Axis1-VelAct 2024-02-28 12:07:09.354767 484.875
c6025a:Axis1-VelAct 2024-02-28 12:07:09.364750 487.406
c6025a:Axis1-VelAct 2024-02-28 12:07:09.374593 489.094
c6025a:Axis1-VelAct 2024-02-28 12:07:09.384798 491.063
c6025a:Axis1-VelAct 2024-02-28 12:07:09.394769 493.313
c6025a:Axis1-VelAct 2024-02-28 12:07:09.404718 494.719
c6025a:Axis1-VelAct 2024-02-28 12:07:09.414746 496.125
c6025a:Axis1-VelAct 2024-02-28 12:07:09.424742 497.812
c6025a:Axis1-VelAct 2024-02-28 12:07:09.434777 498.094
c6025a:Axis1-VelAct 2024-02-28 12:07:09.444781 499.219
c6025a:Axis1-VelAct 2024-02-28 12:07:09.454631 500.344
c6025a:Axis1-VelAct 2024-02-28 12:07:09.464793 499.781
c6025a:Axis1-VelAct 2024-02-28 12:07:09.474788 500.344
c6025a:Axis1-VelAct 2024-02-28 12:07:09.484871 500.062
c6025a:Axis1-VelAct 2024-02-28 12:07:09.494809 500.344
c6025a:Axis1-VelAct 2024-02-28 12:07:09.524798 500.344
c6025a:Axis1-VelAct 2024-02-28 12:07:09.544762 500.062
c6025a:Axis1-VelAct 2024-02-28 12:07:09.564858 500.625
c6025a:Axis1-VelAct 2024-02-28 12:07:09.574713 500.344
c6025a:Axis1-VelAct 2024-02-28 12:07:09.594788 500.063
c6025a:Axis1-VelAct 2024-02-28 12:07:09.605067 500.344
c6025a:Axis1-VelAct 2024-02-28 12:07:09.614688 500.063
c6025a:Axis1-VelAct 2024-02-28 12:07:09.624776 500.062
c6025a:Axis1-VelAct 2024-02-28 12:07:09.644627 499.781
c6025a:Axis1-VelAct 2024-02-28 12:07:09.654623 500.062
c6025a:Axis1-VelAct 2024-02-28 12:07:09.664624 500.063
c6025a:Axis1-VelAct 2024-02-28 12:07:09.674660 500.062
c6025a:Axis1-VelAct 2024-02-28 12:07:09.684688 500.344
c6025a:Axis1-VelAct 2024-02-28 12:07:09.694677 500.062
c6025a:Axis1-VelAct 2024-02-28 12:07:09.704654 499.5
c6025a:Axis1-VelAct 2024-02-28 12:07:09.714659 500.062
c6025a:Axis1-VelAct 2024-02-28 12:07:09.724708 499.781
c6025a:Axis1-VelAct 2024-02-28 12:07:09.734636 500.062
c6025a:Axis1-VelAct 2024-02-28 12:07:09.744752 499.781
c6025a:Axis1-VelAct 2024-02-28 12:07:09.764665 499.781
c6025a:Axis1-VelAct 2024-02-28 12:07:09.774628 499.5
c6025a:Axis1-VelAct 2024-02-28 12:07:09.784686 499.219
c6025a:Axis1-VelAct 2024-02-28 12:07:09.794617 499.781
c6025a:Axis1-VelAct 2024-02-28 12:07:09.834628 499.219
c6025a:Axis1-VelAct 2024-02-28 12:07:09.844649 500.062
c6025a:Axis1-VelAct 2024-02-28 12:07:09.854550 499.781
c6025a:Axis1-VelAct 2024-02-28 12:07:09.864618 499.219
c6025a:Axis1-VelAct 2024-02-28 12:07:09.874694 499.781
c6025a:Axis1-VelAct 2024-02-28 12:07:09.884521 500.062
c6025a:Axis1-VelAct 2024-02-28 12:07:09.894502 499.219
c6025a:Axis1-VelAct 2024-02-28 12:07:09.904675 500.062
c6025a:Axis1-VelAct 2024-02-28 12:07:09.914546 499.5
c6025a:Axis1-VelAct 2024-02-28 12:07:09.934575 500.062
c6025a:Axis1-VelAct 2024-02-28 12:07:09.944676 499.5
c6025a:Axis1-VelAct 2024-02-28 12:07:09.954656 499.219
c6025a:Axis1-VelAct 2024-02-28 12:07:09.964621 499.781
c6025a:Axis1-VelAct 2024-02-28 12:07:09.974529 499.5
c6025a:Axis1-VelAct 2024-02-28 12:07:09.984651 499.5
c6025a:Axis1-VelAct 2024-02-28 12:07:09.994613 499.781
c6025a:Axis1-VelAct 2024-02-28 12:07:10.004640 499.5
c6025a:Axis1-VelAct 2024-02-28 12:07:10.014519 499.219
c6025a:Axis1-VelAct 2024-02-28 12:07:10.024644 499.5
c6025a:Axis1-VelAct 2024-02-28 12:07:10.034712 499.219
c6025a:Axis1-VelAct 2024-02-28 12:07:10.044862 499.5
c6025a:Axis1-VelAct 2024-02-28 12:07:10.054593 499.5
c6025a:Axis1-VelAct 2024-02-28 12:07:10.064688 499.781
c6025a:Axis1-VelAct 2024-02-28 12:07:10.074866 499.5
c6025a:Axis1-VelAct 2024-02-28 12:07:10.084742 499.219
c6025a:Axis1-VelAct 2024-02-28 12:07:10.094637 499.781
c6025a:Axis1-VelAct 2024-02-28 12:07:10.104632 499.219
c6025a:Axis1-VelAct 2024-02-28 12:07:10.114668 499.781
c6025a:Axis1-VelAct 2024-02-28 12:07:10.124553 499.219
c6025a:Axis1-VelAct 2024-02-28 12:07:10.134645 499.5
c6025a:Axis1-VelAct 2024-02-28 12:07:10.144672 499.781
c6025a:Axis1-VelAct 2024-02-28 12:07:10.154658 499.781
c6025a:Axis1-VelAct 2024-02-28 12:07:10.164493 499.219
c6025a:Axis1-VelAct 2024-02-28 12:07:10.174558 499.781
c6025a:Axis1-VelAct 2024-02-28 12:07:10.184658 499.5
c6025a:Axis1-VelAct 2024-02-28 12:07:10.194675 499.5
c6025a:Axis1-VelAct 2024-02-28 12:07:10.204634 499.781
c6025a:Axis1-VelAct 2024-02-28 12:07:10.214565 499.5
c6025a:Axis1-VelAct 2024-02-28 12:07:10.224550 500.062
c6025a:Axis1-VelAct 2024-02-28 12:07:10.234716 499.781
c6025a:Axis1-VelAct 2024-02-28 12:07:10.244661 499.5
c6025a:Axis1-VelAct 2024-02-28 12:07:10.264668 499.781
c6025a:Axis1-VelAct 2024-02-28 12:07:10.284644 500.062
c6025a:Axis1-VelAct 2024-02-28 12:07:10.294536 499.5
c6025a:Axis1-VelAct 2024-02-28 12:07:10.304630 499.781
c6025a:Axis1-VelAct 2024-02-28 12:07:10.314639 500.062
c6025a:Axis1-VelAct 2024-02-28 12:07:10.324658 499.781
c6025a:Axis1-VelAct 2024-02-28 12:07:10.334527 499.781
c6025a:Axis1-VelAct 2024-02-28 12:07:10.344702 499.781
c6025a:Axis1-VelAct 2024-02-28 12:07:10.354650 499.781
c6025a:Axis1-VelAct 2024-02-28 12:07:10.364544 500.062
c6025a:Axis1-VelAct 2024-02-28 12:07:10.384659 499.5
c6025a:Axis1-VelAct 2024-02-28 12:07:10.394639 500.062
c6025a:Axis1-VelAct 2024-02-28 12:07:10.414495 499.781
c6025a:Axis1-VelAct 2024-02-28 12:07:10.424640 500.062
c6025a:Axis1-VelAct 2024-02-28 12:07:10.434609 500.063
c6025a:Axis1-VelAct 2024-02-28 12:07:10.444591 500.344
c6025a:Axis1-VelAct 2024-02-28 12:07:10.454518 500.344
c6025a:Axis1-VelAct 2024-02-28 12:07:10.464662 500.062
c6025a:Axis1-VelAct 2024-02-28 12:07:10.474641 499.781
c6025a:Axis1-VelAct 2024-02-28 12:07:10.484634 500.625
c6025a:Axis1-VelAct 2024-02-28 12:07:10.494591 500.344
c6025a:Axis1-VelAct 2024-02-28 12:07:10.524641 500.344
c6025a:Axis1-VelAct 2024-02-28 12:07:10.534561 500.625
c6025a:Axis1-VelAct 2024-02-28 12:07:10.544647 499.781
c6025a:Axis1-VelAct 2024-02-28 12:07:10.554678 500.344
c6025a:m0s006-BI08 2024-02-28 12:07:10.574556 0
c6025a:Axis1-VelAct 2024-02-28 12:07:10.584617 500.062
c6025a:Axis1-VelAct 2024-02-28 12:07:10.594646 498.656
c6025a:Axis1-VelAct 2024-02-28 12:07:10.604644 496.687
c6025a:Axis1-VelAct 2024-02-28 12:07:10.614528 493.875
c6025a:Axis1-VelAct 2024-02-28 12:07:10.624638 489.375
c6025a:Axis1-VelAct 2024-02-28 12:07:10.634658 484.031
c6025a:Axis1-VelAct 2024-02-28 12:07:10.644652 478.406
c6025a:Axis1-VelAct 2024-02-28 12:07:10.654683 470.531
c6025a:Axis1-VelAct 2024-02-28 12:07:10.664770 462.375
c6025a:Axis1-VelAct 2024-02-28 12:07:10.674767 453.375
c6025a:Axis1-VelAct 2024-02-28 12:07:10.684621 443.531
c6025a:Axis1-VelAct 2024-02-28 12:07:10.694674 433.406
c6025a:Axis1-VelAct 2024-02-28 12:07:10.704723 423
c6025a:Axis1-VelAct 2024-02-28 12:07:10.714780 412.875
c6025a:Axis1-VelAct 2024-02-28 12:07:10.724635 402.75
c6025a:Axis1-VelAct 2024-02-28 12:07:10.734512 392.625
c6025a:Axis1-VelAct 2024-02-28 12:07:10.744636 382.781
c6025a:Axis1-VelAct 2024-02-28 12:07:10.754596 372.656
c6025a:Axis1-VelAct 2024-02-28 12:07:10.764606 362.812
c6025a:Axis1-VelAct 2024-02-28 12:07:10.774654 352.406
c6025a:Axis1-VelAct 2024-02-28 12:07:10.784561 342
c6025a:Axis1-VelAct 2024-02-28 12:07:10.794658 332.156
c6025a:Axis1-VelAct 2024-02-28 12:07:10.804674 322.312
c6025a:Axis1-VelAct 2024-02-28 12:07:10.814531 311.906
c6025a:Axis1-VelAct 2024-02-28 12:07:10.824686 301.781
c6025a:Axis1-VelAct 2024-02-28 12:07:10.834649 291.656
c6025a:Axis1-VelAct 2024-02-28 12:07:10.844586 281.25
c6025a:Axis1-VelAct 2024-02-28 12:07:10.854558 271.406
c6025a:Axis1-VelAct 2024-02-28 12:07:10.864770 261
c6025a:Axis1-VelAct 2024-02-28 12:07:10.874783 251.156
c6025a:Axis1-VelAct 2024-02-28 12:07:10.884754 241.031
c6025a:Axis1-VelAct 2024-02-28 12:07:10.894669 230.625
c6025a:Axis1-VelAct 2024-02-28 12:07:10.904844 220.219
c6025a:Axis1-VelAct 2024-02-28 12:07:10.914783 210.375
c6025a:Axis1-VelAct 2024-02-28 12:07:10.924773 200.25
c6025a:Axis1-VelAct 2024-02-28 12:07:10.934565 190.125
c6025a:Axis1-VelAct 2024-02-28 12:07:10.944765 180
c6025a:Axis1-VelAct 2024-02-28 12:07:10.954775 169.875
c6025a:Axis1-VelAct 2024-02-28 12:07:10.964800 159.469
c6025a:Axis1-VelAct 2024-02-28 12:07:10.974678 149.344
c6025a:Axis1-VelAct 2024-02-28 12:07:10.984575 138.938
c6025a:Axis1-VelAct 2024-02-28 12:07:10.994651 129.094
c6025a:Axis1-VelAct 2024-02-28 12:07:11.004591 118.969
c6025a:Axis1-VelAct 2024-02-28 12:07:11.014573 108.844
c6025a:Axis1-VelAct 2024-02-28 12:07:11.024572 98.7187
c6025a:Axis1-VelAct 2024-02-28 12:07:11.034612 88.5938
c6025a:Axis1-VelAct 2024-02-28 12:07:11.044612 78.1875
c6025a:Axis1-VelAct 2024-02-28 12:07:11.054502 68.0625
c6025a:Axis1-VelAct 2024-02-28 12:07:11.064659 58.2187
c6025a:Axis1-VelAct 2024-02-28 12:07:11.074643 48.0937
c6025a:Axis1-VelAct 2024-02-28 12:07:11.084611 38.25
c6025a:Axis1-VelAct 2024-02-28 12:07:11.094559 29.25
c6025a:Axis1-VelAct 2024-02-28 12:07:11.104667 21.375
c6025a:Axis1-VelAct 2024-02-28 12:07:11.114636 14.3437
c6025a:Axis1-VelAct 2024-02-28 12:07:11.124627 9
c6025a:Axis1-VelAct 2024-02-28 12:07:11.134527 4.78125
c6025a:Axis1-VelAct 2024-02-28 12:07:11.144553 1.6875
c6025a:Axis1-EnaAct 2024-02-28 12:07:11.154581 0
c6025a:Axis1-VelAct 2024-02-28 12:07:11.154623 -0.5625
c6025a:m0s005-BO07 2024-02-28 12:07:11.154636 1
c6025a:Axis1-VelAct 2024-02-28 12:07:11.164637 -1.96875
c6025a:m0s005-BO07 2024-02-28 12:07:11.164653 0
c6025a:Axis1-VelAct 2024-02-28 12:07:11.174543 -2.25
c6025a:Axis1-VelAct 2024-02-28 12:07:11.184536 -1.6875
c6025a:Axis1-VelAct 2024-02-28 12:07:11.194595 -1.125
c6025a:Axis1-VelAct 2024-02-28 12:07:11.204578 -0.5625
c6025a:m0s005-BO07 2024-02-28 12:07:11.204628 1
c6025a:Axis1-VelAct 2024-02-28 12:07:11.214568 0

BIN
docs/digital.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 141 KiB

BIN
docs/velo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

View File

@@ -123,7 +123,7 @@ trajectory:
velocity: 500 # Default velo for axis
acceleration: 200 # Default acc for axis
deceleration: 200 # Default dec for axis
emergencyDeceleration: 1000 # Deceleration when axis in error state
emergencyDeceleration: 1200 # Deceleration when axis in error state
jerk: 10 # Default jerk for axis
jog:
velocity: 5 # Default velo fro JOG (motor record)

22
iocsh/readme.md Normal file
View File

@@ -0,0 +1,22 @@
# Start IOC
```
sudo iocsh test_4ax_box.script
```
# Collect data
```
camon -d -t -nostat -nounit -int c6025a:m0s006-BI08 c6025a:m0s005-BO07 c6025a:Axis1-EnaAct c6025a:Axis1-VelAct
# for classic camonitor format:
/usr/local/epics/base-7.0.7/bin/RHEL8-x86_64/camonitor -n c6025a:m0s006-BI08 c6025a:m0s005-BO07 c6025a:Axis1-EnaAct c6025a:Axis1-VelAct
```
# Plot
```
Must be in "classic" camonitor format to use plotCaMonitor.py
Velo:
cat data_log.txt | grep Vel | python3 ~/myhome/sources/ecmccomgui/pyDataManip/plotCaMonitor.py
Digital:
cat data_log.txt | grep -v Vel | python3 ~/myhome/sources/ecmccomgui/pyDataManip/plotCaMonitor.py
```

View File

@@ -12,7 +12,7 @@
##
epicsEnvSet(IOC,c6025a)
require ecmccfg v9.0.1_RC4,"ECMC_VER=v9.0.1_RC4,ENG_MODE=1"
require ecmccfg "ENG_MODE=1"
##############################################################################
## Load components lib
@@ -48,15 +48,15 @@ ${SCRIPTEXEC} ${ECMC_CONFIG_ROOT}loadYamlAxis.cmd, "FILE=./cfg/axis.yaml,LIMIT=1
##############################################################################
## Load safety plugin
#
require ecmc_plugin_safety v9.0.1_RC4
require ecmc_plugin_safety
# Create SS1 group
epicsEnvSet(RAMP_DOWN_CMD,"ec${ECMC_EC_MASTER_ID}.s${DRV_SLAVE}.ZERO.0")
epicsEnvSet(STANDSTILL_STAT,"ec${ECMC_EC_MASTER_ID}.s${DRV_SLAVE}.ZERO.1")
${SCRIPTEXEC} ${ecmc_plugin_safety_DIR}addSS1Group.cmd "NAME=first,EC_RAMP_DOWN_CMD=${RAMP_DOWN_CMD},EC_STANDSTILL_STAT=${STANDSTILL_STAT},DELAY_MS=500"
epicsEnvSet(EC_RAMP_DOWN,"ec${ECMC_EC_MASTER_ID}.s${DRV_SLAVE}.ZERO.0")
epicsEnvSet(EC_AXES_STANDSTILL,"ec${ECMC_EC_MASTER_ID}.s${DRV_SLAVE}.ZERO.1")
${SCRIPTEXEC} ${ecmc_plugin_safety_DIR}addSS1Group.cmd "NAME=first,EC_RAMP_DOWN=${EC_RAMP_DOWN},EC_AXES_STANDSTILL=${EC_AXES_STANDSTILL},DELAY_MS=500"
#- Add axis
${SCRIPTEXEC} ${ecmc_plugin_safety_DIR}addAxisToGroup.cmd "NAME=first,AX_ID=1,VELO_LIM=1"
${SCRIPTEXEC} ${ecmc_plugin_safety_DIR}addAxisToSafetyGroup.cmd "NAME=first,AX_ID=1,VELO_LIM=1"
##############################################################################
## Configure diagnostics:

78
iocsh/test_4ax_box.script Normal file
View File

@@ -0,0 +1,78 @@
##############################################################################
## test config for ecmc_plugin_safety
##
## In this config the interface to safety system is liked to simulated ethercat entries:
## * To allow motion:
## caput c6025a:m0s013-Zero 3
## * To simulate interlock from safety system:
## caput c6025a:m0s013-Zero 0
##
## Monitor status with:
## camon c6025a:SS1-first-Err c6025a:SS1-first-RmpDwnCmdAct c6025a:SS1-first-AxsStndStllAct
##
epicsEnvSet(IOC,c6025a)
require ecmccfg "ENG_MODE=1"
##############################################################################
## Load components lib
#
require ecmccomp
##############################################################################
## Configure hardware
epicsEnvSet("DRV_SLAVE", "7")
${SCRIPTEXEC} ${ecmccfg_DIR}addSlave.cmd, "SLAVE_ID=$(DRV_SLAVE), HW_DESC=EL7041-0052"
${SCRIPTEXEC} ${ecmccomp_DIR}applyComponent.cmd "COMP=Motor-Generic-2Phase-Stepper,MACROS='I_STDBY_MA=200,I_MAX_MA=1000,R_COIL_MOHM=1700'"
epicsEnvSet("ENC_SLAVE", "2")
${SCRIPTEXEC} ${ecmccfg_DIR}addSlave.cmd, "SLAVE_ID=$(ENC_SLAVE), HW_DESC=EL5042"
${SCRIPTEXEC} ${ecmccomp_DIR}applyComponent.cmd "COMP=Encoder-RLS-LA11-24bit-BISS-C"
epicsEnvSet("BO_SLAVE", "5")
${SCRIPTEXEC} ${ecmccfg_DIR}addSlave.cmd, "SLAVE_ID=$(BO_SLAVE), HW_DESC=EL2008"
# This hardware box need to set BO6 to get power
ecmcConfigOrDie "Cfg.WriteEcEntryIDString(${BO_SLAVE},binaryOutput06,1)"
epicsEnvSet("BI_SLAVE", "6")
${SCRIPTEXEC} ${ecmccfg_DIR}addSlave.cmd, "SLAVE_ID=$(BI_SLAVE), HW_DESC=EL1008"
#Apply hardware configuration
ecmcConfigOrDie "Cfg.EcApplyConfig(1)"
##############################################################################
## AXIS 1
#
epicsEnvSet("DEV", "$(IOC)")
epicsEnvSet("PLC_PATH", "/ioc/c6025a5a/ecmccfg/examples/test/ecmccomp/plc/")
${SCRIPTEXEC} ${ECMC_CONFIG_ROOT}loadYamlAxis.cmd, "FILE=./cfg/axis.yaml"
##############################################################################
## Load safety plugin
#
require ecmc_plugin_safety
# Create SS1 group
epicsEnvSet(EC_RAMP_DOWN,"ec${ECMC_EC_MASTER_ID}.s${BI_SLAVE}.binaryInput08.0")
epicsEnvSet(EC_AXES_STANDSTILL,"ec${ECMC_EC_MASTER_ID}.s${BO_SLAVE}.binaryOutput07.0")
epicsEnvSet(SAFETY_TIMEOUT,500)
${SCRIPTEXEC} ${ecmc_plugin_safety_DIR}addSS1Group.cmd "NAME=first,EC_RAMP_DOWN=${EC_RAMP_DOWN},EC_AXES_STANDSTILL=${EC_AXES_STANDSTILL},DELAY_MS=${SAFETY_TIMEOUT}"
#- Add axis
${SCRIPTEXEC} ${ecmc_plugin_safety_DIR}addAxisToSafetyGroup.cmd "NAME=first,AX_ID=1,VELO_LIM=1"
##############################################################################
## Configure diagnostics:
#
ecmcConfigOrDie "Cfg.EcSetDiagnostics(1)"
ecmcConfigOrDie "Cfg.EcEnablePrintouts(0)"
ecmcConfigOrDie "Cfg.EcSetDomainFailedCyclesLimit(100)"
ecmcConfigOrDie "Cfg.SetDiagAxisIndex(1)"
ecmcConfigOrDie "Cfg.SetDiagAxisFreq(2)"
ecmcConfigOrDie "Cfg.SetDiagAxisEnable(0)"
##############################################################################
## go active
#
$(SCRIPTEXEC) ($(ecmccfg_DIR)setAppMode.cmd)

View File

@@ -1,6 +1,6 @@
#==============================================================================
# addAxisToGroup.cmd
# addAxisToSafetyGroup.cmd
#-
#- !!!!!!!!!!!!! IMPORTANT !!!!!!!!!
#- This plugin has _NO_ safety rated functionalities.

View File

@@ -403,12 +403,20 @@ bool ecmcSS1SafetyGroup::checkAxesStandstill() {
// Check standstill axis
bool ecmcSS1SafetyGroup::checkAxisStandstill(safetyAxis* axis) {
double velo = 1;
int err = getAxisTrajVelo(axis->axisId_, &velo);
double traj = 1;
int err = getAxisTrajVelo(axis->axisId_, &traj);
if(err) {
return 0;
}
return std::abs(velo) <= axis->veloLimit_;
double enc = 1;
err = getAxisEncVelo(axis->axisId_, &enc);
if(err) {
return 0;
}
return std::abs(traj) <= axis->veloLimit_ && std::abs(enc) <= axis->veloLimit_;
}
// Check standstill and disable
@@ -469,7 +477,8 @@ void ecmcSS1SafetyGroup::addAxis(int axisId, double veloLimit,int standStillTime
if(cfgDbgMode_) {
printf("Safety %s: Added axis %d to safety group\n",sName_,axisId);
printf("Safety %s: Added axis %d to safety group (velo limit = %lf, standstill filter : %d)\n"
,sName_,axisId,veloLimit,standStillTimeMs);
}
return;