Jump to content
OMRON Forums

Eric Hotchkiss

Omron
  • Posts

    558
  • Joined

  • Last visited

  • Days Won

    8

Everything posted by Eric Hotchkiss

  1. Sorry I said it backwards. The manual is correct. 20 kHz is recommended, 30 is maximum.
  2. I believe this a normal condition being misinterpreted as an error and it is solved in IDE 4.5.1.3 available here: https://automation.omron.com/en/us/products/family/PMAC%20IDE The release notes show:
  3. I am sorry. I remembered something about CamTables and assumed it was true for Compensation Tables as well. Compensation Table Correction Sizes can be configured in C as shown in the Power PMAC Users Manual.
  4. I am not sure what settings are before and after the change, but depending on your phase frequency those values look low. The 5/15 Power Brick LV has a minimum PWM Frequency of 20 kHz and 30 kHz is recommended.
  5. Because compensation tables dynamically resize, it is not possible to write to those structures from C in that manner. Command quotes can be used instead. Command("CompTable[16].Data[0]=0");
  6. I think it has to do with file names containing spaces. Try this. system "/var/ftp/usrflash/Project/C\ Language/Background\ Programs/xoptical.out“
  7. The Power PMAC User's Manual has sections on its setup and use. You should see 4 sections with 8AS in the name in the table of contents. http://forums.deltatau.com/filedepot/download.php?f=Power%20PMAC/Manuals/Power%20PMAC%20Users%20Manual.pdf [FILE REMOVED] You can also use the ACC-8ES manual available here. http://forums.deltatau.com/filedepot/download.php?f=Old%20Website%20Manuals/Controllers/Accessories/ACC-8ES.pdf [FILE REMOVED]
  8. Try making sure all other PLCs are disabled and closing any watch windows. They could be sending other commands interfering with your motion. If that doesn't help. Can you share the project so I can take a look? You can send it to eric.hotchkiss@omron.com
  9. For default variable values you can check the software reference manual. It's currently available from the forum file depot. http://forums.deltatau.com/filedepot/download.php?f=Power%20PMAC/Manuals/Power%20PMAC%20Software%20Reference%20Manual.pdf [FILE REMOVED] I believe the point of the PLC was just to make sure there was a pause before each jog move or motion program run and check if the timing of consecutive jog moves is the issue. Is there a check for InPos between Jog moves? PMAC doesn't finish a jog move before moving to the next line. InPos does not go true while the motor is moving, regardless of following error. From the Software Reference Manual.
  10. This is not best practice. The Jog command is not guaranteed to finish before the &2B2R command is run. If it does not finish, the &2B2R will need to be re-issued. That being said, it worked when I tried it just now. When you are in open loop (before issuing the jog command) encoder position is treated as trajectory position. When you issue a Jog/ command, a trajectory is created to bring that velocity to 0 based on JogTa and JogTs. Because your JogTa and JogTs are positive, this is very slow. If you set them negative (to indicate a rate instead of time) this move will pass much more quickly.
  11. If you want to use a direct pointer based on numerical addresses, it would look like this. volatile unsigned int *MyHomeCapt1; MyHomeCapt1 = (unsigned int *)piom + pshm->OffsetGate3[0]/4 + 0x80/4 + 0x74/4; It would be much easier to use gate pointers like below, however they will use more memory. I would recommend this method if possible. volatile GateIOStruct *GateIo[1]; GateIo[0] = GetGateIOMemPtr(0); GateIo[0] -> DataReg[3] = (0xFF << 8); I am attaching a couple short sections about these pointer types. direct pointers.pdf gate pointers.pdf
  12. Motor[x].DesVelZero goes true when the trajectory (or desired position) stops moving. Motor[x].InPos should go true some time after once the following error stays below a limit value. If this were the case the suggestions would be: Increase Motor[x].InPosBand (following error limit for In Pos) Increase Motor[x].InPosTime (number of consecutive Servo Cycles) Improve tuning. This could only delay motion is a PLC or motion program was checking the value of Motor[x].InPos. There are no built in checks of this variable that will stop motion or program execution. However, it sounds like you may be getting a runtime error which is causing the program to abort. When failure occurs, what are the values of the following? Coord[x].RunTimeError Coord[x].ErrorStatus You might try making some space by limiting the values of Sys.MotorsPerRtInt, Sys.MaxMotors or Sys.MaxCoords. You may need to adjust frequencies to make enough room for RtInt to finish more reliably. Can you post a picture of the tasks tab of your IDE task manager?
  13. I am not sure what package is needed, but once found I would recommend downloading it. The packages we need tend to go obsolete over time.
  14. You should be able to get the list of variables for a given firmware with IDE terminal commands like. backup Motor[1]. Intellisense (autocomplete) may fight you on the period.
  15. My first code box probably should have been: &1 Enable Since I do not know what motors are in coordinate system 1.
  16. Use of the output should be described in the CK3M manual available here. https://automation.omron.com/en/us/products/family/CK3M
  17. Enabling the motors and starting the motion programs are going to be different commands. If the first process is not done before the second is started, then the second will fail. If commanded from the IDE terminal with no PLCs running, I would expect you to first be issuing a command like this: #1,2J/ And then shortly later issuing a command like this: &1B1R However it sounds like you are issuing a single command for both. I thought this was a flag for a PLC, but no PLCs are running. Can you show me the command you are issuing in the terminal?
  18. It is normal to have some delay between putting enabling motors and starting the motion program. Trying to start a motion program will fail if the motors are not ready, so the motors must be enabled first. How much delay should be up to how these two operations were commanded. If a PLC is watching inputs to start the motors and program, it's logic would determine the delay. How were these motors commanded? If a PLC starts a motion program, is there a check for Motor[1].InPos?
  19. For the first question, are you trying to manually output a voltage or setup a motor? Either way you will have to first set the write protect key and then change the output mode to DAC. The difference would be commanding the output after setup. Sys.WpKey=$AAAAAAAA Gate3[0].Chan[0].OutputMode=$3 SSI would be the same as the Power Brick LV manual. I would recommend looking at this one. You will have to replace PowerBrick. with Gate3. http://forums.deltatau.com/filedepot/download.php?f=Power%20PMAC/Manuals/Hardware%20Reference%20Manual/Power%20Brick%20LV%20ARM%20User%20Manual.pdf [FILE REMOVED]
  20. 1. I think what's missing is a setting for Motor[x].AbsPhasePosOffset. Take a look at "Stepper Phasing Force Test" and the following example on page 184 of the Power Brick LV ARM Manual. http://forums.deltatau.com/filedepot/download.php?f=Power%20PMAC/Manuals/Hardware%20Reference%20Manual/Power%20Brick%20LV%20ARM%20User%20Manual.pdf [FILE REMOVED] The power Brick has this material in it's manual because it's an all in one product, in your case you should be able to replace PowerBrick with Gate3. 2. Methods that move the motor to phase (stepper or 4 guess) will work with a serial encoder, but an absolute read should be performed instead if possible. Also, I am surprised you did not need to set Motor[x].PhaseFound to 1. Different Results With Different CPUs. What firmware version was each CPU at? The current IDE expects at least a certain firmware version to run the correct tests at test and set.
  21. 1. I think what's missing is a setting for Motor[x].AbsPhasePosOffset. Take a look at "ABSOLUTE SERIAL ENCODER PHASING WITH GATE3" on page 183 of the Power Brick LV ARM Manual. http://forums.deltatau.com/filedepot/download.php?f=Power%20PMAC/Manuals/Hardware%20Reference%20Manual/Power%20Brick%20LV%20ARM%20User%20Manual.pdf [FILE REMOVED] The power Brick has this material in it's manual because it's an all in one product, in your case you should be able to replace PowerBrick with Gate3.
  22. I'm not sure I understand the point of the question. Why would you need to check at runtime what type a variable is? Almost every check I can come up with has to be done in C and won't build if the test would fail.
  23. I would suggest leaving Coord[1].HomeRequired=1 and hitting the reset button on opening NC 16. Have you gotten past all of your roadblocks?
  24. To be clear, you are entering this program into NC 16 and not the IDE, correct? What if you replace LINEAR with G01 and INC with G91?
×
×
  • Create New...