6 Commits

Author SHA1 Message Date
sandst_a db80d255de Add PLC desc 2024-10-02 11:11:09 +02:00
sandst_a 2c12d995df Update readme 2024-09-26 16:30:37 +02:00
sandst_a 4a65e3b753 Update readme 2024-09-26 16:29:35 +02:00
sandst_a 1c7e7793eb Update readme 2024-09-26 16:28:43 +02:00
sandst_a fd0f594c08 Add startup file to Makefile 2024-09-26 16:09:01 +02:00
sandst_a 1ccabdf578 Remove version in examples 2024-09-26 16:05:06 +02:00
4 changed files with 16 additions and 14 deletions
+1
View File
@@ -6,6 +6,7 @@ BUILDCLASSES = Linux
ARCH_FILTER = deb10% ARCH_FILTER = deb10%
EXCLUDE_VERSIONS+=3 7.0.5 7.0.6 EXCLUDE_VERSIONS+=3 7.0.5 7.0.6
SCRIPTS += startup.cmd
SCRIPTS += axis_sm.plc_inc SCRIPTS += axis_sm.plc_inc
SCRIPTS += axis_kin_slit.plc_inc SCRIPTS += axis_kin_slit.plc_inc
SCRIPTS += axis_kin_mirror.plc_inc SCRIPTS += axis_kin_mirror.plc_inc
+11 -10
View File
@@ -8,21 +8,22 @@ Syncronazation can be done both by defining the forward adn inverse kinematcis a
The module implement 5 generic syncronazation scripts based on the matrix approach: The module implement 5 generic syncronazation scripts based on the matrix approach:
* axis_kin_2DoF.plc_inc : Kinematics for a 2 Dof system (slits) * axis_kin_2DoF.plc_inc : Kinematics for a 2 Dof system (slits)
* axis_kin_3DoF.plc_inc : Kinematics for a 3 Dof system (slits) * axis_kin_3DoF.plc_inc : Kinematics for a 3 Dof system
* axis_kin_4DoF.plc_inc : Kinematics for a 4 Dof system (slits) * axis_kin_4DoF.plc_inc : Kinematics for a 4 Dof system
* axis_kin_5DoF.plc_inc : Kinematics for a 5 Dof system (slits) * axis_kin_5DoF.plc_inc : Kinematics for a 5 Dof system
* axis_kin_6DoF.plc_inc : Kinematics for a 6 Dof system (slits) * axis_kin_6DoF.plc_inc : Kinematics for a 6 Dof system
and 2 dedicated: and 2 dedicated:
* axis_kin_slit.plc_inc : Dedicated script for a slit system based on equations (including interlocks and softlimits) * axis_kin_slit.plc_inc : Dedicated script for a slit system based on equations (including interlocks and softlimits)
* axis_kin_mirror.plc_inc : Dedicated script for a 5 DoF mirror based on matrices * axis_kin_mirror.plc_inc : Dedicated script for a 5 DoF mirror system based on matrices
### Generic scripts (axis_kin_xDoF.plc_inc) ### Generic scripts (axis_kin_\<index\>DoF.plc_inc)
The generic scripts needs a few macros: The generic scripts needs a few macros:
* AX_S\<index\> : Axis index for slave axes 1..DoF * AX_S\<index\> : Axis index for slave axes, index = 1..DoF
* AX_M\<index\> : Axis index for master axes 1..DoF * AX_M\<index\> : Axis index for master axes, index = 1..DoF
* FWD\<index\ : Forward kinematics array 1..DoF * FWD\<index\> : Forward kinematics array, index = 1..DoF
* INV\<index\ : Inverse kinematics array 1..DoF * INV\<index\> : Inverse kinematics array, index = 1..DoF
## State machine ## State machine
The state machine makes sure that master and slaved axes cannot run simultaneous. However, several master axes or several slave axes can run at the same time. The state machine makes sure that master and slaved axes cannot run simultaneous. However, several master axes or several slave axes can run at the same time.
@@ -6,7 +6,7 @@ require ecmccfg,"ENG_MODE=1,EC_RATE=100"
require ecmccomp require ecmccomp
#- Syncronization configs #- Syncronization configs
require ecmc_master_slave sandst_a require ecmc_master_slave
#- Only output errors #- Only output errors
asynSetTraceMask(${ECMC_ASYN_PORT}, -1, 0x01) asynSetTraceMask(${ECMC_ASYN_PORT}, -1, 0x01)
+3 -3
View File
@@ -1,11 +1,11 @@
#- Configuration scripts #- Configuration scripts
require ecmccfg,"ENG_MODE=1,EC_RATE=100" require ecmccfg sandst_a "ENG_MODE=1,EC_RATE=100"
#- Components lib #- Components lib
require ecmccomp require ecmccomp
#- Syncronization configs #- Syncronization configs
require ecmc_master_slave sandst_a require ecmc_master_slave
#- Only output errors #- Only output errors
asynSetTraceMask(${ECMC_ASYN_PORT}, -1, 0x01) asynSetTraceMask(${ECMC_ASYN_PORT}, -1, 0x01)
@@ -17,7 +17,7 @@ asynSetTraceMask(${ECMC_ASYN_PORT}, -1, 0x01)
#- ################################################################# #- #################################################################
#- PLCs with kinematics (note the INC var including dirs to search for include files) #- PLCs with kinematics (note the INC var including dirs to search for include files)
#- The group ID:s configured in yaml are stored in GRP_<axis.group>_ID #- The group ID:s configured in yaml are stored in GRP_<axis.group>_ID
${SCRIPTEXEC} ${ecmccfg_DIR}loadPLCFile.cmd, "FILE=./cfg/axis_main.plc, PLC_ID=1, INC=.:${ecmc_master_slave_DIR}, PLC_MACROS='PLC_ID=1, AX_M1=12, AX_M2=13, AX_S1=5, AX_S2=6, GRP_ID_SA=${GRP_realAxes_ID}, GRP_ID_MA=${GRP_virtualAxes_ID}'" ${SCRIPTEXEC} ${ecmccfg_DIR}loadPLCFile.cmd, "FILE=./cfg/axis_main.plc, PLC_ID=1, INC=.:${ecmc_master_slave_DIR}, DESC='Slit Kinematics and Statemachine', PLC_MACROS='PLC_ID=1, AX_M1=12, AX_M2=13, AX_S1=5, AX_S2=6, GRP_ID_SA=${GRP_realAxes_ID}, GRP_ID_MA=${GRP_virtualAxes_ID}'"
#- ################################################################# #- #################################################################
#- go active #- go active