机床网
基于CMC的数控机床PLC编程
2016-12-28 09:42:06

                                 李理 周华磊
                             武汉华中数控股份有限公司
                   国家高技术研究发展计划(863计划)课题“基于CMC的装备数控系统的研制与应用”(2012AA041706)
【摘要】 本文基于的是以CMC运动控制芯片为核心控制器的数控装置,重点介绍其应用于机床控制及加工上的PLC编程部分。CMC运动控制芯片是国内自主研发的一款带G代码解释器及运动控制硬核的MCU芯片,可应用于轻量级运动控制场景,其PLC部分支持IEC61131-3标准编程语言。本文中所有PLC代码部分均采用ST语言编写,主要包含了机床安全运行检查及急停控制、机床回零、MODBUS通信、G代码调度、M代码实现、机床手动控制等部分。
【关键词】机床PLC; MODBUS通信; CMC

[Abstract] This paper is based on the CMC motion control chip as the core controller of the numerical control device, focusing on its application in the PLC programming part of the machine tool. CMC motion control chip is an independent research and development MCU with hardcore of G code interpreter and motion control unit which can be used in lightweight motion control scene, The PLC part supports IEC61131-3 standard programming language. In this paper, all the PLC code using ST language writing, mainly includes the machine safety operation inspection and emergency stop control, machine back to zero, Modbus communication realization, G code & M code scheduling, machine tool manual controlling etc.
[Keywords] machine tool PLC programming; MODBUS communication; CMC

    在数控系统中,PLC编程为通用平台的个性化应用提供了简单快速的开发接口,PLC以其简单、高效、可视化等优点,便于技术人员在应用现场进行编程以满足控制需求。本文以CMC运动控制芯片为平台,描述了在该平台下进行系统搭建所涉及的各个方面,包括CMC运动控制芯片的介绍,整个数控系统的框架,编程语言及工具的介绍,以及重点介绍了其PLC逻辑与控制功能的实现[1][2]。
1.CMC运动控制芯片
    CMC运动控制芯片为一款国产研发的带运动控制功能的MCU,最高频率可达50MHz。芯片集成了Flash、SRAM、通用定时器、PLL、实时钟,以及以太网MAC、UART、CAN、SPI、I2C 等多种通信接口。
    CMC运动控制芯片是将组态处理、程序存储、信号输入输出、控制算法、通讯接口等全部集成在一个芯片中的产品,实现的主要功能可以简述为:片内逻辑控制和运动控制,程序处理及调度管理,数字量信号处理,多种数据接口通信。
    本文中所涉及的数控装置是以CMC运动控制芯片为核心、板载外围电路的控制单元,包括I/O、串口、AD、DA、进给轴等。
2.编程及语言

    CMC运动控制芯片上位机PLC编辑软件能够支持IEC61131-3所包含的5种编程语言,由于ST语言与通用计算机编程语言C语言语法格式更加类似,学习成本较低,更利于学校掌握与熟悉,本文所涉及的所有代码均采用ST编程语言编写。
    CMC芯片制造商提供的PLC编辑软件还能够支持数控系统G代码编程、运行调试、变量监控、常用控制功能块调用等,方便开发与调试。
    程序编写完后需要进行编译,由CMC组态软件翻译成CMC运动控制芯片内部运动控制单元所能识别的指令,并通过网口通讯下载到CMC芯片的代码存储区。
3.系统框架
    基于CMC运动控制芯片的数控系统架构如下图所示:
        
               图1 CMC数控系统框架图
    整个系统框架中,CMC运动控制芯片为系统中的主控芯片,外部挂接三个伺服驱动器,用于进行位置控制,并使用一个变频器用于主轴速度控制。运动控制器包含32路外部信号输入及32路外部信号输出,用于检测机床限位、回零、报警,控制机床上电、驱动器使能、刀架控制及润滑、冷却等逻辑功能。
    CMC运动控制器自身并不具备图形设备接口,系统中使用网络通讯连接HMI设备,通过MODBUS/TCP协议实现数据交互、代码下载等功能。HMI从CMC运动控制器中获取系统运行的相关状态及信息,显示给用户,同时HMI负责G代码存储、编辑、编译等工作。
    另外,CMC运动控制器通过SPI总线连接数控系统功能键盘,CMC运动控制器将键盘点位映射到PLC层,通过编程,实现键盘控制功能。
