Jump to content
OMRON Forums

Faraday MC - Tony

Members
  • Posts

    1
  • Joined

  • Last visited

Everything posted by Faraday MC - Tony

  1. If you right-click on the files you can move them up and down in the list. I think that should solve your problem.
  2. What type of PMAC, amplifier and motor do you have? What type of encoder and resolution? Can you post your PLC please. Don't forget that the normal uncompiled PLCs only start every millisecond so would not reliably re-arm the position capture for a 1KHz trigger.
  3. Is your encoder's clock speed really 25MHz? The fastest Renishaw I have personally used only ran at 5MHz and their protocol datasheet only mentions 10MHz. I would try running at 5MHz and see if it behaves any better, even if your encoder can run faster. Once you know it works you can try speeding it up.
  4. Probably never. The ARM CPU does not have a built in temperature sensor. The CK3e is fanless and in my experience does not run hot.
  5. I had problems with plotting and tuning because the Windows 10 firewall blocked the DeltaTauGatherProgram. Once I allowed it through the firewall everything worked. Did you have the filtered PWM or true DAC outputs on your Power Brick Controller and what do you have on the CK3M? The gains will be different if you change between the two types.
  6. The backup records the M variable definitions but it does not record the values (P and Q variable values are recorded). The M variable values for a self referenced M variable (M4420->*) are stored in the PMACs flash memory so if the value was correct when the last SAVE was done the machine will keep working. As you have discovered, if you reset the PMAC and restore a backup the machine will not run if the variables have not been correctly initialised in the startup PLC.
  7. Christer, your PowerBrick has a 465. All of the 19" rack versions we built for the synchrotrons use 465s to avoid a problem with VLAN packets on Ethernet.
  8. Have you set Coord[x].SegMoveTime to a value greater then zero?
  9. Did you remember to set Sys.WpKey=$aaaaaaaa befor you tried to change the settings? These are the settings I used in a PowerBrick AC with a 12 bit SSI encoder. If you change the commands to Clipper[0] etc. it should work. Sys.WpKey = $AAAAAAAA; //ssi PowerBrick[0].Chan[0].SerialEncEna = 1; PowerBrick[0].Chan[1].SerialEncEna = 1; PowerBrick[0].Chan[2].SerialEncEna = 1; PowerBrick[0].Chan[3].SerialEncEna = 1; PowerBrick[1].Chan[0].SerialEncEna = 1; PowerBrick[1].Chan[1].SerialEncEna = 1; PowerBrick[1].Chan[2].SerialEncEna = 1; PowerBrick[1].Chan[3].SerialEncEna = 1; PowerBrick[0].SerialEncCtrl = $31200002; // 0.5 MHz serial clock triggered at rising phase clock edge, SSI protocol PowerBrick[0].Chan[0].SerialEncCmd = $180c; // 12 bits total resolution, no parity, no GtoB conversion, continuous triggering, trigger on PowerBrick[0].Chan[1].SerialEncCmd = $180c; // 12 bits total resolution, no parity, no GtoB conversion, continuous triggering, trigger on PowerBrick[0].Chan[2].SerialEncCmd = $180c; // 12 bits total resolution, no parity, no GtoB conversion, continuous triggering, trigger on PowerBrick[0].Chan[3].SerialEncCmd = $180c; // 12 bits total resolution, no parity, no GtoB conversion, continuous triggering, trigger on PowerBrick[1].SerialEncCtrl = $31200002; // 0.5 MHz serial clock triggered at rising phase clock edge, SSI protocol PowerBrick[1].Chan[0].SerialEncCmd = $180c; // 12 bits total resolution, no parity, no GtoB conversion, continuous triggering, trigger on PowerBrick[1].Chan[1].SerialEncCmd = $180c; // 12 bits total resolution, no parity, no GtoB conversion, continuous triggering, trigger on PowerBrick[1].Chan[2].SerialEncCmd = $180c; // 12 bits total resolution, no parity, no GtoB conversion, continuous triggering, trigger on PowerBrick[1].Chan[3].SerialEncCmd = $180c; // 12 bits total resolution, no parity, no GtoB conversion, continuous triggering, trigger on EncTable[1].Type = 1; EncTable[1].pEnc = PowerBrick[0].Chan[0].SerialEncDataA.a; EncTable[1].index1 = 20; // Shift left 20 bits for 12 bit SSI EncTable[1].index2 = 0; // No right shift EncTable[1].index3 = 0; EncTable[1].index4 = 0; EncTable[1].index5 = 0; EncTable[1].index6 = 0; EncTable[1].ScaleFactor = 1 / EXP2(20); // For 12 bit SSI EncTable[2].Type = 1; EncTable[2].pEnc = PowerBrick[0].Chan[1].SerialEncDataA.a; EncTable[2].index1 = 20; EncTable[2].index2 = 0; EncTable[2].index3 = 0; EncTable[2].index4 = 0; EncTable[2].index5 = 0; EncTable[2].index6 = 0; EncTable[2].ScaleFactor = 1 / EXP2(20); EncTable[3].Type = 1; EncTable[3].pEnc = PowerBrick[0].Chan[2].SerialEncDataA.a; EncTable[3].index1 = 20; // Shift left 20 bits EncTable[3].index2 = 0; // No right shift EncTable[3].index3 = 0; EncTable[3].index4 = 0; EncTable[3].index5 = 0; EncTable[3].index6 = 0; EncTable[3].ScaleFactor = 1 / EXP2(20); EncTable[4].Type = 1; EncTable[4].pEnc = PowerBrick[0].Chan[3].SerialEncDataA.a; EncTable[4].index1 = 20; // Shift left 20 bits EncTable[4].index2 = 0; // No right shift EncTable[4].index3 = 0; EncTable[4].index4 = 0; EncTable[4].index5 = 0; EncTable[4].index6 = 0; EncTable[4].ScaleFactor = 1 / EXP2(20); EncTable[5].Type = 1; EncTable[5].pEnc = PowerBrick[1].Chan[0].SerialEncDataA.a; EncTable[5].index1 = 20; // Shift left 6 bits EncTable[5].index2 = 0; // No right shift EncTable[5].index3 = 0; EncTable[5].index4 = 0; EncTable[5].index5 = 0; EncTable[5].index6 = 0; EncTable[5].ScaleFactor = 1 / EXP2(20); EncTable[6].Type = 1; EncTable[6].pEnc = PowerBrick[1].Chan[1].SerialEncDataA.a; EncTable[6].index1 = 20; // Shift left 20 bits EncTable[6].index2 = 0; // No right shift EncTable[6].index3 = 0; EncTable[6].index4 = 0; EncTable[6].index5 = 0; EncTable[6].index6 = 0; EncTable[6].ScaleFactor = 1 / EXP2(20); EncTable[7].Type = 1; EncTable[7].pEnc = PowerBrick[1].Chan[2].SerialEncDataA.a; EncTable[7].index1 = 20; // Shift left 20 bits EncTable[7].index2 = 0; // No right shift EncTable[7].index3 = 0; EncTable[7].index4 = 0; EncTable[7].index5 = 0; EncTable[7].index6 = 0; EncTable[7].ScaleFactor = 1 / EXP2(20); EncTable[8].Type = 1; EncTable[8].pEnc = PowerBrick[1].Chan[3].SerialEncDataA.a; EncTable[8].index1 = 20; // Shift left 20 bits EncTable[8].index2 = 0; // No right shift EncTable[8].index3 = 0; EncTable[8].index4 = 0; EncTable[8].index5 = 0; EncTable[8].index6 = 0; EncTable[8].ScaleFactor = 1 / EXP2(20); Motor[1].ServoCtrl=1; Motor[1].pEnc=EncTable[1].a; Motor[1].pEnc2=EncTable[1].a; Motor[1].pAbsPos=PowerBrick[0].Chan[0].SerialEncDataA.a; Motor[1].AbsPosFormat=$00000c00; //For 12 bit Motor[1].AbsPosSF=1; Motor[2].ServoCtrl=1 Motor[2].pEnc=EncTable[2].a Motor[2].pEnc2=EncTable[2].a Motor[2].pAbsPos=PowerBrick[0].Chan[1].SerialEncDataA.a; Motor[2].AbsPosFormat=$00000c00; //For 12 bit Motor[2].AbsPosSF=1; Motor[3].ServoCtrl=1 Motor[3].pEnc=EncTable[3].a Motor[3].pEnc2=EncTable[3].a Motor[3].pAbsPos=PowerBrick[0].Chan[2].SerialEncDataA.a; Motor[3].AbsPosFormat=$00000c00; //For 12 bit Motor[3].AbsPosSF=1; Motor[4].ServoCtrl=1 Motor[4].pEnc=EncTable[4].a Motor[4].pEnc2=EncTable[4].a Motor[4].pAbsPos=PowerBrick[0].Chan[3].SerialEncDataA.a; Motor[4].AbsPosFormat=$00000c00; //For 12 bit Motor[4].AbsPosSF=1; Motor[5].ServoCtrl=1 Motor[5].pEnc=EncTable[5].a Motor[5].pEnc2=EncTable[5].a Motor[5].pAbsPos=PowerBrick[1].Chan[0].SerialEncDataA.a; Motor[5].AbsPosFormat=$00000c00; //For 12 bit Motor[5].AbsPosSF=1; Motor[6].ServoCtrl=1 Motor[6].pEnc=EncTable[6].a Motor[6].pEnc2=EncTable[20].a Motor[6].pAbsPos=PowerBrick[1].Chan[1].SerialEncDataA.a; Motor[6].AbsPosFormat=$00000c00; //For 12 bit Motor[6].AbsPosSF=1; Motor[7].ServoCtrl=1 Motor[7].pEnc=EncTable[7].a Motor[7].pEnc2=EncTable[7].a Motor[7].pAbsPos=PowerBrick[1].Chan[2].SerialEncDataA.a; Motor[7].AbsPosFormat=$00000c00; //For 12 bit Motor[7].AbsPosSF=1; Motor[8].ServoCtrl=1 Motor[8].pEnc=EncTable[8].a Motor[8].pEnc2=EncTable[8].a Motor[8].pAbsPos=PowerBrick[1].Chan[3].SerialEncDataA.a; Motor[8].AbsPosFormat=$00000c00; //For 12 bit Motor[8].AbsPosSF=1;
  10. They are in PMAC Motor Units. It will be encoder counts with the default settings, but they might have been scaled into engineering units with one of the scale factors. You need to subtract Motor[x].HomePos to get the correct positions.
  11. Try the instructions in the attached PDF. I wrote it for Windows 7 but it should work for XP too. PeWin registry settings.pdf
  12. Try this. Go to C:\DeltaTau\PowerPMAC\Compilers\Installers\PowerPC465 and run setup. It will install the 465 compiler. I hope it works for you too!
  13. Try the IDE removal tool available here: http://forums.deltatau.com/filedepot/download.php?f=Power%20PMAC/Power%20PMAC%20IDE/Power%20PMAC%20IDE%20Removal%20Tool/Power%20PMAC%20IDE%20Removal%20Tool.exe [FILE REMOVED]
  14. That was the first thing I tried. I suspect it is caused by incorrect permissions but I don't know why the previous version installed with no problems and now it won't install either the old or the new version.
  15. We have recently seen exactly the same problem after attempting to upgrade one of our computers. Despite all attempts to remove the IDE manually using the removal tool and cleaning the registry with CCleaner I have not been able to re-install the previously released (and working) version either. The same software has installed perfectly on all our other computers and I have no idea what is different about this one.
  16. I'm not sure if your problem is the same as mine, but the latest Windows 10 1511 update broke something in the IDE and the complier failed to load. Re-installing the 2.0.3.40 update for the IDE fixed it.
  17. How fast are you sending the requests from EPICS? The USB/Ethernet microcontroller is not powerful enough to handle very fast requests. Try limiting it to 10Hz and see if that helps. Both USB and Ethernet go through the same buffer so you will inevitably get conflicts if you try to use both at the same time. For debugging you could connect PeWin to the Brick via RS232. The advantage is that although it is slower it goes through a separate buffer so you will be less likely to have conflicts. Having said all that I have not seen EPICS cause PeWin to crash before.
  18. You can do it but you have to manually edit the registry permissions. Right click on the PeWin Pro icon and select “Run as administrator”. This only needs to be done once and it allows the software to create the registry keys. Run regedit and change the user permissions for the following entries to give users full control: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\PMAC HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\PMACETH HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\PMACUSB Right click on the entry, select permissions and put a tick in the box to allow full control. Exit Regedit and run PeWin normally. You should now find that the PMAC software runs correctly as a standard user. PeWin registry settings.pdf
  19. If your USB-RS232 converter has an FTDI chipset you need to go into device manager and find the port, double click it to bring up properties and then select port settings. Click the Advanced button and find the Latency Timer. This is usually set to 16 but if you reduce it to 4 or less the Pro2 suite programs will communicate more reliably.
  20. You could try commanding an open loop output in each direction and monitoring the velocity using the encoder. The velocity should be roughly the same in either direction. If it is very different it would point to a problem in the driver or the stage.
×
×
  • Create New...