华中数控世纪星PLC编程说明书

华中数控PLC编程说明书

的含义。为方便用户编程及记忆,系统提供如下大量宏及函数供用户使用。本章将详细给出这些宏及函数的接口说明。建议您阅读本书提供的PLC例子程序时,再至本章查阅相关函数细节。

3.1 访问PLC寄存器的系统变量

第一章已经说明,以下地址指针变量都指向同一块内存,即PLC中间寄存器R,共有768个字节:

extern unsigned char extern char extern unsigned extern int extern unsigned long extern long extern unsigned char

R_uc[]; R_c[]; R_ui[]; R_i[]; R_ul[]; R_l[]; R[];

//以无符号字符型存取R寄存器 //以字符型存取R寄存器 //以无符号整型存取R寄存器 //以整型存取R寄存器

//以无符号长整型存取R寄存器 //以长整型存取R寄存器

//以无符号字符型存取R寄存器

同理,和R寄存器一样,系统提供如下变量定义供用户灵活使用,其中: 1) 2) 3) 4) 5) 6)

_uc表示以无符号字符型存取PLC寄存器 _c代表以字符型存取PLC寄存器

_ui代表以无符号整型存取PLC寄存器 _i代表以整型存取PLC寄存器

_ul代表以无符号长整型存取PLC寄存器 _l代表以长整型存取PLC寄存器

X_uc[], Y_uc[], *F_uc[], *G_uc[], P_uc[], B_uc[]; X_c[], Y_c[], *F_c[], *G_c[], P_c[], B_c[]; X_ui[], Y_ui[], *F_ui[], *G_ui[], P_ui[], B_ui[]; X_i[], Y_i[], *F_i[], *G_i[], P_i[], B_i[]; X_ul[], Y_ul[], *F_ul[], *G_ul[], P_ul[], B_ul[]; X_l[], Y_l[], *F_l[], *G_l[], P_l[], B_l[]; X[], Y[];

*F[], *G[], P[], B[];

extern unsigned char extern char extern unsigned extern int extern unsigned long extern long extern unsigned char extern unsigned

对于输入信号寄存器X,为了方便高低速扫描进程进行滤波处理及上升/下降沿信号的捕捉,系统复制了所有X[0…N]信号到X[100…(100+N)],其中N为系统PLC输入信号组数。一般约定高速扫描进程plc1()函数使用X[0…N],而低速扫描进程plc2()函数则使用X[100…(100+N)]。

关于输入信号滤波、上升/下降沿信号的捕捉,可参阅第四章“编写PLC程序的常用技巧与示例”。

13

华中数控PLC编程说明书

3.2 寄存器F系统约定

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

#define axis_stat(x) (F_ui[(x)*10])

//轴状态字,共16位(bit)

其中宏参数x表示轴号,其值可为0,1,2,……15,即系统最大可有16个轴。其中各位的含义定义如下:

#define AX_SLSP 0x0001 //轴正极限到 #define AX_SLSN 0x0002 //轴负极限到 #define AX_HOME_LAMP 0x0004 //轴正在回零 #define AX_CMP_LAMP 0x0008 //轴正在进行间隙或螺距补偿 #define AX_HOME

>>鐏炴洖绱戦崗銊︽瀮<<
12@gma联系客服:779662525#qq.com(#替换为@)