⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 oem.h

📁 基于PMAC运动控制卡的八轴数控磨床PLC运动控制程序
💻 H
📖 第 1 页 / 共 2 页
字号:
//#define BL1T30      L56
//#define BL1T31      L57
//#define BL1T32      L58
//#define BL1T33      L59
//#define BL1T34      L60
//#define BL1T35      L61
//#define BL1T36      L62
//#define BL1T37      L63
//#define BL1T38      L64
//#define BL1T39      L65
//#define BL1T40      L66
//#define BL1T41      L67
//#define BL1T42      L68
//#define BL1T43      L69
//#define BL1T44      L70
//#define BL1T45      L71
//#define BL1T46      L72
//#define BL1T47      L73
//#define BL1T48      L74
//
//  48 x 1 bit Booleans Temp. L-Variables Addresses
//
//L27->Y:$9FE2,0
//L28->Y:$9FE2,1
//L29->Y:$9FE2,2
//L30->Y:$9FE2,3
//L31->Y:$9FE2,4
//L32->Y:$9FE2,5
//L33->Y:$9FE2,6
//L34->Y:$9FE2,7
//L35->Y:$9FE2,8
//L36->Y:$9FE2,9
//L37->Y:$9FE2,10
//L38->Y:$9FE2,11
//L39->Y:$9FE2,12
//L40->Y:$9FE2,13
//L41->Y:$9FE2,14
//L42->Y:$9FE2,15
//L43->Y:$9FE2,16
//L44->Y:$9FE2,17
//L45->Y:$9FE2,18
//L46->Y:$9FE2,19
//L47->Y:$9FE2,20
//L48->Y:$9FE2,21
//L49->Y:$9FE2,22
//L50->Y:$9FE2,23
//L51->X:$9FE2,0
//L52->X:$9FE2,1
//L53->X:$9FE2,2
//L54->X:$9FE2,3
//L55->X:$9FE2,4
//L56->X:$9FE2,5
//L57->X:$9FE2,6
//L58->X:$9FE2,7
//L59->X:$9FE2,8
//L60->X:$9FE2,9
//L61->X:$9FE2,10
//L62->X:$9FE2,11
//L63->X:$9FE2,12
//L64->X:$9FE2,13
//L65->X:$9FE2,14
//L66->X:$9FE2,15
//L67->X:$9FE2,16
//L68->X:$9FE2,17
//L69->X:$9FE2,18
//L70->X:$9FE2,19
//L71->X:$9FE2,20
//L72->X:$9FE2,21
//L73->X:$9FE2,22
//L74->X:$9FE2,23
//
//  4 x 24 bit signed Temp. L & M Variable Unions
//                          Used to convert L->M or M->L Variables
//                          & are the same memory location.
//#define ILM24T1     L75
//#define ILM24T2     L76
//#define ILM24T3     L77
//#define ILM24T4     L78
//
//  4 x 24 bit signed Temp. L & M Variable Unions
//                          Used to convert L->M or M->L
//                          & are the same memory location.

//#define IML24T1     M400
//#define IML24T2     M401
//#define IML24T3     M402
//#define IML24T4     M403
//
//  4 x 24 bit signed Temp. L & M Variable Unions Addresses
//                          Used to convert L->M or M->L
//
//L75->Y:$9FE1,0,24,S
//L76->X:$9FE1,0,24,S
//L77->Y:$9FE0,0,24,S
//L78->X:$9FE0,0,24,S

//M400->Y:$9FE1,0,24,S
//M401->X:$9FE1,0,24,S
//M402->Y:$9FE0,0,24,S
//M403->X:$9FE0,0,24,S
//
//  8 x 48 bit Float Temp. P-Variables
//
//#define FP48T1      P400
//#define FP48T2      P401
//#define FP48T3      P402
//#define FP48T4      P403
//#define FP48T5      P404
//#define FP48T6      P405
//#define FP48T7      P406
//#define FP48T8      P407
//**************************************************************
//
//  End of Temporary L, P & M Variables
//
//**************************************************************
//**************************************************************
//
//  Start Permanent "TIMERTIC.PLC" L & M Variables
//
//**************************************************************
//****************NO CHANGE**********************
//#define NCPLCTMTIC  L0      // L PLCC TIME TIC COMMON M-L VAR 24 BIT
#define NCPLCTMTIC_ADR      Y:$9FFE,0,24,S

