Jump to content
OMRON Forums

maxvoxel8

Members
  • Posts

    54
  • Joined

  • Last visited

Posts posted by maxvoxel8

  1. In a follow up to my previous question, is there a way to disable the output of a motor when in the step/direction configuration without affecting the internal trajectory? Something in the Gate3[].Chan[] perhaps? I'm looking for something that I can set and clear at the start and end of a motion to ensure that extra pulses are never emitted. Otherwise I will have to add a relay controlled by a digital IO, which seems like a roundabout way of doing it...

  2. I am using a motor output in step/direction mode and seeing pulses emitted even if DesVel is zero. All integrators are disabled, and I confirmed Servo.Integrator is zero the whole time.

    I am trying to get rid of the pulses with OutDbOn/Off/Seed and it's not behaving as I expect. I set OutDbOn to 0.5, OutDbOff to 4, and OutDbSeed to 1. But in the rightmost interval in FE.png, you see a pulse emitted long after DesVel became 0, and PosError never left the range of 0.5 and 4.

    Looking at Motor.Servo.Status it goes to 0 when DesVel goes to 0, even though PosError is 1.06 at this time, and then goes to 1 after the spurious pulse.

    Also looking at Motor.Servo.Status I'm seeing confusing things.

    For one thing, it sometimes takes on a value of 2 which is not documented.

    Secondly, it sometimes fluctuates rapidly between 0 and 2.

    FE.png

    Status.png

  3. I believe the problem may be in uploading. If I define a 2D comp table, download, then set Comptable[0].Ctrl to 23 in the terminal and then upload and download again, Ctrl gets reset to 7.

     

    Same with First Data Point 2, if I set it to 2000, and download, it works. But then if I reopen the editor and upload, it shows 100 for First Data Point 2. Also if I change the value Comptable[0].X0[1] in the terminal and upload, it doesn't update the value.

     

    This is on a Clipper with firmware 2.4.0.180, but it also shows up on a Powerbrick with 2.4.0.180 or 2.5.1.2.

  4. It seems that there is a bug when uploading a 2D comp table to the editor, editing it, and then downloading it.

     

    Sometimes the CompTable[x].X0[1] value gets reset to 100, and the CompTable[x].Ctrl value gets reset to 7 (I have it set to 23 normally). This bug is present in IDE 4.4.0.99.

  5. We currently use Modbus successfully with our PowerBricks. We have a PLC that issues commands like

     

    cmd"ModbusHoldingRead ..."

     

    and it works. Now I'm trying the same thing on the CK3M. The only difference is that since the CK3M only has one Ethernet interface, I'm using it for both Modbus and normal communication.

     

    Currently I only have one Modbus client enabled. I am able to connect to the Modbus client and issue the same Modbus commands from the terminal. However whenever I enable the PLC, it disconnects with a "Send" error in ModbusSocketError. When I look at ModbusLinuxError, I get different errors such as "Socket operation on non-socket," "Bad file descriptor," and "Destination address required".

     

    Is there some problem with using the same interface for both Ethernet and Modbus? Should I get a USB Ethernet adapter? Or is there some other workaround?

  6. Correction, Coord[1].Ta and Coord[1].Td were set to 1. I set them to 0. Now I get a different profile as shown in the screenshot.

     

    The initial corner of the s-curve lasts around 1ms, which I assume is due to SegMoveTime being 1? But the deceleration corner of the s-curve only lasts about 0.5 ms. The acceleration also still exceeds 8, but by a relatively small amount.

     

    I guess my questions are, how can I make the profile never exceed 8 m/s^2 acceleration? And how can I make the profile have a consistent jerk at the start and end of the motion?

    Screenshot_2.thumb.png.25618582121e78db4a72972342e31434.png

  7. In my setup,

    Coord[1].SegMoveTime = 1

    Coord[1].Ts = 0

    Coord[1].Ta = 0

    Motor[1].InvAMax = 0.125

    Motor[1].InvDMax = 0.125

    Motor[1].InvJMax = 0

     

    Now I do a series of moves on Motor[1]. To be exact, my program is:

     

    G1 X3.2 F600

    G4 P500

    G1 X-3.2

    G4 P500

    etc.

     

    Now if I plot 2 * Motor[1].Desired.Accel and 6 * Motor[1].Desired.Jerk (is there a more direct way to plot acceleration?) I get the attached graph.

     

    Some things I don't understand:

     

    What is controlling the length and magnitude of the jerk-limited segment at the beginning? This segment is Jerk = -1.3 for 5.8ms.

     

    Likewise, what controls the length and magnitude of the middle and final jerk segments?

     

    The final acceleration goes up to 17.46 - why is this so high? I thought all motor moves were limited to InvAMax? Is the motor actually being commanded to accelerate this fast? It looks in the second plot like there is a knee in the velocity curve so the acceleration is actually increasing.

    Screenshot_3.thumb.png.c5f6cb6bdfee78ceb1b090709780cf84.png

    Screenshot_1.thumb.png.60a2ae5255c3d52a42cb7d59edb563bf.png

  8. Sorry, I mean I want to plug a USB-Serial converter into the CK3M's USB port and communicate via serial as in http://forums.deltatau.com/filedepot/download.php?f=Power%20PMAC/Application%20Notes/Serial%20Communication%20with%20Power%20PMAC%20in%20C.pdf [FILE REMOVED]
  9. We had a sporadic WDTFault for a long time and I think I've traced it down to calling tsel1 in a PLC, but only when motion is happening. We are calling the ComputeNCTransform subprogram from a PLC, and it works most of the time, but reliably causes a fault only if a motion is being initiated at the same time as tsel1 is called. However since transformation matrix 1 is already active most of the time, I can hopefully just change it to

     

    if(Coord[1].Tsel != 1)

    tsel1

     

    And avoid further WDTFaults.

  10. We're using the powerbrick with firmware 2.4.0.180. We frequently have M0 in our programs and resume from the M0 using the NC UI Cycle Start. I've seen a few instances lately where seemingly at random, the program restarts from the beginning instead of where it left off. Running the same program again does not necessarily show the problem again. Can anyone offer any suggestions as to why this would happen?
  11. Are there any libraries/sample code for doing Modbus RTU via RS485 on the Power PMAC using the built-in serial port? If not, what is the easiest way to connect the PMAC to a Modbus RTU RS485 device?
×
×
  • Create New...