掌桥专利:专业的专利平台
掌桥专利
首页

基于半导体传输协议的数据缓存防错方法及系统

文献发布时间:2024-04-18 20:01:30


基于半导体传输协议的数据缓存防错方法及系统

技术领域

本发明涉及平板玻璃生产线、玻璃深加工生产线数据处理领域,具体涉及基于半导体传输协议的数据缓存防错方法及系统。

背景技术

随着玻璃行业的发展,对于平板玻璃与玻璃深加工生产设备自动化程度的要求也越来越高,对于上位机与运动控制系统之间的通信稳定性、效率、数据吞吐量、数据准确性等,都提出了更高的要求。

目前市面上的的上位机与下位机之间的通讯方式,大多数利用Socket套接字,即TCP/IP协议,在此协议中又使用TCP,或是UDP方式来进行数据交互,例如公布号为CN111683138A的现有发明专利申请文献《一种基于Socket的高效自定义数据传输方法》采用了一种数据传输系统,所述数据传输系统包括一台上位机和多台下位机,上位机与下位机之间采用Socket套接字方式进行双向通信;数据传输方法包括以下步骤:步骤一:上位机与下位机通过Socket建立连接;步骤二:采用文件数据传输协议传输文件数据,解析后按照四元组存储在数据池;所述四元组为T<文件名,当前包数,总包数,文件流>;步骤三:扫描数据池,并对数据池进行清理;步骤四:文件数据完成传输后,上位机按照预定义的文件数据传输协议对文件数据进行检校,如果检校失败,上位机发送指令通知下位机重新发送。以及公布号为CN116721674A的现有发明专利申请文献《一种多通道音频信号分析系统和装置》前述现有方案中的系统包括:用户通过上位机UI界面选择音频信号类型,并输入已选音频信号类型的所有参数;上位机将命令和已选音频信号类型的所有参数通过以太网数据包的形式发送给下位机;下位机利用核心处理单元对以太网数据包进行处理,实现上位机与下位机的交互处理;核心处理单元包括PS处理单元和PL处理单元,PS处理单元负责处理以太网数据包的收发与解析并根据以太网数据包中的命令执行相应操作,PL处理单元负责芯片的驱动、数据的采集与传输、与PS处理单元进行数据交互。由该现有方案的具体实施内容可知,该系统中的ADC转换模块通过I2S接口,将采集的数据接入主板,再由主板通过RJ45接口,采用UDP网络通讯传入上位机处理。前述现有技术中,TCP协议使用起来需要构建客户端,服务器端,并开放监听等操作,且一般状态下无法实现断线重连功能;UDP协议在使用中虽然不需要建立连接,但是数据的安全性与数据是否准确被接收是无法被保证的。如何保证上下位机进行数据传输时其简便性、稳定性与数据准确性是现如今急需解决的问题。

综上,现有技术中的上下位机数据传输操作存在操作复杂、传输稳定性较差以及传输准确性较低的技术问题。

发明内容

本发明所要解决的技术问题在于:如何解决现有技术中的上下位机数据传输操作存在操作复杂、传输稳定性较差以及传输准确性较低的技术问题。

本发明是采用以下技术方案解决上述技术问题的:基于半导体传输协议的数据缓存防错方法包括:

S1、建立运动控制器的通信接口;

S2、按照预置标准,构建数据寄存器,利用循环扫描实时传递给接口输入变量SendBuffer,以建立运动控制器的数据格式;

S3、建立防错数据缓存序列,建立发送与接收数据标识符反馈Feedback,将发送的内容分为不少于2个部分,在发送与接收数据标识符反馈Feedback确认应答返回前,在预置缓冲区中保留已发送的数据;

S4、建立上位机端通信接口,创建传输线程Cycle,循环控制传输线程Cycle,利用try catch捕捉传输线程Cycle的异常,在判定出现异常时,销毁传输线程Cycle,重建传输线程Cycle供传输;在传输线程Cycle中,定义远程地址与端口:RemoteIP,在运动控制器的数据寄存器中,按照运动控制器的数据格式,依次解析数据寄存器中的数据;向运动控制器发送不少于2次的反馈标识符Flag,运动控制器收到反馈标识符Flag,与前次的反馈标识符Flag比较,据以判定数据接收状态;在数据发送操作中,在预置数据缓存区中提取并保存数据,以作为缓存数据DBbytes。