//#define PREVTIME    L79     // L VAR 24 BIT previous SERVOTIME
#define PREVTIME_ADR        X:$9FFE,0,24,S

//#define SERVOTIME   L80     // L VAR 24 BIT
#define SERVOTIME_ADR       X:$0,0,24,S

//NO CHANGE

//#define SCANCNT     L81     // L VAR 24 BIT SCAN AVERAGE COUNT
#define SCANCNT_ADR         X:$9FFD,0,24,S
#define SCAN_MAX_M    M406    ;// M VAR 24 BIT SCAN MAX
#define SCAN_MAX_ADR        X:$9FFB,0,24,U
#define SCAN_AVE_M    M407    ;// M VAR 24 BIT SCAN AVE
#define SCAN_AVE_ADR        Y:$9FFB,0,24,U

#define NCPLCTMTIC_M  M404  ;// M PLCC TIME TIC COMMON M-L VAR 24 BIT
#define NCPLCTMTIC_M_ADR    Y:$9FFE,0,24,S

#define FDT_SUM       P408    ;// M 48 bit float - SCAN DT SUM
#define SERVOTMSF     P409    ;;/ M 48 bit float - Converts servo time to msec
#define RESTIME       P410    ;// M 48 bit float - Residual fractional PLC Scan Delta Time

;
; Define temporary variable use
;
//#define SERVOTMP   IL24T1         // GLOBAL TEMP VARIABLES
//#define DT_L       ILM24T2        // UNION L & M 24 INTEGER
//#define DT_M       IML24T2        // UNION M & L 24 INTEGER
//#define FDT        FP48T1         // FLOAT 48 BIT TEMP
//#define IDT        FP48T2         // FLOAT 48 BIT TEMP
//#define IRESTIME   FP48T3         // FLOAT 48 BIT TEMP

;***************************************************************************
; Clears UBUFFER up to $9FFC
;********//NO CHANGE**********

//NO CHAGHE 

#define ZERO_PTR         M405   ; // !!! IF CHANGE, MUST CHANGE ZERO_INDX_ADR !!
#define ZERO_PTR_ADR     L:$9FFD
#define ZERO_INDX        L82
#define ZERO_INDX_ADR    Y:$BD95,0,16,U  ;// DEFINE ADDRESS OF M405
#define PMAC_RAM_END     L83
#define PMAC_RAM_END_ADR X:$F3F,0,16,U  ;// DEFINE ADDRESS OF END OF PMAC RAM BUF
#define END_OF_USER_BUF  $9FFD
;***************************************************************************

ZERO_PTR->ZERO_PTR_ADR
//ZERO_INDX->ZERO_INDX_ADR
//PMAC_RAM_END->PMAC_RAM_END_ADR
//NCPLCTMTIC->NCPLCTMTIC_ADR
NCPLCTMTIC_M->NCPLCTMTIC_M_ADR
//SERVOTIME->SERVOTIME_ADR
//PREVTIME->PREVTIME_ADR
//SCANCNT->SCANCNT_ADR
SCAN_MAX_M->SCAN_MAX_ADR
SCAN_AVE_M->SCAN_AVE_ADR

//**************************************************************
//  TIMERTIC PLCC Number
//
#define TIMERTIC_PLCC 1         ;// TIMER TIC PLCC NUMBER
//
//**************************************************************

