随着以太网通信的兴起与迅速发展,TCP/IP协议作为计算机网络的最主要的传输协议被广泛应用于工业以太 网控制领域。为了实现生产现场智能称重仪表与管理层直接的数据交换,使用Visual Basic提供的Winsock控件开发了 FTP服务端的通信应用程序,实现现场生产数据在管理层的SQL数据库中的存储和查询。基于TCP/IP通信的称重数据管理系统投入实际运行后,可记录和保存生产现场全部称重数据。
基于TCP/IP的以太网可满足控制系统的各个层次的需 求,并具有实现现场设备层和企业管理层的无缝连接、低成本等 现场总线技术无法比拟的优点。本系统开发的FTP服务端通信 应用程序可实现生产现场智能称重仪表与管理层的数据交换, 使现场生产数据可在管理层的数据库中进行存储和查询。系统 经调试已投入运行,完全达到预期目的。
1.系统构成
青岛某橡胶公司的生产车间与管理生产数据的办公区距离 较远,称重数据管理都是采用人工记录方式,这就造成了数据更 新慢和准确性差等问题。为方便管理人员快速和准确地查询称重 数据,实现办公无纸化,利用FTP通信原理完成文件、资料、报表 等数据的计算机网络传送。设计和开发了基于TCP/IP的通信和 数据处理系统,系统硬件采用梅特勒-托利多的工业智能称重仪 表ND880,接收称重传感器发送的模拟量信号并转化为重量值, 通过以太网交换机与服务器电脑和多台客户端电脑建立以太网 通信连接,实现称重数据的快捷查询。系统结构如图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数据库中的表格记录;打印程序运行在智能仪表 IND880上,其主要功能是读取服务器上的数据,并把记录中的 “生产编号”字段生成条形码,连接斑马打印机,打印生产标签, 并把打印内容记录在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 Configuration Manager,并利用 VB 中 ADO 部件进行编程,使得在IND880 上运行的客户端程序可以读取 服务器上的数据,获取记录后,
操作人员核对打印信息无误 后,点击客户端裎序上的“打印
预览”即可进入打印界面,系统 自动根据记录中的“生产编号” 图3工作流程图 生产条码信息,核对后,通过Form9.PrintFonm和PrintenEndDoc 完成控制斑马打印机打印生产标签。工作流程图如图3所示。
4.结束语
客户/服务器模式已成为目前程序开发的主要潮流,在Vi-sual Basic中的Winsock是实现客户/服务器的主要控件,利 用TCP/IP协议进行客户与服务器之间的通信,实现现场生产 智能仪表产生的数据可在管理层的SQL数据库中的存储和查 询。该系统使管理层方便、快速地了解和监视现场运行情况,提 高了工作效率。