Mach3 Plugin - Passing DROs

 

 

 

Mechanism for transfering values back and forth between Mach3 and KFLOP
 
 
Mach3 User DROs 1 to 50 map to KFlop UserData 0 to 99 (2 words each double)
 
 
To Read from KFLOP to Mach3 use NotifyPlugins codes 18001 to 18050
To Write from Mach3 to KFLOP use NotifyPlugins codes 19001 to 19050
 
 
Example MACH3 SIDE
 
SetOEMDRO(1007,123.456)  'Put a value in a Mach DRO
NotifyPlugins(19007)     'Send it to KFLOP
Sleep(3000)              'Wait for KFLOP to modify and copy it
NotifyPlugins(18008)     'Read the result from KFLOP
x=GetOEMDRO(1008)        'Check the value passed back

 
Example KFLOP SIDE
 
#include "KMotionDef.h"
#define DROIN 7
#define DROOUT 8
main()
{
    double *pin  = (double *)&persist.UserData[(DROIN -1)*2];
    double *pout = (double *)&persist.UserData[(DROOUT-1)*2];
    for(;;)
    {
        Delay_sec(2);
        *pout = *pin + 999;
        printf("DROIN %d = %f DROOUT %d = %f\n",DROIN,*pin,DROOUT,*pout);
    }
}