任务基本要求为基于通信规约,对TCP/IP的发送与接收方式进行规范,以此编写出符合规范的服务端以及客户端,建立数据库,将主机—数据库—机床进行连接,过程主要分为以下四个阶段:
阶段一:做出初始测试程序,将通信规约中的电文格式以及通信流程(例如超时检测与重发以及心跳电文等)以QT编写的GUI展现出来,完成要求。
阶段二:将完成的程序拆解为各个子函数,并加载写入动态库中,将原有的程序进行修改,制作以该动态库为基础的TCP/IP服务端及客户端的调用例程。
阶段三:搭建数据库,与已经构建好的动态库以及界面进行搭配,直观显示数据。
阶段四:在数控机床中设置后台程序,将所需要监控的数据上传至数据库中。
下面对上述阶段的内容进行详细阐述。
3.4.3.1 技能学习
由于该项目是以QT作为开发软件进行界面开发,因此需要学习QT的编写方式以及编写规范,并就例程进行编写实践,同时也要进行C++语言的学习。
对于TCP/IP协议,其在QT中已经有具体的组建函数,因此可以在了解了协议的运作方式以及QT中已有组件函数的运用后直接进行调用。
在进行初步学习之后,已经大致掌握了如何利用QT进行程序编写,但在使用中发现,仅使用QT进行程序编写会产生不可知的编译错误。为了防止这类错误的发生,采用VS增加QT5插件的方式进行编译,可以较好地解决这类问题。同时,VS在调试方面也比QT Designer设计得更好,因此也需要对此类软件以及插件进行安装。
在编写动态库时,需要注意信号槽机制以及语言规范。具体内容为:理解信号槽在动态库及程序之间的数据传输以及信号传递的过程,理解如何自己创建信号,实现信号与信号之间的连接,以及信号槽之间的连接。同时规范语言,让动态库以及例程能够方便他人理解,方便团队使用。
3.4.3.2 测试程序编写
测试程序的主要内容为将通信规约中的规则转化为可用的程序形式,例如,通信规约中规定,发送电文时,需要给电文增加数据头以及数据尾用于校验。数据头包括电文长度、电文号、电文发送日期、电文发送时间、发送端描述码、接收端描述码、传送功能码等,其中电文长度、电文发送日期、电文发送时间需要系统自动生成。具体界面如图3-30~图3-32所示。
图3-30 GUI设计图
图3-31 程序部分界面
图3-32 运行调试界面
3.4.3.3 动态库编写
动态库的编写,是按照规范将通讯规约里的约束撰写为动态库,方便他人对其的调用,也方便之后开发界面使用,由于动态库也就是动态链接提供了一种方法,使进程可以调用不属于其可执行代码的函数。函数的可执行代码位于一个DLL文件中,该DLL包含一个或多个已被编译、链接并与使用它们的进程分开存储的函数。DLL还有助于共享数据和资源。多个应用程序可同时访问内存中单个DLL副本的内容,好处就是在开发界面的时候可以避免一些编译问题,因为动态库已经成为编译好的模块,可以直接进行调用,在debug的过程中也不用担心是动态库导致的界面问题。编写动态库时需要将之前的程序转化为动态库的部分,即将完成的程序拆解为各个子函数,并加载写入动态库中,将原有的程序进行修改,制作以该动态库为基础的TCP/IP服务端及客户端的调用例程,具体情况如图3-33~图3-38所示。
图3-33 DLL部分程序
图3-34 TCP/IP GUI修改界面
图3-35 TCP/IP服务端界面
图3-36 TCP/IP客户端界面
图3-37 TCP/IP运行界面
图3-38 TCP/IP运行报错界面
3.4.3.4 数据库搭建(www.daowen.com)
通信方式如图3-39所示。
图3-39 通信方式
即整个流程有三方介入,用户使用PC客户端登录系统,可对数据库(服务器)中的数据进行读取以及调整,同时数据库中存有对应用户登录的用户名以及密码及其权限,通过调用数据获得可以修改或者读取的权限。数据库中所有的数据,除用户加入内容外,其余为机床(客户端)处发送数据上传至客户端,内容实时刷新。
3.4.3.5 通信内容
1)用户与数据库
用户与数据库间的通信内容主要为:
(1)数据库存储用户名以及密码作为登录用,同时赋予不同的用户名不同等级的权限,软件中进行设置,对不同权限的用户显示不同的界面。
(2)PC与服务器连接后,可读取数据库内的数据,同时进行处理后显示在界面中,赋予符合权限的用户远程操作数据库的功能。
2)数据库与机床
数据库与机床的联系主要为:
(1)数据库中存储对应机床的IP地址以及机床位(即通过通信规约中的描述码实现),以此判断为何台机床的数据,并进行数据存储。
(2)以西门子的数控机床为例,在机床内设置后台程序,将数据实时进行传输,存储到数据库中,同时数据库按照传输时间,进行数据备份,实现对机床历史数据的调用。
(3)目前设计的数据读取内容包括的方面(部分展示如图3-40所示)有:①机床坐标信息:相对坐标,机械坐标,绝对坐标,剩余坐标。②主轴相关信息:主轴名称,主轴转速,主轴负载,同时读取转速及负载数据。③伺服轴相关信息:伺服轴名称,伺服轴转速,伺服轴负载,同时对转速以及负载进行图像处理,以数值与二维坐标图显示。④当前运行程序显示:当前程序段,当前运行转速,当前进给转速,刀具号等。⑤警告内容读取:当出现警告时,及时出现警告内容及错误代码,方便处理。
3.4.3.6 后台程序编写
以西门子系统(图3-41、图3-42)为例,使用西门子的仿真系统进行程序的编写,程序仍然使用Visual Studio作为编写软件,但是由于西门子的仿真系统指定需要Windows 7 32位系统,因此需要采用旧版本的VS2008作为编写软件。使用相应的SINUMERIK Operate编程包,即可建立工程,同时调用3.4.3.4小节中编写的数据库,编写将数据传输到数据库的程序。
图3-40 数据库部分设计
图3-41 西门子仿真系统加载界面
图3-42 西门子仿真系统界面
3.4.3.7 P C客户端程序
PC客户端程序是整套系统中最主要的部分,需要将数据库中的信息简单明了地展示给使用监控系统的用户。因此需要做到直观性。经过设计,具备了用户登录界面、用户注册界面、机床选择界面、创建新机床界面以及最后的数据查看界面,分别如图3-43~图3-46所示。
图3-43 用户登录界面
图3-44 用户注册界面
图3-45 选择机床界面
图3-46 创建新机床界面
图3-47中左边四个方框位坐标以数据显示出,右边的转速及负载以坐标轴形式表达。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。