4 系统PLC编程
4.1 进给轴手动控制

    机床在使用过程中,需要手动对进给轴进行移动。CMC运动控制芯片配套的组态软件直接提供了单轴运动控制功能块,以实现当按下轴方向移动按键时,调用PLC功能块实例,根据操作需求,传入运动控制参数,以控制进给轴移动速度、方向及进行轴选择等。以下代码片段为实例化后的单轴运动控制功能块实例代码:
MC_SingleAxis_Inst(
Axis := axisSel,
Mode := axisMode,
Direction := axisDir,
InitialVelocity := 10000,
StableVelocity := axisSpeed,
Acc := 500000,
Pulses := axisPulse
);
    PLC中根据功能按键的输入请求,实时地传入不同参数,以适应操作需求。
4.2 回参考点
    机床在移动轴的正负方向都安装了触点零位开关,开关量信号以外部I/O信号的方式接入至CMC运动控制器。当回零过程被激活,通过组态软件进行PLC编程,首先控制进给轴快速移动至对应轴的触点零点开关位置,触发触点开关后,低速缓慢朝反方向移动直至触点开关弹开,然后以更低的速度往回零方向移动,直到再次触发触点开关后,即完成回零过程。
    通过实际测量,发现通过上述方法进行回零,机床并不能每次都能回到同一个位置,误差会在±0.3mm左右,这是因为回零检测使用的轻触开关是机械结构,并且由于回零速度差异,所以并不能对回零位置做精准定位。为了提高回零精度,可以在系统侧接入电机码盘Z脉冲信号,由于电机每运转一圈就会发出一个固定位置的Z脉冲信号,通过检测该Z脉冲,就可以为系统提供一个更加精准的位置参考。
    在完成第一步的回零过程后,使进给轴电机继续往回零方向以超低的速度移动,并实时检测电机码盘Z脉冲信号,检测到Z脉冲信号后,立即停止移动。至此,整个回零过程才算真正完成。以此回零方式实测回零精度在±0.01mm以内,足以满足实际应用需求。
        
                图2 回零过程
4.3 限位急停及超程解除
    机床在移动轴正负方向的极限位置都安装了限位开关,例如铣床有X轴正/负限位、Y轴正/负限位及Z轴正/负限位这六个限位信号,这些信号以外部I/O信号的方式接入至CMC运动控制器,通过PLC编程,实时监测限位信号,当限位触发时,立刻关闭驱动器使能信号,并调用PLC功能块,使得CMC运动控制器停止脉冲输出,并清除内部运动控制单元相关状态标识。
    限位急停后,当PLC中捕获到超程解除按键被按下,电机将被重新使能,同时PLC程序只允许移动周向被限位方向的反方向运行,继续往限位方向移动的请求将被忽略。当机床移动至限位信号释放的位置后,超程解除完成,限位急停功能将重新启动。
        
                   图3 限位急停与超程解除流程图
