plc:oil_change_counter
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionLast revisionBoth sides next revision | ||
plc:oil_change_counter [2017/12/09 11:01] – es | plc:oil_change_counter [2017/12/11 00:23] – es | ||
---|---|---|---|
Line 9: | Line 9: | ||
We take **1280M5** profile as based profile to add **Oil Change Counter **. | We take **1280M5** profile as based profile to add **Oil Change Counter **. | ||
+ | |||
+ | {{mycnc: | ||
+ | |||
+ | |||
+ | <code c> | ||
+ | main() | ||
+ | { | ||
+ | //touch global variables 6890, | ||
+ | gvarset(6890, | ||
+ | gvarset(6891, | ||
+ | gvarset(6892, | ||
+ | |||
+ | //get initial machine coordinates | ||
+ | pos_x=gvarget(5021); | ||
+ | pos_y=gvarget(5022); | ||
+ | pos_z=gvarget(5023); | ||
+ | |||
+ | // | ||
+ | ticks=0; | ||
+ | |||
+ | |||
+ | //endless loop to handle Oil-Change Counter | ||
+ | do{ | ||
+ | |||
+ | //read limit Limit values for all axes x,y,x and arrange it to Meters | ||
+ | limit_x=gvarget(6890)*1000; | ||
+ | limit_y=gvarget(6891)*1000; | ||
+ | limit_z=gvarget(6892)*1000; | ||
+ | |||
+ | |||
+ | //X axis handler | ||
+ | //Check if X position changed | ||
+ | dx=pos_x-gvarget(5021); | ||
+ | if (dx!=0) | ||
+ | { | ||
+ | pos_x=gvarget(5021);// | ||
+ | if (dx< | ||
+ | //check move length does not exceed 10mm (to exclude possible error) | ||
+ | //and add move length to variable #6090 | ||
+ | if (dx< | ||
+ | }; | ||
+ | |||
+ | //Y axis handler | ||
+ | dy=pos_y-gvarget(5022); | ||
+ | if (dy!=0) | ||
+ | { | ||
+ | pos_y=gvarget(5022); | ||
+ | if (dy< | ||
+ | if (dy< | ||
+ | }; | ||
+ | |||
+ | //Z axis handler | ||
+ | dz=pos_z-gvarget(5023); | ||
+ | if (dy!=0) | ||
+ | { | ||
+ | pos_z=gvarget(5023); | ||
+ | if (dz< | ||
+ | if (dz< | ||
+ | }; | ||
+ | |||
+ | |||
+ | |||
+ | //Check is any axis mileage exceed limit | ||
+ | alarm=0; | ||
+ | if (gvarget(6090)> | ||
+ | if (gvarget(6091)> | ||
+ | if (gvarget(6092)> | ||
+ | |||
+ | |||
+ | |||
+ | //In case Oil-Change event handle varaible #6085 blink 1 time per second | ||
+ | if (alarm!=0) | ||
+ | { | ||
+ | ticks++; | ||
+ | if (ticks< | ||
+ | else {gvarset(6085, | ||
+ | |||
+ | if (ticks> | ||
+ | }else | ||
+ | { | ||
+ | gvarset(6085, | ||
+ | }; | ||
+ | |||
+ | |||
+ | }while(1); | ||
+ | |||
+ | |||
+ | exit(99); | ||
+ | }; | ||
+ | |||
+ | </ |
plc/oil_change_counter.txt · Last modified: 2017/12/11 00:26 by es