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

📄 handle_03.pmc

📁 基于PMAC运动控制卡的八轴数控磨床PLC运动控制程序
💻 PMC
字号:

#include "address.h"
#include "oemm.h"
#include "oem.h"
#include "tsodick1.h"
#include "tsodick2.h"
#include "tsodick3.h"

OPEN PLC 3 CLEAR
// Copy the current target positions for restoration later
//--------------------------------------------------------

/*
If (@ON(CS_COMMAND8_M,CS_MGY))       	   //手脉
OR(@ON(CS_COMMAND8_M,CS_UVMGY))       	   //U/V手脉
S_AXIS_M=C_AXIS_M  ;
//enable plc 3
EndIf*/

//S_AXIS_M=C_AXIS_M

If (@ON(C_DIST_M,SEL_DIST_1))  //手脉倍率
VS_HAND_STEP_M=1
Else If (@ON(C_DIST_M,SEL_DIST_10))
  VS_HAND_STEP_M=10
  //Else If (@ON(C_DIST_M,SEL_DIST_100))
Else If (@ON(C_DIST_M,4))
  VS_HAND_STEP_M=100
EndIf EndIf EndIf


While (C_MODE_M = SEL_MODE_MANUAL) //HANDLE PROTECT OF M51
If (@ON(CS_COMMAND8_M,CS_MGY))
    
  If (S_ERROR_M = 0 Or S_ERROR_M > 2 Or @ON(CS_STATUS7_M,CS_ENA_HANDLE))
    //VS_FEED_OVERRIDE_M = 100.0
    // Timed delay of the jog moves should match the
    // acceleration time
    @START_TIMER(TIMER_1_M,70)
    While (@TIMER_RUNNING(TIMER_1_M))
    EndWhile
    
    // Configure jog speeds so they work appropiately
    // with the handwheel the speeds must be configured
    // by the integrator
    
    //;--------------------------------------
    /*inhibit handle If (LIMIT*/
      If (C_AXIS_M = SEL_AXIS_X And MGY_CZAB_ON_P = 0 And X_POS_LIM_M = 0 And X_NEG_LIM_M = 0)
        i106=1
        i206=0
        i306=0
        i406=0
        i506=0
        i606=0
        i706=0
        i806=0
        //If (VS_GGROUP6_1_M = 20)
        //  i107=30*VS_HAND_STEP_M*2.54
        // Else
        i107=30*VS_HAND_STEP_M
        // EndIf
      EndIf
      
      
      If (C_AXIS_M = SEL_AXIS_Y And MGY_CZAB_ON_P = 0 And Y_POS_LIM_M = 0 And Y_NEG_LIM_M = 0)
        i106=0
        i206=1
        i306=0
        i406=0
        i506=0
        i606=0
        i706=0
        i806=0
        i207=30*VS_HAND_STEP_M
      EndIf
      
      
      // If (C_AXIS_M = SEL_AXIS_U And MGY_CZAB_ON_P = 0 And U_POS_LIM_M = 0 And U_NEG_LIM_M = 0)
      If (C_AXIS_M = 4 And MGY_CZAB_ON_P = 0 And U_POS_LIM_M = 0 And U_NEG_LIM_M = 0)
        i106=0
        i206=0
        i306=1
        i406=0
        i506=0
        i606=0
        i706=0
        i806=0
        i307=30*1.31072*VS_HAND_STEP_M
      EndIf
      
      //If (C_AXIS_M = SEL_AXIS_V And MGY_CZAB_ON_P = 0 And V_POS_LIM_M = 0 And V_NEG_LIM_M = 0)
      If (C_AXIS_M = 8 And MGY_CZAB_ON_P = 0 And V_POS_LIM_M = 0 And V_NEG_LIM_M = 0)
        i106=0
        i206=0
        i306=0
        i406=1
        i506=0
        i606=0
        i706=0
        i806=0
        i407=30*1.31072*VS_HAND_STEP_M
      EndIf
      
      
      If (C_AXIS_M = SEL_AXIS_X And MGY_CZAB_ON_P = 1 And C_POS_LIM_M = 0 And C_NEG_LIM_M = 0)
        i106=0
        i206=0
        i306=0
        i406=0
        i506=1
        i606=0
        i706=0
        i806=0
        i507=30*7.554844*VS_HAND_STEP_M
      EndIf
      
      
      If (C_AXIS_M = SEL_AXIS_Y And MGY_CZAB_ON_P = 1 And Z_POS_LIM_M = 0 And Z_NEG_LIM_M = 0)
        i106=0
        i206=0
        i306=0
        i406=0
        i506=0
        i606=1
        i706=0
        i806=0
        i607=3*VS_HAND_STEP_M
      EndIf
      
      
      
      //   If (C_AXIS_M = SEL_AXIS_U And MGY_CZAB_ON_P = 1)
      If (C_AXIS_M = 4 And MGY_CZAB_ON_P = 1)
        i106=0
        i206=0
        i306=0
        i406=0
        i506=0
        i606=0
        i706=1
        i806=0
        i707=30*VS_HAND_STEP_M
      EndIf
      
      //   If (C_AXIS_M = SEL_AXIS_V And MGY_CZAB_ON_P = 1)
      If (C_AXIS_M = 8 And MGY_CZAB_ON_P = 1)
        i106=0
        i206=0
        i306=0
        i406=0
        i506=0
        i606=0
        i706=0
        i806=1
        i807=30*VS_HAND_STEP_M
      EndIf
      
    EndIf
    
  Else  
        i106=0
        i206=0
        i306=0
        i406=0
        i506=0
        i606=0
        i706=0
        i806=0   
  EndIf
EndWhile





While (INIT_HANDLE > 1 And C_MODE_M != SEL_MODE_MANUAL)
  If (@ON(CS_COMMAND8_M,CS_UVMGY))
    If (S_ERROR_M = 0 Or S_ERROR_M > 2 Or @ON(CS_STATUS7_M,CS_ENA_HANDLE))
      // Timed delay of the jog moves should match the
      // acceleration time
      @START_TIMER(TIMER_1_M,70)
      While (@TIMER_RUNNING(TIMER_1_M))
      EndWhile
      
      
      //   If (C_AXIS_M = SEL_AXIS_U And MGY_CZAB_ON_P = 0 And U_POS_LIM_M = 0 And U_NEG_LIM_M = 0)
      If (C_AXIS_M = 4 And MGY_CZAB_ON_P = 0 And U_POS_LIM_M = 0 And U_NEG_LIM_M = 0)
        
        i106=0
        i206=0
        i306=1
        i406=0
        i506=0
        i606=0
        i706=0
        i806=0
        i307=30*1.31072*VS_HAND_STEP_M
      EndIf
      
      //   If (C_AXIS_M = SEL_AXIS_V And MGY_CZAB_ON_P = 0 And V_POS_LIM_M = 0 And V_NEG_LIM_M = 0)
      If (C_AXIS_M = 8 And MGY_CZAB_ON_P = 0 And V_POS_LIM_M = 0 And V_NEG_LIM_M = 0)
        i106=0
        i206=0
        i306=0
        i406=1
        i506=0
        i606=0
        i706=0
        i806=0
        i407=30*1.31072*VS_HAND_STEP_M
      EndIf
      
    EndIf
  Else  
        
        i106=0
        i206=0
        i306=0
        i406=0
        i506=0
        i606=0
        i706=0
        i806=0
  EndIf
EndWhile



If (C_MODE_M != SEL_MODE_MANUAL And @OFF(CS_STATUS8_M,CS_UVMGY))
  // DISABLE PLC 3
EndIf

CLOSE






































⌨️ 快捷键说明

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