本发明通过建立运动控制器的通信接口、运动控制器数据格式建立、建立防错数据缓存序列、建立上位机端通信接口。进行上位机与下位机之间的数据传输,代替了现有的上下位机间通讯方式利用的Socket套接字、TCP/IP协议的通讯方式,实现了断线重连功能;保证数据传输的安全性与准确性。

在更具体的技术方案中,步骤S1包括:

S11、在启用数据缓存防错操作时,则通过上升沿指令,给予第一接口输入变量Enable,以与上位机连接,在结束启用数据缓存防错操作时,则通过下降沿指令,给予第一接口输入变量Enable,以断开与上位机的连接;

S12、获取并根据数据更新情况信息,利用运动控制器通信接口,将接口第二输入变量Send置位、复位,将待发送数据包置于第三接口输入变量SendBuffer;

S13、检测待发送数据包中,发送数据的长度,赋值于第四接口输入变量SendDataLength;

S14、在接收到数据时,获取并根据数据缓存的长度,判定接收信息分包数量,并定义为:第五接口输入变量PocketNum,将本次读取的数据长度赋值于第六接口输入变量ReadDataLength;

S15、在数据发送时,置位第一接口输出变量Sending,发送结束,第一接口输出变量Sending复位;

S16、当有数据待接收时,第七接口输入变量dataReceiving被置位,发送结束,第七接口输入变量dataReceiving复位;

S17、在线更改数据传输端口时,在线更改第八接口输入变量PartnerPort;

S18、端口开放本地端口的在线更改。

本发明通过建立稳定,灵活容易调试的玻璃生产线下的运动控制器与上位机的数据通信接口,设置并对接口输入、输出变量进行复位、置位操作,解决了当前数据通信方式如Socket,无法实现的可实现断线重连与断线缓存续发等功能。

在更具体的技术方案中,步骤S14中,根据第五接口输入变量PocketNum数值,确定本次读取次数,以同步缓存信息。

本发明根据接口输入变量PocketNum的值,决定本次读取几次,全部读取完成,保证数据的一致性后,再进行下次读取,实现了缓存信息的同步。

在更具体的技术方案中,步骤S17包括:

S171、第九接口输入变量PartnerIP的接口,通过自动重启第十接口输入变量Enable,

S172、自动复位第二接口输入变量Send,以对目标端口进行切换操作。

在更具体的技术方案中,步骤S3中的发送的数据包括:

已发送、已得到发送与接收数据标识符反馈Feedback确认收到的数据;

已发送、未收到的发送与接收数据标识符反馈Feedback确认收到的数据;

未发送、数据内容在所建立缓存区大小之内的数据;

未发送、数据内容已超出所建立缓存区范围的数据。

本发明在等到发送与接收数据标识符反馈Feedback确认应答返回之前,必须在缓冲区中保留已发送的数据。如果按期收到Feedback应答后,此时数据就可以从缓存区清除,同样接收方接收数据后也放在这个缓存区中,保证了数据传输稳定性,防止数据丢失。

在更具体的技术方案中,步骤S4中,解析数据寄存器的数据,采用下述读取方式:

Int.FromByteArray(Buffer.Skip(shift).Take(length).ToArray());

DInt.FromByteArray(Buffer.Skip(shift).Take(length).ToArray());

String.FromByteArray(Buffer.Skip(shift).Take(length).ToArray());

Real.FromByteArray(Buffer.Skip(shift).Take(length).ToArray());

其中,Int对应16位整型,DInt对应32位整型,String对应字符串,Real对应32位浮点数。

本发明增强了通过解析设置并解析数据寄存器的数据,设置并利用发送与接收数据标识符反馈进行上位机与下位机的通信,实现的工厂控制功能的稳定性,节省了开发与调试人员的时间和精力,解决了玻璃产线数据丢失、数据安全度低的问题,提升了玻璃产品的质量监测和生产的灵活性。

在更具体的技术方案中,变量shift对应数据寄存器中的偏移量,变量length对应数据寄存器中的长度。

在更具体的技术方案中,步骤S4中,在发送、更改特定数据时,修改缓存数据DBbytes对应的字节,整体封装发送缓存数据DBbytes。

