基于 Modbus 的数控系统监控功能设计与实现
2018-6-13 来源:转载 作者: 杜少华,侯 远,刘春亮
摘要: 传统数控系统的人机界面采用编程方式实现,不利于修改和扩展功能,并且用户体验较差。通过对现有蓝天数控系统" GJ301" 的体系结构和基本功能的分析研究,设计了在局域网内监控数控系统的上位机控制系统。上位机采用嵌入式 WINCE 操作系统和 MCGS 嵌入版组态软件,人机界面的设计主要用 MCGS 提供的绘图工具箱来完成。上位机通过 Modbus TCP 协议向数控系统发送命令和采集信息。在数控系统任务控制模块的每个任务周期里通过单独的线程维护远程连接,解析执行命令并反馈结果。经过测试,该监控功能运行良好且操控更加简便灵活。
关键词: 数控系统; Modbus TCP 协议; MCGS 组态软件; 监控
0 、引言
数控系统的人机界面的实现通常需要编写基于 Qt的程序或者采用基于 XML 文件形式,因此对于不同的生产领域,例如电力,玻璃加工,纺织等行业,往往要单独编写人机界面,修改界面或者添加功能还需要重新编写,编译程序。开发工作量大,重复性劳动多。而且传统数控系统类似于一体式电脑,人机界面与硬件一体,使用复杂的嵌入式专用键盘操作,整体笨重而庞大,用户只能在固定的地点操作。针对以上问题,本文研究面向组态的数控系统远程监控功能,将人机界面从数控系统分离出来,使用便携式触摸屏作为监控机( 上位机) ,采用组态的方式开发人机界面,通过复用组态软件丰富图形对象资源,因此对界面的设计,修改以及功能扩展不再需要编写程序,而是采用所见即所得的拖拽方式,不仅节省了开发者的时间,对于用户来说,触屏的操作方式体验更好,且远程监控具有便携性。
1 、相关技术
1. 1 组态技术及 MCGS 软件
组态指用户通过类似“搭积木”的简单方式来完成自己所需要的软件功能,而不需要编写计算机程序。MCGS 是基于 Windows 平台的用于设计和生成计算机监控系统的组态软件]。通过对现场数据的采集处理,以动画、报警、流程控制和报表输出等多种方式向用户提供解决实际工程问题的方案。用户可以根据实际需求在 PC 上组态自己的工程并进行模拟测试。将测试好的工程通过 USB 或以太网下载到上位机运行。MCGS 软件的框架如图 1 所示。
图 1 MCGS 软件框架
1.2 Modbus TCP 协议
Modbus TCP是Modbus协议家族 ( RTU,TCP 和ASCII) 中的一员,它运行在 TCP / IP 协议之上,是一个面向连接的可靠传输协议,能够满足远程监控的需求。它使用 16 进制进行传输,通信效率较高。Modbus TCP 帧格式如表 1 所示。
表 1 Modbus TCP 帧格式
2 、整体结构
基于 Modbus 的数控系统监控功能主要由上位机控制系统、通信功能实现、数控系统命令解析与执行三个部分组成,如图 2 所示。整个系统的工作流程为: 上位机周期性地向数控系统发送各种状态信息采集命令或者用户主动点击上位机提供的组态式人机界面的功能按钮,上位机的后台将某种具有特殊意义的数据发送给数控系统。数控系统的任务控制器模块在特定端口上监听数据,收到命令后完成命令解析与执行并向上位机反馈处理结果。上位机将反馈数据存储在自身的实时数据库中供用户界面调用将结果展示给用户。二者间的数据通信采用基于以太网的 Modbus TCP 协议,需要交换的数据分为状态数据和控制数据。
图 2 系统整体结构
3 、各部分功能实现
3.1 上位机控制系统
上位机控制系统的开发主要是组态用户窗口。操作界面由启动界面,6 个主界面以及若干子界面组成。主界面分别为:
①状态信息显示界面,包括 XYZ 等轴位置信息、主轴速度显示与修调、进给速度与修调、快移速度与修调;
②操作模式切换界面,包括手动模式、自动模式、MDI 模式;
③I /O 信息显示界面,包括 X 信号、Y 信号、F 信号、G 信号;
④参数配置界面,包括常规参数、机床参数、主轴参数、用户参数;
⑤刀偏配置界面;
⑥坐标系界面。以状态显示界面为例说明组态的一般步骤。进入MCGS 嵌入版组态环境,在工作台中切换到用户窗口主面板( 见图 3) ,可以看到已经创建好的各个界面列表。单击右侧创建窗口按钮,设置窗口名称,将弹出空白窗口,打开工具条中的绘图工具箱,工具箱中提供了各种图元、图符、组合图形及动画构件的位图图符。利用这些最基本的图形元素,可以自由组合制作出任何复杂的图形。例如使用旋转仪表显示系统的快移速度,在工具箱中找到构件,将其拖动到空白窗口的合适位置即可,双击该构件弹出构件属性设置窗口,包括外观,刻度范围,可见度等属性。其中操作属性中表达值的设置将该构件的显示内容( 即指针位置) 与软件内置的实时数据库中的变量相关联,在关联前可通过脚本语言对变量作适当处理。一旦建立起关联,当变量值改变时将引起仪表的转动。可见,人机界面的设计不再依赖以往复杂的编程方式,而只需可视化的图元组合和属性设置即可完成。
图 3 工作台
3.2 通信功能
数控系统本地的人机界面与底层模块的通信方式采用 RCS 库提供的 NML 通道机制。该机制由于使用了内存拷贝函数传递消息,当底层模块的数据结构发生变动时人机界面程序必须做相应的改变,兼容性不够好。而 Modbus 单独定义了 4 块寄存器区存储数据,下层的改变不会影响到上层的功能,且更加简单易于实现。寄存器区分为[1 区]输入继电器、[0 区]输出继电器、[3 区]输入寄存器、[4 区]输出寄存器。多种不同功能码代表对不同寄存器区数据的不同操作。例如,功能码 03 代表读取[4 区]输出寄存器的值,数据的具体位置由协议中的数据段给出起始地址和寄存器数目。实现通信功能需要预先定义好存储在数控系统的各个状态、参数等变量对应的 4 个寄存器区的通道位置和数据类型,以便数控系统能够对请求数据进行正确解析。上位机的数据库设计也依赖于此。由于数控系统变量数目庞大,仅列出部分,见表 2。
表 2 部分变量通道位置说明
数据通讯采用 Maser /Slave 方式,上位机和数控系统的工作状态转换图如图 4、图 5 所示。命令交互过程为: 首先数控系统初始化 4 个寄存器区的映射表,然后创建并监听 TCP 连接,上位机作为命令发起方( 主站) ,主动向指定的从设备发送命令消息帧,要求进行寄存器区的数据读取或写入,而数控系统( 从站) 不断被动接收上位机命令,在收到上位机消息帧后,首先判断设备地址,如果是发给数控系统本身,则进行命令解析,根据功能代码做出相关的响应,激活某个本地操作进行读、写或完成其他操作,并按功能代码不同组装数据帧或操作回应帧回应给上位机。如不是本站地址,则丢弃消息帧,继续等待上位机命令帧。上位机发送命令帧后,接收回应帧正确,表明通讯响应过程完成。如果上位机超出约定时间未收到数控系统的回应帧,则说明与数控系统通讯失败。如果上位机所发送的命令帧数控系统无法识别,或数控系统无法满足上位机的命令帧要求,例如: 读取超出数控系统寄存地址范围的数据,则数控系统也将回应包含错误提示的消息帧,上位机可根据错误提示,判断错误原因。
图4 主站( 上位机) 工作状态转换图
上位机的通信功能通过组态软件提供的标准Modbus 驱动程序实现。主要步骤为 ①在设备窗口中选择通用 TCP/IP 父设备,设置最小采集周期为 100ms以及对应的主从站 IP 地址和端口号。②在通用 TCP/IP 父设备下挂接 Modbus TCP 子设备,设置通讯等待时间,快速采集次数,整数编解码顺序等参数。③添加设备通道,即 Modbus 帧格式表中各个变量对应的寄存器区和变量类型。④进行设备调试来测试通讯状况是否良好。
图5 从站( 数控系统) 工作状态转换图
3.3 命令解析与执行
数控系统是采用模块化的思想设计而成,系统 4个模块分别为: 本地人机界面( HMI) 、任务控制器模块( TASK) 、运动控制器模块( MOTION) 和 PLC 控制器模块( PLC) 。相互关系如图 6 所示。
图 6 数控系统各层次关系
4 、系统测试
在实现软件各个模块功能后,对整个系统进行了测试验证。现场设备为数控系统“GJ301”,上位机为嵌入式一体化触摸屏 TPC1061Ti,作为数控系统的远程控制主机、显示器和人机界面以及路由器和若干交换机组成的局域网。上位机通过局域网连接到数控系统,如图 7 所示。以测试自动控制功能为例,在上位机主界面点击模式切换按钮,下方显示手动控制、自动控制、MDI 指令 3 个按钮,如图 8 所示,点击自动控制进入自动控制子界面。自动控制模式下由用户选择预先编制好的程序提交到数控系统运行。该界面包含 3 个程序选择按钮,选择“程序 1”,点击循环启动,右侧将显现当前正在执行的程序行,底侧显示当前系统 XYZ轴位置。点击进给暂停按钮将暂停当前程序,点击复位按钮将结束当前程序的运行,并复位各坐标轴位置。可以看出,监控功能运行良好。
图 7 系统现场设备
图 8 自动控制功能测试
5 、结束语
本文实现了基于以太网的使用触摸屏远程监控数控系统的功能。开发人员不再需要针对不同的行业专门编写人机界面程序,采用组态的方式可以快速开发出美观,用户体验良好的界面,并且界面的修改,扩展也更加方便。不仅有利于用户的身心健康,而且提高了数控系统制造商的生产效率。使用 Modbus TCP 远程通信方式相对于本地人机界面采用的 NML 通信方式,虽然损失了一些实时性,因为数控系统内部的任务周期为 10ms,上位机的采集周期设置为 100ms,事实上,用户并不会感觉到这种差异,却可以携带上位机在局域网中自由改变操作地点。
来源:中国科学院沈阳计算技术研究所,沈阳 中国科学院大学,北京 沈阳高精数控智能技术股份有限公司,沈阳
投稿箱:
如果您有机床行业、企业相关新闻稿件发表,或进行资讯合作,欢迎联系本网编辑部, 邮箱:skjcsc@vip.sina.com
如果您有机床行业、企业相关新闻稿件发表,或进行资讯合作,欢迎联系本网编辑部, 邮箱:skjcsc@vip.sina.com
更多相关信息