Jump to content
OMRON Forums

andyf

Members
  • Posts

    141
  • Joined

  • Last visited

Everything posted by andyf

  1. I am running firmware version 1.6.1.1 and noticed that when a motor hits a soft plus/minus limit there motor stops, but the motor status word bits do not go high. As a result the Motor[x].SoftPlusLimit and Motor[x].SoftMinusLimit do not go high. This also impacts geterrors Please advise
  2. OK perhaps this is just an I2t trip that occurs after some time. I am just surprised it never occurs right away, but always after about 6 minutes. I will try increasing the I2T limits.
  3. OK thanks Steve. Since there is no jog indefinite until trigger and I also have soft limits, what I ended up doing is homing once into the negative limit and then homing in the opposite direction into the home switch: 1) Save value of Motor[x].pLimits, then set pLimits=0 2) Change Motor[x].CaptureMode=1 and Motor[x].CaptFlagBit=10 3) Set Motor[x].HomeVel=-10, then run home command 4) Set Motor[x].pLimits=saved pLimits value (re-enable hard limits) 5) Change Motor[x].CaptureMode=0 and Motor[x].CaptFlagBit=20 6) Set Motor[x].HomeVel=10, the run home command
  4. I have a program that indexes a motor, but I need to jog indefinite until I hit a hard limit before issuing a home command. Is there any way to prevent a motion program from aborting when hitting a hard limit? One approach I've used is to temporarily disable the hard limits, jog until trigger to a hard limit flag, reenable the hard limit, and then home. I'm just wondering if there is an easier way to accomplish this without having to disable/enable hard limits.
  5. The PMAC user's manual describes electronic gearing/position following very well. We have used this with jogs on the same axis in a motion program, and some details on that can be found in older threads of this forum if you search "position following".
  6. I have a motion program with a indefinite while loop moving a motor back and forth... inc linear while(1) { x1000 tm233 delay 133 x-1000 tm233 delay 133 } The motor moves fine for about 6 minutes and then the program aborts with the I2TFault==1 and AmpFault==1. Because the abort seems to occur repeatedly at about 6 minutes, I an wondering if there is something in the motion program that may be causing this. Any ideas?
  7. We received a new PPMAC and discovered that it crashes when our host software connects via ssh and uses the getsends command. I have since learned that getsends is no longer supported and we should be using sendgetsends. Our older PPMAC boards that have been updated to the new firmware v1.6 still work with getsends. It is not clear to me when getsends was replaced in favor of sendgetsends. This is just a heads up to anyone else currently using getsends.
  8. It is my understanding that the ACC65E is limited to be 24 inputs and 24 outputs. However, it seems the control and setup registers can still be manipulated through GateIO. Please advise on the following: 1) Will changing the control register direction bits (bits 0..5) to anything other than 7 have a harmful impact? 2) Does the polarity control setup have any impact on how the card operates? 3) Does the card still support latching inputs through the setup register config?
  9. Thanks Curt. I'll try this out and update the thread with results. My understanding is that the IDE System Setup for motors does not support this torque/velocity over PWM mode. I have a few partners that plan to use the system in this way. Do you have plans to add this support in a future release of the IDE, and if so when?
  10. We want to use the Acc24E3 with digital PWM output to control a Copley Junus drive that accepts torque or velocity commands over PWM. This is different than a direct-PWM power block amplifier because the Copley will be closing the current loop instead of the PMAC. I could not find information in the Acc24e3 manual on how this should be setup as it only covers power block direct-PWM and step/direction configurations. Do we simply skip the ADC signal setup steps in the power block config? Please advise.
  11. I did not see a new release in August. Is there a new planned release date?
  12. Would you please provide some documentation on PPMAC implementation of EtherCAT Application Time. We need this for one of our applications. 1) What is the format of this time (i.e. nanoseconds since epoch?) 2) When transitioning into OP mode, what time is used to initialize Application Time? It does not appear to be the same as the linux system time. 3) How can one access Application Time from a PLC or Motion Program?
  13. My understanding is that each instance of the IDE has its own database that contains the motor defs, amp defs, and motor configurations. What I do is export these to XML using the System Setup exports and then store them with the project (ex: in Database folder) in our configuration management system. Then, when we install a new instance of the IDE somewhere, I load them back in from the XML files. As for the errors you're seeing, I wonder if you exported those files using a different version of the IDE than what you are using to load them.
  14. Thank you. Yes this does help, and I was able to run an example like your using cpx and a subprogram. However, it seems I am not able to call a sub program within a sub program, which is something I can normally do in a motion program. For example, if the subprogram in my library is like that shown below, I cannot do: cpx R0=3; call testsub.testsubinside; P1=R1; Example: open subprog testsub return; sub: testsubinside(input, &output) output = input + 2; return; close
  15. I have a motor connected to a Copley Xenus XML drive/amp that successfully runs over MACRO. When I restart the Copley a ring break is detected by the PPMAC. After that, the motor cannot be controlled by PPMAC anymore. I have been able to fix this through resetting the PPMAC, the Copley, and downloading my program again. However, I can't imagine this is how things are supposed to work. Is there a procedure for recovering from a MACRO slave reset that breaks the ring communication?
  16. I have a subprogram in the library that contains several subprograms within it. Is there a way to call one of these from the IDE terminal with online commands? The help seems to indicate that "call" and "callsub" are valid online commands, but they do not work. Example: call mylib.mylibsub()
  17. OK. I assigned the Mxx03 in my global definitions. Then in the motion program code I can use the motor number as the xx part and read Mxx03. Not pretty, but it works. I would add to the wish list the ability to dereference pointers.
  18. The value of Motor[x].pCaptPos is the address of the gate channel HomeCapt register. If I try to assign this to a variable in the motion program, the variable value is set to the address, not the value of HomeCapt. I want to set my variable to the value of the HomeCapt register. In C language speak, I want: *pCaptPos
  19. I have a motion program subroutine that performs a homing routine common to several motors. I want to pass the motor number to the routine and then have the routine home that motor. The routine needs to read the HomeCapt register value, which is pointed to by Motor[n].pCaptPos. Since that gives me the address of the register I want to read, what is the syntax to read the value at that address? I do not want the routine to have to know which ACC24E3 IC and channel to access, but instead just use the Motor[n] pointers.
  20. If our PPMAC is using an external time base for a coordinate system and the motors in that coordinate system point to drives that are distributed on EtherCAT or MACRO networks, then any moves we command on those motor drives will use the external time base...correct?
  21. Do you have a timeline for when you will be able to test and confirm how to operate the EL6688 with your master? Use of the EL6688 is essential to our application, and if PPMAC cannot support it then we need to look into using other masters. Other essential devices for us are: EL1252 and EL2252
  22. At this time, determining if DC is working is not very intuitive. For example, if there are no slaves with DC support in the network, but I set ecat[0].distclocks=1 and ecat[0].dcrefslave=0, when I activate (ecat[0].enable 0->1) I can see ecat[0].dcclockdiff has a value and is held within the refband. Since there are no slaves DCs, is this just the difference between the master clock and itself each cycle? At this time, what method do you suggest using to determine if DC is working with a reference slave or not? DC's will use either the user specified dcrefslave (if found and compatible) or the first compatible slave (if user dcrefslave not specified or not found or compatible). We will trap bogus slave numbers in the future to avoid confusion. Also dcrefslave only has an effect when you change ecat[].enable is transitioned from 0 to 1 changing it on the fly will do nothing
  23. Regarding your statement below...I have been able to set dcrefslave to invalid values (1234567) and it will report that number back in the terminal/window while DC is running. Thus, it is the master DC clock being used not the DC clock of the dcrefslave. It would be good to ensure dcrefslave is reset to 0 in this case.
×
×
  • Create New...