////////////////////////////////////////////////////////////////////////////
// macro definitions for PUNSET reserves M416..M437
////////////////////////////////////////////////////////////////////////////
#define AXIS_DEF_OFS1_M     M416
#define AXIS_DEF_OFS2_M     M417
#define AXIS_DEF_OFS3_M     M418
#define AXIS_DEF_OFS4_M     M419
#define AXIS_DEF_OFS5_M     M420
#define AXIS_DEF_OFS6_M     M421
#define AXIS_DEF_OFS7_M     M422
#define AXIS_DEF_OFS8_M     M423
#define AXIS_DEF_OFS1_ADR   L:$D2  ;L:$825
#define AXIS_DEF_OFS2_ADR   L:$152 ;L:$8E5
#define AXIS_DEF_OFS3_ADR   L:$1D2 ;L:$9A5
#define AXIS_DEF_OFS4_ADR   L:$252 
#define AXIS_DEF_OFS5_ADR   L:$2D2 
#define AXIS_DEF_OFS6_ADR   L:$352 
#define AXIS_DEF_OFS7_ADR   L:$3D2 
#define AXIS_DEF_OFS8_ADR   L:$452 

AXIS_DEF_OFS1_M->AXIS_DEF_OFS1_ADR
AXIS_DEF_OFS2_M->AXIS_DEF_OFS2_ADR
AXIS_DEF_OFS3_M->AXIS_DEF_OFS3_ADR
AXIS_DEF_OFS4_M->AXIS_DEF_OFS4_ADR
AXIS_DEF_OFS5_M->AXIS_DEF_OFS5_ADR
AXIS_DEF_OFS6_M->AXIS_DEF_OFS6_ADR
AXIS_DEF_OFS7_M->AXIS_DEF_OFS7_ADR
AXIS_DEF_OFS8_M->AXIS_DEF_OFS8_ADR

#define POS_BIAS1_M       M424
#define POS_BIAS2_M       M425
#define POS_BIAS3_M       M426
#define POS_BIAS4_M       M427
#define POS_BIAS5_M       M428
#define POS_BIAS6_M       M429
#define POS_BIAS7_M       M430
#define POS_BIAS8_M       M431

#define POS_BIAS1_ADR     D:$CC ;;D:$813
#define POS_BIAS2_ADR     D:$14C ;D:$8D3
#define POS_BIAS3_ADR     D:$1CC ;D:$993
#define POS_BIAS4_ADR     D:$24C 
#define POS_BIAS5_ADR     D:$2CC 
#define POS_BIAS6_ADR     D:$34C 
#define POS_BIAS7_ADR     D:$3CC 
#define POS_BIAS8_ADR     D:$44C 
 

POS_BIAS1_M->POS_BIAS1_ADR
POS_BIAS2_M->POS_BIAS2_ADR
POS_BIAS3_M->POS_BIAS3_ADR
POS_BIAS4_M->POS_BIAS4_ADR
POS_BIAS5_M->POS_BIAS5_ADR
POS_BIAS6_M->POS_BIAS6_ADR
POS_BIAS7_M->POS_BIAS7_ADR
POS_BIAS8_M->POS_BIAS8_ADR

#define U_CMD_POS_M       M432
#define V_CMD_POS_M       M433
#define W_CMD_POS_M       M434
#define A_CMD_POS_M       M435
#define B_CMD_POS_M       M436
#define C_CMD_POS_M       M437

#define U_CMD_POS_ADR     L:$2044 ;L:$81C
#define V_CMD_POS_ADR     L:$2045 ;L:$81D
#define W_CMD_POS_ADR     L:$2046 ;L:$81E
#define A_CMD_POS_ADR     L:$2041 
#define B_CMD_POS_ADR     L:$2042
#define C_CMD_POS_ADR     L:$2043 

U_CMD_POS_M->U_CMD_POS_ADR
V_CMD_POS_M->V_CMD_POS_ADR
W_CMD_POS_M->W_CMD_POS_ADR
A_CMD_POS_M->A_CMD_POS_ADR
B_CMD_POS_M->B_CMD_POS_ADR
C_CMD_POS_M->C_CMD_POS_ADR


////////////////////////////////////////////////////////////////////////////
// macro definitions for HANDLE.PLC (plc 4) reserves M440..M469, P440..P469
////////////////////////////////////////////////////////////////////////////

