Tieval Posted September 18, 2014 Posted September 18, 2014 Hi all, Currently, we obtain a 5V trigger generated using a virtual axis which is synchronised with a moving axis in the same coordinate system. We're obtaining a trigger approximately every 0.5mm that the axis moves. The trouble is, it is not accurate enough and as speed settings are altered, there are issues with synchronisation. I assume that this is because, despite being in the same coordinate system, the PMAC still treats them independently. Does anyone have any suggestions as to how I could generate a pulse? Perhaps an output every given number of counts? Thanks
curtwilson Posted September 18, 2014 Posted September 18, 2014 What mechanism are you using to generate the trigger? Software commands or hardware output (position compare) from the ASIC? Can you generate a hardware position compare output from the feedback of the real motor? This is what the people who need the highest accuracy use.
Richard Naddaf Posted September 18, 2014 Posted September 18, 2014 Have you tried using the position compare feature? This is a built-in function which does exactly what you are trying to do manually, but at much higher precision and speed. You can learn about it in the "Using the Position-Compare Feature on Turbo PMAC" section in the Turbo PMAC User Manual.
Tieval Posted September 19, 2014 Author Posted September 19, 2014 Hi Curt and Richard, Thanks for this. I'm currently trying to set up a position compare output as described in the Turbo PMAC user manual. I've checked I4902 and I4903 for the presence of DSPGATE2 IC. They are $3 and $1 respectively which I believe indicates the presence of 2 IC's, one of which is a DSPGATE2 IC. Do I68n1/I69n1 need to be set? Using "Position compare examples" and the "Using the Position-Compare Feature on Turbo PMAC" I have established that register: M108->Y:$078007,0,24,S ; Position compare A value (counts) M109->X:$078007,0,24,S ; Position compare B value (counts) However, my motion program is unable to change these from a set value of -1. I have also tried to alter these values manually in the M-Variables but they revert back to -1. I imagine I'm missing something very simple here. Many thanks
Richard Naddaf Posted September 19, 2014 Posted September 19, 2014 It sounds like you are pointing to the wrong addresses. Which Turbo PMAC hardware do you have?
Tieval Posted September 19, 2014 Author Posted September 19, 2014 Currently I'm using the Turbo PMAC2 Ethernet Ultralite, although we do also use the PCI card as well.
Tieval Posted September 22, 2014 Author Posted September 22, 2014 Sorry, I should also have mentioned that I am using ABB Drives. I fear this may make position compare impossible? Are there any other methods of generating a precise trigger based on the movement of the Y axis? Or, perhaps a method of improving the precision of our virtual motor?
steve.milici Posted September 22, 2014 Posted September 22, 2014 This feature over MACRO is supported through MSn, MI-variables: MI921, MI923, MI925, MI926, MI928 and MI929. There is a very good description in the Turbo PMAC User’s Manual starting on page 362 (specifically page 364 for MACRO). I don’t believe the F-MAC module supports position compare. It only supports position capture for homing. A compiled PLC 0 looking at the position register will probably be your best altaernative.
Tieval Posted September 29, 2014 Author Posted September 29, 2014 Thanks for everyone's help. Have managed to get a PLCC 0 working as a trigger.
Recommended Posts