您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 一种多协议工业数据采集器的设计与实现
物联网技术2019年/第7期可靠传输ReliableTransmission460引言工业数据采集是智能制造和工业物联网的基础,发展工业数据采集是推动工业物联网全面深度应用的起点,也是制造业转型升级的必要条件。目前在工业数据采集领域,各自动化厂家存在多种工业通讯协议标准,各自动化设备生产商使用自己开发的私有工业协议,同时为了保证自动化设备和系统的安全,数据开放性不足,缺乏数据开放接口及文档说明,无法满足生产过程全流程的数据采集、流动及智能化生产需求。工业数据采集器实现了对生产现场各种工业数据的实时采集和整理分发,满足了工业物联网与信息系统对各类工业设备或智能产品的基础数据的需求。数据采集器的核心为协议转换,即运用对工业通讯协议的解析与转换实现数据格式的转换和统一。1数据采集结构数据采集基于连接与数据点的分层配置方式,其中连接包含了不同自动化厂家的连接方式与物理端口连接所需的基本信息等,数据点配置包含各采集点的控制器内存地址、数据类型(包括数据在控制器内的指向信息)等。根据配置采集后的数据形成统一的数据格式与接口方式,使不同的自动化设备数据按照统一的方式和接口流出,实现格式的转换和统一,便于数据进一步处理。2协议的处理方式由于各自动化厂家的通讯协议和物理端口等通信方式存在区别,因此需针对各协议使用不同的配置信息,其中西门子ISOoverTCP协议配置使用西门子控制器IP地址、槽号、机架号,根据配置信息与控制器建立ISOTCP连接,数据点配置包括点的存储区域、内存地址、偏移地址、数据类型等,根据连接信息建立连接后,周期性从控制器中数据点的配置读取数据,该方式针对西门子常用的S7系列控制器,典型的西门子数据采集段代码如下:IsoTCPComm.IPAddress:=pRootData(RootNode[I].Data)^.IpAddress;IsoTCPComm.CPURack:=pRootData(RootNode[I].Data)^.RackNumber;IsoTCPComm.CPUSlot:=pRootData(RootNode[I].Data)^.SlotNumber;IsoTCPComm.Area:=TCommArea(pNodeData(TreeNode.Data)^.DataArea);IsoTCPComm.ReadBytes(StartAddr,4);pNodeData(TreeNode.Data)^.Value:=TCPComm.GetValue(Offset);OPCFOUNDATION通用OPC协议[1],使用OPC服务器名称、服务器地址与OPC服务器建立连接,使用变量名称与服务器建立异步回调机制,当数据变化时服务器返回变化后的数据点当前值或者周期性从服务器中读取数据,该方式针对大多数DCS或PLC提供的OPC接口方式,典型的OPC数据采集段代码如下:ServerIf:=CreateRemoteComObject(NodeName,ProgIDToClassID(ServerName))asIOPCServer;ServerAddGroup(ServerIf,'MyGroup',True,FInterval,0,GroupIf,GroupHandle);一种多协议工业数据采集器的设计与实现闫晓凯(山信软件股份有限公司,山东济南250101)摘要:多协议工业数据采集器是工业物联网的数据源头,工业数据采集器建立了一个多协议并发的分布式采集发布软件构架,根据各工业自动化通讯协议数据采集的实现方法,实现了工业现场各自动化厂商的多种工业通讯协议标准下的实时数据的采集、整理与分发功能,采集器将自动化厂家的私有协议集成在一起,采集数据后形成统一的数据接口,并按照约定的格式进行推送和订阅分发,这种分布式轻量级数据采集器协议兼容性强,数据加密发布后用户可按自己的需求订阅,且实时性强,满足了生产过程全流程的数据采集及智能化生产需求,通过对工业大数据的深入挖掘,对生产过程优化和智能化决策有重大意义。关键词:工业数据采集;物联网;数据分发;智能化;生产过程优化;通讯协议中图分类号:TP39文献标识码:A文章编号:2095-1302(2019)07-0046-02收稿日期:2019-02-19修回日期:2019-03-27DOI:10.16667/j.issn.2095-1302.2019.07.0102019年/第7期物联网技术可靠传输ReliableTransmission47GroupAddItem(GroupIf,pNodeData(TreeNode.Data)^.Item,VT_EMPTY,ItemServerHandle,pNodeData(TreeNode.Data)^.ItemType);GroupAdvise2(GroupIf,OPCDataCallback,AsyncConnection);施耐德提供的ModbusTCP与ModbusRTU协议[2]由于物理层的区别,配置方式略有不同,ModbusTCP使用TCP连接方式,连接配置包含控制器IP地址、端口号(默认为502)、UnitID等,ModbusRTU使用串口连接方式,连接配置包含串口号、速率、数据位、停止位、校验位、校验方式等,数据点的配置遵循Modbus内存地址(输出、输入、输入寄存器、保持寄存器)定义方式,数据点的配置包含内存区域、地址、偏移地址、数据类型等,适用于遵循ModbusTCP或ModbusRTU的所有控制器,典型的ModbusTCP数据采集段代码如下:ModbusTCP.Host:=PRootData(RootNodeTCP.Data)^.SlaveIP;ModbusTCP.Port:=PRootData(RootNodeTCP.Data)^.SlavePort;ModbusTCP.UnitID:=PRootData(RootNodeTCP.Data)^.UnitID;ModbusTCP.ReadHoldingRegisters(StartAddr,1,RegArray);pNodeData(TreeNode.Data)^.Value:=PInteger(@RegArray[0])^;AB提供了DF1与EthernetIP连接,DF1方式为串口通讯方式,EthernetIP为基于TCP的通讯方式,根据控制器的不同分为基于地址和变量名两种采集方式,以变量名的EthernetIP方式为例,连接配置包含控制器IP地址、端口号(默认为44818)、CPU所在槽号等,数据点配置信息包含变量名、地址、数据类型等,典型的AB控制器数据采集段代码如下:EthernetIPforCLXCommConnection.IPAddress:=RootInfo.IPaddress;EthernetIPforCLXCommConnection.Port:=RootInfo.Port;EthernetIPforCLXCommConnection.ProcessorSlot:=RootInfo.Slot;forI:=0toNode.Count-1dopNodeData(Node[I].Data)^.Value::=EthernetIPforCLXCommConnection.Read(RootNode.Nodes[I].TagName);TMEIC东芝三菱提供UDP连接方式,连接配置包含控制器IP地址、端口号等,数据点配置信息包含内存区域、地址、数据类型等,数据内容为ASCII方式,当连接建立后,读取的数据配置按照协议打包并向控制器发送DR命令,控制器将根据命令返回读取的当前值。典型的TMEIC控制器数据采集段代码如下:UDPClient.DRCommand(RegNameList,RegCountList,RegResultList);forI:=0toRegResultList.Count-1dopNodeData(Node[I].Data)^.Value:=ToshibaUtils.ToshibaStrToValue(RegResultList[I]);欧姆龙将FINS通信协议用于工业自动化控制网络的指令响应系统,根据物理层的不同分为串行方式、TCP方式、UDP方式,根据数据内容分为ASCII方式和二进制方式,以FINS的UDP方式为例,连接配置包含控制器IP地址、端口号、目标和源网络地址、目标和源节点地址、目标和源单元地址等,数据点包含数据类型、内存区域、地址等,典型的欧姆龙控制器数据采集段代码如下:FinsUdpClient.ReadMemoryArea(TFinsAreaCode(pNodeData(TreeNode.Data)^.AreaType,pNodeData(TreeNode.Data)^.DataAddr,pNodeData(TreeNode.Data)^.DataType,ResultArray);pNodeData(TreeNode.Data)^.Value:=FinsUdpToValue(ResultArray);3数据的缓存隔离与传输数据订阅和推送服务器[3]可以实现数据的高速缓存、处理和安全隔离,由服务器推送数据,客户端订阅指定的数据后即可接收服务器推送的数据,轻量级消息订阅发布方式可以保证数据的高速传输,当某客户端使用监控实时数据的功能时,可以直接向服务器订阅实时数据,避免走数据库影响实时性,减小服务器的压力。当需要复杂数据的订阅推送时,可以选择JSON或者XML方式,客户端订阅后只要按照约定的格式解析即可。每一个采集端都可以作为一个发布客户端,典型的客户端发布与订阅数据的代码如下:PushClient:=TPushClient.Create();PushClient.Connect(SvrIP,StrToInt(SvrPort),PassWord);PushClient.CMD_PUBLISH('Topic',JsonString);PushClient.CMD_SUBSCRIBE('Topic',PassWord);4结语随着工业物联网的发展,工业数据采集器兼容更多协议的需求也会越来越强烈,将工业生产现场的设备进行互联,方便数据在底层自由传输,基于工业现场的一手数据搭建具有实时监视功能的软件、生产报表及自动化排产软件、工艺参数历史追踪软件、基于数据经验的机器学习软件,以及全功能MES系统等。参考文献[1]OPCFoundation.DataAccessCustomInterfaceStandardVersion2.04[S].2000:97-138.[2]ModbusIDA.ModbusMessagingonTCP/IPImplementationGuideVersion1.0[EB/OL].[2006-10-24].http://(下转第50页)物联网技术2019年/第7期可靠传输ReliableTransmission504.1应用程序更新测试通过网口将CPU的测试程序下载至板子的SSD中,重新加电且应用程序运行成功后,通过显示器显示运行成功信息。4.2DDR3SDRAM读写测试CPU分别以全0、全F、递增数三种数据格式写满SDRAM进行回读校验,统计校验错误数量,并将结果通过显示器显示。4.3网口测试使用计算机对2个网口持续测试数万包65500B的数据不丢包,CPU之间的网口持续测试数万包65500B的数据不丢包。4.4串口测试CPU通过RS232接口与计算机通信,其波特率为115200bps。数据格式:1个起始位,8个数据位,1个停止位,无校验位。测试时,每帧为256B,从0开始按1累加数据,处理器发送数据时,计算机通过串口调试助手或环回测试将接收到的数据进行校验;处理器接收数据时,接收计算机发送的数据后进行校验,显示测试结果。4.5USB接口测试USB接口接键盘对VxWorks系统进行操作调试。4.6VGA显示接口测试VGA接口接显示器可正常显示VxWorks系统的运行状态。4.7
本文标题:一种多协议工业数据采集器的设计与实现
链接地址:https://www.777doc.com/doc-6931816 .html