Jump to content
OMRON Forums

sdefisher

Members
  • Posts

    21
  • Joined

  • Last visited

  • Days Won

    1

Posts posted by sdefisher

  1. On 9/19/2022 at 7:12 PM, steve.milici said:

    Set the “MaxDelta” higher than your maximum “expected” counts per servo cycle.

     

    I did some step moves at max speed to verify my calculations. Interestingly I had to set the gather mode set to Phase. My velocity seemed to be a bit higher in phase vs servo mode. The velocity would overshoot maximum allowed just long enough to cause the MaxDelta parameter to fault the axis (MaxDelta set too low).  Does this make sense? The parameter is working as expected now, but I do the the MaxDelta a bit higher than previously expected due to the velocity going way past the maximum for a very short period of time (200-300 microseconds) , causing the max counts/cycle to go way up as well.

  2. I found my issue. It was rather taxing. Related to the following post. I think the ACK was a false problem. The main issue I later determined was my GPASCII instances were being killed by the PowerPMAC on the linux side.

     

    mount -o remount,rw /
    nano /.readonly/etc/ssh/sshd_config
    [Move to end of file with arrow keys]

    [Remove All instances of MaxSessions, ClientAliveInterval, and ClientAliveCountMax]

    [Ctrl-X, Y, ENTER]
    mount -o remount,ro /

     

    Below is what my sshd_config looked like after downloading my project with the latest version of the PowerPMAC IDE. It doesn't happen with the older revision. I noticed you can attempt to set  MaxSessions, ClientAliveInterval, and ClientAliveCountMax in the newest version, but it seems buddy and doesn't actually save (from what I have found)


    UsePAM yes
    UseDNS no
    MaxSessions 256
    ClientAliveCountMax 3
    ClientAliveInterval 15
    MaxSessions 256
    MaxSessions 256
    MaxSessions 256
    MaxSessions 256
    MaxSessions 256
    MaxSessions 256
    MaxSessions 512
    MaxSessions 256
    MaxSessions 512
    MaxSessions 256
    MaxSessions 256
    MaxSessions 256
    MaxSessions 256
    MaxSessions 256

     

    I confirmed this by using WinSCP to download the readonly folder from a working machine then compared the configs.


     

    • Thanks 1
  3. I have been trying to troubleshoot an odd ethernet issue. It's been narrowed down to the CPU board proper. I have 3 CPU cards, only one has good ethernet performance. This board has a revision number 604045-106. The boards that are not working well are 604045-107. We use GPASCII and SENDGETSENDS with the ethernet communction. And they are not pushing data though at the same rates with the new boards. Is there any configuration on these that would affect them?

     

    I have all 3 boards running the same firmware (2.3.2.5), and same project downloaded by the same version of the IDE (in-case the complier is differnt. As far as I can tell all boards are also running the same backend linux kernel version as well (3.2.21-powerpmac-smp). All of the CPUs were acquired as part of a full UMAC system at various dates/times in the last few years.

     

    Update: The boards that don't work were setup with IDE version 4.5.2.9 and the working one was done with 3.1.1.0.  Re-downloaded my project via 4.5.2.9 into the good board and now that CPU no longer performing well. The symptom seems to stem from GPASCII not transmitting the ACK character. Which is was previously doing without fail. Would 4.5.2.9 have anything to do with this? By default it's should be on, I don't see how the PowerPMAC Ide would change this. Is there a GPASCII switch to force the ACK to be active? I know there is one to turn it off.

  4. I have a macro loop set up. And we're having issues with very short feedback spikes. Sub 100 micro seconds. Very large spikes. Causing following error faults. We have troubleshooted it down the to the macro loop (took a while since it looked like electrical noise). 

     

    We currently have Encoder Table MaxDelta set to 0 for all axes and the manual recommends against this, Is there an easier calculator for setting this value? We have 24 bit feedback. But the units are in LSB feedback per servo cycle. I need to translate that to counts/second basically. Is there a quick and dirty formula available as I hunt down the servo cycle time?

     

  5. 13 hours ago, steve.milici said:

    Make sure the phase frequency is greater than the servo frequency and gather on phase. I suspect that the jog ribbon and master following could be producing spikes in FE that servo rate gather does not see.

    That did it. There is a very very short spikes in the feedback that is sub millisecond. My previous gather settings weren't fast enough to catch it. Looking into the wiring/feedback cables now. Is there a time component/setting to any of the feedback settings? Some CNC's have a time constant for controlling following error faults. Although I think that would just be a band aid in this case.

    • I have a motor that is tripping a fatal following error fault when the observed following error is well below the Motor[x].FatalFeLimit.  I've used the plot/gather system to prove that the following error is 25% of the limit when the FeFatal error kicks on. This only occurs when using a handwheel (master follower) or jog commands/jog ribbon. If I grab the axis and push it by hand, it trips the FeFatal error at the correct limit value.
    • The motor jogs fine with the limit set to 0 (disabled). So I know it's not a drive fault kicking the motor off. Any reccomended troubleshooting steps?

     

     

  6. 16 hours ago, Eric Hotchkiss said:

    You can set an encoder conversion table entry to act as a digital tracking filter by changing the values of index1 and index2. A "motor" could then be set up to read the position and display it in the position window. It would probably look like below.

    EncTable[n].type = 1 // Single register read
    EncTable[n].pEnc = [HardwareLocation].a
    EncTable[n].index1 = (filter Ki) // For possible digital tracking filter
    EncTable[n].index2 = (filter gain) // For possible digital tracking filter
    EncTable[n].ScaleFactor = 1/65536 // For result units of LSBs
    Motor[x].pEnc = EncTable[n].a // Use result for position-loop feedback
    Motor[x].pEnc2 = EncTable[n].a // Use result for velocity-loop feedback

    Any possibility of self referencing a previous EncTable Entry? 

    e,g, EncTable[11].pEnc = EncTable[3].a

  7. I am running a real time PLC that is stuffing position data into registers that I can read from later. I'd like to filter the positions to take random out . My plan was to make a simple average. Is there a feature in PowerPMAC that can already do this for me, or do I need to roll my own? How fast is the RTI PLC operating (or how can I look it up on my machine?). I am reading the data around 2000 Hz, so I need to make sure my running average is a lot faster than that. 

  8. On 6/19/2022 at 6:48 AM, Raghav said:

    Hi David,

    Thank you for the advice. FRAX(C,X,Z) works fine. Now I'm facing issue with the C feedrate. I would like to provide a Ffeedrate F72000 corresponding to 200 RPM, but the C feedrate is struck at 54000... Seems the problem is due to some settings with Segmove or lookahead. Any advice on the same?

    With frax on it will use the X and Z moves to calculate the feedrate for the C-Axis as well. So if X/Z were not moving you would get 200 RPM.

  9. I found a problem people should be aware of. We are using a CK3M controller with a realtime C PLC. We stream data using a Send command in the RTI CPLC.

     

     

    Using two Putty instances, I am able to boot into the CK3M and run "sendgetsends/sendgetsends -5" to begin receiving the data stream, and gpascii -2 to trigger my RTICPLC to Send.

     

     

    If I close the "sendgetsends/sendgetsends-5" Putty window without stopping the RTICPLC send loop the "sendgetsends/sendgetsends-5" process will get stuck open on the CK3M. This means if I run a fresh "sendgetsends/sendgetsends-5" Putty window, the data is steaming erractically. And if you Putty in, and call "ps -aux" you can see two instances of "sendgetsends/sendgetsends -5" . If I kill the older process the newer "sendgetsends/sendgetsends -5" stream will pick back up and have data pumping correctly.

     

     

    I don't recall this being an issue with our older Power PMACs. Also, the older PowerPMAC's only needed a "sendgetsends -5" to run, without the double name. Historically you can't even connect two instances of SendGetSends since it is supposed to lock the stream.

  10. I've been troubleshooting a weird motion problem that seems to go away if is reset the CNC controller ($$$). I generated a config before and after a reset to detect parameter differences. The only difference I found was as follows

     

    Before (problem)

    Acc5E[0].MacroMode=$4073

     

    After (working fine)

    Acc5E[0].MacroMode=$4070

     

    According to the manual, it seems that I have "Data Overrun Error" and "Byte Violation Error" on my MACRO ring. Is there a way to clear this without rebooting? Any ideas how I am triggering such a fault?

     

    Note:

    Other MACRO settings I currently have set.

    Macro.TestPeriod=40

    Macro.TestReqdSynchs=36

    Macro.TestMaxErrors=4

  11. I am having an issue where the axes are moving the correct amount, the counts are proper, but the velocity is reported significantly (~1.8x) slower at the PowerPMAC vs reality. It's appears systemic to all of my axes. I confirmed it by watching the speed in the drive software, and also with a tachometer. For now I am debugging a rotary axis, since it's safer that the linears.

     

    My Setup:

    Copley Xenus Plus MACRO

    ACC-5E (Gate2?)

    Rotary Axis with 11,840,000 counts per rev

     

    PPMAC Configuration

    Encoder Conversion Table

    Single 32 bit read

    LSB Bit #: 8

    # Bits Used: 24

    Result Units Per LSB: 1

    index1: 8

    index2: 8

    Scale factor: 1/256 (0.00390625)

     

    Other Parameters

    Motor[x].CaptPosRightShift=0

    Motor[x].CaptPosLeftShift=8

    Motor[x].pEnc = EncTable[x].a

    Motor[x].pEnc2 = EncTable[x].a

     

    Xenus Configuration

    Network Configuration

    Position Output Scaling: OFF

     

    To Recap. The above configuration allows me to position correctly, but the reported velocity is slower by a factor of about 1.8. Any thoughts or suggestions would be greatly appreciated!

  12. http://forums.deltatau.com/filedepot/ [FILE REMOVED]

     

    2.3.2.5

     

    Readme.txt

     

    powerpmac460ex ...... Power UMAC 460 CPU and Power Brick

    powerpmac465 ........ Power UMAC/CPCI/Clipper 465 CPU

    powerpmacARM ........ Power UMAC ARM (hardware not yet released)

    powerpmacARM_Posix .. Omron uPower PMAC (CK3E Acontis EtherCAT)

    powerpmacWIN_Posix .. Omron IPC Windows (NY51[]-A Acontis EtherCAT)

    powerpmacX86_Posix .. Omron IPC Linux (Acontis EtherCAT)

     

    When I send the cpu command I get the following report

     

    PowerPC, APM86xxx

     

    therefore I am not sure which firmware to use. Can anyone advise?

  13. That will work until the storage pointer wraps around to the beginning of the rotary buffer. Then your expression will report a negative number. To make it more robust, you could do the following:

     

    BufferUsed = (Coord[x].RotStore - Coord[x].RotExec) modulo (Coord[x].RotEnd - Coord[x].RotStart)

     

    Using the modulo operation with the size of the buffer would turn a -4000 value into a +6000 value for a 10000-byte buffer.

     

    Good catch!

  14. Here is how I solved the issue

     

    You can check Coord[1].RotStore and Coord[1].RotExec

     

    (Coord[1].RotStore - Coord[1].RotExec) will tell you how much information is buffered. Then set a threshold to begin downloading new lines

  15. What version of the IDE was used to create the project?

     

    Power PMAC IDE (2.0.3.40)

     

    Our current workaround has been to copy the project from the network. Work on it locally. Then recopy it back to the network when we are done. It doesn't seem to trip this error unless we try to open the project from the network. We will be migrating the project to Git for source control, which would behave like the copy/recopy method.

  16. There is sample code with the Power PMAC Development Kit

     

    example

     

    communication = Connect.CreateSyncGpascii(DevProp.Protocol, communication)

     

    They have a command similar to what you are looking for!

     

    Dim response As New List(Of String)

    Dim commands As New List(Of String)

    commands.add("P200")

    commands.Add("Motor[1].ActPos")

     

    Dim communicationStatus As Status = communication.GetResponse(commands, response)

     

    Sorry for the zombie reply, but hopefully someone finds this useful.

  17. Power PMAC IDE (2.0.3.40)

     

    "Project is too old for for converstion [sic], please upgrade your project manually, by creating a new project and transferring all your files to a new project"

     

     

    We are unable to share any projects between two computers because of this problems. The project resides on a company network. Both computers are running the same IDE 2.0.3.40. How can I share project files without creating a new project every time?

     

    It's incredibly frustrating.

×
×
  • Create New...