Jump to content
OMRON Forums

Faraday MC - Tony

Members
  • Posts

    1
  • Joined

  • Last visited

Posts posted by Faraday MC - Tony

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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;

  6. 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.
  7. 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.

    PeWin registry settings.pdf

  8. 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]

  9. 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.

  10. 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.

  11. 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.

  12. 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

  13. 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.
  14. 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...