Faraday MC - Tony
-
Posts
1 -
Joined
-
Last visited
Content Type
Profiles
Forums
Events
Downloads
Posts posted by Faraday MC - Tony
-
-
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.
-
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.
-
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.
-
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.
-
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.
-
Hello,
just stumbled onto this thread as I am looking into upgrading my firmware from 2.0.2.14 to the newest of 2.3.2.5 on my Powerbrick LV platform (command 'type' returns 'POWER PMAC BRICK').
I would just like to clear up something before proceeding:
When I send the query command 'cpu', I get 'PowerPC,APM86xxx' as a response. If I follow the flowchart, I should get the 'powerpmac465.zip' package.
But according to the flowchart, it says that the response 'Power PC, 460 EX' is the one corresponding to the Powerbrick LV hardware.
Should I still continue with the 'powerpmac465.zip' package?
Thanks in advance,
Christer
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.
-
Have you set Coord[x].SegMoveTime to a value greater then zero?
-
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;
-
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.
-
I have PEWin32 Pro installed on a XP computer at a customer facility. The Ethernet communications with the Turbo PMAC only works when they are logged in as Administrators. Because of their security protocols the operators need to be regular users. Do you have any idea what could be stopping the ethernet comms with the PMAC when logged on as user instead of Admin.
Thanks
Try the instructions in the attached PDF. I wrote it for Windows 7 but it should work for XP too.
-
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!
-
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]
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
IDE4 - DisplayOrder
in Power PMAC
Posted