通用型的数控车床液压刀架、加工中心刀库的刀位检测需要通过计数开关输入信号,利用回转计数的方式实现,SIEMENS子程序库未提供该子程序,为此,可利用如下的子程序SBR20实现刀位计数功能。
子程序SBR20的局部变量定义以及调用时的变量赋值要求如表8.2-2所示。
表8.2-2 SBR20局部变量定义表
为了增加程序的通用性,SBR20沿用了802S/C/D模板程序的CNC用户数据MD14510[20](最大刀位数)、MD14510[16](机床类型)、MD14512[11]bit7等,刀架正/反转的控制信号输出地址仍定义为Q0.4/Q0.5。因此,它仍可利用用户初始化程序SBR62(FILTER)进行输出使能和极性变换。液压刀架的刀位计数开关和参考点检测开关则依次定义为PLC输入I1.0、I1.1,它们同样可通过用户初始化程序SBR62(FILTER)进行使能和极性变换。
利用计数开关计算得到的PLC实际刀位保存到断电保持的存储器上,对于802S/C/D,其实际刀位和最大刀位的输出变量LD8、LD12可定义为变量VD14000056、VD14000060(802C/S)或VD14000092、VD14000096(802D)等。
2.PLC程序设计
刀架和刀库计数子程序SBR20分为刀位预置、正转计数、反转计数、格式转换4部分,说明如下。
1)刀位预置。刀位预置程序Network1的设计如图8.2-3所示。
Network1的第1行用来生成最大刀位判别参数LW18,其值为最大刀位数加1。
Network1的第2行用于实际刀位预置。程序可通过CNC的辅助功能代码M96(脉冲信号V25001012.0),将输入变量LW2直接写入到实际刀位存储器LW16中。输入变量LW2的刀位预置值可通过CNC用户数据(如MD14510[0]等)进行赋值。
Network1的第3行用于带参考点(1号刀位)检测信号的刀架和刀库的实际刀位预置。只要刀库回转时到达参考点(1号刀位),信号L4.1的上升沿可将实际刀位存储器LW16强制设定为1,完成刀位预置。(www.xing528.com)
程序中的L4.5为刀位出错报警输出变量,当PLC的实际刀位存储器小于等于0或大于最大刀位设定值时,CNC可显示报警“ALM700001:实际刀位出错”。
2)正/反转计数。刀架正、反转计数程序Network2、Network3的设计如图8.2-4所示。
Network2用于刀架正转计数。当刀架正转(L4.2=1)时,刀位计数输入信号L4.0的每一上升沿均可使实际刀位存储器LW16加1后,输出至中间存储器LW20上。如LW20的值小于等于最大刀位数LW0,LW20可直接作为实际刀位输出到LW16;如LW20的值大于最大刀位数,则LW20需减去最大刀位数LW0后,作为实际刀位输出到LW16。
Network3用于刀架反转计数。当刀架反转(L4.3=1)时,刀位计数输入信号L4.0的每一上升沿,均可使实际刀位存储器LW16减1后,输出至中间存储器LW20上。如LW20的值大于等于1,则LW20直接作为实际刀位输出到LW16;如LW20的值小于等于0,则LW20需要加上最大刀位数LW0后,作为实际刀位输出到LW16。
3)格式转换。刀号格式转换程序Network4的设计如图8.2-5所示。
由于CNC的T代码输出为32位二进制数据,为了便于刀号的比较和计算,在后述的转向判别子程序SBR48等上,要求实际刀位检测值和最大刀位值均为32位数据。为此,需要通过累加器AC0的移位操作将实际刀位存储器LW16、最大刀号设定值输入LW0分别转换为32位二进制数据输出变量LD8、LD12。
图8.2-3 刀位设定与判别程序
图8.2-4 正反转计数程序
图8.2-5 刀号格式转换程序
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。