在更具体的技术方案中,步骤S4中,在进行传输线程Cycle的循环过程中,利用lock锁处理传输线程Cycle,在调用和读取操作结束时,释放lock锁。

本发明在程序中创建传输线程Cycle,线程中利用特定语句控制循环操作,并用try catch捕捉其异常,若出现异常,则尝试销毁线程并重新建立新线程继续传输,利用lock锁将线程进行保护,防止在线程读取上位机内部变量时,同时调用内部变量导致数据异常。保证了上位机与下位机直接传输的数据质量。

在更具体的技术方案中,基于半导体传输协议的数据缓存防错方系统包括:

控制器接口建立模块,用以建立运动控制器的通信接口;

数据格式建立模块,按照预置标准,构建数据寄存器,利用循环扫描实时传递给接口输入变量SendBuffer,以建立运动控制器的数据格式,控制器接口建立模块与数据格式建立模块连接;

防错数据缓存序列建立模块,用以建立发送与接收数据标识符反馈Feedback,将发送的内容分为不少于2个部分,在发送与接收数据标识符反馈Feedback确认应答返回前,在预置缓冲区中保留已发送的数据;

上位机端通信接口建立模块,用以创建传输线程Cycle,循环控制传输线程Cycle,利用try catch捕捉传输线程Cycle的异常,在判定出现异常时,销毁传输线程Cycle,重建传输线程Cycle供传输;在传输线程Cycle中,定义远程地址与端口:RemoteIP,在运动控制器的数据寄存器中,按照运动控制器的数据格式,依次解析数据寄存器中的数据;向运动控制器发送不少于2次的反馈标识符Flag,运动控制器收到反馈标识符Flag,与前次的反馈标识符Flag比较,据以判定数据接收状态;在数据发送操作中,在预置数据缓存区中提取并保存数据,以作为缓存数据DBbytes,上位机端通信接口建立模块与数据格式建立模块及防错数据缓存序列建立模块连接。

本发明相比现有技术具有以下优点:本发明通过建立运动控制器的通信接口、运动控制器数据格式建立、建立防错数据缓存序列、建立上位机端通信接口。进行上位机与下位机之间的数据传输,代替了现有的上下位机间通讯方式利用的Socket套接字、TCP/IP协议的通讯方式,实现了断线重连功能;保证数据传输的安全性与准确性。

本发明通过建立稳定,灵活容易调试的玻璃生产线下的运动控制器与上位机的数据通信接口,设置并对接口输入、输出变量进行复位、置位操作,解决了当前数据通信方式如Socket,无法实现的可实现断线重连与断线缓存续发等功能。

本发明根据接口输入变量PocketNum的值,决定本次读取几次,全部读取完成,保证数据的一致性后,再进行下次读取,实现了缓存信息的同步。

本发明在等到发送与接收数据标识符反馈Feedback确认应答返回之前,必须在缓冲区中保留已发送的数据。如果按期收到Feedback应答后,此时数据就可以从缓存区清除,同样接收方接收数据后也放在这个缓存区中,保证了数据传输稳定性,防止数据丢失。

本发明增强了通过解析设置并解析数据寄存器的数据,设置并利用发送与接收数据标识符反馈进行上位机与下位机的通信,实现的工厂控制功能的稳定性,节省了开发与调试人员的时间和精力,解决了玻璃产线数据丢失、数据安全度低的问题,提升了玻璃产品的质量监测和生产的灵活性。

本发明在程序中创建传输线程Cycle,线程中利用特定语句控制循环操作,并用try catch捕捉其异常,若出现异常,则尝试销毁线程并重新建立新线程继续传输,利用lock锁将线程进行保护,防止在线程读取上位机内部变量时,同时调用内部变量导致数据异常。保证了上位机与下位机直接传输的数据质量。

本发明解决了现有技术中的上下位机数据传输操作存在操作复杂、传输稳定性较差以及传输准确性较低的技术问题。

附图说明

图1为本发明实施例1的基于半导体传输协议的数据缓存防错方法基本步骤示意图;

图2为本发明实施例1的建立运动控制器通信接口的具体步骤示意图;

图3为本发明实施例1的建立放错数据缓存序列的具体步骤示意图;

图4为本发明实施例1的建立上位机端通信接口的具体步骤示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例1

