同一类型的数控机床的主要功能基本相同,但根据规格的变化和应用的不同情况,机床的配置和动作也不尽相同。而机床的动作主要是由PLC程序控制的,由于PLC地址分配的不同和编制者的不同,PLC程序往往差别较大,相同功能部件的动作往往也不相同,这就给机床的调试和故障的诊断造成了一定困难。
由于同一类型的数控机床主要功能相同,仅仅是辅助部件变化,因此,编制通用的PLC程序是可能的,并且可以解决上述的问题。本文阐述了编制通用PLC程序的一般思路以及在西门子802D系列数控车床上的实际应用。
1.编制通用PLC程序的一般思路
1.1 通用PLC程序的应用目标
编制通用PLC程序,主要应实现以下目标;
1. 程序应尽量包含本类机床可能具有的功能
2. 机床I/O地址分配的变化,PLC程序仅需作少量改动。
3. PLC程序具有较强的可读性和可维护性。
4. 提供完善的报警信息,从而方便机床故障的诊断和排除。
5. 程序具有较强的可扩展性,便于增加程序功能。
6. 程序应尽量保证机床的安全性。
1.2 编制通用PLC程序的原则
编制通用PLC程序,笔者认为应遵循以下原则
1. 根据数控系统类型和相应PLC的功能情况,确定程序的结构。
不同的数控系统,其PLC控制器指令系统和资源情况都是不同的,因此,程序的结构应根据具体情况作合理规划。
2. 做好机床功能的统计和功能的分类。
机床功能的统计是保证PLC程序通用性的基础,而功能的分类是为了程序模块的划分,做好这两项工作是程序成功应用的保证。
3. 程序作模块化设计。
根据功能的分类将程序划分成不同的模块,同类的功能放在一个模块内,各个模块编程风格保持一直。这样就使程序结构清晰,可读性好。另外,应尽量不使用SET和RESET指令。
4. 做好PLC资源(如定时器、计数器、中间继电器等)的分配。
PLC资源的使用应分两部分,保留资源和可使用资源。保留资源用于程序通用部分,并预留一部分供程序的修正和完善使用;可使用资源用于其他人扩展功能时使用,这样可以避免其他人修改PLC程序时产生不必要的错误。同一类型的数控系统配置的PLC控制器有多种型号,PLC资源配置也不同,程序应尽量迁就低端系统,从而提高程序的适应性。
5. 编制完善的报警信息。
根据机床各类传感器的配置和可能的操作,编制完善的报警信息和操作提示信息,方便机床的操作和故障的诊断,使一些非专业人员也能排除一些机床故障。
6. 通过参数选择机床功能。
通常数控系统都提供了PLC参数,用于系统和PLC程序交换数据。在将通用PLC程序应用到具体机床上时,需要根据机床实际配置进行功能的选择,这一点可以通过PLC参数的设置来实现。合理地对PLC参数进行规划、分类,将有利于机床的调试。
2.SINUMERIK 802D系统数控车床通用PLC程序的编制及应用
2.1程序的总体规划
802D系统提供了一个PLC子程序库,基本提供了数控机床的大部分功能。但是实际应用起来还有很多不足,需要根据机床情况做很多改动,不能满足机床应用的要求。因此,在对西门子提供的子程序库消化吸收的基础上,基于下列原则,重新编制了数控车床通用PLC程序。
① 尽量不用局部变量,取消SET和RESET指令。
大量使用SET和RESET指令,使程序的可读性非常差,同时也使输出结果在时序上难以把握,因此,本程序原则上尽量不使用这两个指令。
局部变量可以实现程序的封装,同时由于其状态仅受所在子程序的影响,因此可以提高程序的可读性,具有一定的优点。但是802D系统可以在线诊断PLC程序,局部变量的状态在线诊断时无法显示,同时由于局部变量使用临时内存,其状态在时序上也难以把握,使用时不可避免地要使用SET和RESET指令,所以本程序原则上也尽量不使用局部变量。
② 实际I/O信号在一个子程序里进行交换,其他子程序均采用中间地址编程。
由于各种车床I/O地址分配不统一,为减少由此带来的程序的变化,所有功能子程序均采用中间地址编程。I/O信号和中间地址的交换在固定的一个子程序里进行交换,提高程序的通用性。
③ 所有子程序可通过参数选择是否在主程序里调用。
所有子程序都在主程序里通过PLC参数进行条件调用,这样,在实际应用时,通过参数的设置即可实现功能的增减。
④ 规定了统一的M代码和PLC报警文本。
统一M代码和报警文本,有利于机床的操作和故障诊断。详见表1和表2。
表1:PLC报警列表
报警号 | PLC变量 | 报警内容 |
700000 | 16000000#0 | 刀架未锁紧 |
700001 | 16000000#1 | 导轨润滑液位过低 |
700002 | 16000000#2 | 导轨润滑压力过高 |
700003 | 16000000#3 | 台尾连接功能未设置 |
700004 | 16000000#4 | 台尾顶尖过行程 |
700005 | 16000000#5 | 中心架连接功能未设置 |
700006 | 16000000#6 |
|
700007 | 16000000#7 |
|
700008 | 16000001#0 |
|
700009 | 16000001#1 |
|
700010 | 16000001#2 |
|
700011 | 16000001#3 |
|
700012 | 16000001#4 |
|
700013 | 16000001#5 |
|
700014 | 16000001#6 | 中心架润滑液位过低 |
700015 | 16000001#7 | 中心架润滑压力过高 |
700016 | 16000002#0 |
|
700017 | 16000002#1 |
|
700018 | 16000002#2 |
|
700019 | 16000002#3 |
|
700020 | 16000002#4 |
|
700021 | 16000002#5 |
|
700022 | 16000002#6 |
|
700023 | 16000002#7 |
|
700024 | 16000003#0 | 刀架转位超时 |
700025 | 16000003#1 | 伺服刀架报警 |
700026 | 16000003#2 | 冷却液位过低 |
700027 | 16000003#3 | 液压电机断路器断开 |
700028 | 16000003#4 | 床头润滑电机断路器断开 |
700029 | 16000003#5 | 主电机风扇断路器断开 |
700030 | 16000003#6 | 驱动器未就绪 |
700031 | 16000003#7 | 伺服过热 |
700032 | 16000004#0 | 卡盘卡紧压力不足 |
700033 | 16000004#1 | 台尾顶紧压力不足 |
700034 | 16000004#2 | 中心架锁紧压力不足 |
700035 | 16000004#3 | 卡盘卡紧未到位 |
700036 | 16000004#4 |
|
700037 | 16000004#5 |
|
700038 | 16000004#6 |
|
700039 | 16000004#7 | Z F变速箱换档错误 |
700040 | 16000005#0 |
|
700041 | 16000005#1 | 卡盘内外卡方式切换,重新上电后生效 |
700042 | 16000005#2 | 卡盘未卡紧试图转主轴 |
700043 | 16000005#3 | 台尾顶尖未伸出,套筒禁止锁紧 |
700044 | 16000005#4 | 请移动Z轴进行中心架连接 |
700045 | 16000005#5 | 驱动器优化时刹车被释放 |
700046 | 16000005#6 | 注意,机床处于设定方式,请注意安全(防护门钥匙开关) |
700047 | 16000005#7 | 注意,机床处于调试状态,请注意安全MD14512[31]=7FH |
700048 | 16000006#0 | 在JOG方式测量生效 |
700049 | 16000006#1 | 请移动Z轴进行台尾连接 |
700050 | 16000006#2 | 注意,机床处于设定方式,请注意安全MD14512[31]=3FH |
700051 | 16000006#3 | PLC参数设置错误,有冲突(MD14512) |
700052 | 16000006#4 | PLC报警响应参数未正确设置(MD14516) |
700053 | 16000006#5 |
|
700054 | 16000006#6 |
|
700055 | 16000006#7 |
|
700056 | 16000007#0 | 选择刀号不能为0 |
700057 | 16000007#1 | 选择刀号与当前刀位一致 |
700058 | 16000007#2 | 选择刀号超过刀架最大刀位 |
700059 | 16000007#3 | 刀架过热 |
700060 | 16000007#4 | 铣削主轴未定位,换刀指令无效 |
700061 | 16000007#5 | 西门子MINI手持盒没有连接 |
700062 | 16000007#6 | 伺服刀架还没有返零,选刀命令无效 |
700063 | 16000007#7 | PLC程序版本号:Ver 01.00 |
表2:M代码列表
M代码 | 功能 | 注释 |
M00 | 程序无条件停止 | |
M01 | 程序有条件停止 | |
M02 | 程序结束 | |
M03 | 主轴正转 | |
M04 | 主轴反转 | |
M05 | 主轴停止 | |
M06 | 刀具交换 | |
M07 | ||
M08 | 第1冷却液开 | |
M09 | 第1冷却液关 | |
M10 | 卡盘张开 | |
M11 | 卡盘关闭 | |
M12 | 第2冷却液开 | |
M13 | 第2冷却液关 | |
M14 | 水枪冷却阀打开 | |
M15 | 水枪冷却阀关闭 | |
M16 | 刀架冷却阀打开 | |
M17 | 刀架冷却阀关闭 | |
M18 | 冲屑冷却阀打开 | |
M19 | 冲屑冷却阀关闭 | |
M20 | 吸油雾器启动 | |
M21 | 吸油雾器断开 | |
M22 | 铣削刀具接通 | |
M23 | 铣削刀具断开 | |
M30 | 程序停止并返回开头 | |
M31 |
| |
M32 | 台尾尾芯前进 | |
M33 | 台尾尾芯后退 | |
M34 | 卡盘高压 | |
M35 | 卡盘低压 | |
M40 | 主轴自动变档 | 参见SIEMENS说明书 |
M41 | 主轴1档 | |
M42 | 主轴2档 | |
M43 | 主轴3档 | 主轴空档 |
M57 | 自动门(左)打开 | |
M58 | 自动门(左)关闭 | |
M59 | 自动门(右)打开 | |
M60 | 自动门(右)关闭 | |
M70 | 转换为铣削方式 | |
M代码 | 功能 | 注释 |
M75 | 排屑器(正转)启动 | |
M76 | 排屑器停止 | |
M77 | 中心架闭合 | |
M78 | 中心架打开 | |
M79 | 中心架吹气开 | |
M80 | 中心架吹气关 | |
M81 | 中心架体松开 | |
M82 | 中心架体锁紧 | |
M83 | 启动中心架润滑一次 | |
M84 | 中心架体与Z轴连接 | |
M85 | 中心架体与Z轴断开 | |
M86 |
| |
M87 |
| |
M88 | 尾座松开 | |
M89 | 尾座锁紧 | |
M90 | 尾芯(套筒)松开 | |
M91 | 尾芯(套筒)锁紧 | |
M92 |
| |
M93 |
| |
M94 | 尾座与Z轴连接 | |
M95 | 尾座与Z轴断开 | |
M96 |
| |
M97 |
| |
M98 | 调用子程序 | |
M99 | 子程序返回 |
2.2 程序的结构
根据对机床功能的统计和分类以及802D系统的特点,整个程序采用模块化设计,主要分为以下几类。
①.主程序:通过条件调用,用于组织各个子程序。
②.用户和PLC初始化程序,用于设定PLC程序的运行条件,定义程序的版本号。
③.PLC_SET程序,处理一些常用信号,如主轴的旋转条件,读入禁止信号的处理等。
④.I/O信号交换程序,处理实际信号和中间信号的交换。由于802D系统PLC程序中不能有不存在的I/O信号,故每一块I/O板用一个子程序处理,以便适应不同的I/O配置。
⑤.与系统相关的功能程序,包括电源模块上电时序处理、面板和NCK信号处理,轴控制程序、手轮控制、主轴倍率等。
⑥.各个机床部件的程序,包括冷却、润滑、排屑、卡盘、台尾、中心架、主轴变档、刀架等。
⑦.其他程序。
PLC程序的模块结构如下表:
表3:PLC子程序表
程序号 | 程序名称 | 程序功能 |
OB1 | MAIN | PLC主程序 |
SBR0 | PLC_SET | PLC程序一些常用信号的设置和检查 |
SBR1 | IO_CH_BASIC | 基本I/O地址交换程序(第1块PP72/48) |
SBR2 | IO_CH_EXTEND | 扩展I/O地址交换程序(第2块PP72/48) |
SBR18 | CHECK | 参数合法化检查 |
SBR19 | USR_INI | 用户初始化程序 |
SBR20 | PLC_INI | PLC初始化程序 |
SBR21 | EMG_STOP | 急停/上电时序处理 |
SBR22 | SPD_OVR | 主轴倍率程序 |
SBR23 | HANDWHL | 手持盒程序 |
SBR24 | AXIS_CTL | 轴使能控制程序 |
SBR25 | MEAS_JOG | 手动刀具测量程序 |
SBR26 | MCP_NCK | 面板信号TO_NCK程序 |
SBR27 | LIMIT_HW | 机床轴硬限位/回零开关程序 |
SBR28 | C_AXIS | C轴相关控制程序 |
SBR30 | ALARM_LAMP | 三色报警灯控制程序 |
SBR31 | COOLING | 冷却泵/冷却阀程序 |
SBR32 | LUBRICAT | 导轨润滑程序 |
SBR33 | PAI | 排屑器控制程序 |
SBR34 | CHUCK | 液压卡盘程序 |
SBR35 | CHUCK_H_L | 特殊高低压控制液压卡盘(油缸无移动切换高低压) |
SBR36 | TAIL | 台尾控制程序 |
SBR37 | CENTER | 中心架控制程序 |
SBR38 | DOOR | 防护门安全开关/自动门控制程序 |
SBR39 | SPD_GEAR_ZF | ZF减速箱换档控制 |
SBR40 | SPD_GEAR_HY | 液压换档程序(适用于CKS6180) |
SBR41 | T_DUP_ELEC | DUPLOMATIC卧式电动刀架/烟台电动刀架 |
SBR42 | T_DUP_SEVRO | DUPLOMATIC伺服刀架程序 |
SBR43 | T_DUP_DL | DUPLOMATIC卧式电动动力刀架 |
SBR44 | T_HY_SMTCL | 沈阳机床液压刀架 |
SBR45 | T_HY_AK22 | 烟台环球AK22系列液压刀架 |
SBR46 | T_HY_LSJD | 台湾六鑫液压刀架(绝对值式) |
SBR47 | T_HY_LSJS | 台湾六鑫液压刀架(计数器式) |
SBR48 | T_BLFD_V_ELEC | 巴拉法第立式6工位电动刀架 |
SBR49 | T_BLFD_IT_ELEC | 巴拉法第电动刀架(意大利原厂刀架) |
SBR50 | T_SAUTER_ELEC | SAUTER卧式电动刀架 |
SBR51 | T_SAUTER_DL | SAUTER卧式电动动力刀架 |
SBR52 | T_AK27_LK | AK27烟台5/6工位电动刀架(有锁紧线圈) |
SBR53 | T_AK27_UL | AK27烟台5/6工位电动刀架(无锁紧线圈) |
SBR63 | TOOL_DIR | 刀架换刀旋转方向判别子程序 |
2.3 PLC资源的分配
本程序适用于802D和802Dsl系统,其中定时器、计数器和M地址802Dsl系统要比802D多,为了提高程序的通用性,地址的分配以802D系统为准,详细的分配参见下表。当在通用PLC程序的基础上增加功能时,应使用可用地址,以免因地址重复造成故障。
表4:PLC资源分配表
PLC地址号 | 功能分配 | 备注 |
VB10000000VB10000008 | MCP(I地址)PLC(V地址) | 保留地址 |
MB99,MB100,MB248-MB250 | MCP(I地址)PLC(M地址) | 保留地址 |
VB11000000VB11000007 | PLC(V地址)MCP(Q地址) | 保留地址 |
T0-T27,T30,T31 | 保留地址 | |
M201.0M220.7 | MACHINE(I地址)PLC(M地址) | 保留地址 |
M91.0M98.7 | MACHINE(I地址)PLC(M地址) | 保留地址 |
M221.0M247.7 | PLC(M地址)MACHINE(Q地址) | 保留地址 |
MB0MB90 | PLC(M地址)MACHINE(Q地址) | 保留地址 |
|
|
|
VB14000000VB140000059 | 常用功能 | 保留地址 |
VB14000101VB140000124 | 格雷码定义 | 保留地址 |
VB14000125-127 | 保留地址 | |
M251.0-M255.7 |
| 保留地址 |
|
|
|
MB101-MB200 |
| 可用地址 |
VB14000060-VB14000100 |
| 可用地址 |
T28,T29 |
| 可用地址 |
2.4 安全功能的设计
根据机床实际应用情况,考虑到各种因素,在PLC中编制尽量完善的安全互锁机制,是通用PLC程序的一个重要目标。
在程序编制时,笔者参照了CE标准中的部分要求,将机床工作状态分为加工和设定两个工作状态。在加工状态时,机床严格执行各项安全互锁,如防护门未关闭禁止旋转主轴禁止启动加工程序等。在设定状态时,系统首先发出报警信息,提示用户注意安全,在设定状态下,防护门未关闭主轴可以在限制速度下旋转,加工程序以单程序段方式执行,进给轴快速无效且进给倍率限制等。考虑到国内用户的操作习惯,有些限制也可以用参数取消。但是,必要的安全互锁是始终保留的。
2.5 程序的应用
由于802D的PLC程序长度有限,通用PLC程序的内容放在一个程序里无法通过编译,因此,将分成两个文件,主程序文件802D_MAIN.PTP和库文件802D_LIB.PTP,主程序保留完整的程序框架,但是把各种刀架程序模块的内容清空,刀架程序放到库文件存放。具体机床的PLC应用需要用基本程序的两个文件进行合成,方法为:在主程序中,将机床不需要的功能的子程序内容清空,保留程序名,然后库文件中需要的功能复制到主程序中的相应子程序中即可。机床调试时根据机床配置须将相关PLC参数正确设置。
注意I/O交换模块一定要和机床实际情况一致,调用不存在的I/O地址会导致PLC死机。
因为应用情况的变化和程序自身错误的不断修正,通用PLC程序在一定时期内可能处在不断完善的过程中。笔者在通用PLC程序内部设置了一个版本号,通过一定的操作即可以报警的形式诊断出来。在程序基本编制完成后,给程序设定了一个基本版本号,每当程序作一次修正,版本号做一个改变,同时作程序修正纪录,这样,通过程序的版本号,可以得到PLC程序的准确信息,方便了故障的诊断和错误的修正。
小结
通用PLC程序的使用,提高了机床调试的效率,方便了故障的诊断。同时也提升了机床的质量。当然,由于通用PLC程序由于过于庞大,不可避免的存在一些错误,完善程序也需要在足够数量的机床上应用以后才能完成。瑕不掩瑜,编制通用PLC程序不失为提高机床生产效率的一个好的方法。
如果您有机床行业、企业相关新闻稿件发表,或进行资讯合作,欢迎联系本网编辑部, 邮箱:skjcsc@vip.sina.com
- target=_blank>数控磨床工作台爬行现象浅析
- target=_blank>全自动外圆磨床改造数控程序设计技巧
- target=_blank>凸轮轴磨床电气与磨削工艺
- target=_blank>设计零件的数控加工工艺规程的方法和步骤
- target=_blank>进口卧式加工中心数控系统的改造方法