华中数控世纪星PLC编程说明书 下载本文

华中数控PLC编程说明书

3.4.12 通道主轴转速

#define ch_spdl_speed(x) (G_i[(x)*20+167]) //主轴转动速度

其中宏参数x表示通道号,其值可为0,1,2,3,即系统最大可有4个通道。 3.4.13 通道跳选段控制及其实现说明

#define ch_skip_sw(x) (G_ui[(x)*20+168]) //代码执行时的跳转 其中宏参数x表示通道号,其值可为0,1,2,3,即系统最大可有4个通道。 跳选段的具体实现如下: 数控程序方面

在G代码程序中需要加工时选择运行的G代码行的开头加入‘/’或‘//’,紧跟其后必须有一个数字‘1’-‘9’。这个数字表示跳选段开关的位置,即跳选段波段开关在哪一档时,应该跳过该段程序行。

例,设在数控程序中有如下行: //7 N0100X100Y100

则跳选段开关处在波段7时,数控系统将跳过这一段程序。

控制面板方面

控制面板上必须有一个跳选段波段开关或其它类型的开关,并标明跳选段的类型(如禁止跳选段、跳1类段、跳2类段、---跳9类段等)。 PLC程序方面

PLC程序中,必须检测跳选段波段开关的状态。如果禁止跳选段功能,则置如下PLC变量值为0:

*ch_skip_sw(0)=0;

其中,宏ch_skip_sw(int)的参数为通道号。 如果跳选段功能为“跳1类段”,则置上述变量为: *ch_skip_sw(0)=0x0001; 如果跳选段功能为“跳2类段”,则置上述变量为: *ch_skip_sw(0)=0x0002; 如果跳选段功能为“跳3类段”,则置上述变量为: *ch_skip_sw(0)=0x0004; -------

如果跳选段功能为“跳9类段”,则置上述变量为: *ch_skip_sw(0)=0x0100;

21

华中数控PLC编程说明书

3.4.14 通道MST指令模态值

#define ch_mst_mod(x,n) (G_i[(x)*20+170+(n)]) //通道MST模式

其中宏参数x表示通道号,其值可为0,1,2,3,即系统最大可有4个通道;参数n表示状态字节偏移量,具体定义如下:

3.4.14.1 通道当前的M代码模态值

#define mod_M_code(ch) (*ch_mst_mod(ch,0))//M代码模式

其中宏参数ch表示通道号,其值可为0,1,2,3,即系统最大可有4个通道。 3.4.14.2 通道当前的S代码模态值

#define mod_S_code(ch) (*ch_mst_mod(ch,1)) //S代码模式

其中宏参数ch表示通道号,其值可为0,1,2,3,即系统最大可有4个通道。 3.4.14.3 通道当前的T代码模态值

#define mod_T_code(ch) (*ch_mst_mod(ch,2)) //T代码模式

其中宏参数ch表示通道号,其值可为0,1,2,3,即系统最大可有4个通道。 3.4.14.4 通道当前的B代码模态值

#define mod_B_code(ch) (*ch_mst_mod(ch,3))//B代码模式

其中宏参数ch表示通道号,其值可为0,1,2,3,即系统最大可有4个通道。 3.4.14.5 通道是否正在执行MST指令

#define mod_mst_busy(ch) (*ch_mst_mod(ch,4))

其中宏参数ch表示通道号,其值可为0,1,2,3,即系统最大可有4个通道。其中各位含义如下:

#define CH_M_BUSY 0x0001 //M指令忙,不能再接受M指令

#define CH_S_BUSY 0x0002 //S指令忙,不能再接受S指令 #define CH_T_BUSY 0x0004 //T指令忙,不能再接受T指令 #define CH_B_BUSY 0x0008 //B指令忙,不能再接受B指令 3.4.14.6 PLC正在执行MST指令,不允许系统停止运行

#define msthold_dis(ch) (*ch_mst_mod(ch,4))

其中宏参数ch表示通道号,其值可为0,1,2,3,即系统最大可有4个通道。本宏表示PLC不能按数控系统要求立即停止正在执行的MST指令。其中各位含义如下:

#define CH_M_HDIS #define CH_S_HDIS #define CH_T_HDIS

0x0100 //PLC不能停止M指令 0x0200 // PLC不能停止S指令 0x0400 // PLC不能停止T指令

22

华中数控PLC编程说明书

#define CH_B_HDIS 0x0800 // PLC不能停止B指令 3.4.14.7 通道程序停止M00/程序选择停止M01

#define mod_m00_m01(ch) (*ch_mst_mod(ch,4)) //

其中宏参数ch表示通道号,其值可为0,1,2,3,即系统最大可有4个通道。其中各位含义如下:

#define CH_M00 0x1000 //M00指令 #define CH_M01 0x2000 //M01指令 注:华中数控系统M指令中,由于M00及M01为非模态码,它们要求PLC对其进行特殊处理。系统要求在函数plc1()中对“循环起动”按键进行处理之前,对M00及M01进行处理,如:

……

//cycle start sw循环启动处理

if(mod_m00_m01(0)&(CH_M00|CH_M01))//M01及M00指令处理 {

*ch_ctrl(0)|=CH_FEEDHOLD_SW;//进给保持 *ch_ctrl(0)&=~CH_CYCLE_SW;//关闭循环启动

mod_m00_m01(0)&=~(CH_M00|CH_M01);//清M00及M01代码

}

else//程序不停止 {

u1=X[2]&R[12]&R[22]&3; //假设“循环启动”输入位为X2.0 u2=(X[2]|R[12]|R[22])&3; //假设“进给保持”输入位为X2.1 if(u1==3)//循环启动或进给保持 { }

……

} ……

3.4.15 系统控制字

#define sys_ctrl() 其控制字各位定义如下: #define SYS_SAVE_BBUF

(G_ui[250]) //系统控制 0x0001 //保存断电缓冲

23

华中数控PLC编程说明书

#define SYS_SAVE_CUTTER #define SYS_SAVE_COORD #define SYS_SAVE_POS #define SYS_SAVE_ERROR #define SYS_LOAD_PARM #define SYS_ESTOP #define SYS_RESET 3.4.16 系统外部报警

0x0002 //保存刀具状态

0x0004 //保存坐标 0x0008 //保存位置 0x0010 //保存错误 0x1000 //装载参数 0x4000 //系统停止 0x8000 //系统复位

#define sys_ext_alm() (G_ui[251]) //系统外部警报种类 PLC最多可定义15种外部报警信息。报警信息可在参数中设置。这样PLC程序也可以向系统及用户报警。 3.17 系统变量组2(系统保留)

#define sys_var2(n)

(G_ui[240+(n)]) //系统变量组2(n)

3.5 寄存器B系统约定

寄存器B为断电保护区。关于断电保护区的应用可参见第九、第十章。对于B寄存器,系统提供如下宏定义,供用户使用: 3.5.1 刀座数

#define tot_mag_pos()

(B_ui) (B_i+1+(x))

3.5.2 某一刀座中的刀号(刀库表)

#define cutter_in_mag(x)

3.6 可被PLC程序调用的系统函数

华中数控为PLC程序提供了足够丰富的系统函数,这些函数具体接口定义如下:

3.6.1 设置轴回零

void set_axis_home( int axis, //所指定的轴号:0-15 int start_stop); //为0:取消回零 非0:回零

24