#define TARGET_POS_1        P440    ;// The new position for an incremental jog
#define TARGET_POS_2        P441    ;// which is performed every 100 ms in counts
#define TARGET_POS_3        P442
#define TARGET_POS_4        P443    ;// The new position for an incremental jog
#define TARGET_POS_5        P444    ;// which is performed every 100 ms in counts
#define TARGET_POS_6        P445
#define TARGET_POS_7        P446
#define TARGET_POS_8        P447

#define HANDLE_FACTOR_1     P448    ;// Scale factor for handling a change in
#define HANDLE_FACTOR_2     P449    ;// handle counts
#define HANDLE_FACTOR_3     P450
#define HANDLE_FACTOR_4     P451    ;// Scale factor for handling a change in
#define HANDLE_FACTOR_5     P452    ;// handle counts
#define HANDLE_FACTOR_6     P453
#define HANDLE_FACTOR_7     P454
#define HANDLE_FACTOR_8     P455

#define INIT_HANDLE         P456    ;// Flag for initializing the handwheel
#define HANDLE_CHANGE       P457    ;;/ The change in counts of the handwheel
#define PREV_HANDLE_COUNT   P458    ;// The handle counts for previous PLC scan

#define PREV_1_JOG_SPEED    P459
#define PREV_2_JOG_SPEED    P460
#define PREV_3_JOG_SPEED    P461
#define PREV_4_JOG_SPEED    P462
#define PREV_5_JOG_SPEED    P463
#define PREV_6_JOG_SPEED    P464
#define PREV_7_JOG_SPEED    P465
#define PREV_8_JOG_SPEED    P466

#define TARGET_POS1_M       M440     ;// The position to perform incremental jog.
#define TARGET_POS1_ADR     L:$D7   ;// For use with the CMD"J=*" ;L:$82B   
#define TARGET_POS2_M       M441
#define TARGET_POS2_ADR     L:$157 ;L:$8EB
#define TARGET_POS3_M       M442
#define TARGET_POS3_ADR     L:$1D7 ;L:$9AB
#define TARGET_POS4_M       M443
#define TARGET_POS4_ADR     L:$257 
#define TARGET_POS5_M       M444
#define TARGET_POS5_ADR     L:$2D7 
#define TARGET_POS6_M       M445
#define TARGET_POS6_ADR     L:$357 
#define TARGET_POS7_M       M446
#define TARGET_POS7_ADR     L:$3D7 
#define TARGET_POS8_M       M447
#define TARGET_POS8_ADR     L:$457 



#define DESIRED_POS1_M      M448    ;// The current commanded position used for
#define DESIRED_POS1_ADR    D:$88   ;// initialization ;D:$28   
#define DESIRED_POS2_M      M449
#define DESIRED_POS2_ADR    D:$108  ;D:$64
#define DESIRED_POS3_M      M450
#define DESIRED_POS3_ADR    D:$188 ;D:$A0
#define DESIRED_POS4_M      M451    ;// The current commanded position used for
#define DESIRED_POS4_ADR    D:$208  ; // initialization;D:$DC   
#define DESIRED_POS5_M      M452
#define DESIRED_POS5_ADR    D:$288 
#define DESIRED_POS6_M      M453
#define DESIRED_POS6_ADR    D:$308 
#define DESIRED_POS7_M      M454
#define DESIRED_POS7_ADR    D:$388 
#define DESIRED_POS8_M      M455
#define DESIRED_POS8_ADR    D:$408 


