一种制造物联实时数据传输方法与流程

文档序号:11234623阅读:382来源:国知局
一种制造物联实时数据传输方法与流程
本发明涉及控制科学、计算机科学、系统科学、电气工程、数据采集、工业物联网等应用领域,尤其涉及的是一种制造物联实时数据传输方法。
背景技术
:传统制造业通常将业务管理信息化与生产设备的自动化视为两个独立的领域,不同的企业部门创建满足自身的一系列单一功能的信息系统,各部门的信息系统之间很难实现信息的同步与交换,从而造成信息孤岛和信息断层等信息阻断问题。受市场全球化的影响,各企业为了在日益激烈的市场竞争中占据优势,基于不同的业务需求采用适合自己的生产管理模式和先进信息技术,出现了工艺管理、仓储管理、设备管理维护、过程管理、生产管理等彼此独立的系统。这些系统之间相互独立、缺乏数据共享,从而导致功能重叠、数据矛盾等一系列信息孤岛问题,严重制约了制造业各系统之间的水平方向的协调发展。面对客户交货日期的苛刻要求、订单的不断调整、更多产品的改型,上层计划管理系统(erp等)计划的制定和执行受市场和实际作业的影响越来越严重,适应性问题越来越突出。企业业务管理系统无法准确及时掌握生产现场的实际情况,上层计划制定的准确性和可行性难以得到保证。同时,现场人员和设备不能及时得到切实可行的生产计划和生产指示,一方面造成产品积压,库存量过多,资金占用过多,另一发面造成设备空闲,资源浪费,车间调度系统失去相应的调度作用。信息断层造成制造业各系统垂直方向的阻断,严重影响制造业上层计划管理系统和现场执行系统之间的集成。信息孤岛和信息断层严重阻碍了制造业的信息化发展,降低了制造业的整体水平,阻碍了制造业信息化的发展。传统的实时数据传输的方法都是通过人工先从生产设备上读取数据,然后记录数据,再后将数值输入到电脑做数据统计分析。每个步骤都会花费时间,并且很有可能会产生误差,同时实时性很差,对工业生产现场的实时监控没有任何意义。如何将现场的执行系统和上层的管理分析系统有效的结合起来是目前制造业一个难题。如何将现场执行系统的数据传输到上层管理分析系统是其中的关键。因此,目前的产品工序追踪技术存在着很多缺陷,需要我们改进。技术实现要素:为了克服已有方法不能实时的将现场生产数据和上层管理分析系统关联起来的不足,本发明提供一种在保证数据传输真实可靠、数据实时性高的同时,能将生产现场和上层管理分析系统紧密结合起来的制造物联实时数据传输方法。本发明解决其技术问题所采用的技术方案是:一种制造物联实时数据传输方法,所述实时数据传输方法包括以下步骤:1)参数初始化:1.1)设置紧急数据包编号anum=0,紧急数据包总数acount=0;1.2)设置超时计数count=0,最大允许超时次数sum;1.3)设置数据块编号datablock=0,数据优先级priority=0;2)封装传输数据包:2.1)封装数据请求包;2.2)封装普通数据包;2.3)封装数据块结束包;2.4)封装数据结束包;2.5)定义响应包;3)数据发送过程;4)数据接收过程。进一步,所述步骤2.1)中,数据请求包的包格式如下:23241—1enqtypegroupsizenamelengthname校验其中,enq表示请求包的包标识,占用2个字节,值为0x05;type表示请求包请求的数据包类型,占用2个字节,取值为0x00到0xff区间的十六进制数,表示不同组别的数据;group表示请求包的数据组成,占用2个字节,值为0x01到0x0f区间的十六进制数,表示同一种组别的不同类型的数据;size表示传送文件的长度,占用4字节。namelength表示数据名的长度,占用1字节;name表示传送数据的名称,占用长度有文件名长度字节内容决定;校验占用1个字节,是从enq开始到校验前所有字节的异或运算和。再进一步,所述步骤2.2)中,数据普通数据包的包格式如下:22——1stxdatatypeprioritydata校验其中,stx是普通数据包的包标识,占用2个字节,值为0x02;type表示请求包的类型,占用2个字节,取值分别为0x01、0x02、0x04、0x08,其中0x01表示周期采样数据普通数据包,0x02表示事件触发信号普通数据包,0x04表示管理信息数据普通数据包,0x08表示其他类型普通数据包;priority用于标识当前数据包在整个传输过程中的优先级,占用1字节;data为传输的具体内容,占用1024个字节;校验占用1个字节,是从stx开始到校验前所有字节的异或运算和。更进一步,所述步骤2.3)中,数据块结束包的包格式如下:22——1etbtypelengthdata校验其中,etb是数据块结束包的包标识,占用1个字节,值为3;type表示请求包的类型,占用2个字节,取值分别为0x01、0x02、0x04、0x08,其中0x01表示周期采样数据普通数据包,0x02表示事件触发信号普通数据包,0x04表示管理信息数据普通数据包,0x08表示其他类型普通数据包;length表示数据包传送数据的长度,占用2个字节;data表示传送的具体数据内容,长度由数据长度的值决定;校验占用1个字节,是从etb开始到校验前所有字节的异或运算和。进一步,所述步骤2.4)中,数据结束包的包格式如下:22—1etxqualityremark校验etx是数据结束包包标识,占用2个字节,值为3;quality表示整条数据的数据包传输品质,占用2个字节,取值分别为0x00、0x01、0x02,其中0x00表示数据包全部传输失败,0x01表示传输了部分数据包,0x02表示数据包全部传输成功;remark表示整条数据的备注,长度不固定;校验占用1个字节,是从etx开始到校验前所有字节的异或运算和。进一步,所述步骤2.4)中,响应包的包格式如下:再进一步,所述步骤3)中,数据发送方法如下:3.1)阻塞等待有客户端连入,如果有客户端连入,与客户端创建数据交互通道,进入步骤3.2);3.2)向客户端发送soh响应,并开启监视事件;3.3)判断是否有紧急数据向客户端发送,如果没有紧急数据,则进入步骤3.3),否则跳入步骤3.10);3.4)监视客户端是否接收到新字符,如果有新字符,进入步骤3.5),否则进入步骤3.15);3.5)解析接收到字符的包标识,如果是enq,进入步骤3.6);如果是nak,跳入步骤3.7);如果是ack,跳入步骤3.8);如果是eot,跳入步骤3.9);3.6)收到请求包,解析请求包,根据请求包封装数据,并向客户端发送ack响应;3.7)收到初次请求数据或者客户端要求数据重发,进入步骤3.17);3.8)客户端成功收到数据,优先级priority=priority+1,跳入步骤3.17);3.9)客户端发起关闭请求,传输完毕,关闭数据传输通道;3.10)判断报警序号anum是否为0,如果anum等于0,则进入步骤3.11),否则跳入步骤3.12);3.11)获取数据包包数acount,判断acount是否等于1,如果acount等于1,则跳入步骤3.13),否则跳入步骤3.14);3.12)判断anum是否等于acount,如果相等则进入步骤3.13),否则跳入步骤3.14);3.13)发送数据块结束包,发送数据结束包,跳入步骤3.3);3.14)发送紧急数据的普通数据包;3.15)判断等待是否超时,如果没有超时,则跳入3.3),否则进入步骤3.10);3.16)超时计数器count=count+1,判断超时计数是否达到允许超时总数sum,如果count<sum,向服务器发送nak响应,请求重新发送指令或者数据,否则传输出错,关闭数据通道;3.17)判断数据是否发送完毕,如果data不为空,进入步骤3.18),否则表示数据发送完毕,跳入步骤3.22);3.18)判断数据块数据datadatablock是否为最后一包数据,如果datadatablock为最后一包数据,进入步骤3.19),否则跳入步骤3.20);3.19)客户端发送数据块结束包,数据块序号datablock=datablock+1,优先级priority=0;3.20)发送数据块datadatablock中优先级为priority的数据并进入步骤3.21);3.21)判断超时计数器count是否大于0,如果count>0,将count置为0;3.22)向客户端发送数据结束包,将数据块序号datablock置为0,优先级priority置为0。更进一步,所述步骤4)中,数据发送方法如下:4.1)与服务器创建连接,创建数据交互通道,开启监视事件;4.2)监视客户端指令或数据接收情况;4.3)判断是否有指令发送给服务器,如果有指令发送给服务器,向服务器发送指令包,否则进入4.4);4.4)判断是否接收到新字符,如果接收到新字符进入4.5),否则跳入4.11);4.5)解析接收到字符的包标识,如果是soh,进入步骤4.6);如果是ack,跳入步骤4.7);如果是stx,跳入步骤4.8);如果是etb,跳入步骤4.9);如果是eot,跳入步骤4.10);4.6)向服务器发送数据请求包;4.7)接收到数据,向服务器发送nak响应包;4.8)接收到普通数据包,跳入4.13);4.9)接收到数据块结束包,跳入4.13);4.10)接收到数据结束包,向服务器发送数据请求包;4.11)判断等待是否超时,如果没有超时,则跳入4.1),否则进入步骤4.12);4.12)超时计数器count=count+1,判断超时计数是否达到允许超时总数sum,如果count<sum,向服务器发送nak响应,请求重新发送指令或者数据,否则传输出错,关闭数据通道;4.13)校验数据包是否正确,如果数据正确,发送ack响应包,否则发送nak响应,向服务请求重新发送数据包。本发明的技术构思为:首先,将制造物联实时数据传输方法参数初始化;然后,根据数据包格式封装数据;其次,开启数据发送过程;再次,开启数据接收过程;最后,数据发送和数据接受交换数据。应用制造物联实时数据传输方法,不仅提高了数据传输的效率,而且保证了数据传输的准确性。本发明的有益效果为:在保证数据传输准确性的基础上,提高数据传输效率。附图说明图1是模块化柔性制造综合实训系统示意图。图2是制造物联实时数据传输方法发送过程示意图。图3是制造物联实时数据传输方法接收过程示意图。具体实施方式下面结合附图对本发明作进一步描述。参照图1~图3,一种制造物联实时数据传输方法,所述实时数据传输方法包括以下步骤:1)参数初始化:1.1)设置紧急数据包编号anum=0,紧急数据包总数acount=0;1.2)设置超时计数count=0,最大允许超时次数sum;1.3)设置数据块编号datablock=0,数据优先级priority=0;2)封装传输数据包:2.1)封装数据请求包;2.2)封装普通数据包;2.3)封装数据块结束包;2.4)封装数据结束包;2.5)定义响应包;3)数据发送过程;4)数据接收过程。进一步,所述步骤2.1)中,数据请求包的包格式如下:23241—1enqtypegroupsizenamelengthname校验其中,enq表示请求包的包标识,占用2个字节,值为0x05;type表示请求包请求的数据包类型,占用2个字节,取值为0x00到0xff区间的十六进制数,表示不同组别的数据;group表示请求包的数据组成,占用2个字节,值为0x01到0x0f区间的十六进制数,表示同一种组别的不同类型的数据;size表示传送文件的长度,占用4字节。namelength表示数据名的长度,占用1字节;name表示传送数据的名称,占用长度有文件名长度字节内容决定;校验占用1个字节,是从enq开始到校验前所有字节的异或运算和。进一步,所述步骤2.2)中,数据普通数据包的包格式如下:22——1stxdatatypeprioritydata校验其中,stx是普通数据包的包标识,占用2个字节,值为0x02;type表示请求包的类型,占用2个字节,取值分别为0x01、0x02、0x04、0x08,其中0x01表示周期采样数据普通数据包,0x02表示事件触发信号普通数据包,0x04表示管理信息数据普通数据包,0x08表示其他类型普通数据包;priority用于标识当前数据包在整个传输过程中的优先级,占用1字节;data为传输的具体内容,占用1024个字节;校验占用1个字节,是从stx开始到校验前所有字节的异或运算和。进一步,所述步骤2.3)中,数据块结束包的包格式如下:22——1etbtypelengthdata校验其中,etb是数据块结束包的包标识,占用1个字节,值为3;type表示请求包的类型,占用2个字节,取值分别为0x01、0x02、0x04、0x08,其中0x01表示周期采样数据普通数据包,0x02表示事件触发信号普通数据包,0x04表示管理信息数据普通数据包,0x08表示其他类型普通数据包;length表示数据包传送数据的长度,占用2个字节;data表示传送的具体数据内容,长度由数据长度的值决定;校验占用1个字节,是从etb开始到校验前所有字节的异或运算和。进一步,所述步骤2.4)中,数据结束包的包格式如下:etx是数据结束包包标识,占用2个字节,值为3;quality表示整条数据的数据包传输品质,占用2个字节,取值分别为0x00、0x01、0x02,其中0x00表示数据包全部传输失败,0x01表示传输了部分数据包,0x02表示数据包全部传输成功;remark表示整条数据的备注,长度不固定;校验占用1个字节,是从etx开始到校验前所有字节的异或运算和。进一步,所述步骤2.4)中,响应包的包格式如下:名称取值含义ack0x06接收方收到的数据正确nak0x15接收方收到的数据有误,请求重发can0x18接收方取消发送方的发送请求soh0x01发送方向接收方请求数据请求包eot0x04数据传输完毕,关闭传输通道再进一步,所述步骤3)中,数据发送方法如下:3.1)阻塞等待有客户端连入,如果有客户端连入,与客户端创建数据交互通道,进入步骤3.2);3.2)向客户端发送soh响应,并开启监视事件;3.3)判断是否有紧急数据向客户端发送,如果没有紧急数据,则进入步骤3.3),否则跳入步骤3.10);3.4)监视客户端是否接收到新字符,如果有新字符,进入步骤3.5),否则进入步骤3.15);3.5)解析接收到字符的包标识,如果是enq,进入步骤3.6);如果是nak,跳入步骤3.7);如果是ack,跳入步骤3.8);如果是eot,跳入步骤3.9);3.6)收到请求包,解析请求包,根据请求包封装数据,并向客户端发送ack响应;3.7)收到初次请求数据或者客户端要求数据重发,进入步骤3.17);3.8)客户端成功收到数据,优先级priority=priority+1,跳入步骤3.17);3.9)客户端发起关闭请求,传输完毕,关闭数据传输通道;3.10)判断报警序号anum是否为0,如果anum等于0,则进入步骤3.11),否则跳入步骤3.12);3.11)获取数据包包数acount,判断acount是否等于1,如果acount等于1,则跳入步骤3.13),否则跳入步骤3.14);3.12)判断anum是否等于acount,如果相等则进入步骤3.13),否则跳入步骤3.14);3.13)发送数据块结束包,发送数据结束包,跳入步骤3.3);3.14)发送紧急数据的普通数据包;3.15)判断等待是否超时,如果没有超时,则跳入3.3),否则进入步骤3.10);3.16)超时计数器count=count+1,判断超时计数是否达到允许超时总数sum,如果count<sum,向服务器发送nak响应,请求重新发送指令或者数据,否则传输出错,关闭数据通道;3.17)判断数据是否发送完毕,如果data不为空,进入步骤3.18),否则表示数据发送完毕,跳入步骤3.22);3.18)判断数据块数据datadatablock是否为最后一包数据,如果datadatablock为最后一包数据,进入步骤3.19),否则跳入步骤3.20);3.19)客户端发送数据块结束包,数据块序号datablock=datablock+1,优先级priority=0;3.20)发送数据块datadatablock中优先级为priority的数据并进入步骤3.21);3.21)判断超时计数器count是否大于0,如果count>0,将count置为0;3.22)向客户端发送数据结束包,将数据块序号datablock置为0,优先级priority置为0;更进一步,所述步骤4)中,数据发送方法如下:4.1)与服务器创建连接,创建数据交互通道,开启监视事件;4.2)监视客户端指令或数据接收情况;4.3)判断是否有指令发送给服务器,如果有指令发送给服务器,向服务器发送指令包,否则进入4.4);4.4)判断是否接收到新字符,如果接收到新字符进入4.5),否则跳入4.11);4.5)解析接收到字符的包标识,如果是soh,进入步骤4.6);如果是ack,跳入步骤4.7);如果是stx,跳入步骤4.8);如果是etb,跳入步骤4.9);如果是eot,跳入步骤4.10);4.6)向服务器发送数据请求包;4.7)接收到数据,向服务器发送nak响应包;4.8)接收到普通数据包,跳入4.13);4.9)接收到数据块结束包,跳入4.13);4.10)接收到数据结束包,向服务器发送数据请求包;4.11)判断等待是否超时,如果没有超时,则跳入4.1),否则进入步骤4.12);4.12)超时计数器count=count+1,判断超时计数是否达到允许超时总数sum,如果count<sum,向服务器发送nak响应,请求重新发送指令或者数据,否则传输出错,关闭数据通道;4.13)校验数据包是否正确,如果数据正确,发送ack响应包,否则发送nak响应,向服务请求重新发送数据包;本实施例以模块化柔性制造综合实训系统为实施例,一种制造物联实时数据传输方法,其中包含以下步骤:1)参数初始化:1.1)设置紧急数据包编号anum=0,紧急数据包总数acount=0;1.2)设置超时计数count=0,最大允许超时次数sum;1.3)设置数据块编号datablock=0,数据优先级priority=0;2)封装传输数据包:2.1)封装数据请求包;2.2)封装普通数据包;2.3)封装数据块结束包;2.4)封装数据结束包;2.5)定义响应包;3)数据发送过程;4)数据接收过程。进一步,所述步骤2.1)中,数据请求包的包格式如下:23241—1enqtypegroupsizenamelengthname校验其中,enq表示请求包的包标识,占用2个字节,值为0x05;type表示请求包请求的数据包类型,占用2个字节,取值为0x00到0xff区间的十六进制数,表示不同组别的数据;group表示请求包的数据组成,占用2个字节,值为0x01到0x0f区间的十六进制数,表示同一种组别的不同类型的数据;size表示传送文件的长度,占用4字节。namelength表示数据名的长度,占用1字节;name表示传送数据的名称,占用长度有文件名长度字节内容决定;校验占用1个字节,是从enq开始到校验前所有字节的异或运算和。进一步,所述步骤2.2)中,数据普通数据包的包格式如下:22——1stxdatatypeprioritydata校验其中,stx是普通数据包的包标识,占用2个字节,值为0x02;type表示请求包的类型,占用2个字节,取值分别为0x01、0x02、0x04、0x08,其中0x01表示周期采样数据普通数据包,0x02表示事件触发信号普通数据包,0x04表示管理信息数据普通数据包,0x08表示其他类型普通数据包;priority用于标识当前数据包在整个传输过程中的优先级,占用1字节;data为传输的具体内容,占用1024个字节;校验占用1个字节,是从stx开始到校验前所有字节的异或运算和。进一步,所述步骤2.3)中,数据块结束包的包格式如下:22——1etbtypelengthdata校验其中,etb是数据块结束包的包标识,占用1个字节,值为3;type表示请求包的类型,占用2个字节,取值分别为0x01、0x02、0x04、0x08,其中0x01表示周期采样数据普通数据包,0x02表示事件触发信号普通数据包,0x04表示管理信息数据普通数据包,0x08表示其他类型普通数据包;length表示数据包传送数据的长度,占用2个字节;data表示传送的具体数据内容,长度由数据长度的值决定;校验占用1个字节,是从etb开始到校验前所有字节的异或运算和。进一步,所述步骤2.4)中,数据结束包的包格式如下:22—1etxqualityremark校验etx是数据结束包包标识,占用2个字节,值为3;quality表示整条数据的数据包传输品质,占用2个字节,取值分别为0x00、0x01、0x02,其中0x00表示数据包全部传输失败,0x01表示传输了部分数据包,0x02表示数据包全部传输成功;remark表示整条数据的备注,长度不固定;校验占用1个字节,是从etx开始到校验前所有字节的异或运算和。进一步,所述步骤2.4)中,响应包的包格式如下:名称取值含义ack0x06接收方收到的数据正确nak0x15接收方收到的数据有误,请求重发can0x18接收方取消发送方的发送请求soh0x01发送方向接收方请求数据请求包eot0x04数据传输完毕,关闭传输通道再进一步,所述步骤3)中,数据发送方法如下:3.1)阻塞等待有客户端连入,如果有客户端连入,与客户端创建数据交互通道,进入步骤3.2);3.2)向客户端发送soh响应,并开启监视事件;3.3)判断是否有紧急数据向客户端发送,如果没有紧急数据,则进入步骤3.3),否则跳入步骤3.10);3.4)监视客户端是否接收到新字符,如果有新字符,进入步骤3.5),否则进入步骤3.15);3.5)解析接收到字符的包标识,如果是enq,进入步骤3.6);如果是nak,跳入步骤3.7);如果是ack,跳入步骤3.8);如果是eot,跳入步骤3.9);3.6)收到请求包,解析请求包,根据请求包封装数据,并向客户端发送ack响应;3.7)收到初次请求数据或者客户端要求数据重发,进入步骤3.17);3.8)客户端成功收到数据,优先级priority=priority+1,跳入步骤3.17);3.9)客户端发起关闭请求,传输完毕,关闭数据传输通道;3.10)判断报警序号anum是否为0,如果anum等于0,则进入步骤3.11),否则跳入步骤3.12);3.11)获取数据包包数acount,判断acount是否等于1,如果acount等于1,则跳入步骤3.13),否则跳入步骤3.14);3.12)判断anum是否等于acount,如果相等则进入步骤3.13),否则跳入步骤3.14);3.13)发送数据块结束包,发送数据结束包,跳入步骤3.3);3.14)发送紧急数据的普通数据包;3.15)判断等待是否超时,如果没有超时,则跳入3.3),否则进入步骤3.10);3.16)超时计数器count=count+1,判断超时计数是否达到允许超时总数sum,如果count<sum,向服务器发送nak响应,请求重新发送指令或者数据,否则传输出错,关闭数据通道;3.17)判断数据是否发送完毕,如果data不为空,进入步骤3.18),否则表示数据发送完毕,跳入步骤3.22);3.18)判断数据块数据datadatablock是否为最后一包数据,如果datadatablock为最后一包数据,进入步骤3.19),否则跳入步骤3.20);3.19)客户端发送数据块结束包,数据块序号datablock=datablock+1,优先级priority=0;3.20)发送数据块datadatablock中优先级为priority的数据并进入步骤3.21);3.21)判断超时计数器count是否大于0,如果count>0,将count置为0;3.22)向客户端发送数据结束包,将数据块序号datablock置为0,优先级priority置为0。更进一步,所述步骤4)中,数据发送方法如下:4.1)与服务器创建连接,创建数据交互通道,开启监视事件;4.2)监视客户端指令或数据接收情况;4.3)判断是否有指令发送给服务器,如果有指令发送给服务器,向服务器发送指令包,否则进入4.4);4.4)判断是否接收到新字符,如果接收到新字符进入4.5),否则跳入4.11);4.5)解析接收到字符的包标识,如果是soh,进入步骤4.6);如果是ack,跳入步骤4.7);如果是stx,跳入步骤4.8);如果是etb,跳入步骤4.9);如果是eot,跳入步骤4.10);4.6)向服务器发送数据请求包;4.7)接收到数据,向服务器发送nak响应包;4.8)接收到普通数据包,跳入4.13);4.9)接收到数据块结束包,跳入4.13);4.10)接收到数据结束包,向服务器发送数据请求包;4.11)判断等待是否超时,如果没有超时,则跳入4.1),否则进入步骤4.12);4.12)超时计数器count=count+1,判断超时计数是否达到允许超时总数sum,如果count<sum,向服务器发送nak响应,请求重新发送指令或者数据,否则传输出错,关闭数据通道;4.13)校验数据包是否正确,如果数据正确,发送ack响应包,否则发送nak响应,向服务请求重新发送数据包。以上阐述的是本发明给出的一个实施例表现出来的优良效果,显然本发明不仅适合上述实施例,在不偏离本发明基本精神及不超出本发明实质内容所涉及内容的前提下可对其做种种变化加以实施。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1