Technosoft iPOS4808, iPOS8020

iPOSXXXX

Main use cases for Technosoft drives at PSI are applications requiring:

  • High currents
  • STO (Safe Torque Off)
  • DC motors

Configuration

Technosoft drives are powerful, but interfacing them is not easy. Many configurations are not exposed as simple CoE SDOs, so a base configuration in one of the Technosoft software tools needs to be generated and downloaded before the drive is used the first time (only needed once). These configurations contain the main part of the setup, and only small tweaks can be made over SDOs by the EtherCAT master.

These configurations can be transferred in several ways:

  • RS232: Technosoft Easy Motion Studio 1, EasySetup
  • RS232: Technosoft Easy Motion Studio 2
  • CoE: CAN bus over EtherCAT, mailbox protocol (by writing to generic memory interface addresses; not intuitive)
  • FoE: File over EtherCAT, mailbox protocol (Easy Motion Studio 2 -> Export -> FoE -> Complete Config)

In order to avoid downloading configs to each drive via local RS232, a few generic configurations have been developed and FoE and/or CoE configurations have been generated:

  1. Open-loop stepper, 48V, STO (no support for encoders). Encoders need to be connected to other EtherCAT slaves like EL5042 or EL5102.
  • Max current, standby current, and current-control parameters can be set over SDO.
  1. Pure voltage control for brushed DC motors

These configuration files can be found in ecmccfg/hardware/Technosoft_slaves/config/.

Note: These configurations are very basic and do not allow use of all hardware supported by the drive. Not supported:

  • Encoders (not possible to configure over SDOs), need a dedicated configuration file for each BISS bit count.

Download config over FoE (File over EtherCAT)

NOTE: The configuration is only needed to be downloaded once before first use of drive!

Requirements from Technosoft CoE manual (https://technosoftmotion.com/wp-content/uploads/2019/10/P091.064.EtherCAT.iPOS_.UM.pdf):

  1. Find an appropriate configuration in ecmccfg/hardware/Technosoft_slaves/config/
  2. The FoE file must start with “FOESW_”.
  3. The entire FoE file name length must not exceed 14 characters (including extension).
  4. A setup data file can be transferred via FoE protocol only in BOOT (manual states differently, but mailbox size in OP and PREOP is wrong).
  5. The password to program a FoE setup data file is 0 (seems to not be used).

Configure drive (download file, write file)

  1. Identify correct bin configuration file (see sub-dirs in “ecmccfg/hardware/Technosoft_slaves/config/")
  2. Allow writes in BOOT by writing 1 to 0x210c 0x0: ethercat download -m<masterid> -p<slaveid> 0x210c 0x0 1
  3. Set drive EtherCAT state to BOOT (even though the manual states download should be made in PREOP, OP or SAFEOP): ethercat states -m<masterid> -p<slaveid> BOOT
  4. Download file: ethercat -m<masterid> -p<slaveid> foe_write <filename>
  5. Power cycle of drive is needed in order to load the new config.

Example

Example for:

  • Master id: 0
  • Slave id: 21
  • Config file (binary): “FOESW_OL48.bin”
# 2. Allow FoE in state BOOT
ethercat download -m0 -p21 0x210c 0x0 1
# 3a. Set slave into state BOOT
ethercat states -m0 -p21 BOOT
# 3b. Check that slave is in boot state
ethercat slaves
# 4. Download configuration file
ethercat foe_write -m0 -p21 FOESW_OL48.bin
# 5. Now power cycle drive

Upload file (read file)

NOTE 1: Normally upload of the configuration is not needed!

  1. You must know the name of the file on the slave
  2. ethercat -m<masterid> -p<slaveid> foe_read <filename> > <output filename>

Note: It seems -o or --output-file is not working.

Example

ethercat -m0 -p0 foe_read FOESW_8020.bin > test.bin

Generate new config file in EasyMotion Studio 1

  1. Make your configuration
  2. Application->Create EtherCAT FOE File->Setup Only
  3. Choose filename and save (note: max 14 chars).
  4. Store the file in ecmccfg/hardware/Technosoft_slaves/config/FoE/<suitable_dir_name>/<suitable_file_name>
  5. Add a README.md file in ecmccfg/hardware/Technosoft_slaves/config/FoE/<suitable_dir_name>/ describing the config:
  • Drive type (8020BX-CAT or 4808BX-CAT)
  • DC-link voltage (48V)
  • Control mode (normally always CSV)

ECMC example configuration for iPOS4808

require ecmccfg "ENG_MODE=1"

#- Note the "_2" in iPOS4808BX_2
${SCRIPTEXEC} ${ecmccfg_DIR}addSlave.cmd, "SLAVE_ID=21, HW_DESC=iPOS4808BX_2"
epicsEnvSet("ECMC_EC_SLAVE_NUM_DRIVE",        "$(ECMC_EC_SLAVE_NUM)")

#- NOTE USE HW_DESC = iPOS4808BX_2  (iPOS4808BX is for legacy)

#- Apply component: Oriental motor PKE244A
#- For IPOS4808 some macros are mandatory:
#-  * I_CTRL_GAIN   : Current loop gain
#-  * I_CTRL_INT    : Current loop integrator gain
#-  * I_MAX_MA      : Mandatory if Motor-Generic-2Phase-Stepper is used
#-  * I_STDBY_MA    : Mandatory if Motor-Generic-2Phase-Stepper is used
#- The values can be taken from EasyMotionStudio or by trial and error (coil resistance and inductance are not used in the iPOS cfgs)
#- After running a tuning test in EasyMotionStudio, a reset is needed (from Easy Motion Studio or over SDO; see motor cfg scripts).
${SCRIPTEXEC} ${ecmccfg_DIR}applyComponent.cmd "COMP=Motor-Generic-2Phase-Stepper,  MACROS='I_MAX_MA=1000,I_STDBY_MA=100,CURR_KP=1.0,CURR_TI=0.26'"

#- #############################################################################
#- AXIS 1
#- The reduced current will be applied automatically by the iPOS4808 (no links needed in axis cfgs)
#- $(SCRIPTEXEC) ($(ecmccfg_DIR)configureAxis.cmd, CONFIG=./cfg/ipos4808_1.ax)
${SCRIPTEXEC} ${ecmccfg_DIR}loadYamlAxis.cmd,   "FILE=./cfg/axis.yaml,               DEV=${IOC}, AX_NAME=M1, AXIS_ID=1, DRV_SID=${ECMC_EC_SLAVE_NUM}"