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

华中数控PLC编程说明书

3.3.9 通道MSTB指令状态

#define ch_mst_stb(x) (F_ui[(x)*20+163]) //通道MST指令请求 其中宏参数x表示通道号,其值可为0,1,2,3,即系统最大可有4个通道。其值各位的意义定义如下:

#define CH_M_STB 0x0100 //M指令 #define CH_S_STB 0x0200 //S指令 #define CH_T_STB 0x0400 //T指令

#define CH_B_STB 0x0800 //B指令

#define CH_MSTHOLD_CMD 0x2000 //数控系统请求停止MST #define CH_MST_CANCEL 0x8000 //数控系统请求取消MST 3.3.10 通道当前的M代码

#define ch_M_code(x) (F_i[(x)*20+164]) //M代码

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

#define ch_T_code(x) (F_i[(x)*20+165]) //T代码

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

#define ch_B_code(x) (F_i[(x)*20+166]) //B代码

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

#define ch_S_code(x) (F_i[(x)*20+167]) //S代码

其中宏参数x表示通道号,其值可为0,1,2,3,即系统最大可有4个通道。 3.3.14 通道变量,通道内部参数

#define ch_var(x,n) 3.3.15 系统状态字

#define sys_stat() (F_ui[250]) //系统状态 系统状态字各位的定义如下: #define SYS_BBUF_LOSS #define SYS_ACTIVE_LAMP #define SYS_PARM_ERROR

0x0001 //系统断电保护区丢失

0x0080 //系统已启动(软件安装完成) 0x1000 //系统参数错

17

(F_ui[(x)*20+170+(n)]) //通道变量

华中数控PLC编程说明书

#define SYS_FAIL_LAMP #define SYS_ALARM_LAMP #define SYS_RESET_LAMP #define sys_iip_time() #define sys_pm1um() #define sys_pr1md() #define sys_var1(n)

0x2000 //系统故障 0x4000 //系统报警 0x8000 //系统复位

3.3.16 系统插补周期,单位:毫秒

(F_ui[251]) (F_ui[252]) (F_ui[253])

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

3.3.17 系统移动轴内部脉冲当量 3.3.18 系统旋转轴内部脉冲当量 3.3.19 系统变量组1(系统保留)

3.4 G寄存器系统约定

对于G寄存器(请注意F、G均为地址指针),系统提供如下宏定义,供用户使用: 3.4.1 轴控制字

#define axis_ctrl(x) (G_ui[(x)*10]) //轴控制 其中宏参数x表示轴号,其值可为0,1,2,……15,即系统最大可有16个轴。其中各位的含义定义如下:

#define AX_LSP #define AX_LSN #define AX_HOME_SW #define AX_PHASE_Z #define AX_DISABLE_P #define AX_HMODE_SW #define AX_DISABLE_N #define AX_UNLINK #define AX_LOCK #define AX_SVFAIL_IN #define AX_NC_OFF

0x0001 //设置轴正极限到,并急停 0x0002 /设置/轴负极限到,并急停 0x0004 //轴参考点开关已到 0x0010 //零相脉冲信号

0x0020 //正极限到,但不急停 0x0040 //设置轴自动回零 0x0080 //负极限到,但不急停 0x0100 //设置轴不连接 0x0200 //轴锁定

0x0400 //外部伺服故障 0x0800 //关NC轴

18

华中数控PLC编程说明书

#define AX_UNCLAMP #define AX_ESTOP #define AX_RESET 0x2000 //设置轴松开,然后可人工转动电机

0x4000 //设置轴外部急停 0x8000 //设置轴外部复位

3.4.2 设置轴移动增量值,单位:内部脉冲当量

#define axis_pic_a(x) (G_l[(x)*10+1]) //轴移动位移 其中宏参数x表示轴号,其值可为0,1,2,……15,即系统最大可有16个轴。 3.4.3 设置轴增量移动速度,单位:内部脉冲当量/插补周期

#define axis_pic_v(x) (G_i[(x)*10+3]) //轴移动速度 其中宏参数x表示轴号,其值可为0,1,2,……15,即系统最大可有16个轴。 3.4.4 轴点动速度,单位:内部脉冲当量/插补周期

#define axis_pvcmd(x) (G_i[(x)*10+4]) // 其中宏参数x表示轴号,其值可为0,1,2,……15,即系统最大可有16个轴。 3.4.5 设置轴补偿值

#define axis_pecmd(x) (G_i[(x)*10+5]) // 其中宏参数x表示轴号,其值可为0,1,2,……15,即系统最大可有16个轴。利用本宏可在PLC中设置相应轴当前的间隙补偿值或螺距补偿值,系统会根据PLC的输入对当前轴进行补偿。 3.4.6 通道用户自定义输入

#define ch_user_in(x) (G_ul[(x)*20+160]) //通道用户输入屏蔽 其中宏参数x表示轴号,其值可为0,1,2,……15,即系统最大可有16个轴。该宏同上一节2.7所介绍的宏ch_user_out(x)相对应,请参阅。 3.4.7 通道控制字

#define ch_ctrl(x) (G_ui[(x)*20+162]) //通道控制

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

#define CH_MODE_MSK 0x0007 //通道模式屏蔽位 #define MODE_AUTO 1 //自动模式

#define #define #define

MODE_JOG 2 MODE_STEP 3 MODE_HANDWHEEL 4

//点动模式 //步进模式 //手摇模式

19

华中数控PLC编程说明书

#define MODE_REF_RETURN 5 //回零模式 #define CH_SGL_BLK 0x0008 //单段方式 #define CH_FEEDHOLD_SW 0x0010 //进给保持 #define CH_CYCLE_SW 0x0020 //循环启动 #define CH_DRY_RUN 0x0040 //空运行 #define CH_ESC_SW 0x0080 //用户面板要求当前段运行取消 #define CH_FLUSH 0x0100 //通道超前插补数据清除 #define CH_FSTOP #define CH_PROC_CANCEL #define CH_ESTOP #define CH_RESET 3.4.8 通道MST应答

#define ch_mst_ack(x) (G_ui[(x)*20+163]) //通道对MST指令的响应 其中宏参数x表示通道号,其值可为0,1,2,3,即系统最大可有4个通道。其中各位的定义如下:

#define CH_M_ACK 0x0001 //PLC已完成M指令 #define CH_S_ACK 0x0002 //PLC已完成S指令 #define CH_T_ACK 0x0004 //PLC已完成T指令 #define CH_B_ACK 0x0008 //PLC已完成B指令 #define CH_MST_BUSY 0x0010 //通道正在执行MST指令 #define CH_MSTHOLD_LAMP 0x0020 //MST用户锁定 3.4.9 通道进给速度修调分子(分母为100)

#define ch_feedover(x) (G_ui[(x)*20+164])

其中宏参数x表示通道号,其值可为0,1,2,3,即系统最大可有4个通道。 3.4.10 通道快移速度修调分子(分母为100)

#define ch_rapidover(x) (G_ui[(x)*20+165])

其中宏参数x表示通道号,其值可为0,1,2,3,即系统最大可有4个通道。 3.4.11 通道正在使用的刀具号

#define ch_cut_inuse(x) (G_i[(x)*20+166]) //正在使用的刀具号

其中宏参数x表示通道号,其值可为0,1,2,3,即系统最大可有4个通道。

0x0200 //通道已精确定位停止 0x0400 //程序运行结束 0x4000 //通道急停 0x8000 //通道复位

20