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

📄 grinder8a_m.pmc

📁 基于PMAC运动控制卡的八轴数控磨床PLC运动控制程序
💻 PMC
字号:
/**************** G-Code Definition Motion Program *********************

This MOTION Program executes various G-codes commanded from either
a part program or via MDI mode.

File: mill.g - Standard G codes for MILL

This file provides real time buffering to the rotary buffer.
The buffer may be many lines long, and the time period from when
the code was/**************** M-Code Definition Motion Program *********************

File: mill.m - Generic mill example 'M' code program.


This MOTION Program executes various M-codes commanded from either
a part program or via MDI mode.

This file is to provide real time buffering to the rotary buffer.
The buffer may be many lines long, and the time period from when
the code was entered into the buffer and when the code is actually
operated upon is unknown to the PC.
The PMAC's auto gosub functions for 'M' codes will cause these
functions to be operated upon at the time encountered in the rotary
buffer.

This file must match the current plc's installed in PMAC.

************************************************************************/

#include "address.h"
#include "oemm.h"
#include "oem.h"
#include "TSODICK1.h"
#include "TSODICK2.h"
#include "TSODICK3.h"

OPEN PROG 1001 CLEAR
;RET

//----------------------------
// M-code 0: program Stop
//----------------------------

//added by James2000-1-13 for Single Run Display
DWELL1000
//added by James99-6-24 for M00,M01 PatLight
;@SET_OFF(OUT_2_M,START_LED)
;@SET_OFF(OUT_2_M,HOLD_LED)
@SET_ON(ES_ERR_MSG_M,PROG_STOP_ALARM)
@SET_ON(CS_COMMAND4_M,CS_PROG_STOP)
DWELL0
STOP
RETURN

// Resume status on Code with multimotion ///////////////////////////////
N4
//NO_CYCLE_START=0	//it is steaded by CS_COMPLEX_MOTION
//after UI-P did R command,motion do STOP if SingleRun=ON,Billy99-11
@SET_OFF(CS_COMMAND7_M,CS_COMPLEX_MOTION)
If (@ON(CS_COMMAND3_M,CS_SINGLE_BLOCK))
  STOP//after UI-P did R command
EndIf

RETURN



//----------------------------
// M-code 1: Optional Stop
//----------------------------
N01000
//added by James2000-1-13 for Single Run Display
DWELL1000
//added by James99-6-24 for M00,M01 PatLight
;@SET_OFF(OUT_2_M,START_LED)
;@SET_ON(OUT_2_M,HOLD_LED)
@SET_ON(ES_ERR_MSG_M,OPTION_STOP_ALARM)
@SET_ON(CS_COMMAND3_M,CS_FEED_HOLD)
DWELL100
@SET_OFF(CS_COMMAND3_M,CS_FEED_HOLD)

;STOP

RETURN

//----------------------------
// M-code 2: program Stop
//----------------------------
N02000
//added by James2000-1-13 for Single Run Display
DWELL1000
//added by James99-6-24 for M00,M01 PatLight
;@SET_OFF(OUT_2_M,START_LED)
;@SET_OFF(OUT_2_M,HOLD_LED)
;@SET_ON(ES_ERR_MSG_M,PROG_STOP_ALARM)
;@SET_ON(CS_COMMAND4_M,CS_PROG_STOP)
LINEAR
DWELL0
RETURN


//----------------------------
// 往复启 On M-Code M08
//----------------------------
N08000
DWELL0
//NO_CYCLE_START=1
;@SET_ON(CS_COMMAND7_M,CS_COMPLEX_MOTION)
@SET_ON(CS_COMMAND9_M,CS_TO_FRO)
;CMD"#3J/"
; CMD"&1B1R"
;@SET_ON(OUT_2_M,TO_FRO_LED)
;@SET_OFF(OUT_2_M,INPOS_LED)
/*While (@OFF(CS_COMMAND9_M,CS_TO_FRO))
If (@OFF(CS_COMMAND9_M,CS_TO_FRO))
  @SET_ON(CS_COMMAND9_M,CS_TO_FRO)
  ;@SET_ON(OUT_2_M,TO_FRO_LED)
EndIf
EndWhile*/
;DWELL3000
//NO_CYCLE_START=0
;@SET_OFF(CS_COMMAND7_M,CS_COMPLEX_MOTION)
RETURN


//-----------------------------
// 往复停 Off M-Code M09
//-----------------------------
N09000
DWELL0
//NO_CYCLE_START=1
;@SET_ON(CS_COMMAND7_M,CS_COMPLEX_MOTION)
;@SET_OFF(OUT_2_M,TO_FRO_LED)
CMD"#3J/"
CMD"&1B1A"
@SET_OFF(CS_COMMAND9_M,CS_TO_FRO)