// See PAGE 8-11 of PMAC Software Reference
// ----------------------------------------
//                  Axis Label
//
//   Motor No.  |  X or U or A or B or C |   Y or V   |  Z or W
//    --------------------------------------------------------------
//        1     |      L:$822            |   L:$823   |     L:$824
//        2     |      L:$8E2            |   L:$8E3   |     L:$8E4
//        3     |      L:$9A2            |   L:$9A3   |     L:$9A4
//        4     |      L:$A62            |   L:$A63   |     L:$A64
//        5     |      L:$B22            |   L:$B23   |     L:$B24
//        6     |      L:$BE2            |   L:$BE3   |     L:$BE4
//        7     |      L:$CA2            |   L:$CA3   |     L:$CA4
//        8     |      L:$D62            |   L:$D63   |     L:$D64
//
//   Pulses per units is on a motor basis. The addresses are currently set up to
//   use motor 1 as X, motor 2 as Y, motor 3 as Z. It may be necessary to alter
//   the motor addresses if so use the chart above to choose the appropiate
//   address for the pulses per unit address.

#define PULSES_PER_UNIT_1      M456
#define PULSES_PER_UNIT1_ADR   L:$CF       ;// Motor 1 is axis X;L:$822       
#define PULSES_PER_UNIT_2      M457
#define PULSES_PER_UNIT2_ADR   L:$14F       ;// Motor 2 is axis Y;L:$8E3       
#define PULSES_PER_UNIT_3      M458
#define PULSES_PER_UNIT3_ADR   L:$1CF       ;// Motor 3 is axis Z;L:$9A4       
#define PULSES_PER_UNIT_4      M459
#define PULSES_PER_UNIT4_ADR   L:$24F		;// Motor 4 is axis X;
#define PULSES_PER_UNIT_5      M460
#define PULSES_PER_UNIT5_ADR   L:$2CF       ;// Motor 5 is axis U;
#define PULSES_PER_UNIT_6      M461
#define PULSES_PER_UNIT6_ADR   L:$34F       ;// Motor 6 is axis V;
#define PULSES_PER_UNIT_7      M462
#define PULSES_PER_UNIT7_ADR   L:$3CF       ;// Motor 7 is axis A;
#define PULSES_PER_UNIT_8      M463
#define PULSES_PER_UNIT8_ADR   L:$44F       ;// Motor 8 is axis C;


#define HANDLE_COUNT_M      M464            ;// The address of the handle counter
#define HANDLE_COUNT_ADR    Y:$10F0,0,24,S  ;Y:$0770,0,24,S

DESIRED_POS1_M->DESIRED_POS1_ADR
DESIRED_POS2_M->DESIRED_POS2_ADR
DESIRED_POS3_M->DESIRED_POS3_ADR
DESIRED_POS4_M->DESIRED_POS4_ADR
DESIRED_POS5_M->DESIRED_POS5_ADR
DESIRED_POS6_M->DESIRED_POS6_ADR
DESIRED_POS7_M->DESIRED_POS7_ADR
DESIRED_POS8_M->DESIRED_POS8_ADR

TARGET_POS1_M->TARGET_POS1_ADR
TARGET_POS2_M->TARGET_POS2_ADR
TARGET_POS3_M->TARGET_POS3_ADR
TARGET_POS4_M->TARGET_POS4_ADR
TARGET_POS5_M->TARGET_POS5_ADR
TARGET_POS6_M->TARGET_POS6_ADR
TARGET_POS7_M->TARGET_POS7_ADR
TARGET_POS8_M->TARGET_POS8_ADR

HANDLE_COUNT_M->HANDLE_COUNT_ADR
PULSES_PER_UNIT_1->PULSES_PER_UNIT1_ADR
PULSES_PER_UNIT_2->PULSES_PER_UNIT2_ADR
PULSES_PER_UNIT_3->PULSES_PER_UNIT3_ADR
PULSES_PER_UNIT_4->PULSES_PER_UNIT4_ADR
PULSES_PER_UNIT_5->PULSES_PER_UNIT5_ADR
PULSES_PER_UNIT_6->PULSES_PER_UNIT6_ADR
PULSES_PER_UNIT_7->PULSES_PER_UNIT7_ADR
PULSES_PER_UNIT_8->PULSES_PER_UNIT8_ADR


#define PREV_RPD_OVRD_P         P470
#define PREV_FEED_OVRD_P        P471
#define TIME_COUNT_P		P660

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -