葛伊伦,韩震宇
USB通信在开放式机床数控系统中的应用
葛伊伦,韩震宇
(四川大学 机械工程学院,四川 成都 610065)
介绍了一种基于USB通信的开放式数控系统架构,并通过实验验证USB通信传输的可行性与正确性。实现了经由USB通信将数控系统上下位机资源整合,提升了系统资源利用率,并大大提升了数控系统开发通用性与使用便利性,并为将来其他外设接入预留升级接口。为推动开放式数控系统研究提供数据通信方面的支持。
USB通信;数控系统;通信协议;运动控制
近些年来,中国劳动力人口红利呈现递减态势,制造业用工成本上升,国际上前有德国工业4.0的技术浪潮,后有印度等发展中经济体的快速追赶试图取代中国世界工厂的地位。国家为扶持制造业的发展而减税降费并战略性地提出中国制造2025,诸多因素促进了运动控制器产量增长速度高于年均GDP增速。此外,数控加工、印刷、电子等行业的发展也拉动了市场需求。运动控制器作为伺服系统的控制装置,近年来保持着稳定增长的需求量。
自20世纪50年代数控机床诞生以来,数控技术在国计民生诸多领域发挥着不可替代的作用,取得举世瞩目的成就,为制造业行业生态实现跨越式飞速发展打下坚实基础。与此同时,全球化所带来的行业变化使制造业市场竞争空前激烈,成本低、质量好、产品个性化强等诸多要求对行业发展不断提出挑战,传统数控系统因其专用性、封闭性的特点,也越来越不能满足市场需要。新的市场环境要求数控系统朝着开放式控制系统转化,开放式机床数控系统应运而生。
开放式结构数控系统是运动控制器的发展趋势,将传统的封闭型数控系统向通用型开放式的数控系统转化[1],其接口规范标准统一,软件协议对外开放,但凡市面上接口匹配的设备,均可实现与开放式运动控制器的连接,用户借由通行的开发软件平台调用开放的API函数进行数控功能开发,具有极大的易用性、便利性,模块化的设计开发理念也让系统拥有极大柔性。
伴随硬件发展水平的日新月异和计算机技术的突飞猛进,数控系统架构主要经历了单处理器(MCU)、专业运动控制PLC、PC-I/O卡、专用运动控制芯片,直到开放式的发展历程[2]。
本系统为基于PC的开放式运动控制器,总体框架为PC+运动控制卡。PC作为上位机,利用其强大的运算能力于内存容量,完成运动计算与路径规划。运动控制卡作为下位机,接收、执行上位机运算结果,实现运动控制功能。USB通信模块负责完成两者间的数据传输。其对外软件接口为运动控制API函数,PC机使用API函数进行二次开发,自行设计人机界面,硬件上通过高速总线(PCI、USB等)实现连接。
USB即通用串行总线,是一种快速、双向、基于令牌的同步传输串行接口。具有接口统一、技术成熟、传输可靠、成本低廉、开发方便等优点[3]。因此,市面上现已有各类基于USB接口的工业控制设备,使用USB作接口的智能机床控制器的研究也十分热门。
USB数据传输以包(packet)为基本单位,从应用层的角度来说,数据传输属于透明传输,单纯作为USB协议的使用者,用户只需要掌握如何调用API函数收发数据即可。
USB通信根据特点不同分为不同的传输方式:控制传输、同步传输、中断传输、批量传输。其中,控制传输是一种特殊的传输方式,当USB设备初次连接主机时,用控制传输传送控制命令等对设备进行配置。同步传输一般用于要求数据连续、实时且数据量大的场合,其对传输延时十分敏感。中断传输一般用于小批量的和非连续的数据传输,即数据量小的数据不连续但实时性高的场合。批量传输可以不定期传输大量数据,且具备错误检查机制,在传输出错的情况下会重新发送数据包,也是在空闲总线中,传输速度最快的方式[4]。
数控系统在数据传输中具有传输数据量大、传输正确性要求高、传输速率要求快的特点,据此对比以上四种传输方式的优劣,选用批量传输方式。
USB经过多次升级,有不同的接口速度,现行最常用的USB2.0和USB3.0的最大通信速度分别为60 MB/s与 640 MB/s,均具备良好稳定性。综合考虑开发成本与本课题的性能需要,选择USB2.0作为研发起点,后期根据课题需要,如引入更多轴的控制、更完善的数控指令后,造成数据传输量的激增,可通过更换硬件芯片进行升级,提高系统整体通信速度。
根据数控系统传输数据特点自定义通信协议,使USB通信以既定规则传输数据,方能使上位机的运算结果能被下位机“读懂”。
数控程序国标采用G代码加工程序,以便于机床操作人员使用统一工程语言编制加工代码,而运动控制系统内部使用的数据沟通方式由开发商自行定义。上位机CNC软件与运动控制器之间的数据交互手段为USB总线,USB协议中包含的握手机制和数据校验机制保证了数据的准确性,因此自定义通信协议中无需增加这类机制,只需要解决数据意义的约定工作。
自定义通信协议应当包含数控加工中可能使用到的所有指令的具体定义,根据上位机PC传输的不同数控加工命令(含指令或数据),整理制定协议格式为如下六类:①同步头+数据正文+同步尾;②同步头+命令字+数据长度+数据正文+同步尾;③同步头+地址码+命令字+数据长度+数据正文+同步尾;④同步头+数据正文+校验码;⑤同步头+命令字+数据长度+数据正文+校验码;⑥同步头+地址码+命令字+数据长度+数据正文+校验码。
结合数控G代码的种类和含义,并综合考虑符合数控业务需求、便于数据识别、便于数据验证的要求,制定出上下位机间经由USB进型数据传输的通信协议,其指令结构及定义如表1所示。
表1 实验通信协议
位数数据定义 63-56指令计数器,从0开始计数,每次自增1,用于下位机判断指令是否有丢失 55-54指令类型标志位,00位移指令;01非加工状态下读写; 10 M型指令(开关量型指令),为立即指令时,M型为读写下位机寄存器或内存地址;11 S型指令(包含通讯、脉冲等) 53-52位移指令,0正方向,1负方向;SM指令,00写寄存器,11读寄存器 51指令结束标志位,1尚有后续加工指令,0无后续加工指令 50-43寄存器地址 42-32保留,留待后期增加定义 31-16X轴进给量,单位为um;M型指令时写入数据的高16位 15-0Y轴进给量,单位为um;M型指令时写入数据的低16位
自定义通信协议同样具备高度灵活性与扩展性,随着控制轴的增加,指令中的控制信息逐渐增加,64位长度的通信协议可能无法满足实际需求,通信的效率有待提高,扩展片间通信总线的位宽以适应协议长度的增加[5]。
按如下步骤完成标准USB传输操作:设备上电后在设备管理器中查看设备VID与PID并在程序中完成宏定义#define m_dev_VID 0×0951和#define m_dev_PID 0×1666;Libusb库函数usb_init( )初始化;调用usb_find_busses( )查找所有总线,调用usb_find_devices( )查找总线上的所有设备;设置循环利用库函数bus_get_busses( )遍历总线列表并返回结果;在上一步循环中遍历设备列表并返回结果;调用库函数usb_set_configuration( )设置活跃配置;调用库函数usb_claim_interface( )通过OS认领一个与操作系统通信的接口;获取端点的地址并对读写端点分配非缺省通道;开辟缓存区存储发送数据或接收数据;根据业务需要,在上下位机调用库函数进行数据的读写,如批量写API函数int usb_bulk_write()或批量读API函数int usb_bult_read()。
建立上下位机连接;设置一定大小(2 048字节)的读写缓冲区以进行读写速度测试;采用批量传输方式调用库函数usb_bulk_write( )向下位机发送数据;采用批量读取方式调用库函数usb_bulk_read( )从下位机读取数据;调用Windows高精度(精确至毫秒级)时间函数QueryPerformance Frequency( )和QueryPerformanceCounter( )分别测量晶振与计数;利用时间计数函数结果计算读数据速度。时间计数函数结果如图1所示。USB2.0的最高传输速率为480 Mbps,即60 MB/s。但是,60 MB/s为标称的理论速度,实际使用中设备共用USB通道时,每个设备的实际可支配带宽会被分配,故传输数值小于60 MB/s为正常现象[6]。
图1 时间计数函数结果
进行数据收发实验,定义发送缓冲区为0~2 048的递增循环,并利用串口调试助手监测数据传输结果,监测数据传输结果如图2所示,数据校验无误,说明通信正确可靠。
本课题验证了USB通信用于开放式数控系统中数据传输的可行性与正确性,使PC-运动控制板卡的数控架构成为可能,可实现前者高运算能力和内存容量与后者高实时性的优点整合,提高数控系统效率;有利于未来数控系统的扩展和升级:硬件USB通用接口与软件API函数接口为后续升级留下便利接口[7];提高了系统集成度,降低了开发成本与周期,使上下位机数控技术研发可分头并进。为进一步推动开放式数控系统的研究提供了数据传输方面的技术支撑。
图2 监测数据传输结果
[1]丁娜仁花.基于开放式数控系统的刀具数据库管理研究与设计[J].机械工程学报,2007,43(5):1-7.
[2]李再银.基于Windows的车床开放式数控系统研究与设计[J].科技创新导报,2008(32):37-38.
[3]杨大奎,曹川川,郭鹏远.基于PMAC运动控制的数控加工中心G73代码研发[J].南方农机,2009(3):54-56.
[4]王鹏,彭琰举,李阿为,等.基于图像处理的数控机床运动控制系统[J].现代电子技术,1998(12):44-46,51.
[5]张一凡,瞿华,周丽华.一种数控玻璃切割机运动控制系统的设计[J].制造业自动化,2008(30):130-132.
[6]马秀明.基于CNC改进的开放式数控系统研究[J].安徽冶金科技职业学院学报,2005(2):53-57.
[7]何欣.一种基于运动控制卡的小型数控磨床系统研制[J].机械设计与制造,2012(11):37-40.
2095-6835(2020)06-0156-03
TG659
A
10.15913/j.cnki.kjycx.2020.06.064
葛伊伦(1993—),男,四川大学机械工程学院研究生,主要从事运动控制相关方面的研究。韩震宇(1963—),男,四川大学机械工程学院副教授,博士硕士生导师,主要从事机器视觉和运动控制方面的研究。
葛伊伦。
〔编辑:严丽琴〕