如图1所示,本发明提供的基于半导体传输协议的数据缓存防错方法,包括以下基本步骤:

S1、建立运动控制器端通信接口;

如图2所示,在本实施例中,建立运动控制器通信接口的步骤S1,还包括以下具体步骤:

S11、根据实际情况决定是否启用该功能,若启用,则通过上升沿给予接口变量Enable进行与上位机的连接,若需要关闭,则通过下降沿指令给予接口输入变量Enable进行与上位机的主动断开连接;在本实施例中,断开连接的方式可采用例如:手动断开;

S12、根据数据更新情况决定是否发送内容,若发送,则接口将接口输入变量Send置位,若不发送,则接口将接口输入变量Send复位,同时将需要发送的数据包放入接口输入变量SendBuffer内部;

在本实施例中,将接口输入变量Send复位的方式可采用例如:自动复位;

S13、自动检测发送数据中的长度,赋值于接口输入变量SendDataLength;在本实施例中,最大长度支持到4294967295;

S14、当接收到数据时,先根据数据缓存的长度,判定接收信息分包数量,并定义为:接口输入变量PocketNum,将本次读取的数据长度赋值于接口输入变量ReadDataLength;

在本实施例中,为了实现缓存信息同步,根据接口输入变量PocketNum的值,决定本次读取几次,全部读取完成,保证数据的一致性后,再进行下次读取;

S15、当数据

发送时,接口输出变量Sending被置位,发送结束,接口输出变量Sending复位,供程序内部调用;

S16、当有数据需要接受时,接口输入变量dataReceiving被置位,发送结束,接口输出变量dataReceiving复位,供程序内部调用;

在本实施例中,数据被存储在接口输出变量ReceiveBuffer中;

S17、当需要在线更改数据传输端口时,在线更改接口输入变量PartnerPort;

在本实施例中,接口输入变量PartnerIP接口通过自动重启接口输入变量Enable,并自动复位接口输入变量Send实现了自动切换目标端口或地址。

S18、端口开放本地端口的在线更改;

在本实施例中,在线更改操作可通过例如:设定或在线更改"接口输入变量LocalPort"实现。

S2、建立运动控制器数据格式;

在本实施例中,按照IEC61131-3编程标准,构建数据寄存器,偏移量以两个字节为基础,则可使用的数据结构为Int(Short),DInt(Int),Real(Float),String。数据结存器构建完毕后,利用循环扫描实时传递给接口输入变量SendBuffer,在本实施例中,数据寄存器的总长度记为M。

S3、建立防错数据缓存序列;

如图3所示,在本实施例中,建立放错数据缓存序列的步骤S3,还包括以下具体步骤:

S31、建立发送与接收数据标识符反馈Feedback;

在本实施例中,Feedback设定为无符号整型16位,即每次发送内容另外添加标识符于报文头;

S32、将发送的内容分为4个部分,发送在等到Feedback确认应答返回之前,必须在缓冲区中保留已发送的数据;

在本实施例中,发送的内容包括但不限于:已发送并已得到Feedback确认收到的数据;已发送但未收到的Feedback确认收到的数据;未发送但数据内容在所建立缓存区大小之内的数据;未发送但数据内容已超出所建立缓存区范围的数据;

在本实施例中,如果按期收到Feedback应答后,此时数据就可以从缓存区清除,同样接收方接收数据后也是放在这个缓存区中的。

S4、建立上位机端通信接口;

如图4所示,在本实施例中,建立上位机端通信接口的步骤S4,还包括以下具体步骤:

S41、在程序中创建传输线程Cycle,线程中利用While语句控制其循环,并用trycatch捕捉其异常,若出现异常,则尝试销毁线程并重新建立新线程继续传输;

S42、在Cycle中定义远程地址与端口记作RemoteIP;

在本实施例中,RemotePort,在线程循环起始时,允许更改其地址或端口;

S43、在Cycle中向运动控制器的数据寄存器中申请读取M个字节长度的数据;

在本实施例中,起始偏移量为0;

S44、按照数据格式依次解析数据寄存器中的数据;

在本实施例中对应读取方式为:

Int.FromByteArray(Buffer.Skip(shift).Take(length).ToArray());

DInt.FromByteArray(Buffer.Skip(shift).Take(length).ToArray());