//NO_CYCLE_START=0
;@SET_OFF(CS_COMMAND7_M,CS_COMPLEX_MOTION)

RETURN

//-----------------------------
// 	 //准停  M-Code M10
//-----------------------------
N10000
DWELL0
//NO_CYCLE_START=1
;@SET_ON(CS_COMMAND7_M,CS_COMPLEX_MOTION)
@SET_ON(CS_COMMAND9_M,CS_INPOS)
;CMD"#3J=10000"

;@SET_ON(OUT_2_M,INPOS_LED)
//NO_CYCLE_START=0
;@SET_OFF(CS_COMMAND7_M,CS_COMPLEX_MOTION)

RETURN

//-----------------------------
//  //旋转启 M-Code M18
//-----------------------------
N18000
DWELL0
//NO_CYCLE_START=1
;@SET_ON(CS_COMMAND7_M,CS_COMPLEX_MOTION)
@SET_ON(CS_COMMAND9_M,CS_SPIN)
;@SET_ON(OUT_2_M,SPIN_LED)
;@SET_ON(OUT_2_M,HOLD_LED)
/*While (@ON(CS_COMMAND9_M,CS_SPIN))
If (@ON(CS_COMMAND9_M,CS_SPIN))
  @SET_ON(CS_COMMAND9_M,CS_SPIN)
  ;@SET_ON(OUT_2_M,TO_FRO_LED)
  EndIf*/
  
  /* While (@OFF(CS_COMMAND9_M,CS_SPIN))
    If (@OFF(CS_COMMAND9_M,CS_SPIN))
      @SET_ON(CS_COMMAND9_M,CS_SPIN)
      @SET_ON(CS_COMMAND9_M,CS_SPIN)
    EndIf
    EndWhile*/
    
    
    //NO_CYCLE_START=0
    ;@SET_OFF(CS_COMMAND7_M,CS_COMPLEX_MOTION)
    ;CMD"#3J+"
    RETURN
    
    //-----------------------------
    // 	 //旋转停  M-Code M19
    //-----------------------------
    N19000
    DWELL0
    //NO_CYCLE_START=1
    ; @SET_ON(CS_COMMAND7_M,CS_COMPLEX_MOTION)
    CMD"#7J/"
    @SET_OFF(CS_COMMAND9_M,CS_SPIN)
    ;@SET_OFF(OUT_2_M,SPIN_LED)
    //NO_CYCLE_START=0
    ; @SET_OFF(CS_COMMAND7_M,CS_COMPLEX_MOTION)
    
    RETURN
    
    
    //-----------------------------
    //  //修整启 M-Code M25
    //-----------------------------
    N25000
    DWELL0
    //NO_CYCLE_START=1
    ;@SET_ON(CS_COMMAND7_M,CS_COMPLEX_MOTION)
    @SET_ON(CS_COMMAND9_M,CS_MEND)
    ;@SET_ON(OUT_2_M,MEND_LED)
    //NO_CYCLE_START=0
    ;@SET_OFF(CS_COMMAND7_M,CS_COMPLEX_MOTION)
    
    RETURN
    
    //-----------------------------
    // 	 //修整停  M-Code M26
    //-----------------------------
    N26000
    DWELL0
    //NO_CYCLE_START=1
    ; @SET_ON(CS_COMMAND7_M,CS_COMPLEX_MOTION)
    CMD"#8J/"
    @SET_OFF(CS_COMMAND9_M,CS_MEND)
    ;@SET_OFF(OUT_2_M,MEND_LED)
    //NO_CYCLE_START=0
    ;@SET_OFF(CS_COMMAND7_M,CS_COMPLEX_MOTION)
    
    RETURN
    
    
    // End of Program M30
    N30000
    DWELL0
    DWELL100
    ; @SET_OFF(OUT_2_M,START_LED)
    ; @SET_OFF(OUT_2_M,HOLD_LED)
    ; @SET_ON(ES_ERR_MSG_M,PROG_STOP_ALARM)
    ; @SET_ON(CS_COMMAND4_M,CS_PROG_STOP)
    M30_STOP_FLG_M=1 ;/* M30 FINISH FOR API */
    LINEAR
    DWELL0
    RETURN
    
    
    // 调用子程序 M98
    N98000
    READ(O)
    CALL Q115
    RETURN
    
    // 从子程序返回 M99
    N99000
    
    RETURN
    
CLOSE





























⌨️ 快捷键说明

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