




已阅读5页,还剩77页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
华中数控 PLC 编程说明书 武汉华中数控股份有限公司 二零零一年七月 华中数控 PLC 编程说明书 2 前言前言 华中数控内置式 PLC 已集成在数控装置内具有 48 路输入 输出点华中 数控 PLC 采用 C 语言编程具有灵活高效使用方便等特点 本说明详细介绍了内置式 PLC 的基本原理寄存器操作接口PLC 程序的 编写与安装等内容并给出了大量 C 语言程序示例代码 关于 PLC 硬件接线请参阅华中数控世纪星硬件联接说明书 阅读本文之前必须具有 C 语言编程的基本知识 华中数控 PLC 编程说明书 3 目录目录 前言前言 2 目录目录 3 第一章第一章 华中数控内置式华中数控内置式 PLC 基本原理基本原理 7 1 1 华中数控内置式 PLC 的结构及相关寄存器的访问 7 1 2 华中数控内置式 PLC 的软件结构及其运行原理 8 第二章第二章 华中数控内置式华中数控内置式 PLC 的编程与安装的编程与安装 9 2 1 华中数控 PLC 程序的编写及其编译 9 2 2 华中数控 PLC 程序的安装 12 第三章第三章 华中数控华中数控 PLC 寄存器定义与接口函数说明寄存器定义与接口函数说明 12 3 1 访问 PLC 寄存器的系统变量 13 3 2 寄存器 F 系统约定 14 3 3 1 轴状态字 14 3 3 2 轴移动的指令位置单位内部脉冲当量 14 3 3 3 轴当前的实际位置单位内部脉冲当量 15 3 3 4 轴当前移动速度单位脉冲当量 插补周期 15 3 3 5 轴的负载电流只对本公司生产的华中11型伺服有效 15 3 3 6 轴的最大速度可在参数中设置 15 3 3 7 通道用户自定义输出字 32位 16 3 3 8 通道状态 16 3 3 9 通道MSTB指令状态 17 3 3 10 通道当前的M代码 17 3 3 11 通道当前的T代码 17 3 3 12 通道当前的B代码 17 3 3 13 通道当前的S代码 17 华中数控 PLC 编程说明书 4 3 3 14 通道变量通道内部参数 17 3 3 15 系统状态字 17 3 3 16 系统插补周期单位毫秒 18 3 3 17 系统移动轴内部脉冲当量 18 3 3 18 系统旋转轴内部脉冲当量 18 3 3 19 系统变量组1 系统保留 18 3 4 G 寄存器系统约定 18 3 4 1 轴控制字 18 3 4 2 设置轴移动增量值单位内部脉冲当量 19 3 4 3 设置轴增量移动速度单位内部脉冲当量 插补周期 19 3 4 4 轴点动速度单位内部脉冲当量 插补周期 19 3 4 5 设置轴补偿值 19 3 4 6 通道用户自定义输入 19 3 4 7 通道控制字 19 3 4 8 通道MST应答 20 3 4 9 通道进给速度修调分子 分母为100 20 3 4 10 通道快移速度修调分子 分母为100 20 3 4 11 通道正在使用的刀具号 20 3 4 12 通道主轴转速 21 3 4 13 通道跳选段控制及其实现说明 21 3 4 14 通道MST指令模态值 22 3 4 14 1 通道当前的 M 代码模态值 22 3 4 14 2 通道当前的 S 代码模态值 22 3 4 14 3 通道当前的 T 代码模态值 22 3 4 14 4 通道当前的 B 代码模态值 22 3 4 14 5 通道是否正在执行 MST 指令 22 3 4 14 6 PLC 正在执行 MST 指令不允许系统停止运行 22 3 4 14 7 通道程序停止 M00 程序选择停止 M01 23 3 4 15 系统控制字 23 3 4 16 系统外部报警 24 3 17 系统变量组2 系统保留 24 3 5 寄存器 B 系统约定 24 华中数控 PLC 编程说明书 5 3 5 1 刀座数 24 3 5 2 某一刀座中的刀号 刀库表 24 3 6 可被 PLC 程序调用的系统函数 24 3 6 1 设置轴回零 24 3 6 2 设置轴点动速度 25 3 6 3 设置轴步进指定距离 25 3 6 4 设置轴移动距离及速率 26 3 6 5 设置轴移动的目的地及速率 26 3 6 6 设置指定轴停止运动 26 3 6 7 取指定轴当前位置 27 3 6 8 指定轴当是否停止 27 3 6 9 设置轴手摇移动 27 3 6 10 取手摇状态对应的位移量 27 3 6 11 设置MST指令的响应函数 28 第四章第四章 编写编写 PLC 程序的常用技巧与示例程序的常用技巧与示例 28 4 1 常用运算操作符 28 4 1 1 置1操作符 和 置0操作符 以无符号字符型存取 R 寄存器 注对于 C 语言数组即相当于指向相应存储区的地址指针 同时为了方便对 R 寄存器内存区域进行操作系统定义了如下类型指针 无符号字符型字符型无符号整型整型无符号长整型长整型 对该内 存区进行访问即这些地址指针在系统初始化时被初始化为指向同一地址 extern unsigned char R uc 以无符号字符型存取 R 寄存器 extern char R c 以字符型存取 R 寄存器 extern unsigned R ui 以无符号整型存取 R 寄存器 extern int R i 以整型存取 R 寄存器 extern unsigned long R ul 以无符号长整型存取 R 寄存器 extern long R l 以长整型存取 R 寄存器 同理和 R 寄存器一样系统提供如下类似数组指针变量供用户灵活操作 各类寄存器 extern unsigned char X uc Y uc F uc G uc P uc B uc extern char X c Y c F c G c P c B c extern unsigned X ui Y ui F ui G ui P ui B ui extern int X i Y i F i G i P i B i extern unsigned long X ul Y ul F ul G ul P ul B ul extern long X l Y l F l G l P l B l extern unsigned char X Y extern unsigned F G P B 1 2 华中数控内置式华中数控内置式 PLC 的软件结构及其运行原理的软件结构及其运行原理 和一般 C 语言程序都必须提供 main 函数一样 用户编写内置式 PLC 的 C 语言程序必须提供如下系统函数定义及系统变量值 extern void init void 初始化 PLC extern unsigned plc1 time 函数 plc1 的运行周期单位毫秒 extern void plc1 void PLC 程序入口 1 extern unsigned plc2 time 函数 plc2 的运行周期单位毫秒 华中数控 PLC 编程说明书 9 extern void plc2 void PLC 程序入口 2 其中 1 函数 init 是用户 PLC 程序的初始化函数 系统将只在初始化时调用该 函数一次该函数一般设置系统 MSBT 等辅助功能的响应函数 及系统复位的初始化工作 2 变量 plc1 time 及 plc2 time 的值分别表示 plc1 plc2 函数被系统周 期调用的周期时间单位毫秒系统推荐值分别为 16 毫秒及 32 毫 秒即 plc1 time 16 plc2 time 32 3 函数 plc1 及 plc2 分别表示数控系统调用 PLC 程序的入口 其调用周 期分别由变量 plc1 time 及 plc2 time 指定 系统初始化 PLC 时将调用 PLC 提供的 init 函数 该函数只被调用一次 在系统初始化完成后数控系统将周期性地运行如下过程 1 从硬件端口及数控系统成批读入所有 XFP 寄存器的内容 2 如果 plc1 time 所指定的周期时间已到调用函数 plc1 3 如果 plc2 time 所指定的周期时间已到调用函数 plc2 4 系统成批输出 GYB 寄存器 一般地plc1 time 总是小于 plc2 time即函数 plc1 较 plc2 调用的频率 要高因此华中数控称函数 plc1 为 PLC 高速扫描进程plc2 为低速扫描进 程 因此用户提供的 plc1 函数及 plc2 函数必须根据 X 及 F 寄存器的内容 正确计算出 G 及 Y 寄存器的值 第二章第二章 华中数控内置式华中数控内置式 PLC 的编程与安装的编程与安装 本章介绍 PLC 程序的编写编译及运行安装过程 2 1 华中数控华中数控 PLC 程序的编写及其编译程序的编写及其编译 华中数控 PLC 程序的编译环境为Borland C 3 1 MSDOS6 22因此 要编写 PLC 程序您必须在您计算机上安装 Borland C 3 1 软件及 MSDOS6 22 或 MS Windows 9X 操作系统 华中数控 PLC 编程说明书 10 华中数控系统约定 PLC 源程序后辍为 CLD即 CLD文件为 PLC 源程序 最简单的 PLC 程序只要包含系统必须的几个函数和变量定义 请参见 1 2 节 即可编译运行当然它什么事也不能做 在 DOS 环境下 进入数控软件 PLC 所安装的目录 如 C HCNC2000 PLC 在 DOS 提示符下敲入如下命令 c hcnc2000 plc edit plc null cld 建立一个文本文件并命名为 plc null cld其文件内容为 plc null cld PLC 程序空框架保证可以编译运行但什么功能也不提供 版权所有 2000武汉华中数控系统有限公司保留所有权利 email market tel 86 27 87545256 87542713 fax 86 27 87545256 87542713 最后更改日期 2000 10 31 作者阳道善 email yang HuazhongCNC com include plc h PLC 系统头文件 void init PLC 初始化函数 void plc1 void PLC 程序入口 1 plc1 time 16 系统将在 16 毫秒后再次调用 plc1 函数 void plc2 void PLC 程序入口 2 plc2 time 32 系统将在 32 毫秒后再次调用 plc1 函数 如果您安装了MSDOS6 22及Borland C 3 1软件 在铣床数控系统的PLC 目录下输入如下命令 c hcnc2000 plc makeplc plc null cld 系统会响应 1 file s copied MAKE Version 3 6 Copyright c 1992 Borland International 华中数控 PLC 编程说明书 11 Available memory 64299008 bytes bcc plc CFG S plc cld Borland C Version 3 1 Copyright c 1992 Borland International plc cld Available memory 4199568 TASM MX O plc ASM plc OBJ Turbo Assembler Version 3 1 Copyright c 1988 1992 Borland International Assembling file plc ASM Error messages None Warning messages None Passes 1 Remaining memory 421k tlink t v m c Lc BC31 LIB MAKE0000 Turbo Link Version 5 1 Copyright c 1992 Borland International Warning Debug info switch ignored for COM files 1 file s copied 并且又回到 DOS 提示符下 c hcnc2000 plc 这时表示我们的第一个 PLC 程序编译成功 编译结果为文件 plc 然后我们可以更改数控软件系统配置文件 NCBIOS CFG并加上如下一行文 本让系统启动时加载我们新近编写的 PLC 程序 device c hcnc2000 plc plc 以上就是在华中数控系统平台上编写并编译 C 语言 PLC 程序的全过程 非 常简单 下面让我们多做一点工作假设我们在用户按下操作面板的循环起动 键时点亮 X 点动灯假定循环起动键的输入点为 X0 1 X 点动 灯的输出点位置为 Y2 7 更改 plc null cld 文件的 plc1 函数如下 void plc1 void PLC 程序入口 1 plc1 time 16 系统将在 16 毫秒后再次调用 plc1 函数 if X 0 点亮 X 点动灯 else 循环起动键没有被按下 Y 2 灭掉 X 点动灯 华中数控 PLC 编程说明书 12 重新输入命令 makeplc plc null并将编译所得的文件 plc 放入 NCBIOS CFG 所指定的位置重新起动铣床数控系统后当我们按下循环起 动键时 X 点动灯应该被点亮 更复杂的 PLC 程序可参考您所在数控系统 PLC 目录下的 CLD 文件 其中应该有一个是您数控系统的 PLC 源程序另外本说明书的最后一章详细 讲解了步进电机三坐标铣床的 PLC 源程序请参考 2 2 华中数控华中数控 PLC 程序的安装程序的安装 从上节我们已经知道 PLC 源程序编译后将产生一个 DOS 可执行 COM 文件要安装写好的 PLC 程序我们必须更改华中数控系统的配置文件 NCBIOS CFG 在 DOS 环境下进入数控软件所安装的目录如 C HCNC2000在 DOS 提示符下敲入如下命令 c hcnc2000 edit ncbios cfg 可编辑数控系统配置文件一般情况下配置文件的内容如下 具体内容因机床 的不同而异分号后面是为说明方便添加的注释 DEVICE C HCNC2000 bin sv step drv 步进电机伺服驱动 DEVICE C HCNC2000 bin hc5904 drv 5904 驱动程序 DEVICE C HCNC2000 plc plc PLC 程序程序 PARMPATH C HCNC2000 PARM 系统参数所在目录 DATAPATH C HCNC2000 DATA 系统数据所在目录 PROGPATH C HCNC2000 PROG 数控 G 代码程序所在目录 DISKPATH A 软盘 BINPATH C HCNC2000 bin 系统 BIN 目录 用粗体突出的第三行即设置好了上文编写的 PLC 程序 plc 第三章第三章 华中数控华中数控 PLC 寄存器定义与接口函数说明寄存器定义与接口函数说明 第一章说明了 PLC 的逻辑结构及各寄存器的含义已经知道PLC 的 G 及 F 寄存器是数控系统与 PLC 约定好的用户不可随便更改其寄存器各位 bit 华中数控 PLC 编程说明书 13 的含义为方便用户编程及记忆系统提供如下大量宏及函数供用户使用本 章将详细给出这些宏及函数的接口说明 建议您阅读本书提供的 PLC 例子程序 时再至本章查阅相关函数细节 3 1 访问访问 PLC 寄存器的系统变量寄存器的系统变量 第一章已经说明以下地址指针变量都指向同一块内存即 PLC 中间寄存 器 R共有 768 个字节 extern unsigned char R uc 以无符号字符型存取 R 寄存器 extern char R c 以字符型存取 R 寄存器 extern unsigned R ui 以无符号整型存取 R 寄存器 extern int R i 以整型存取 R 寄存器 extern unsigned long R ul 以无符号长整型存取 R 寄存器 extern long R l 以长整型存取 R 寄存器 extern unsigned char R 以无符号字符型存取 R 寄存器 同理和 R 寄存器一样系统提供如下变量定义供用户灵活使用其中 1 uc 表示以无符号字符型存取 PLC 寄存器 2 c 代表以字符型存取 PLC 寄存器 3 ui 代表以无符号整型存取 PLC 寄存器 4 i 代表以整型存取 PLC 寄存器 5 ul 代表以无符号长整型存取 PLC 寄存器 6 l 代表以长整型存取 PLC 寄存器 extern unsigned char X uc Y uc F uc G uc P uc B uc extern char X c Y c F c G c P c B c extern unsigned X ui Y ui F ui G ui P ui B ui extern int X i Y i F i G i P i B i extern unsigned long X ul Y ul F ul G ul P ul B ul extern long X l Y l F l G l P l B l extern unsigned char X Y extern unsigned F G P B 对于输入信号寄存器 X为了方便高低速扫描进程进行滤波处理及上升 下降沿信号的捕捉系统复制了所有 X 0 N 信号到 X 100 100 N 其中 N 为系统 PLC 输入信号组数一般约定高速扫描进程 plc1 函数使用 X 0 N 而低速扫描进程 plc2 函数则使用 X 100 100 N 关于输入信号滤波上升 下降沿信号的捕捉可参阅第四章编写 PLC 程序的常用技巧与示例 华中数控 PLC 编程说明书 14 3 2 寄存器寄存器 F 系统约定系统约定 对于 F 寄存器 请注意 FG 均为地址指针 系统提供如下宏定义供用 户使用 3 3 1 轴状态字 define axis stat x F ui x 10 轴状态字共 16 位 bit 其中宏参数 x 表示轴号 其值可为 0 1 2 15 即系统最大可有 16 个轴 其中各位的含义定义如下 define AX SLSP 0 x0001 轴正极限到 define AX SLSN 0 x0002 轴负极限到 define AX HOME LAMP 0 x0004 轴正在回零 define AX CMP LAMP 0 x0008 轴正在进行间隙或螺距补偿 define AX HOME FIN 0 x0010 回零结束 define AX FSTOP LAMP 0 x0020 轴已精确定位停止 define AX HOME GOING 0 x0040 轴正在回零 define AX MOVING LAMP 0 x0080 轴正在移动 define AX UNLINK LAMP 0 x0100 轴非连接状态指示 define AX FAIL LAMP 0 x0200 失败指示灯 define AX ALARM 0 x0400 警报 define AX COORD SETUP 0 x0800 轴已回零坐标系已建立 define AX SV ENBL 0 x1000 轴伺服使能允许 define AX READY 0 x2000 轴就绪 define AX ONLINE 0 x4000 轴联机 define AX EXIST 0 x8000 轴存在 例 unsigned int u1 axis stat i 轴状态 if u1 asm cli l axis pout axis axis pic a axis asm sti return l 3 3 3 轴当前的实际位置单位内部脉冲当量 define axis pact x F l x 10 3 轴的实际位置 其中宏参数 x 表示轴号 其值可为 0 1 2 15 即系统最大可有 16 个轴 3 3 4 轴当前移动速度单位脉冲当量 插补周期 define axis speed x F i x 10 5 轴移动速度 其中宏参数 x 表示轴号 其值可为 0 1 2 15 即系统最大可有 16 个轴 3 3 5 轴的负载电流只对本公司生产的华中 11 型伺服有效 define axis current x F i x 10 6 轴的负载电流 其中宏参数 x 表示轴号 其值可为 0 1 2 15 即系统最大可有 16 个轴 3 3 6 轴的最大速度可在参数中设置 define axis vmax x F i x 10 7 轴的最大速度 其中宏参数 x 表示轴号 其值可为 0 1 2 15 即系统最大可有 16 个轴 例设置某一个轴步进的函数可用 C 语言表达如下 void set axis step int axis long displacement long l l1 v v1 if displacement 0 return asm cli l axis pic a axis displacement l1 abs l v l1 200 sys iip time v1 axis vmax axis if v v1 v v1 if vv1 速度限制控制 v v1 华中数控 PLC 编程说明书 26 if v0 if l l1 l l1 else if l l1 l l axis pic a axis l asm sti set axis jog axis 0 set axis home axis 0 3 6 7 取指定轴当前位置 long get axis pos int axis 所指定的轴号0 15 本函数可以用 C 语言表达如下 long get axis pos int axis long l asm cli l axis pout axis axis pic a axis asm sti return l 3 6 8 指定轴当是否停止 int get axis den int axis 所指定的轴号0 15 返回 1已停0没有停 本函数可以用 C 语言表达如下 int get axis den int axis return axis pic a axis 0 axis pvcmd axis 0 0 1 3 6 9 设置轴手摇移动 void handwheel int h no 手摇号 int axis 轴号 int step mul 步进倍率 3 6 10 取手摇状态对应的位移量 int get handwheel int handwheel 手摇号 华中数控 PLC 编程说明书 28 3 6 11 设置 MST 指令的响应函数 void set mst func int ch 通道 char name 代码类型MST void mst func int 响应函数入口地址 第四章第四章 编写编写 PLC 程序的常用技巧与示例程序的常用技巧与示例 本章将通过两个常用的PLC编程技巧与示例来加快您掌握如何用C语言编 写华中数控 PLC 程序的进度与质量 首先 我们复习一下 C 语言中有关操作运 算符的知识 4 1 常用运算操作符常用运算操作符 对于基本的 是将 Y2 寄存器第七位的值置 1 Y 2 是将 Y2 寄存器第七位的值置 0 因此完全可以把 当作置 1 操作符而把 这里 P 50 10 i e2 1 1 i e4 P 50 10 1 如已知 P 50 403即 P 50 等于 403 那么 P 50 10等于 3上面的 表达式就等价于 i e1 1 3 1即 0001 右移 3 位变成 0000所以 i e1 等于 0 i e2 1 1 3即 0011 右移 1 位变成 0001所以 i e3 等于 1 i e4 3 1 3即 0011 左移 1 位变成 0110所以 i e4 等于 6 类似地应该不难理解如下语句的意义 define x g b X g M06 返回上一步重新执行 return den ch stat ch 当前通道是否正在运动的标志 switch M06 STEP case 0 M06 初始状态不做任何动作 return case 1 记录当前各轴位置 R l 500 4 get axis pos 0 R l 504 4 get axis pos 1 R l 508 4 get axis pos 2 R l 512 4 get axis pos 8 M06 STEP M06 可执行下一步动作 return case 2 首先移动 Z 轴到换刀位置 if den 0 系统正在运动等待运动完成 华中数控 PLC 编程说明书 34 return if axis stat 2 if P i 34 移动 Z 轴到指定位置 绝对坐标 set axis moveto 2 long P i 32 1000L P i 35 M06 STEP return case 3 等待 Z 轴运动完成后再移动 W 轴 if den 0 return if axis stat 2 M06 STEP if P i 34 移动 W 轴到指定位置 绝对坐标 set axis moveto 8 long P i 33 1000L P i 35 return case 4 等待 W 轴运动完成后再移动 XY 轴 if den 0 return if axis stat 8 M06 STEP if P i 34 移动 XY 轴到指定位置 绝对坐标 set axis moveto 0 long P i 30 1000L P i 35 set axis moveto 1 long P i 31 1000L P i 35 return case 5 等待 XY 轴运动完成 if den 0 return if axis stat 1 if axis stat 0 M06 STEP return case 6 等待按一次循环起动键即捕捉该键上升沿信号一次 if X 0 return case 7 再等待按一次循环起动键即捕捉该键上升沿信号一次 if X 0 华中数控 PLC 编程说明书 35 return case 8 将 XY 轴移回换刀前的位置 set axis moveto 0 R l 500 4 P i 35 set axis moveto 1 R l 504 4 P i 35 M06 STEP return case 9 等待 XY 轴运动完成再将 Z 轴移回换刀前的位置 if den 0 return if axis stat 1 if axis stat 0 set axis moveto 2 R l 508 4 P i 35 M06 STEP return case 10 等待 Z 轴运动完成再将 W 轴移回换刀前的位置 if den 0 return if axis stat 2 set axis moveto 8 R l 512 4 P i 35 M06 STEP return case 10 等待 W 轴运动完成 if den 0 return if axis stat 8 mod M code ch 1 M06 指令完成 ch ctrl ch CH FEEDHOLD SW 要求再次按循环起动键才能继续 M06 STEP 0 return 在 plc1 函数中调用 M06 的实现函数 void plc1 void plc1 time 16 间隔 16 毫秒后再调用 plc1 函数 Exec M06 0 调用 M06 的实现函数 华中数控 PLC 编程说明书 36 记住第 0 3 组信号的最近四次采样值以实现软件滤波 R ui 30 2 R ui 20 2 记录上上次周期的采样值 R ui 32 2 R ui 22 2 R ui 20 2 R ui 10 2 记录上次周期的采样值 R ui 22 2 R ui 12 2 R ui 10 2 X ui 0 2 记录当前周期的采样值 R ui 12 2 X ui 2 2 下面我们看看华中数控教学车床换刀动作的实现教学车床刀架有四个刀 位PLC 通过 X3 0 至 X3 3 即 X 3 设置自动换刀响应函数 ToolPos 0 初始化换刀用的中间寄存器状态 ToolChangeState 0 ToolDesPos 0 自动换刀 T 指令的实现函数数控系统在自动运行 T 指令时会调用本函数 void exec T int ch 当前通道号 int T if mac lock mst lock 机床锁住或 MST 锁住 mod T code ch 1 向数控系统发送完成 T 指令的信号 return 华中数控 PLC 编程说明书 37 if ToolChangeState 0 正在换刀立等待换刀完成 return T mod T code ch 100 计算目地刀位号 switch T case 1 刀位 1 case 2 刀位 2 case 3 刀位 3 case 4 刀位 4 ToolDesPos T 目地刀位号 ToolChangeState 1 启动换刀 break case 0 default 只有四个刀位对其它刀位不作处理 mod T code ch 1 向数控系统发送完成 T 指令的信号 break 刀具手动换刀的相关信号输入检测 void ToolManualActionInput void if X 3 刀架启动 停止灯灭 Y 2 清刀架正反转位 return if mst lock mac lock 机床锁住 Y 0 刀架启动 停止灯灭 Y 2 清刀架正反转位 return if mode sel MODE JOG 当前不是手动状态 return switch X 1 break case 0 x01 刀号 2 华中数控 PLC 编程说明书 38 ToolDesPos 2 break case 0 x02 刀号 3 ToolDesPos 3 break case 0 x00 刀号 4 ToolDesPos 4 break if X 1 换刀控制 void ToolAction void switch X 3 break case 0 x02 刀号 2 ToolPos 2 break case 0 x04 刀号 3 ToolPos 3 break case 0 x08 刀号 4 ToolPos 4 break 目的刀具已到 if ToolDesPos ToolPos if ToolChangeState 0 换刀已完成 Y 0 刀架启动 停止灯灭 Y 2 清刀架正反转位 return else if ToolChangeState 1 换刀到位后要反转刀架一下 华中数控 PLC 编程说明书 39 ToolChangeState 2 switch ToolChangeState case 0 刀具到位 Y 0 刀架启动 停止灯灭 Y 2 清刀架正反转位 break case 1 转动刀架 正向 start moving tool Y 0 0 x04 刀架启动 停止灯亮 Y 2 清刀架正反转位 Y 2 0 x04 置刀架正转 break case 2 反向转动刀架然后延时 10 16 ms以便锁住刀具 Y 0 0 x04 刀架启动 停止灯亮 Y 2 清刀架正反转位 Y 2 0 x08 置刀架反转 case 3 case 4 case 5 case 6 case 7 case 8 case 9 case 10 case 11 case 12 ToolChangeState break case 13 换刀完成 ToolChangeState 0 mod T code 0 1 向数控系统发送完成 T 指令的信号 break 手动方式处理 void manual void ToolManualActionInput 刀具手动换刀的相关信号输入检测 在 plc1 函数中调用换刀实现函数 ToolAction void plc1 void 华中数控 PLC 编程说明书 40 plc1 time 16 间隔 16 毫秒后再调用 plc1 函数 if stat 调用手动处理 ToolAction 调用换刀动作的实现函数 记住第 0 3 组信号的最近四次采样值以实现软件滤波 R ui 30 2 R ui 20 2 记录上上次周期的采样值 R ui 32 2 R ui 22 2 R ui 20 2 R ui 10 2 记录上次周期的采样值 R ui 22 2 R ui 12 2 R ui 10 2 X ui 0 2 记录当前周期的采样值 R ui 12 2 X ui 2 2 第五章第五章 PLC 运动控制的实现运动控制的实现 第三章介绍了 PLC 程序可调用的一些函数接口 利用其中一些函数便可实 现轴运动控制的实现本章将示例说明各运动控制函数的使用 5 1 机床轴回零控制机床轴回零控制 在手动方式下需要控制机床轴回零时调用函数 set axis home 即可起动 相关轴开始回零该函数的原型为 void set axis home int axis 所指定的轴号0 15 int start stop 为 0 取消回零 非 0 回零 当碰到回零开关时 PLC 程序必须通过轴控制字 axis ctrl x AX HOME SW 告诉伺服系统回零开关已到当伺服轴找到机械零位后系统会通过轴状态字 axis stat x 禁止 X 轴点动 set axis jog 1 0 禁止 Y 轴点动 set axis jog 2 0 禁止 Z 轴点动 如果进给保持设定进给保持键 X1 1 为常闭点 if X 1 取消 X 轴回零 set axis home 1 0 取消 Y 轴回零 set axis home 2 0 取消 Z 轴回零 else XYZ 轴正点动的输入点分别为 X2 1X2 3X2 5 if X 2 起动 X 轴回零 if X 2 起动 Y 轴回零 if X 2 起动 Z 轴回零 华中数控 PLC 编程说明书 42 return void plc1 PLC 扫描入口函数 1 plc1 time 16 间隔 16 毫秒后再调用 plc1 函数 回零信号处理回零信号处理 XYZ 轴回零的输入点分别为轴回零的输入点分别为 X3 3X3 4X3 5 u1 X 3 u2 X 3 R 13 R 23 if u1 X 轴回零 else if u2 if u1 Y 轴回零 else if u2 if u1 Z 轴回零 else if u2 记住输入信号最后三次的采样值 R ui 30 2 R ui 20 2 R ui 32 2 R ui 22 2 R ui 20 2 R ui 10 2 R ui 22 2 R ui 12 2 R ui 10 2 X ui 0 2 R ui 12 2 X ui 2 2 void plc2 PLC 扫描入口函数 2 plc2 time 32 间隔 32 毫秒后再调用 plc2 函数 回零灯回零灯 Y 2 熄灭 XYZ 轴回零灯 华中数控 PLC 编程说明书 43 if axis stat 0 点亮 X 轴回零灯输出点为 Y1 4 else Y 1 灭掉 X 轴回零灯输出点为 Y1 4 if axis stat 1 点亮 Y 轴回零灯输出点为 Y1 5 else Y 1 灭掉 Y 轴回零灯输出点为 Y1 5 if axis stat 2 点亮 Z 轴回零灯输出点为 Y1 6 else Y 1 灭掉 Z 轴回零灯输出点为 Y1 6 记住输入信号最后三次的采样值 R ui 130 2 R ui 120 2 R ui 132 2 R ui 122 2 R ui 120 2 R ui 110 2 R ui 122 2 R ui 112 2 R ui 110 2 X ui 100 2 R ui 112 2 X ui 102 2 5 2 机床轴点动机床轴点动 点动控制方式下只要用户按下点动键机床轴便不停止运动在手动方 式下需要点动控制机床轴运动时 调用函数 set axis jog 即可点动相关轴运动 该函数的原型为 void set axis jog int axis 点动轴号0 15 int speed 点动速度单位内部脉冲 插补周期 在 PLC 程序中点动控制的主要流程为 1 在手动操作点动方式下根据面板按键计算点动速度 2 检测点动按键状态调用函数 set axis jog 点动 停止相关轴 例 define Speed MAX 420 坐标轴移动速度最大值 define mode sel R 0 模式选择 define jog speed R 4 点动速率 void manual 手动方式控制处理函数 华中数控 PLC 编程说明书 44 switch mode sel 根据手动操作模式分别进行处理 case MODE JOG 点动模式 计算 X 轴点动速度 i long jog speed axis vmax 0 Speed MAX if X 2 switch X 2 break case 0 x04 X输入点为 X2 2 i i break default i 0 set axis jog 0 i X 轴点动 计算 Y 轴点动速度 i long jog speed axis vmax 1 Speed MAX if X 2 switch X 2 break case 0 x10 Y输入点为 X2 4 i i break default i 0 点动速度为零即停止运动 set axis jog 1 i Y 轴点动 计算 Z 轴点动速度 i long jog speed axis vmax 2 Speed MAX if X 2 switch X 2 break case 0 x40 Z输入点为 X2 6 i i break default i 0 点动速度为零即停止运动 set axis jog 2 i Z 轴点动 return 5 3 机床轴步进机床轴步进 机床轴步进要求用户按一次步进轴相关轴便步进指定的距离因此 PLC 程序必须捕捉步进按钮的上升沿 或下降沿 脉冲信号在手动方式下需要步进 控制机床轴运动时调用函数 set axis step 即可步进相关轴运动该函数的原 型为 void set axis step int axis 步进轴号0 15 long displacement 步进增量单位内部脉冲当量 在 PLC 程序中步进控制的主要流程为 1 在手动操作步进方式下根据面板按键计算步进轴及步进增量 2 检测步进按键上升沿脉冲后调用一次函数 set axis step 步进相 关轴 例 define Speed MAX 420 坐标轴移动速度最大值 define mode sel R 0 模式选择 define axis sel R c 1 轴选择 define step mul R i 2 2 步进倍率 define jog speed R 4 点动速率 void manual 手动方式控制处理函数 华中数控 PLC 编程说明书 46 switch mode sel 根据手动操作模式分别进行处理 case MODE STEP 步进模式 switch X 2 break case 0 x04 X 步进 set axis step 0 step mul break case 0 x08 Y 步进 set axis step 1 step mul break case 0 x10 Y 步进 set axis step 1 step mul break case 0 x20 Z 步进 set axis step 2 step mul break case 0 x40 Z 步进 set axis step 2 step mul break return void plc2 PLC 扫描入口函数 2 plc2 time 32 间隔 32 毫秒后再调用 plc2 函数 if R ui 110 2 X ui 100 2 switch X ui 100 2 break case 0 x10 feedover 30 break case 0 x20 feedover 50 break case 0 x30 feedover 80 break case 0 x40 feedover 100 break 华中数控 PLC 编程说明书 47 case 0 x50 feedover 140 break default feedover 100 mode sel auto enable MODE AUTO 0 取工作方式 switch X 100 mode sel auto enable MODE AUTO 0 break case 1 单段方式 ch ctrl 0 CH SGL BLK mode sel auto enable MODE AUTO 0 break case 2 点动方式 mode sel MODE JOG break case 3 步进方式 mode sel MODE STEP break case 4 回零方式 mode sel MODE REF RETURN break case 5 手动攻丝 mode sel MODE JOG break default mode sel 0 if X 100 break case 0 x20 step mul 10 break case 0 x30 step mul 100 break case 0 x40 step mul 1000 break case 0 x50 step mul 1000 break default step mul 100 break 华中数控 PLC 编程说明书 48 5 4 机床轴直线运动机床轴直线运动 除点动步进等机床轴运动外华中数控系统还为 PLC 提供了如下控制轴 运动的函数以便用户灵活控制轴运动 5 4 1 设置轴移动距离及速率 void set axis move int axis 轴号0 15 long displacement 移动距离增量 int speed 移动速率单位内部脉冲 插补周期 5 4 2 设置轴移动的目的地及速率 void set axis moveto int axis 轴号0 15 long position 移动的目的地绝对坐标 int speed 移动速率单位内部脉冲 插补周期 5 5 停止机床轴运动停止机床轴运动 要停止机床相关轴运动在 PLC 程序中调用 set axis stop 即可该函 数的原型定义为 设置指定轴停止运动 void set axis stop int axis 轴号0 15 5 5 机床轴运动状态获取机床轴运动状态获取 在 PLC 程序中可能会需要判断某些轴是否正在运动取轴的当前绝对位 置等系统提供了如下函数供 PLC 使用 5 5 1 取指定轴当前位置 long get axis pos int axis 轴号0 15 返回值为指定轴当前位置的绝对坐标单位为内部脉冲当量一般
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年文化教育职业技能鉴定考试黑钻押题附参考答案详解【预热题】
- 2025中考数学总复习《分式》达标测试及答案详解(基础+提升)
- 安全员考试常考点试卷含答案详解(精练)
- 2025年山东菏泽鄄城县教体系统引进高层次人才65人笔试高频难、易错点备考题库参考答案详解
- 2025年临床执业医师综合提升测试卷附参考答案详解【综合题】
- 计算机四级考前冲刺练习试题带答案详解(达标题)
- 肿瘤科普知识课件
- 2025职称计算机考试彩蛋押题【巩固】附答案详解
- 育婴员安全培训课件
- 职高土壤肥料课件
- GB/T 22080-2025网络安全技术信息安全管理体系要求
- 汉语言文学专业就业方向及就业前景调研报告
- 招商加盟营销方案
- 朝天椒栽培技术课件
- 科研伦理与学术规范-课后作业答案
- 红军长征感人红色故事3-10分钟10篇
- 秋天的雨 省赛获奖
- 集团公司石油工程专业化整合重组总体方案
- JJF 1015-2014计量器具型式评价通用规范
- 农业科学技术政策课件
- 优秀初中语文说课课件
评论
0/150
提交评论