Jump to content
OMRON Forums

andyf

Members
  • Posts

    141
  • Joined

  • Last visited

Posts posted by andyf

  1. I am trying to use the Startup tab for a slave device to change the TxPDO assignment settings located at $01C13. The method required for this is to first write a $00 to subindex 000 (an 8 bit field), then write the desired TxPDO assignment ($1A01 in my case) to subindex 001 (a 16 bit field), and finally write a $01 to subindex 000.

     

    If I try to do this using the Startup tab, only the first and last steps can be performed OK. The second step seems to only write 8 bits of data instead of the full 16 bits. Thus, if I write $1A01 the value is set to $01, and if I write $1AFF the value is set to $FF.

     

    I have no problems sending the startup values using etherlab directy (last screenshot).

     

    See screenshots below.

    el6688_dictionary_1c13_0.thumb.png.8ad30d3be50f294e1d59aef130969e33.png

    el6688_dictionary_1c13_01.thumb.png.1ed10eabadf1e37d9a6b081be6101dc2.png

    el6688_startup_tab_1.thumb.png.bb3c8e469190fcfdb7987d9053c2f97e.png

    el6688_startup_02.thumb.png.fa8b9566c6c3aff11b2a55b267dfebf1.png

    el6688_startup_3.thumb.png.0285a4b859503845f7dbd13f7f53443d.png

    el6688_startup_via_ehterlab.thumb.png.d8795c8e2959fbf79d1b466682c10be5.png

  2. To clarify, when I map to a task, the IO[] and LPIO[] are setup correctly, and I can use them in a PLC. That is not an issue for me.

     

    What I was asking is why the PDO, PDOMapping, and SyncManager data structures are not correct. That was answered on the oher thread by hbausley. I now know that:

     

    1) These data structures are not required to be setup correctly if the slave device has the pdo, mappings, and sync manager info in its firmware. The fact that the PPMAC software tries to populate those is just for consistency.

     

    2) The fact that the PPMAC PDO, PDOMapping, and SyncManager data structures are not loaded correctly is just a limitation of the PPMAC software's ability to read the slave device firmware and populate those data structures.

  3. OK, based on the response to my other thread...

     

    http://forums.deltatau.com/showthread.php?tid=1090

     

    ...it is clear now that for slave devices that have PDO, PDO Mappings, and Sync Manager info in their firmware, it is not necessary for the PPMAC PDO, PDOMapping, and SyncManager data structures to be setup correctly. The user may simply map the IO[] or LPIO[] directly to the PDO index/subindex of the slave device. In fact, this is what is done when using the System Setup slave device Input/Output screens.

  4. It seems possible to map high/low priority tasks directly to the PDO index/subindex without the PPMAC PDO, PDOMapping, and SyncManager data structures being correct. This leads me to believe that the Sync Manager data structure is not always used.

     

    For example, in my other post "EtherCAT PDO data structure not loaded correctly" I mentioned that for the EL2004 digital output, the PDO, PDO Mappings, and Sync Manager data structures created via PPMAC auto-config are not correct. However, I am still able to map IO[] to the desired Index/Subindex, and use it in a PLC. What gives?

  5. For the Beckhoff EL2004 (basic digital output) I have found that the slave pdo data structure is not loaded correctly (see terminal window screen shot, note PDO[0] and PDO[1] are missing). Accordingly, the PDOMappings for those are missing (only PDO[2] and PDO[3] have mappings).

     

    Interestingly, the PDOs are displayed correctly in the System Setup view of the EL2004 Outputs (see System Setup screen shot). Thus, I can still map to high priority (IO[]) or low prioriy (LPIO[]) and toggle the output OK. I can also use the IO[0] in a PLC to toggle the output periodically.

     

    At this stage of Delta Tau's EtherCAT software support, can we expect to see PDO/mapping issues like this to occur when using the auto config? If so, I am assuming we must manually configure the PDO/PDOMappings/SyncManager etc. The downside is that some devices auto-config OK, others do not, so we must manage some of both.

    el2004_pdo_online.png.cbbc24a36498a9c666b3851a1515d7aa.png

    el2004_pdo_gui.thumb.png.827e66cc3c6a6a983a95bec75151a6cf.png

  6. OK, after some research on Beckoff's info sys website, I have found the answer to my question here:

     

    http://infosys.beckhoff.com/content/1033/ethercatsystem/html/bt_ecbasics_coeinterface_basics.htm?id=5512

     

    The Setup tab is used to pass CoE startup parameters to the slave devices when first powered up. This is useful when a (bad) slave device is replaced, and ensures the new device is setup correctly when plugged into the EhterCAT network for the first time.

  7. Thanks Curt, that did the trick. I set Coord[x].GoBack=1, and now I can iterate the outer and inner loops any number of times.

     

    Try increasing the value of Coord[x].GoBack. This parameter is designed to prevent indefinite loops in the program from causing a situation where the next move can't be computed before it is needed to blend from the current move. But you want to be able to jump back in the program twice as you exit the inner loop.

  8. I have successfully setup the EL6688 (slave 8) using etherlab (using upload and verifying settings via download). However, I cannot get the Delta Tau to use it as the dcrefslave, even though I set dcrefslave=8, dcrefband=10000, dcrefplus=2, dcrefminus=2. When queried dcrefslave reports back a value of 8. I am expecting the System Setup Master status info to show the dcrefslave=8 and the application time=internal time stamp from EL6688. However, it continues to show dcrefslave=0 and an application time of 2000-01-01 00:00:00.00000000

     

    If I use Beckhoff's TwinCAT as a soft master, I am able to configure the master to do this without any problems.

     

    Questions:

     

    1) I have two acc24e3 in my rack, and PPMAC sets one to phaseServoDir=0. I believe this needs to be set to 3 correct? Does this have any impact on EhterCAT's ability to use an external device to sync the phase clock?

     

    2) Is there a log somewhere that may shed some light into how the PPMAC EhterCAT is establishing the DC, and any errors encountered?

  9. I am trying to use ecatsdo command in the terminal. I can read an SDO just fine, but when I try to write it fails. If I ssh to the PMAC and use the etherlab utility (/opt/etherlab/bin/ethercat) I and write just fine.

     

    Screenshot 1 shows terminal window ecatsdo read OK, but write fails

     

    Screenshot 2 shows etherlab working for both read and write

     

    Any ideas why ecatsdo might not be working? Is there a log somewhere I can look at?

    pmac_terminal.thumb.jpg.4dce4f2e643dedb016a7c158bc2f7e81.jpg

    etherlab.jpg.ad224cf38ad2122758707286de04d241.jpg

  10. The PPMAC EtherCAT master reports that the EL6688 is stuck in INIT mode with an error. How can I see what the error is? I need to get the EL6688 into PREOP mode so I can change some of its settings using ecatsdo. Interestingly, when I do ECAT[0].Enable=1 the EL6688 moves to OP mode.
  11. In System Setup if you click on the EhterCAT master, the right pane shows status information including the "Applicationtime" and just below that the conversion of that number into a time format string. My understanding is that Applicationtime should be nanoseconds since 2000-01-01 00:00:00.000000000. Is this the case?

     

    Here is an example:

     

    Applicationtime:17501109801187753058

    2010-03-0701:30:17.187753058

     

    I can watch the status updates and see that indeed the number increments by 1e9 each second. However the number of seconds total seems way to large. Can you advise?

  12. I have a new installation of the IDE v1.5 on Windows 7 that has an issue when I try to use EtherCAT features. When I click on an EtherCAT device in the System Setup window, a debug/error message states that the table ppmaccommon.defaultpdofiles does not exist. When I try to update the device XML file, a similar message indicates the load failed.

     

    I am seeing this issue on a new installation of v1.5. I have an older installation of v1.5 that does not have this issue, but was an upgrade from a previous version. Please advise.

  13. I'd still like to understand why the first option does not work (Acc24E3[0].Chan[0].CaptCtrl to 0 and then GatedIndexSel=0)

     

     

    Update - I tried using the approach of setting Acc24E3[0].Chan[0].CaptCtrl to 0 and then GatedIndexSel=0, which the manual states will cause the trigger to happen upon arming. I would have expected that to work, but it does not...the motor begins a home search move and does not stop. However, when I use CaptCtrl=0 with GatedIndexSel=1, the motor only moves to the next U/V/W phase and then stops. This seems to work out OK, but I am curious why the first option did not work.

  14. Atul,

     

    I originally followed the directions in the EtherCAT setup guide to set Gate3 PhaseFreq=12000 and ServoClockDiv=2 to achieve a 250us clock. After your reply, I additionally used the PMAC system setup window to adjust the global clock from 12.001 kHz to 12.000 kHz. After that, I no longer received the error message when starting EhterCAT tasks. Interestingly, if I go back to the PMAC system setup window it reads 12.0001 kHz again. It's not clear to me what this additional step did to solve the problem, but it would be good to document it in your guide.

  15. Sina,

     

    That command requires the current coordinate system (&) to be that of the motor (x) you want to undefine. Thus, I would first have to query Motor[n].Coord, then issue: &n#x->0 My goal is to NOT have to query to figure out what c.s. the motor is in. Is that possible?

  16. It seems the IDE (v1.5) EtherCAT support for enabling tasks does not work. It always returns an error stating that the servo period is not a multiple of 62.5 us. It is true that the Sys.ServoPeriod is not exactly a multiple (i.e. 0.24998645557832 ms), but this is due to how PPMAC calculates things. Using ECAT[0].Enable=1 is a work around, but I would expect this function to work properly in the IDE.

     

    See attached screen shot...

    ethercat_screenshot.thumb.jpg.42433f84ed4f5df3c5ba96262e20ccc3.jpg

  17. Is there a one line command that can be used to undefine a motor from whatever coordinate system it is currently in? I'm trying to avoid the two step process of querying Motor[x].Coord and then using the result in an undefine command.

     

    For example, for motor 1 I tried: &*#1undefine but this does not work

×
×
  • Create New...