基于 TCP / IP 通信的汽车衡称重数据管理系统
随着以太网通信的兴起与迅速发展,TCP / IP 协议作为计算机网络的最主要的传输协议被广泛应用于工业以太网控制领域。 为了实现生产现场智能称重仪表与管理层直接的数据交换, 使用 Visual Basic 提供的 Winsock 控件开发了FTP 服务端的通信应用程序,实现现场生产数据在管理层的 SQL 数据库中的存储和查询。 基于 TCP / IP 通信的称重数据管理系统投入实际运行后,可记录和保存生产现场全部称重数据。
基于 TCP / IP 的以太网可满足控制系统的各个层次的需求,并具有实现现场设备层和企业管理层的无缝连接、低成本等现场总线技术无法比拟的优点。 本系统开发的 FTP 服务端通信应用程序可实现生产现场智能称重仪表与管理层的数据交换,使现场生产数据可在管理层的数据库中进行存储和查询。 系统经调试已投入运行,完全达到预期目的。
1.系统构成
青岛某橡胶公司的生产车间与管理生产数据的办公区距离较远,称重数据管理都是采用人工记录方式,这就造成了数据更新慢和准确性差等问题。 为方便管理人员快速和准确地查询称重数据,实现办公无纸化,利用 FTP 通信原理完成文件、资料、报表等数据的计算机网络传送。 设计和开发了基于 TCP / IP 的通信和数据处理系统, 系统硬件采用梅特勒-托利多的工业智能称重仪表 IND880,接收称重传感器发送的模拟量信号并转化为重量值,通过以太网交换机与服务器电脑和多台客户端电脑建立以太网通信连接,实现称重数据的快捷查询。 系统结构如图 1 所示。
2.通信协议
客户端与服务器端之间是通过 TCP / IP 协议和 FTP 协议进行通信的。TCP 协议作用于传输层,在文件传输时会先行建立连接,通过链接提供双向、有序且无重复的数据流服务、流量控制、差错检测和纠错等服务,从而确保文件传输的正确性。 FTP 协议作用于应用层,它包括两个组成部分,其一为 FTP 服务器,其二为 FTP 客户端。 其中 FTP 服务器用来存储文件,用户可以使用FTP 客户端通过 FTP 协议访问位于 FTP 服务器上的资源。
Visual Basic 提供了基于 Windows Sockets 网络编程接口的Winsock 控件。 Winsock 控件是不可视控件,它封装了所有烦琐的技术细节,并提供了访问 TCP 网络服务的方便途径,使开发 TCP / IP 通信程序变得简单方便,只需通过设置 Winsock 控件的属性并调用其方法,就可直接连接到一台远程计算机中,并可实现双向数据交换。 为开发者实现上位计算机与现场各种以太网接口仪表进行通信提供了一种有效途径。
Winsock 控件的工作原理: 客户端向服务器端发出连接请求, 服务器端则不停地监听客户端的请求, 当两者的协议沟通时,客户端和服务器端之间就建立了连接,这时客户端和服务器端就可以实现双向数据传输。 实际编程中,必须分别建立一个服务器端应用程序和一个客户端应用程序,两个应用程序中分别有自己的Winsock 控件。 首先设置 Winsock控件使用的协议,通信的双方需要选定相同的协议。 TCP 协议适用于传送大容量或需要安全性保证的 数据文件。 Winsock 控件的工作原理如图 2 所示。
3.软件设计
服务器端程序运行在服务器上, 其主要功能是接受来自现场智能仪表 IND880 传输的表格文件, 并把该文件内容逐条转换为 SQL 数据库中的表格记录; 打印程序运行在智能仪表ND880 上 ,其主要功能是读取服务器上的数据 ,并把记录中的“生产编号 ”字段生成条形码 ,连接斑马打印机 ,打印生产标签 ,并把打印内容记录在 SQL 数据库中。
用 TCP / IP 协议通讯,首先要指定通信方式为 TCP 方式,将Winsock 控件的 Protocol 属性设置为 sckTCPProtocol。 然后,按
TCP 通信协议规定,先要申请建立网络连接,设置 Winsock 控件的 RemotePort 和 LocalPort 属性使服务器和客户端参数一致,服务器调用 Winsock 控件的 Listen 方法进行侦听, 客户端调用Winsock 控件 Connect 方法进行连接 , 然后才能调用 DataAr-rival 事件和 GetData 方法传输数据,最终实现点对点文件传输。
生产现场的智能仪表 IND880 通过自带的称重软件记录生产数据,并保存为表格(.csv 格式),当操作人员按称重软件中
“上传 ”时 ,该表格通过以太网通信传输到服务器上的 F 盘根目录下的 IND880 文件夹里。 服务器接收完称重表格后将该表格解析, 通过定义 ADODB 和数据集连接 SQL 数据库, 使用 For循环和 Insert into 语句逐条把记录写进服务器中的 SQL 数据库中的名为 ind 的表格中,该表格中包括:编号、流水号、料名、机台、班次、序号、净重、毛重、称重人、复核人、称量日期、备注、上传标志字段。因为每条记录的编号是唯一的, 所以设置编号为主键, 这样就可以避免重复记录的产生。
通过配置 ODBC 数据源和 SQL Server ConfigurationManager, 并利用 VB 中 ADO部件进行编程,使得在 IND880上运行的客户端程序可以读取服务器上的数据,获取记录后操作人员核对打印信息无误后,点击客户端程序上的“打印预览”即可进入打印界面,系统自动根据记录中的“生产编号”生产条码信息,核对后,通过 Form9.PrintForm 和 Printer.EndDoc完成控制斑马打印机打印生产标签。 工作流程图如图 3 所示。
4.结束语
客户/ 服务器模式已成为目前程序开发的主要潮流,在 Vi-sual Basic 中的 Winsock 是实现客户 / 服务器的主要控件 ,利用 TCP / IP 协议进行客户与服务器之间的通信, 实现现场生产智能仪表产生的数据可在管理层的 SQL 数据库中的存储和查询。 该系统使管理层方便、快速地了解和监视现场运行情况,提高了工作效率。