Jump to content
OMRON Forums

sutty

Members
  • Posts

    80
  • Joined

  • Last visited

  • Days Won

    2

Everything posted by sutty

  1. Hey, Alex, great, this is all it needed. Now the stepper runs as PPMAC motor #8 as usually known! Thank you for your troubles!!
  2. Hi Alex! After changing phase/servo/RTI from 32/16/4 to 8/2/2 ecattypedsdo() work fine. So back to the drive-enable-fail - which still is present. I set Motor[8].EcatAmpFaultLimit=$1000 Then on a "#8j/" the motor produces torque after about 2s for about 2s. Motor[8].AmpEna never get set. Can you offer some quick fix for this and how long will it take - day/week/month/year/ever?!
  3. Hi Alex! I've changed Phase/Servo/RTI from 32/16/4 to 8/2/2 kHz - now ecattypedsdo() reads values: l0=ecattypedsdo(0,1,1,$1000,$0,0,4) l0 L0=131474 l0=ecattypedsdo(0,1,1,$2002,$14,0,4) l0 L0=150 l0=ecattypedsdo(0,1,1,$2002,$15,0,4) l0 L0=37 But in the motor topology still the drive EL7211-0011 does not show up!! Will you provide a bugfix for ecattypedsdo() in case of high phase-frequencies (32kHz)?
  4. Hi Alex! I set up EK1100 and EL7211-0011 and issued ecatslaves, ecatreset, ecattypedsdo(). Still bad results: ecatslaves 0 VID=$00000002 PC=$044C2C52 0:0 PREOP + Slave_001 1 VID=$00000002 PC=$1C2B3052 0:1 PREOP + Slave_002 ecatreset Stopping ACONTIS communication Starting ACONTIS communication Restarting ACONTIS stack Licenses granted by /opt/etherlab/etc/sysconfig/.ethercat: 8; MACID:00:50:C2:4D:79:9D Ecat Type: 1; ECAT License for 32 axis 0 VID=$00000002 PC=$044C2C52 0:0 PREOP + ?v?" 1 VID=$00000002 PC=$1C2B3052 0:1 PREOP + ?v?" l0=ecattypedsdo(0,1,1,$8010,$15,0,4) l0 L0=nan l0=ecattypedsdo(0,1,1,$1000,0,0,4) l0 L0=nan ECAT[0].Enable=1 ecatslaves 0 VID=$00000002 PC=$044C2C52 0:0 OP + Slave_1001 [EK1100] 1 VID=$00000002 PC=$1C2B3052 0:1 OP + Slave_1002 [EL7211-0011] l0=ecattypedsdo(0,1,1,$8010,$15,0,4) l0 requested data size: 4 and received data size: 20 do not match L0=nan l0=ecattypedsdo(0,1,1,$1000,0,0,4) l0 L0=nan l0=ecattypedsdo(0,1,1,$8010,$15,0,4) l0 requested data size: 4 and received data size: 20 do not match L0=nan ?? We could start a remote-session - if that would help to advance here!
  5. Yes, AmpEnable PDO is a single bit in 0x7010:01 (all pdo-mappings are shown in the pic above) You did not tell me yet how to set up the drive so it shows up as servo drive in the motor topology view
  6. EK1100 is the ECAT-coupler, and needed absolutely. I could test EK1100 together with EL7211-0011
  7. On the EL7211 and 1S-drive those 2 bits (AmpFault, AmpEna) are important to set them right. On the EL7031 I have to set them to 0 since related PDOs are bit-wide.But still, the Amp-Enable Motor[8].AmpEna does not come up at all!!
  8. Hi Alex! Well the setting changes now and then. At the moment I run 3 drives (EL7211-0011, EL7031, EL7211-0010) and 5 IO-terminals. Here the results of the 3 cmds: ecat slaves 0 VID=$00000002 PC=$044C2C52 0:0 OP + Slave_1001 [EK1100] 1 VID=$00000002 PC=$1C2B3052 0:1 OP + Slave_1002 [EL7211-0011] 2 VID=$00000002 PC=$1B773052 0:2 OP + Slave_1003 [EL7031] 3 VID=$00000002 PC=$1C2B3052 0:3 OP + Slave_1004 [EL7211-0010] 4 VID=$00000002 PC=$07D43052 0:4 OP + Slave_1005 [EL2004] 5 VID=$00000002 PC=$07D43052 0:5 OP + Slave_1006 [EL2004] 6 VID=$00000002 PC=$03FA3052 0:6 OP + Slave_1007 [EL1018] 7 VID=$00000002 PC=$03EC3052 0:7 OP + Slave_1008 [EL1004] 8 VID=$00000002 PC=$03EC3052 0:8 OP + Slave_1009 [EL1004] ecatreset Stopping ACONTIS communication Starting ACONTIS communication Restarting ACONTIS stack Licenses granted by /opt/etherlab/etc/sysconfig/.ethercat: 8; MACID:00:50:C2:4D:79:9D Ecat Type: 1; ECAT License for 32 axis 0 VID=$00000002 PC=$044C2C52 0:0 OP + ??v?" 1 VID=$00000002 PC=$1C2B3052 0:1 SAFEOP + ??v?" 2 VID=$00000002 PC=$1B773052 0:2 SAFEOP + ??v?" 3 VID=$00000002 PC=$1C2B3052 0:3 SAFEOP + ??v?" 4 VID=$00000002 PC=$07D43052 0:4 OP + ??v?" 5 VID=$00000002 PC=$07D43052 0:5 OP + ??v?" 6 VID=$00000002 PC=$03FA3052 0:6 OP + ??v?" 7 VID=$00000002 PC=$03EC3052 0:7 OP + ??v?" 8 VID=$00000002 PC=$03EC3052 0:8 OP + ??v?" l0=ecattypedsdo(0,0,1,$1000,0,0,4) l0 L0=nan
  9. I did setup EL7211 manually - and it runs! I "copied" it from a 1S-drive. But in all cases, if both, Motor[x].AmpEnableBit and Motor[x].AmpFaultBit are not set right, it would not run - in contratiction to the manual... Well, let me know Eric!! At last, I guess, the MDP703, which this EL7031 runs on, causes the problems (it has not MDP742 nor DS402). Therein I only get the status bitwise - check out the pic with the pdo-mapping above.
  10. Hi Eric! There is no way to integrate the ECAT-drive EL7031 using motor topology. See thread: http://forums.deltatau.com/showthread.php?tid=3056 I did a plot where you can see, Motor8].AmpEna remains 0 all the time. The same for ECAT[0].IO[4101].Data whereto Motor[8].pAmpFault is pointing to. Here the most important settings for motor #8: Motor[8].pDac=ECAT[0].IO[5].Data.a Motor[8].AmpEnableBit=0 Motor[8].pAmpEnable=ECAT[0].IO[2].Data.a Motor[8].AmpFaultBit=0 Motor[8].pAmpFault=ECAT[0].IO[4101].Data.a Motor[8].EcatAmpFaultLimit=$500 Here PDO-Mapping ECATconfig.cfg: ECAT[0].IO[4098].BitLength=1 ECAT[0].IO[4098].Index=24592 ECAT[0].IO[4098].SubIndex=1 ECAT[0].IO[4098].Input=1 ECAT[0].IO[4098].Offset=6 ECAT[0].IO[4098].BitPosition=0 ECAT[0].IO[4098].Slave=2 ECAT[0].IO[4099].BitLength=1 ECAT[0].IO[4099].Index=24592 ECAT[0].IO[4099].SubIndex=2 ECAT[0].IO[4099].Input=1 ECAT[0].IO[4099].Offset=6 ECAT[0].IO[4099].BitPosition=1 ECAT[0].IO[4099].Slave=2 ECAT[0].IO[4100].BitLength=1 ECAT[0].IO[4100].Index=24592 ECAT[0].IO[4100].SubIndex=3 ECAT[0].IO[4100].Input=1 ECAT[0].IO[4100].Offset=6 ECAT[0].IO[4100].BitPosition=2 ECAT[0].IO[4100].Slave=2 ECAT[0].IO[4101].BitLength=1 ECAT[0].IO[4101].Index=24592 ECAT[0].IO[4101].SubIndex=4 ECAT[0].IO[4101].Input=1 ECAT[0].IO[4101].Offset=6 ECAT[0].IO[4101].BitPosition=3 ECAT[0].IO[4101].Slave=2 ECAT[0].IO[4102].BitLength=1 ECAT[0].IO[4102].Index=24592 ECAT[0].IO[4102].SubIndex=5 ECAT[0].IO[4102].Input=1 ECAT[0].IO[4102].Offset=6 ECAT[0].IO[4102].BitPosition=4 ECAT[0].IO[4102].Slave=2 ECAT[0].IO[4103].BitLength=1 ECAT[0].IO[4103].Index=24592 ECAT[0].IO[4103].SubIndex=6 ECAT[0].IO[4103].Input=1 ECAT[0].IO[4103].Offset=6 ECAT[0].IO[4103].BitPosition=5 ECAT[0].IO[4103].Slave=2 ECAT[0].IO[4104].BitLength=1 ECAT[0].IO[4104].Index=24592 ECAT[0].IO[4104].SubIndex=7 ECAT[0].IO[4104].Input=1 ECAT[0].IO[4104].Offset=6 ECAT[0].IO[4104].BitPosition=6 ECAT[0].IO[4104].Slave=2 ECAT[0].IO[4105].BitLength=1 ECAT[0].IO[4105].Index=24592 ECAT[0].IO[4105].SubIndex=12 ECAT[0].IO[4105].Input=1 ECAT[0].IO[4105].Offset=7 ECAT[0].IO[4105].BitPosition=3 ECAT[0].IO[4105].Slave=2 ECAT[0].IO[4106].BitLength=1 ECAT[0].IO[4106].Index=24592 ECAT[0].IO[4106].SubIndex=13 ECAT[0].IO[4106].Input=1 ECAT[0].IO[4106].Offset=7 ECAT[0].IO[4106].BitPosition=4 ECAT[0].IO[4106].Slave=2 ECAT[0].IO[4107].BitLength=1 ECAT[0].IO[4107].Index=24592 ECAT[0].IO[4107].SubIndex=14 ECAT[0].IO[4107].Input=1 ECAT[0].IO[4107].Offset=7 ECAT[0].IO[4107].BitPosition=5 ECAT[0].IO[4107].Slave=2 ECAT[0].IO[4108].BitLength=1 ECAT[0].IO[4108].Index=24592 ECAT[0].IO[4108].SubIndex=16 ECAT[0].IO[4108].Input=1 ECAT[0].IO[4108].Offset=7 ECAT[0].IO[4108].BitPosition=7 ECAT[0].IO[4108].Slave=2 ECAT[0].IO[4109].BitLength=32 ECAT[0].IO[4109].Index=24592 ECAT[0].IO[4109].SubIndex=21 ECAT[0].IO[4109].Input=1 ECAT[0].IO[4109].Offset=8 ECAT[0].IO[4109].BitPosition=0 ECAT[0].IO[4109].Slave=2 ECAT[0].IO[2].BitLength=1 ECAT[0].IO[2].Index=28688 ECAT[0].IO[2].SubIndex=1 ECAT[0].IO[2].Input=0 ECAT[0].IO[2].Offset=6 ECAT[0].IO[2].BitPosition=0 ECAT[0].IO[2].Slave=2 ECAT[0].IO[3].BitLength=1 ECAT[0].IO[3].Index=28688 ECAT[0].IO[3].SubIndex=2 ECAT[0].IO[3].Input=0 ECAT[0].IO[3].Offset=6 ECAT[0].IO[3].BitPosition=1 ECAT[0].IO[3].Slave=2 ECAT[0].IO[4].BitLength=1 ECAT[0].IO[4].Index=28688 ECAT[0].IO[4].SubIndex=3 ECAT[0].IO[4].Input=0 ECAT[0].IO[4].Offset=6 ECAT[0].IO[4].BitPosition=2 ECAT[0].IO[4].Slave=2 ECAT[0].IO[5].BitLength=16 ECAT[0].IO[5].Index=28688 ECAT[0].IO[5].SubIndex=33 ECAT[0].IO[5].Input=0 ECAT[0].IO[5].Offset=8 ECAT[0].IO[5].BitPosition=0 ECAT[0].IO[5].Slave=2 With Motor[8].EcatAmpFaultLimit=$500 (@4kHz RTI it is 320 ms) the plot looks like as follows: ECAT[0].IO[2].Data which is bitlenght 1 in the pdo-mapping goes 14 - 7 - 15 - 14 - at the end is set during 640 ms to 1 but then reset again. The drive itself also gets enable for about that time (640 ms).
  11. Hi Alex! I've changed from MDP472 to DS402, but still the same bad result as before. The function ecattypedsdo() returns nan all the way. ???!
  12. I've changed the drive terminal EL7211-0010 (MDP742) to an EL7211-0011 (DS402) by updating its EEPROM. But still it does not show up in the motors topology as a drive-selection...
  13. Hi everybody! Testing an EL7031, a stepper drive terminal, everything works so far until I added that ECAT-drive to PPMAC-motor #8, concerning Motor[8].AmpEna: Entering "#8j/" or "#8out0" will enable the drive and power the motor just for the length of Motor[8].EcatAmpFaultLimit. Meanwhile Motor[8].AmpEna does not go to 1 a single time - and so at the end causes an amp-fault-indication at the status for motor #8. By hand I can enable the drive steadily by writing to ECAT[0].IO[2].Data=1 as long until I reset it back to 0. I can move the motor forth and back by writing to another register (drive is in Pos-Mode). No deal. I tried everything around Motor[8].pAmpEnable, AmpEnableBit... no chance. Apparently it runs on MDP 703: https://download.beckhoff.com/download/document/io/ethercat-terminals/el70x1en.pdf Does anybody has an idea about that issue? Probably this is a terminal never been tested with PPMAC - nevertheless, since this is the only missing link, does anybody know a way to fix this so I can implement that ECAT-drive entirely as a PPMAC-motor
  14. Until now I used MDP742 (default for all Beckhoff terminals) - but will change to DS402 soon. Maybe this will help to let the drive show up in the motor topology...
  15. Hi Alex! That is right - the device is setup with MDP742. I will follow your advice and get back to you by then. Thank you so long, Anton
  16. Hi Eric! I gave it a try - both, with ECAT disabled / enabled. No good: ecat[0].enable=0 l0=ecattypedsdo(0,0,1,$6061,0,0,1) l0 L0=nan l0=ecattypedsdo(0,0,1,$6061,0,0,1) l0 L0=nan l0=ecattypedsdo(0,0,1,$6060,0,0,1) l0 L0=nan l0=ecattypedsdo(0,0,1,$6060,0,0,1) l0 L0=nan l0=ecatregreadwrite(0,0,1,$6060,0,1) l0 L0=nan l0=ecatregreadwrite(0,0,1,$6060,0,2) l0 L0=nan l0=ecatregreadwrite(0,0,1,$6060,0,4) l0 L0=nan l0=ecatregreadwrite(0,0,1,$92c,0,4) l0 L0=nan ecat[0].enable=1 l0=ecatregreadwrite(0,0,1,$92c,0,4) l0 L0=-731329157 l0=ecatregreadwrite(0,0,1,$6060,0,1) l0 L0=nan l0=ecatregreadwrite(0,0,1,$6060,0,2) l0 L0=nan l0=ecatregreadwrite(0,0,1,$6060,0,4) l0 L0=nan l0=ecattypedsdo(0,0,1,$6061,0,0,1) l0 L0=nan l0=ecattypedsdo(0,0,1,$6061,0,0,1) l0 L0=nan l0=ecattypedsdo(0,0,1,$6060,0,0,1) l0 L0=nan l0=ecattypedsdo(0,0,1,$6060,0,0,1) l0 L0=nan
  17. I can read registers with ecatregreadwrite(). Eg: p4=ecatregreadwrite(0,0,1,$92c,0,4) p4 P4=106128631 p4=ecatregreadwrite(0,0,1,$928,0,4) p4 P4=0 p4=ecatregreadwrite(0,0,1,$904,0,4) p4 P4=-239087290 I cannot read anything with ecattypedsod(), like p4=ecattypedsdo(0,0,1,$92c,0,0,4) p4 P4=nan p4=ecattypedsdo(0,0,1,$904,0,0,4) p4 l0=ecattypedsdo(0,0,1,$6000,$11,0,4) l0 L0=nan
  18. I tried it all: root@10.0.0.103:/opt/ppmac# gpascii STDIN Open for ASCII Input l0=ecattypedsdo(0,0,1,$8010,$15,0,4) l0 L0=nan l0=ecattypedsdo(0,0,1,$8010,$15,0,4) l0 L0=nan l0=ecattypedsdo(0,0,1,$8010,21,0,4) l0 L0=nan l0=ecattypedsdo(0,0,1,$8010,21,0,4) l0 L0=nan &1a #1k ecat[0].enable=0 l0=ecattypedsdo(0,0,1,$8010,21,0,4) l0 L0=nan l0=ecattypedsdo(0,0,1,$8010,21,0,4) l0 L0=nan l0=ecattypedsdo(0,0,1,$8010,$15,0,4) l0 L0=nan l0=ecattypedsdo(0,0,1,$8010,$15,0,4) l0 L0=nan vers 2.5.4.0 cpu arm,LS1021A sys.ecattype Sys.EcatType=1
  19. Unfortunately no results. Does not matter if ECAT enabled/disabled. Tried both functions ecatsdo() ecattypedsdo()
  20. Yes, I am using Acontis Both cmds don't work for me, ecatsdo() nor ecattypedsdo() Also not when ECAT disabled hex subindex doesn't help either And yes, it is 4 bytes Funny thing- in diagnosis mode I can change 0x8010:18, gain for current amplifier 0x8010:15 is not listed their By time I will try it with TwinCat. There the parameter is listed:
  21. Thank you Eric and Alex! I tried all but without success. Always nan The register ist 4 bytes, by the way. Does anybody know something else?!
  22. Hi! Running Beckhoff-dirve EL7211-0010 in CSV-Mode, I need to tune the drives PI-gains before closing position loop on PPMAC. After activating ECAT I tried writing to the drives velocity P-gain with follwoing command: p1=ecattypedsdo(0,0,1,$8010,15,0,4) where 0..master 0 0..slave 0 1..read $8010..index for dirve amplifier settings 15.. subindex for velocity proportional gain 0..read/write-value 4..# bytes p1=nan Any idea? For now I use the init-table to set those values - but it's quite laborious, since this approach needs many steps (deactivating ECAT, set value inside init-table, loading mapping to PPMAC, issue ecatreset, activating ECAT, agitate motor)
  23. Hi Eric! Beckhoff does not confirm - they use their ESI in TwinCAT without any issues. Besides, here a screen-shot which shows, that the Beckhoff dirve/motion terminal does not show for selection as EtherCAT slave drive in the motor topoloty:
  24. I could recover and successfully install V2.5.4.0, thanks to great support from Lucien / ODT Switzerland. Looks like the device-tree "ls1021a-twr-ck3m.dtb" wasn't updated at all. Anyhow, now bus shift mode seems to work fine. Thanks!
×
×
  • Create New...