Skip to content

Commit df58610

Browse files
author
Niko Kivel
authored
Merge pull request #118 from paulscherrerinstitute/v7_RC1
V7.0.0
2 parents 8b05370 + 674145a commit df58610

File tree

865 files changed

+11428
-15365
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

865 files changed

+11428
-15365
lines changed

.gitignore

+8
Original file line numberDiff line numberDiff line change
@@ -22,3 +22,11 @@ db/ecmcDS.db
2222
db/empty.db
2323
db/testAIs.db
2424

25+
*LAB_MotionSystems*
26+
*Copley*
27+
*Elmo*
28+
qt
29+
doc
30+
tools
31+
32+
.venv

Changelog.adoc

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# ecmccfg changelog
2+
3+
v7.0.0

GNUmakefile

+5-2
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@ include $(EPICS_MODULES)/makeUtils/latest/utils.mk
33

44
MODULE=ecmccfg
55

6-
LIBVERSION = dev
6+
LIBVERSION = v7_RC1
77

88
BUILDCLASSES = Linux
9-
EXCLUDE_VERSIONS=3 7.0.3
9+
EXCLUDE_VERSIONS = 3 7.0.3 7.0.4.1
1010
ARCH_FILTER=RHEL%
1111

1212
SCRIPTS+=startup.cmd
@@ -26,6 +26,8 @@ DIRS += ${HW_DIR}Beckhoff_9XXX
2626
SCRIPTS += $(foreach d,${DIRS}, $(wildcard $d/*/*.cmd))
2727

2828
SCRIPTS+=$(wildcard ./scripts/*)
29+
SCRIPTS+=$(wildcard ./scripts/jinja2/*)
30+
SCRIPTS+=$(wildcard ./naming/*)
2931
SCRIPTS+=$(wildcard ./general/*)
3032
SCRIPTS+=$(wildcard ./hardware/*/*.cmd)
3133
SCRIPTS+=$(wildcard ./motion/*)
@@ -42,3 +44,4 @@ TEMPLATES+=$(wildcard ./db/*/*.subs)
4244

4345
SOURCES += $(wildcard ./src/*.cpp)
4446
DBDS += $(wildcard ./dbd/*.dbd)
47+

ReadMe.md

+74-54
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,12 @@ This program is free software; you can redistribute it and/or modify
88
it under the terms of the GNU General Public License as published by
99
the Free Software Foundation; either version 3 of the License, or
1010
(at your option) any later version.
11-
11+
1212
This program is distributed in the hope that it will be useful,
1313
but WITHOUT ANY WARRANTY; without even the implied warranty of
1414
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1515
GNU General Public License for more details.
16-
16+
1717
You should have received a copy of the GNU General Public License
1818
along with this program; if not, write to the Free Software Foundation,
1919
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
@@ -23,9 +23,10 @@ by default this module is only build for RHEL7 and Epics >=R7.0.4
2323
```bash
2424
make [LIBVERSION] [clean] install
2525
```
26-
check the module loads for version `dev`, Epics R7.0.4.1 and ECMC version `poslag`, note `MASTER_ID=1` which runs ECMC in master-less mode.
26+
check the module loads for version `dev`, Epics `R7+` and ECMC version `dev`, note `MASTER_ID=-1` which runs ECMC in master-less mode.
27+
Make proper adjustements to match your needs in terms of versions.
2728
```bash
28-
iocsh -7.0.4.1 -r "ecmccfg,dev 'ECMC_VER=posLag,MASTER_ID=-1'"
29+
iocsh -7 -r "ecmccfg,dev 'ECMC_VER=dev,MASTER_ID=-1'"
2930
```
3031

3132
## Purpose
@@ -54,70 +55,89 @@ The configuration framework contains the necessary files to configure an EPICS I
5455
## Example IOC
5556

5657
1. `require` the configuration module with optional version
57-
```bash
58-
require ecmccfg <VERSION>
59-
```
58+
```bash
59+
require ecmccfg <VERSION>
60+
```
6061

6162
2. add a coupler and slave
62-
```bash
63-
# slave 0 {ecmcEK1100}
64-
${SCRIPTEXEC} ${ecmccfg_DIR}addSlave.cmd, "HW_DESC=EK1100"
65-
# SLAVE_ID is automatically incremented
66-
# slave 1 {ecmcEL1018}
67-
${SCRIPTEXEC} ${ecmccfg_DIR}addSlave.cmd, "HW_DESC=EL1018"
68-
# skip slaves 2..6
69-
# slave 7 {ecmcEL2008}, with optional SLAVE_ID
70-
${SCRIPTEXEC} ${ecmccfg_DIR}addSlave.cmd, "HW_DESC=E2008, SLAVE_ID=7"
71-
```
63+
```bash
64+
# slave 0 {ecmcEK1100}
65+
${SCRIPTEXEC} ${ECMC_CONFIG_ROOT}addSlave.cmd, "HW_DESC=EK1100"
66+
# SLAVE_ID is automatically incremented
67+
# slave 1 {ecmcEL1018}
68+
${SCRIPTEXEC} ${ECMC_CONFIG_ROOT}addSlave.cmd, "HW_DESC=EL1018"
69+
# skip slaves 2..6
70+
# slave 7 {ecmcEL2008}, with optional SLAVE_ID
71+
${SCRIPTEXEC} ${ECMC_CONFIG_ROOT}addSlave.cmd, "HW_DESC=E2008, SLAVE_ID=7"
72+
#-- ATTENTION, this only work for certain slaves, as the EPICS templates have to be migrated before
73+
# slave 9 {ecmcEL2008}, with optional SLAVE_ID and P_SCRIPT
74+
${SCRIPTEXEC} ${ECMC_CONFIG_ROOT}addSlave.cmd, "HW_DESC=E2008, SLAVE_ID=7, P_SCRIPT=mXsXXX"
75+
```
7276
3. add more slaves and apply configuration to the slaves
73-
```bash
74-
# slave 8 {ecmcEL7037}, configure slave with optional SLAVE_ID
75-
${SCRIPTEXEC} ${ecmccfg_DIR}configureSlave.cmd, "HW_DESC=EL7037, CONFIG=-Motor-Nanotec-ST4118L1804-B, SLAVE_ID=8"
76-
# slave 9 {ecmcEL7037}, addSlave, with immediate call off applySlaveConfig
77-
# slave with global configuration
78-
${SCRIPTEXEC} ${ecmccfg_DIR}addSlave.cmd, "HW_DESC=EL7037"
79-
${SCRIPTEXEC} ${ecmccfg_DIR}applySlaveConfig, "CONFIG=-Motor-Nanotec-ST4118L1804-B"
80-
# slave with local configuration, in this case provided by the module `ECMC_AGIR`
81-
epicsEnvSet("CFG_ROOT", "${ECMC_AGIR_DIR}/")
82-
${SCRIPTEXEC} ${ecmccfg_DIR}addSlave.cmd, "HW_DESC=EP7211-0034_ALL"
83-
${SCRIPTEXEC} ${ecmccfg_DIR}applySlaveConfig.cmd, "LOCAL_CONFIG=${CFG_ROOT}AM8211_AGIR.cfg"
84-
85-
```
77+
```bash
78+
# slave 8 {ecmcEL7037}, configure slave with optional SLAVE_ID
79+
${SCRIPTEXEC} ${ECMC_CONFIG_ROOT}configureSlave.cmd, "HW_DESC=EL7037, CONFIG=-Motor-Nanotec-ST4118L1804-B, SLAVE_ID=8"
80+
# slave 9 {ecmcEL7037}, addSlave, with immediate call off applySlaveConfig
81+
# slave with global configuration
82+
${SCRIPTEXEC} ${ECMC_CONFIG_ROOT}addSlave.cmd, "HW_DESC=EL7037"
83+
${SCRIPTEXEC} ${ECMC_CONFIG_ROOT}applySlaveConfig, "CONFIG=-Motor-Nanotec-ST4118L1804-B"
84+
# slave with local configuration, in this case provided by the module `ECMC_AGIR`
85+
epicsEnvSet("CFG_ROOT", "${ECMC_AGIR_DIR}/")
86+
${SCRIPTEXEC} ${ECMC_CONFIG_ROOT}addSlave.cmd, "HW_DESC=EP7211-0034_ALL"
87+
${SCRIPTEXEC} ${ECMC_CONFIG_ROOT}applySlaveConfig.cmd, "LOCAL_CONFIG=${CFG_ROOT}AM8211_AGIR.cfg"
88+
```
8689

8790
4. apply the configuration
88-
```bash
89-
${SCRIPTEXEC} ${ecmccfg_DIR}applyConfig.cmd
90-
```
91+
```bash
92+
${SCRIPTEXEC} ${ECMC_CONFIG_ROOT}applyConfig.cmd
93+
```
9194

9295
5. additional configuration
93-
```bash
94-
ecmcConfigOrDie "Cfg.WriteEcEntryIDString(${ECMC_EC_SLAVE_NUM_DIG_OUT},BO_1,1)"
95-
```
96+
97+
manually set `binaryOutput01` to `1`
98+
99+
```bash
100+
ecmcConfigOrDie "Cfg.WriteEcEntryIDString(${ECMC_EC_SLAVE_NUM_DIG_OUT},binaryOutput01,1)"
101+
```
96102

97103
6. adding a physical motor axis
98-
```bash
99-
epicsEnvSet("DEV", "STEST-MYDEVICE")
100-
${SCRIPTEXEC} ${ecmccfg_DIR}configureAxis.cmd, "CONFIG=./cfg/axis_1"
101-
```
104+
105+
* classic config
106+
```bash
107+
epicsEnvSet("DEV", "STEST-MYDEVICE")
108+
${SCRIPTEXEC} ${ECMC_CONFIG_ROOT}configureAxis.cmd, "CONFIG=./cfg/axis_1"
109+
```
110+
* yaml config
111+
```bash
112+
${SCRIPTEXEC} ${ECMC_CONFIG_ROOT}addAxisYaml.cmd, "FILE=./AM8111_CSV_minimum.yaml, ECMC_TMPDIR=/tmp/"
113+
```
102114

103115
7. adding a virtual motor axis
104-
```bash
105-
${SCRIPTEXEC} ${ecmccfg_DIR}configureVirtualAxis.cmd, "CONFIG=./cfg/axis_11_virt"
106-
```
116+
```bash
117+
${SCRIPTEXEC} ${ecmccfg_DIR}configureVirtualAxis.cmd, "CONFIG=./cfg/axis_11_virt"
118+
```
107119

108120
8. adding synchronization
109-
```bash
110-
${SCRIPTEXEC} ${ecmccfg_DIR}applyAxisSynchronization.cmd, "CONFIG=./cfg/axis_1_sync"
111-
${SCRIPTEXEC} ${ecmccfg_DIR}applyAxisSynchronization.cmd, "CONFIG=./cfg/axis_11_sync"
112-
```
121+
```bash
122+
${SCRIPTEXEC} ${ecmccfg_DIR}applyAxisSynchronization.cmd, "CONFIG=./cfg/axis_1_sync"
123+
${SCRIPTEXEC} ${ecmccfg_DIR}applyAxisSynchronization.cmd, "CONFIG=./cfg/axis_11_sync"
124+
```
113125

114126
9. loading a PLC from file
115-
```bash
116-
${SCRIPTEXEC} ${ecmccfg_DIR}loadPLCFile.cmd, "PLC_ID=0, FILE=./plc/homeSlit.plc, SAMPLE_RATE_MS=100"
117-
```
127+
* classic PLC-file
128+
```bash
129+
${SCRIPTEXEC} ${ecmccfg_DIR}loadPLCFile.cmd, "PLC_ID=0, FILE=./plc/homeSlit.plc, SAMPLE_RATE_MS=100"
130+
```
131+
* pure yaml based PLC
132+
```bash
133+
${SCRIPTEXEC} "${ECMC_CONFIG_ROOT}loadYamlPlc.cmd" "FILE=./plc1.yaml, ECMC_TMPDIR=/tmp/"
134+
```
135+
* yaml definition, with classic PLC-file, Note: `file` key in yaml config will overwrite anything in the `code` key!
136+
```bash
137+
${SCRIPTEXEC} "${ECMC_CONFIG_ROOT}loadYamlPlc.cmd" "FILE=./plc1File.yaml, ECMC_TMPDIR=/tmp/"
138+
```
118139

119140
10. go active
120-
```bash
121-
${SCRIPTEXEC} ${ecmccfg_DIR}setAppMode.cmd
122-
```
123-
141+
```bash
142+
${SCRIPTEXEC} ${ecmccfg_DIR}setAppMode.cmd
143+
```

TestedTerminals_v7_RC1.md

+45
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
## Terminals tested with new naming in branch v7_RC1
2+
* c9900-M995
3+
* EK1100
4+
* EK1110
5+
* EK1122
6+
* EL1018
7+
* EL1014
8+
* EL1088
9+
* EL1252
10+
* EL1809
11+
* EL2014
12+
* EL2502
13+
* EL2521
14+
* EL2522
15+
* EL2808
16+
* EL2819
17+
* EL3174 (tested +-10V with signal generator)
18+
* EL3208
19+
* EL3214
20+
* EL3314
21+
* EL3255 (with potentiometer)
22+
* EL3602
23+
* ELM3602
24+
* ELM3604
25+
* EL3702
26+
* EL3742 (without signal)
27+
* EL3751 (tested +-10V with signal generator)
28+
* EL4002
29+
* EL4134
30+
* EL4732 (tested but without signal generator and scope)
31+
* EL5002 (with wachendorf SSI)
32+
* EL5021 (without encoder)
33+
* EL5101 (encoder control only partly)
34+
* EL5101-0011
35+
* EL5042 (with SSI encoder)
36+
* EL6002
37+
* EL6022
38+
* EL6090
39+
* EL7031 (There are encoder latch PVs. I think the hardware not supports this)
40+
* EL7037 (not the encoder control)
41+
* EL7041 (without motor)
42+
* EL7411
43+
* EL7411_CSP
44+
* EL9505
45+
* EL9410

db/Baumer/ecmcEAM580.substitutions

-11
This file was deleted.

db/Baumer/ecmcEAM580.template

-22
This file was deleted.

0 commit comments

Comments
 (0)