Jump to content
OMRON Forums

JTopp

Members
  • Posts

    4
  • Joined

  • Last visited

Everything posted by JTopp

  1. My servo frequency is set to 8kHz, the sys.RtIntPeriod is 0, and the Coord[x].SegMoveTime is set to 1. We are running the same path every cycle however we are translating the path (X, Y and Theta) on a part to part basis.
  2. I updated my code to use synchronous variables shown in the attachment. I put one at the beginning of the path, I trigger using this one, and one at the end of the path. I am not seeing the same problem as I was, but I am seeing a problem with the trigger happening too late sometimes (about 5% of the time). I put a timer on for the path time, using the two synchronous variables I added, and I found that the times we are turning off too late the path time is shorter by about 15ms. It appears that sometimes the path is running faster. I thought maybe we were exiting the motion program early, but the entire path is being completed. PmacSyntax.txt
  3. Thank you for your response! We are using the ShutoffOS so ensure that once the end of path is in the lookahead buffer we stop that code from executing. That variable is only set high in the code shown above. We are using the NCalc and LookaheadFlush to determine when the end of the path has been calculated and is in the lookahead buffer. I have been able to figure out that the code with NCalc and Lookahead flush is just not being run sometimes. I am looking into using Synchronous variables but it is difficult in our application because we run a lot of different paths, so it is better for us to use a time based shutoff from the end of the path.
  4. I have code using Coord[X].NCalc and Coord[X].LookaheadFlush to determine when the end of the path is calculated. Using the sys.time I trigger an event a certain amount of time before the machine physically reaches the end of the path. I have used this code before and had no problems however with this machine it fails about 5% of the time. This code is in a realtime routine that runs at a frequency of 2khz. I can't seem to figure out what would cause this to not work sometimes. I attached the motion program. Coord[1].LHSize=2000 Coord[1].LHDistance=200 Coord[1].SegMoveTime=1 LHDtime = 200; if (Coord[1].NCalc == 200 && Coord[1].LookAheadFlush == 1 && ShutoffOS == 0) { segToEnd = Sys.Time; ShutoffOs = 1; } if (ShutoffOS) { vElapTime = Sys.Time - segToEnd; if (vElapTime >= ((LHDtime - ValveOffTime)/1000)) { doValve = 0; ShutoffOS = 0; } } PmacSyntax - Copy.txt
×
×
  • Create New...