4.4 G代码调度及M代码及实现
    CMC运动控制芯片自带G代码解释器硬核,内部含有16块缓存区用于存储编译后的G代码数据,每个缓冲区大小为64KB。上位机通过网络传输,将交叉编译后的G代码传送至缓冲区,若G代码数据量比较大,或者需要进行存储M代码,则会在上位机中,以M代码为间隔,将G代码进行切片,并将切片后的G代码以及M代码片段分别装入缓存区块中,如下图所示:
        
                   图4 G代码、M代码执行过程
    在PLC中可以调用功能块获取当前G代码执行状态以及当前运行的是哪一段G代码。当检测到当前段G代码执行完毕后,此时与当前G代码段相对应的M代码段将会被自动加载到特殊功能寄存器SFR中,PLC从SFR中逐个读取M指令码,并做相应动作。若当前M指令段的所有M指令都执行结束后,如果没有遇到M30指令,则PLC调用功能块,将下一个G代码段的段号填入功能块入口后,下一段G代码便开始执行,该段G代码执行结束后便重复上面的M代码执行过程。G代码段和M代码段如此交替执行,直至读到M30指令,整个G代码执行结束。
4.5 Modbus/Tcp通信
    系统上下位机通信物理层使用100M以太网,采用Modbus/Tcp协议通信,CMC组态软件提供Modbus/Tcp功能块,如下面代码段所示:
modbusWordWrite (
ID,
Dtype,
Addr,
Size,
Data0, Data1, Data2, Data3,
Data4, Data5, Data6, Data7,
Data8, Data9, Data10, Data11,
Data12, Data13, Data14, Data15
);
    上下位机之间协商好ID、地址及相应数据便可直接进行数据交互。下位机CMC运动控制芯片将系统运行相关信息,如当前模式、运行状态、位置信息等通过该功能块周期性的传送至上位机HMI显示。
4.6 主轴控制
    机床上的主轴需要进行速度控制,一般都是使用变频器驱动。变频器的输入为0~10V的模拟量电压,变化的模拟量输入将导致变频器电源输出端频率的变化,进而使交流电机的运行速度随之变化。
    CMC运动控制器板载4路16bits模拟量输出,经过信号调理电路后模拟量输出范围为-10V~+10V。在PLC中,对接入主轴变频器的那一路模拟量输出进行数据写入便可实现主轴电机速度的线性控制。
    在实际PLC编程中,将0~10V输出均分为五个等级,利用MCP键盘的波段开关实现五级调速,以满足不同材质加工料件的切削需求。
5 结束语
    本文所提到的所有内容均在实际机床上进行过加工验证,事实表明,该套系统可以完成常见的车床、铣床乃至加工中心的零部件加工,PLC部分所实现的功能也能满足机床操作的基本需要。

 

 

[1]彭瑜,何衍庆. IEC61131-3编程语言及应用基础[M]. 北京:机械工业出版社,2009
[2]郇极,靳阳,肖文磊等. 基于工业控制编程语言IEC61131-3的数控系统软件设计[M]. 北京:北京航空航天大学出版社,2011
致谢
基金项目:国家高技术研究发展计划(863计划)课题“基于CMC的装备数控系统的研制与应用”(2012AA041706)。

转载请标注来源158机床网
  • 普通车床 - CW62180L 普通车床 - CW62180L,CW62180L,金属加工机械 - 车床,德州德隆(集团)机床有限责任公司,普通车床 - CW62180L价格及其他相关信息
  • 双头液压弯管机SW38 机械特点: 采用微电脑控制,功能强,扩充性高,中文字幕,对话式操作,易学易懂.分段设定速度,弯管精度高.十六级弯管资料设定存储,多种角度工件一起呵成.
  • 轮毂刀具 93°SVJCR/LF 轮毂刀具 93°SVJCR/LF
  • 钻孔攻牙加工中心PT400S 钻孔攻牙加工中心PT400S主要适用产品:IT相关配件及汽车配件,生产品:移动硬盘,iPhone Case & Buttons,汽车用小型配件等.工件材质:镁合金,铝, FIBER GLASS, 铸件等.
  • 深圳厂家直销锁螺丝机厂家 瑞德鑫5331单头双工位吹气式锁螺丝机(全职系统) 实现自动化操作,减少人手,提高效率,确保产品质量。 通过自动化操作方法,全面提高品质控制及管理水平。 为客户提供高品质、降低成本及创造更高的利润。