Jump to content
OMRON Forums

NigelInWindsor

Members
  • Posts

    15
  • Joined

  • Last visited

NigelInWindsor's Achievements

Explorer

Explorer (4/14)

  • First Post
  • Collaborator Rare
  • Conversation Starter
  • Week One Done
  • One Month Later

Recent Badges

0

Reputation

  1. What is the correct procedure to implement, before calling UNDEFINE and DELETE LOOKAHEAD within and at the end of a motion program. At the moment I simply place a DWELL 100 but this is prone to fail as it’s based on time and not based on whether the motion program has truly finished with all the resources. open prog 1 : : DWELL 100 cmd “&3 UNDEFINE” cmd “&3 delete lookahead” close
  2. Unit101; I agree, isnan() should work but it doesn't compile / link. I get Error : implicit declaration of function 'isnan' The other one that doesn't compile / link is remainder(). I assume I'm meant to use frem() but who knows. Thanks Steve, myisnan() does compile / link, I'll find out next week on the machine if it actually does what it says on the tin. I ask again, is there a manual listing the math functions and the headers that need to be included and indeed any pragma or #defines necessary to compile /link these functions.
  3. What is the correct way to check for nan in a real time c routine. Is there a list of math functions for real time c routines.
  4. The current position of an Ethercat drive is a 4 byte (32 bit register $6064:0). When a spindle rolls over the maximum value (2^32 - 1) I assume there is a register somewhere that increments so that values greater than 2^32 can be computed. My problem is how do you reset this register? I Home zero the Ethercat drive by writing direct to the Ethercat registers cout12:0 sdo=ecatsdo(0,5,$6098,0,35,0) // Home current Position sdo=ecatsdo(0,5,$6060,0,6,0) // Set Drive in Homing Mode sdo=ecatsdo(0,5,$6040,0,31,0) // Start homing sdo=ecatsdo(0,5,$6040,0,15,0) //control word back to normal sdo=ecatsdo(0,5,$6060,0,8,0) //Back to CycSyncPos Mode This works fine and sets the $6064:0 to zero however it obviously doesn't clear the PPMAC registers bits 33 and above Now I could just set Motor[x].HomePos = 0x1,0000,0000 but I'd prefer to actually clear the register
  5. I can only get the 86xxx to work at 1000 baud When connected via a switch that is limited to 100 baud it fails to ping
  6. PPMAC EtherLite CPU ARM86xxx The variety with only 2 RJ45 connectors not 3 or 4 I can’t get the Ethernet to work when it’s plugged in to a 100 baud switch My 460 and my 465 both work at 100 The 86xxx does work at 1000 baud Is it not designed to work at 100 baud?
  7. Thank you gentlemen, yes you have correctly deduced the problem. Circular interpolation wont work I'm afraid curt, as quartenions aren't linear. I agree with Jay, the only sensible approach is to feed i,j,k and rotate about the normal to the trajectory generator and then do an i,j,k and rotate to quaternion conversion in the inverse kinematic model (and a quaternion to ijk r conversion in the forward kinematic model). Cheers for confirming there's no other way. Would you consider adding a slerp interpolator to the trajectory generator at some time in the future, after all 6DOF Robots rely on quaternions to work.
  8. The input to the reverse kinematic model is an X Y Z coordinate and a quaternion. Is there anyway to force the trajectory generator to use Slerp interpolation on the quaternion in-order to avoid the non-linarites inherent in quaternions.
  9. The time to open a connection using telnet on a brand new PPMAC 465 is precisely 60 seconds. SSH connections open effectively instantaneously. I assume this is a Linux issue but I've loaded the latest firmware in any case. I look forward to a suggested solution.
  10. You are correct Ecat[0].enable is set to 1. If I set it to 0 it doesn't force the factory reset $$$***. Can you suggest a way shortly after PPMAC boots to then get the PPMAC to enable the ECAT without issuing the $$$*** or at least can you expand on your ecatsdo suggestion
  11. How do I run the forward kinematic routine to get the current tool tip X Y Z Quaternion without running a program? Cheers
  12. When the PPMAC boots it checks the hardware configuration and if it has changed since the last power up then it issues $$$*** The problem I have is that my Ethercat devices (2 off Robotic arms) take over 4 minutes to boot up. So the PPMAC doesn't see them and so issues the $$$*** When all the Ethercat devices have booted, I then have to issue a $$$ in order to load the correct last configuration. Is there any way to disable the $$$*** and only do a $$$ during boot up?
  13. I've uninstalled a previous version of the IDE, even been through the entire registry and deleted anything to do with; PPMAC, DeltaTau, Power PMAC IDE, etc etc. When I install the latest version I keep getting this error message Microsoft Visual Studio Shell Isolated Edition Cannot find one or more components. Please reinstall the application Does anyone have a solution please.
  14. I'm trying to manually configure the ethercat structures to read the IO ports on the drive. I have to do this because ecat config doesn't find them and System Setup doesn't find them either. ECAT[0].Slave[2].PDO[10].index=$2190 ECAT[0].Slave[2].PDO[10].subindex=0 ECAT[0].Slave[2].PDO[10].bitlength=8 ECAT[0].Slave[2].PDO[11].index=$2194 ECAT[0].Slave[2].PDO[11].subindex=0 ECAT[0].Slave[2].PDO[11].bitlength=8 //Input Raw data from Copley xenus 2 axis ECAT[0].IO[102].Slave=2 ECAT[0].IO[102].Index=ECAT[0].Slave[2].PDO[10].index ECAT[0].IO[102].Subindex=ECAT[0].Slave[2].PDO[10].subindex ECAT[0].IO[102].BitLength=ECAT[0].Slave[2].PDO[10].bitlength ECAT[0].IO[102].Input=1 //Input Ecat[0].Io[102].Type=8 //Output Raw data from Copley xenus 2 axis ECAT[0].IO[103].Slave=2 ECAT[0].IO[103].Index=ECAT[0].Slave[2].PDO[11].index ECAT[0].IO[103].Subindex=ECAT[0].Slave[2].PDO[11].subindex ECAT[0].IO[103].BitLength=ECAT[0].Slave[2].PDO[11].bitlength ECAT[0].IO[103].Input=0 //Output Ecat[0].Io[103].Type=8 ECAT[0].IOCount=104 when I enable the Ecat[0] I get a Struct Write Error Does anyone have any suggestions.
  15. I'd like to get my existing C++ application that has been communicating with a TURBO PCI to alternatively communicate with a PPMAC. Does anyone have a C++ library to link in to allow Programmatic communication to a PPMAC.
×
×
  • Create New...