String.FromByteArray(Buffer.Skip(shift).Take(length).ToArray());

Real.FromByteArray(Buffer.Skip(shift).Take(length).ToArray());

其中,Int对应16位整型,DInt对应32位整型,String对应字符串,Real对应32位浮点数,shift对应数据寄存器中的偏移量,length对应数据寄存器中的长度。

S45、在解析完成后,向运动控制器端发送反馈标识符Flag,以整型定义,每发送一次Flag自加1,运动控制器端收到反馈后用来与上次的Flag相比较,如若不同,说明数据已接收完成,可进行下次发送;

S46、在数据发送时,则需要在数据缓存区中先进行一次性提取数据,并将数据进行保存,记为DBbytes;

在本实施例中,在特定数据需要发送或更改时,对DBbytes相应的字节进行单独修改,后对DBbytes进行封装整体发送;

S47、在进行Cycle循环中,利用lock锁将线程进行保护,防止在线程读取上位机内部变量时,同时调用内部变量导致数据异常,在调用和读取结束后,释放lock锁。

在本实施例中,采用的上位机与下位机通信系统最终达到了数据缓存并防错的目的,其中将采用安装windows server 2022版本的机架式服务器(搭载至强银牌4309Y,32GB内存DDR4-2666,800GB硬盘)作为上位机平台以及数据处理缓存中心;

在本实施例中,下位机可采用例如:西门子PLC1500系列,通过profinet总线形式对驱动设备进行参数采集,在本实施例中,采集的参数包括但不限于:电机温度、电机电流、转矩、功率、转速以及传感器参数,根据参见的参数,推算出的二阶参数,在本实施例中,二阶参数包括但不限于:当前玻璃X轴位置、Y轴位置、旋转角度、传输速度以及产品加热温度,前述二阶参数可被定义为变量参数,并定义变量参数的部分作为报警信息,生成报警ID,上传至上位机;

在本实施例中,设置设备常数,常数值是初始化定义后不会改变的,仅在系统初始化过程中,可更改;在本实施例中,设备常数包括但不限于:辊道长度、电机额定电压、电流、产品尺寸、长度、宽度以及厚度;

在本实施例中,下位机会生成相应的事件,来对产线的信息对上位机进行汇报,与之相对应的则是上位机会发送指令,来对下位机进行远程控制。

综上,本发明通过建立运动控制器的通信接口、运动控制器数据格式建立、建立防错数据缓存序列、建立上位机端通信接口。进行上位机与下位机之间的数据传输,代替了现有的上下位机间通讯方式利用的Socket套接字、TCP/IP协议的通讯方式,实现了断线重连功能;保证数据传输的安全性与准确性。

本发明通过建立稳定,灵活容易调试的玻璃生产线下的运动控制器与上位机的数据通信接口,设置并对接口输入、输出变量进行复位、置位操作,解决了当前数据通信方式如Socket,无法实现的可实现断线重连与断线缓存续发等功能。

本发明根据接口输入变量PocketNum的值,决定本次读取几次,全部读取完成,保证数据的一致性后,再进行下次读取,实现了缓存信息的同步。

本发明在等到发送与接收数据标识符反馈Feedback确认应答返回之前,必须在缓冲区中保留已发送的数据。如果按期收到Feedback应答后,此时数据就可以从缓存区清除,同样接收方接收数据后也放在这个缓存区中,保证了数据传输稳定性,防止数据丢失。

本发明增强了通过解析设置并解析数据寄存器的数据,设置并利用发送与接收数据标识符反馈进行上位机与下位机的通信,实现的工厂控制功能的稳定性,节省了开发与调试人员的时间和精力,解决了玻璃产线数据丢失、数据安全度低的问题,提升了玻璃产品的质量监测和生产的灵活性。

本发明在程序中创建传输线程Cycle,线程中利用特定语句控制循环操作,并用try catch捕捉其异常,若出现异常,则尝试销毁线程并重新建立新线程继续传输,利用lock锁将线程进行保护,防止在线程读取上位机内部变量时,同时调用内部变量导致数据异常。保证了上位机与下位机直接传输的数据质量。

本发明解决了现有技术中的上下位机数据传输操作存在操作复杂、传输稳定性较差以及传输准确性较低的技术问题。

以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

技术分类

06120116561941