一种焊接电源与计算机之间进行数据通信的方法

文档序号:7894035阅读:224来源:国知局
专利名称:一种焊接电源与计算机之间进行数据通信的方法
技术领域
本发明涉及一种焊接电源与计算机之间进行数据通信的方法,尤其涉及具有较高传送可靠性的焊接电源与计算机数据通信方法,属于焊接控制技术领域。
背景技术
随着焊接电源数字化控制与互联网通信技术的发展,出现了具有联网功能的焊接电源。这种焊接电源通过网络通信将其获得的焊接參数上传至计算机。在此基础上,又出现了焊接电源自动将焊接參数保存至自身存储器的方法。焊接參数以数据文件的方式保存至焊接电源内部的Flash、SD卡等存储介质。在焊接电源使用过程中,焊接參数按时间顺序形成数据文件。具有联网功能的焊接电源与计算机建立网络通信后,就可以将其存储器中的数据文件上传给计算机。焊接电源在焊接过程中会自动记录下焊接数据(实时数据),并实时上传到与之建立了通信连接的计算机中。然而,在野外焊接等特殊情况下,焊接电源产生的焊接数据可能无法实时上传到计算机,就会以文件数据(文件包)的形式保存到焊接电源内的存储器中。在焊接电源连接到计算机后,焊接电源就需要将这些记录了联网前的焊接数据的文件数据(历史文件)上传到计算机中。在上传这些历史文件的同时,这些焊接电源还可能处于焊接过程中,会实时产生包含实时焊接数据的当前文件。当前文件是焊接电源在一定期间内的实时焊接数据形成的文件数据。因此,在焊接电源端产生了同时上传,包含历史文件和当前文件的文件数据以及实时焊接数据这两类数据的需求。在计算机端,需要在优先保证实时处理实时焊接数据的前提下,快速处理文件数据。然而,与计算机连接的上百台的焊接电源如果都在工作,就会产生大量的实时焊接数据,占用计算机的大部分资源。如果其中还有几十台的焊接电源要请求上传文件数据,则计算机只能用余下的少量的资源来处理这些文件数据,容易造成网络抑塞。此外,计算机会同时连接多台焊接电源,从几台到上百台。在焊机联网规模较小的情况下,前述现有数据文件存储与上传方法尚能正常运行。在焊机联网规模较大,例如上百台的情况下,如果由于长时间没有与计算机通信,每台焊接电源的存储器内会存储有大量的历史文件,这些大量的历史文件通过局域网上传至计算机,会导致焊接电源与计算机之间的局域网网络阻塞。同时,受限于计算机运算性能,部分焊接电源的文件无法正常接收与处理。为此需要一种能够提高文件传送的可靠性的焊接电源与计算机之间的数据通信方法。

发明内容
本发明g在克服上述现有技术的不足,提供ー种能够提高文件传送可靠性的焊接电源与计算机数据通信方法。
本发明的也提供实现上述焊接电源与计算机数据通信方法的焊接系统和焊接管理用计算机。本发明所采用的技术方案如下ー种焊接电源与计算机数据通信方法,该计算机与多台焊接电源通过网络连接,该焊接电源内存储有包含焊接数据的文件,其特征在于步骤I :该焊接电源通过上传请求向该计算机请求上传文件;步骤2 :该计算机根据所述上传请求,进行任务注册,在任务列表中产生任务记录,该任务记录包含该焊接电源的ID ;步骤3 :该计算机从任务列表中选择要执行的当前任务,根据该当前任务记录中 的该焊接电源的ID,向该焊接电源发出允许上传的回复;步骤4 :该焊接电源接收到该回复后,向所述计算机上传文件;步骤5 :该计算机接收到文件,并判断是否上传完毕,如果上传完毕就进入步骤6 ;如果未上传完毕就返回等待接收文件;步骤6 :注销该当前任务记录。本发明通过任务列表,在计算机\数据库端将来自大量焊接电源的文件上传请求进行排队,逐批处理,避免了由于大量文件同时上传而造成的网络阻塞,在提高传送可靠性的同时,也可以保证各个焊接电源的文件都能高质量地被传送到计算机\数据库端,不会出现丢包等问题。而且,因为避免了网络阻塞,也就減少了网络恢复带来的硬件资源成本、时间成本和人力成本。


图I是本发明的焊接系统结构示意图;图2是本发明的任务状态转移图;图3是本发明第一实施例的文件传送整体流程图;图4是本发明第一实施例的任务注册流程图;图5是本发明第一实施例的任务周期删除流程图;图6是本发明第一实施例的正常上传的情况的任务列表示意图;图7是本发明第一实施例的上传请求未被响应的情况的任务列表示意图;图8是本发明第一实施例的正常上传过程中新增请求的情况的任务列表示意图;图9是本发明第一实施例的上传过程出现异常的情况的任务列表示意图;图10是本发明第二实施例的文件传送整体流程图;图11是本发明第三实施例的任务注册流程图;图12是本发明第三实施例的正常上传的情况的任务列表示意图;图13是本发明第四实施例的任务注册流程图;图14是本发明第四实施例的同一 ID下已存在记录的情况的任务列表示意图。
具体实施例方式如图I所示,本发明应用于有多台,例如上百台焊接电源50连接到计算机60和数据库70的焊接系统。每台焊接电源50与计算机60以及计算机60与数据库70之间可以进行数据通信。在本实施例中,计算机60具有用于存储文件的序列号的序列号存储器2a、用于存储文件的文件存储器2b以及用于存储所述任务列表的任务列表存储器2c。每台焊接电源50在接通电源后,就与计算机60之间建立通信连接,例如TCP连接。无论是焊接电源50在焊接过程中产生的实时数据还是历史文件,都是通过同一个TCP连接进行数据的发送。计算机60通过数据包的包头不同来识别出是实时数据还是历史文件。对于实时数据则实时处理,对于历史文件则按照后文所述步骤,在任务列表中排队处理。历史文件是以历史文件或当前文件这样的文件的形式进行传送;实时数据则是以数据的形式进行传送。焊接电源50与计算机60之间进行传送时,采用3种包头。第一种是焊接电源50向计算机60请求上传文件时使用的上传请求中包含的包头(上传请求包头)。第二种是实时数据上传包头。焊接电源50毎秒钟产生新的实时数据时,会及时向计算机60上传该实时数据。在上传实时数据时就会使用实用上传包头。第三种是文件上传包头。焊接电源50每3分钟将在此期间内产生的实时数据,以文件包(当前文件)的形式上传到计算机60。如果当前文件上传受限,例如是未联网情况下的焊接,或者是网络突然中断,这些当前文件就会作为历史文件存储在焊接电源50中,在网络正常时才由焊接电源50重新上传。上传文件包,无论是当前文件还是历史文件,都使用文件上传包头。通过区分这三种文件包的包头,计算机60就能获知焊接电源50的指令类型,是上传实时数据,还是请求上传,或者是上传文件。相应的,计算机60进行实时数据的实时处理,或者任务注册处理,或者接收文件的处理。焊接电源的焊接数据文件按时间形成数据文件格式,例如每三分钟(文件产生周期)生成ー个XXX. dat格式的数据文件(文件包),存储在焊机内部的存储器中,例如SD卡或Flash芯片。无论焊接电源与计算机是否联网通信,数据文件均按时间依次生成,每个文件的文件名为其序列号,例如十六进制格式的00001A. dat。数据库70采用Oracle、SQL Server、MySQL等常用数据库软件。计算机60在开始运行数据接收软件时在数据库中创建文件任务列表,以数据表的形式存储在数据库中。任务列表字段包括设备ID号、文件数量、任务注册时间、任务执行时间。根据需要,任务列表的字段也可以包括任务状态,其作用在后文说明。如果计算机60的资源足够,本发明也可以不用単独的数据库,而由计算机60取代数据库的功能。设备ID号是分配给各个焊接电源的ID,每个焊接电源分配有唯一的ID。文件数量表示该焊接电源中等待上传的文件个数,其值可以是焊接电源的当前最新文件包(简称当前文件)的序列号,也可以是该焊接电源的当前文件的序列号与第一个未上传文件的序列号之差。在本实施例中采用的是第一种方案。由干“文件数量”的值是当前文件的序列号(SRlast),且计算机60端每次都保存接收到的焊接电源的当前文件的序列号(SR),这样计算机60能够自动从其已保存的文件(序列号为SR)之后的文件(序列号 为SR+1)开始接收新文件,直到接收到当前文件(序列号为SRlast)。任务注册时间是在计算机60收到焊接电源50的请求发送文件数据的请求时,进行任务注册的时间。任务执行时间是最近一次计算机60收到并存储来自焊接电源50的文件包的时间。在计算机60收到来自焊接电源50的上传请求时,任务执行时间的赋值与注册时间的值相等。之后,计算机60每收到一个文件包就更新一次任务执行时间,并保持注册时间不变。在本实施例中,如果任务注册时间与任务执行时间相等,则说明该任务未被响应;如果执行时间大于注册时间,则说明该任务正在处理中。当然,如果任务列表中设置有“任务状态”字段,则可以根据该字段的值来表明该任务处于未被响应、正在处理等状态。当然,如果任务列表中有“任务状态”字段,则可以利用“任务状态”的值来表明当前任务的处理状态,是未被响应,还是正在处理等状态。焊接电源任务状态表示焊接电源上传文件过程所处的状态。如图2所示,焊接电源任务状态分为三类(此处定义为A、B、C类)。A类为焊接电源50上传任务申请后暂未获得许可的状态(未被响应状态),B类为计算机60已经向焊接电源50回复“允许发送”但焊接电源50暂未上传数据文件的状态,C类为焊接电源50收到许可后正在上传数据文件、的状态(正在处理)。每个任务的生命周期将遵从A类-B类-C类的变化趋势。在焊接电源上传其所有数据文件后,C类任务状态回归到等待状态。<第一实施例>图3表示了本发明第一实施例的整体流程图。第一实施例的焊接电源与计算机之间进行数据通信的方法包括以下步骤。步骤I :焊接电源请求发送文件数据(任务请求)。在本实施中,只要焊接电源50连接到网络,就周期性地向计算机60请求上传文件数据(文件包)。在本实施例中将请求周期设置为与焊接电源产生文件的文件产生周期相同,都是3分钟。可以理解,也可以根据实际情况将请求周期设置为文件产生周期的倍长。如果在3分钟内,收到了计算机60的允许上传回复,则焊接电源50开始上传;如果在3分钟内没有收到计算机60的响应,则焊接电源50就一直等待,直到3分钟届满重新发出上传请求。根据实际需要,也可以不是周期性地发出上传请求,而是在满足事先设定的触发条件的情况下发出上传请求。例如待上传的文件大小或者数量达到阈值时才请求上传;或者是按下某ー按键时就请求上传;或者是检测到网络连接建立时就请求上传(适于野外焊接机)。例如,焊接电源50在向计算机60请求上传文件数据之前,先判断是否需要请求发送文件数据。如果焊接电源50的存储器中的文件数据大小达到了阈值则发出上传请求;如果没有则不发送上传请求。也可以是判断焊接电源50的存储器中的当前文件的序列号是否是已请求上传过的文件序列号,如果是则不发送上传请求;如果不是则发送上传请求。焊接电源50在请求发送文件数据时,上传请求指令中包括设备ID号和文件数量。文件数量的值是请求当时的最新文件(当前文件)的序列号。如果焊接电源50在3分钟内未收到来自计算机60的响应,则在3分钟届满时重新请求。重新进行上传请求时,焊接电源50根据当前文件的序列号来重新计算“文件数量”的值,以包含在此3分钟内新增的文件。換言之,重新进行上传请求的上传请求指令中包含的“文件数量”的值比前一上传请求的“文件数量”的值增加I。如果焊接电源50在3分钟内收到了来自计算机60的响应,则进行文件上传。如果在上传途中有当前文件产生,则焊接电源产生一个新的上传请求。步骤2 :计算机进行任务注册(任务注册)。计算机60收到焊接电源50的上传请求后,在数据库的任务列表中产生一条任务记录。在该任务记录中,任务注册时间为计算机60收到该上传请求的时间;任务执行时间与注册时间相同。如果有“任务状态”字段,则任务状态设置为A状态(未被响应)。后文将结合图4进行详细说明。步骤3 :计算机选定任务,并允许上传(选定上传焊接电源)。计算机60在任务列表中选定ー批焊接电源ID不同的任务记录后,向该任务记录对应的焊接电源50发出允许上传的回复,在回复中指示从什么序列号开始上传。具体而言,计算机60在任务列表中选定ー批(根据计算机60的计算能力,在本实施例中设定为5条)任务记录,计算机60根据选定的任务记录中的焊接电源ID,查询序列号存储器,可以获知已接收到的对应焊接电源50的文件包序列号(序列号为SR)。在向该焊接电源50回复的指示中,就通知焊接电源50从下ー个序列号(序列号为SR+1)开始上传。
计算机60可以根据多种原则来选定当前任务。例如,可以根据每条记录的注册时间来选定,先注册先处理。当然也可以设定为,注册时间在后的优先处理,即后注册先处理。也可以通过在任务列表中设定特定的字段,根据该字段的值来选定当前任务。例如,设定“优先级”字段,焊接电源50在发送需要优先处理的文件之前,在上传请求中就指定优先级为高;计算机60在收到优先级高的上传请求吋,优先选定为当前任务进行处理。这种方案适用于有特殊需求的焊接电源,例如长期持续工作的未联网焊接电源,只有短暂的时间用于上传文件,所以必须优先处理来自这些焊接电源的文件。也可以根据焊接电源的IP地址或者序号来设定,例如来自特定IP地址或者特定焊接电源序号的任务记录优先处理,这样可以对特定的焊接电源的文件进行优先处理,以满足这些特定焊接电源的特殊需求。也可以根据需要上传的文件大小(上传请求中包含的文件数量的值,与计算机60的序列号存储器2a中存储的与该焊接电源对应的序列号之差值)来选择。文件越大,越优先处理。这样可以保证文件包积压过多的焊接电源得到优先处理。步骤4 :焊接电源上传文件(文件上传)。步骤5 :计算机判断选定任务是否上传完毕(上传完毕判断)。当计算机60判断从焊接电源50接收到的文件包的序列号,与其任务列表存储器2c中存储的当前任务记录中的“文件数量”字段的值相等的时候,计算机60就会判断出任务上传完毕,进入步骤6。反之,如果接收到的文件包的序列号与当前任务记录的“文件数量”字段的值不等,则判断为未上传完毕,正在处理中。此时,计算机60通知焊接电源50继续上传文件包。根据焊接电源的计算能力,也可以设计为由焊接电源根据其存储的当前文件序列号和上传的文件序列号是否相等,由此来判断文件包是否上传完毕。步骤6 :计算机注销已上传完毕的当前任务记录(注销任务)。当计算机60判断出当前任务的文件包已上传完毕吋,就会将该当前任务记录从任务列表中删除。通过步骤I到步骤6,计算机60与焊接电源50之间实现了无拥塞的文件上传,提高了文件传送的速度和可靠性。在步骤6注销当前任务记录之后,还可以增加循环步骤判断任务列表中是否还有任务记录,如果任务列表中还有待执行的任务记录,则返回步骤3,从任务列表中选择需要执行的当前任务记录;如果任务列表中没有待执行的任务,则结束。这样,计算机60就会逐一执行任务列表中的所有任务记录。下面结合图4任务注册流程图进行说明。计算机60在收到焊接电源50的上传请求后,按以下步骤进行任务注册步骤21 :查询是否已存在该焊接电源的任务记录根据在焊接电源50的上传请求指令中的设备ID号,计算机60在任务列表中查询是否已有来自该焊接电源50的记录(已存记录),即设备ID字段的值为焊接电源50的ID 的已存记录。如果没有具有相同设备ID号的任务记录,则说明计算机60未收到过该焊接电源50的上传请求,这是ー个新上传请求,进入步骤22。如果在任务列表中已经存在具有相同设备ID号的任务记录,则认为已接收过该焊接电源50的上传请求,进入步骤23。步骤22 :将新上传请求添加到任务列表中对于计算机60未收到过的上传请求,计算机60会将其添加到任务列表。计算机60对该任务记录中的“注册时间”赋值为当前时间;对“执行时间”赋值为当前时间;对“任务状态”赋值A状态;根据来自焊接电源50的上传请求中的“文件数量”的值,对“文件数量”赋值。这样就増加了一条新任务记录。步骤23 :判断已存记录是否已被响应在步骤21中,根据上传请求中的设备ID查询到已存记录的情况下,计算机60在步骤23中判断该已存记录的注册时间与执行时间是否相等。如果注册时间与执行时间相等,则说明该已存记录,虽然该任务已被注册,但是仍未被计算机60响应,一直处于等待计算机60处理的状态,进入步骤24。当然,如果任务列表中设置了 “任务状态”,则根据“任务状态”的值是否是A,就可以判断该任务是否已被响应。如果注册时间与执行时间不相等,则说明该已存记录正在处理中(对应焊接电源状态B或C)中,进入步骤25。步骤24 :更新等待处理的已存记录的内容针对在步骤23中判断为未被响应的已存记录,计算机60根据当前收到的具有相同ID的上传请求的内容,更新已存记录的内容,而不是为当前的上传请求产生新记录,这样可以避免产生包含重复内容的多条任务记录。更新的内容具体是将已存记录中的“文件数量”的值更新为当前上传请求中的“文件数量”的值;将已存记录中的“注册时间”和“执行时间”分别更新为当前时间。更新后的已存记录就在任务列表中排队,等待计算机60的处理。如果在一定时间内(本实施例中为6分钟,两个请求周期的长度)一直未处理,则会被系统自动删除。然后,下一个请求周期到来吋,焊接电源50又会重新发出上传请求,计算机60进入步骤21。然而,本领域普通技术人员可以理解,“更新等待处理的已存记录的内容”的步骤,也可以是重新生成一条记录,在一个删除周期内同时保持两条记录,直到系统时间与第一条已存记录中的执行时间之间的差值达到10分钟(设定的删除周期),才将第一条已存记录从任务列表中删除。步骤25 :判断上传是否异常在步骤23中判断已存记录正在处理中,则进ー步根据当前时间和执行时间,来判断该已存记录的任务处理是否出现上传异常。
如果系统的当前时间与当前任务记录的执行时间之差,大于或等于正常执行时间,则说明该项任务的执行出现异常,不再需要等待,进入步骤26;如果小于正常执行时间,则说明该项任务处于正常传送中,进入步骤27。该正常执行时间是根据计算机60的运行时间来设定的,正常执行时间大于或等于计算机60处理一次上传的所有文件包所需的时间就可以。在本实施例中设定为5秒。步骤26 :删除已存记录,转入步骤27既然在步骤25 中已判断出已存记录的任务处理出现异常,可能已经中断,成为“死任务”,那么在步骤26中就直接删除该已存记录。这样可以避免在任务列表中保留“死任务”。步骤27:建立新任务记录既然在步骤25中已判断出已存记录的任务处理正常,那么在步骤27中就根据步骤21中接收到的当前上传请求中的“文件数量”(最新文件序列号)来生成新的任务记录。针对在步骤25中已判断出已存记录出现上传异常的情况,根据步骤21中接收到的当前上传请求,计算机60在任务列表中为该焊接电源50生成新的任务记录。这样,虽然前述已存记录中由于异常而未上传的文件,可以通过这条新的任务记录来上传。因为计算机60保存有已上传的文件的序列号,它可以根据步骤21中的当前上传请求中的“文件数量”(最新文件序列号)来自动获知哪些文件需要上传。并不因为任务异常而导致文件无法上传。因为在已存记录的任务正常处理完毕后,计算机60会保存已上传的文件的序列号。它在执行步骤27中生成的新的任务记录时,会自动从已上传过的文件之后的文件来接收新文件,不会造成重复上传。上述说明中利用步骤21 27实现了任务注册。但是可以理解,在不考虑上传出现异常的情况下,步骤25到步骤26是可以省略的步骤,可以在步骤23中,判断所述焊接电源的任务记录是否被响应,如果没有被响应,则更新所述焊接电源的任务记录的内容(參考步骤24);如果已被响应,则建立所述焊接电源的新任务记录(參考步骤27)。这样,在步骤21 23中就完成了任务注册。上面具体介绍了任务注册的流程。计算机60还可以増加周期删除的步骤,以避免这样的情况在出现任务执行异常的时候,由于焊接电源突然故障而长期不重新发送新的上传请求(由于没有新的上传请求,计算机也不会进入到步骤21 步骤26进行删除),导致该项异常任务长期占用资源。同时,也可以避免任务列表过长。周期删除的步骤如图5所示。计算机60定期删除超期任务记录。删除周期设定为比焊接电源文件上传的请求周期更长的周期,在本实施例中设定为10分钟。在每个删除周期内,计算机60执行一次任务注销的操作。计算机60读取任务列表,比较系统当前时间与每条记录的执行时间的差值是否大于删除周期。如果大于或等于删除周期,则将该记录删除;如果小于删除周期,则保留该记录。下面结合图6到图9,具体说明每种情况下任务列表的内容。在图6到图9中,将在焊接电源50开始正常联网的时刻之前,焊接电源50已存储的未上传的文件,表示为历史文件;将正常联网时刻之后焊接过程中不断产生的当前文件,表示为“新文件”,以区别于正常联网之前的历史文件。严格意义上说,新文件中,除了最后ー个文件是当前文件之外,其余的当前文件也属于历史文件。图6到图9这样表示是为了形象地显示出,在联网之前的文件,如何与不断产生的当前文件一起被传送到计算机60中。可以理解,也可以将图6到图9中的最后ー个文件作为当前文件,之前的文件都作为历史文件。图6表示了焊接电源50正常传送文件的情況。在此情况下,焊接电源50会在第I请求周期的起始时刻(当然,也可以是在结束时刻),向计算机60发出上传请求(在图6中表示为①请求上传101)。此上传请求包含最新文件序列号101,其中假设I到100是历史文件,101是表示在上一个请求周期(即,文件产生周期,时长为3分钟)中产生的包含实时数据的当前文件。计算机60端收到焊接电源50的请求(101)后,在任务列表中产生新的记录,即在图6中①所在的那行记录(以下称为记录①)。记录①的第一字段值为焊接电源50的 ID(在本实施例中为I);文件数量字段值为当前文件的序列号“ 101”,注册时间字段值为当前系统时间“T10”,执行时间字段值同样为“T10”(即,注册时间与执行时间相同,表示此记录未被响应)。然后,计算机60向焊接电源50发送允许上传的回复(②允许上传),告诉焊接电源50从序列号为I的文件包开始上传。焊接电源50接收到允许上传的回复后,向计算机60上传文件。在此假设一次只能上传40个文件包(这是根据焊接电源和计算机的硬件配置和运行能力决定的)。因此,焊接电源50向计算机60上传序列号为O 40的文件包(图6中表示为③上传I 40)。计算机60收到I 40文件包后,更新记录①中的执行时间为“T11”,得到记录③。然后,焊接电源50再上传41 80的文件包(图6中表示为④上传41 80),计算机60相应更新记录③中的执行时间为“T12”,得到记录④。最后焊接电源50上传余下的文件包,序列号为81 101的文件包(图6中表示为⑤上传81 101)。计算机60相应更新记录④中的执行时间为“T13”,到得记录⑤。此时,计算机60检测到接收到的文件包中,包含序列号为101的文件包,与任务记录中的“文件数量”的值相等,则注销该任务101。等到第2请求周期(第二个3分钟)开始,焊接电源50发送请求,请求上传序列号为102的文件包。类似的,计算机60会生成新记录(图6中表示为记录⑥),并回复允许上传文件包102。焊接电源50接收到回复后,上传文件包102。计算机60接收到文件包102后,修改记录⑥中的执行时间为当前系统时间“T14”,得到记录⑧。之后,计算机60根据记录⑥中的文件数量的值,以及接收到的文件包102的序列号,判断出文件数据上传完毕,于是注销任务102。当然,也可以在接收到文件包102后,直接注销任务102,而不需要更新记录⑥得到记录⑧这个步骤。然后,进入第3请求周期,焊接电源50和计算机60进行类似处理。下面介绍说明重新请求的情況。在图7中,焊接电源50发送请求(201),计算机60产生记录①。在整个第I请求周期内,计算机60并未向焊接电源50发送允许上传的回复。直到进入第2请求周期,焊接电源50产生当前文件202,与文件201 —起作为新文件,等待发送。焊接电源50在第2请求周期发出上传请求202。此时,计算机60在接收到上传请求202之后,查询到任务列表中已存在来自同一焊接电源50 (ID为I)的任务记录①(已存记录),并判断出记录①中的注册■时间和执行时间相等(这表示该项任务未被响应)。于是,计算机60更新记录①的内容,将文件数量更新为上传请求202中包含的当前文件序列号202,将注册时间和执行时间分别更新为当前系统时间T20P,成为记录②。然后,计算机60发出允许上传151的回复。焊接电源50接收到回复后,开始上传序列号为151 190文件包。计算机60收到151 190文件包后,更新记录②中的执行时间,成为记录④。然后,焊接电源50发送序列号为191 202的文件包,计算机60收到后,更新记录④的执行时间,成为记录⑤。最后注销任务202。下面结合图8说明正常上传过程中新增请求的情況。在第I请求周期中,焊接电源50正常上传了文件包251 290,计算机60生成了 记录③。此时,由于网络断开、断电或者焊接电源50本身故障等特殊原因,上传中止了。或者,由于焊接电源50上传文件包251 290后就进入了第2请求周期,随即产生了新文件中的当前文件302,需要请求上传(当前文件的序列号302)。计算机60收到上传请求302后,在任务列表中查询到已存在相同ID的记录,即任务301 (记录③)。进ー步判断出任务301的注册时间和执行时间不一致,并且两者之差值小于正常执行时间5秒(本实施例中设定的正常处理一条任务的最大处理时间);属于正在处理的任务。此时,计算机60根据上传请求302,新增一条记录302 (注册时间和执行时间是当前系统时间T30P),而不是更新任务记录301。换言之,如图8中的记录④所示,任务列表中此时有两条ID为I的任务记录,分别是任务记录301和任务记录302。于是,通过查询序列号存储器2a获知已收到序列号为290的文件包,在运行资源允许的情况下,计算机60就向焊接电源50发出允许上传291的回复。焊接电源50收到回复后,从291开始上传。但是,此时是继续执行任务记录301,所以焊接电源50只上传到序列号为301为止的文件包,而不上传序列号为302的文件包。计算机60收到序列号为301的文件包之后,判断出任务记录301上传完毕,就注销任务记录301。然后,计算机60在任务列表中重新选择当前任务。如果选择到同一 ID(ID为I)的任务302,则向焊接电源50发出允许上传302的回复。焊接电源50在上传序列号为301的文件包之后,如果收到计算机60的允许上传302的回复,则开始上传序列号为302的文件包。计算机60接收到文件包302之后,注销任务 302。这样ID为I的任务处理完毕,计算机60重新从任务列表中选择当前任务进行处理。下面结合图9说明文件包传送出现异常情况下的处理。
在第I请求周期,焊接电源50与计算机60之间进行正常传送,但是只是上传了一部分文件包。即,请求上传序列号为301的文件包,实际只上传到序列号为290的文件包。此时,出现网络异常,焊接电源50在第2请求周期请求上传文件包302。计算机60按照图8所述流程,新增任务记录302。之后,在整个第2请求周期焊接电源50未接收到计算机60的回复。进入第3请求周期后,焊接电源50产生了当前文件303,井向计算机60请求上传
303。计算机60仍然只是在任务列表中新增任务记录303,未向焊接电源50发出回复。
这时删除周期届满,计算机60对任务列表中所有记录进行扫描,找出满足删除条件的记录,并删除这些记录。本实施例中的删除条件是,当前系统时间与记录中的执行时间的值的差值大于删除周期。本实施例中,设定删除周期是大于等于ニ个请求周期,即大于等于6分钟,当然也可以根据实际情况设定为不同的值,例如10分钟,或者9分钟。因此,在图9中,任务记录301的执行时间一直保持为T31,当前系统时间与T31的差值已达到删除周期6分钟,因 此,计算机60删除异常任务301。任务302和任务303不满足删除条件,则保留。进入第4请求周期吋,焊接电源50产生当前文件304,请向计算机60请求上传
304。计算机60在任务列表中新增任务记录304(在图9中用记录⑥表示)。由于此时网络已恢复正常,计算机60从任务列表中已存记录302、303和304中选择开始处理的当前任务。在本实施例中,计算机60根据注册时间的先后,从任务列表的所有任务中选择任务302为当前任务。计算机60向焊接电源50发出允许上传291的回复。于是,焊接电源50开始正常上传291 302。计算机60收到序列号为302的文件包后,判断出任务302完成,注销任务302。然后再从任务列表的所有任务中选择新的任务,逐渐完成所有任务,包括任务303和304,并注销。在第一实施例,计算机60的任务列表中,同一 ID(同一焊接电源)可能存在多条任务记录,计算机60将这些同一 ID的任务记录同其他ID的任务记录混在一起,按照各条任务记录的注册时间先后或优先级等排序并选定当前任务,逐一执行。由于同一 ID的各条任务记录存在包含关系,即注册在后的任务记录中的文件数量的值,一定不小于注册在前的任务记录的文件数量的值。如果采用注册时间先后来排队的话,计算机60会优先执行注册在前的任务记录,即文件数量的值较小的任务记录;然后计算机60才会执行注册在后的文件数量值较大的任务记录。如果计算机60优先执行同一ID的注册在后的任务记录,就可以一次性完成在注册在后的任务记录之前的同一 ID的所有任务记录。可见,在第一实施例中由于选择当前任务的方式不同,可能会造成原本可以一次执行完毕的任务,被分成两次来执行,从而减低了执行效率。〈第二实施例〉为简明起见,以下仅说明第二实施例中与第一实施例不同的方面。如图10所示,计算机60如第一实施例的步骤2那样进行任务注册后,在步骤3a从同一 ID的所有记录中判断出注册在后的记录,选择该注册在后的记录为当前任务,进行处理。如第一实施例所述,在步骤2的任务注册可能为同一 ID产生多个记录。计算机60在选择当前任务时,比较同一 ID的各条记录的注册时间或者文件数量,注册时间在后或者文件数量最大的记录,被计算机60选择为当前任务进行处理。同时,由于注册在后的记录包含了注册时间在前的记录的文件序列号,计算机60执行了注册在后的任务,就不再需要执行其他注册时间在前的任务。因此在选定注册在后的记录为当前任务之后,计算机60在步骤3a删除该ID下的其他注册时间在前的任务。或者,在执行完毕该注册时间在后的任务之后,计算机60删除该ID的所有记录(因为注册时间在后的任务已执行完毕,也就一同被删除)。在第二实施例中,在任务列表上会显示出某一 ID下积压的任务多少,计算机60在选择任务记录时,可以根据每个ID下积压的任务记录数量来选择ID,然后再从该ID下的所有任务中选择注册时间在后的记录为当前任务。这样,可以优先处理积压任务较多的焊接电源的任务,或者为积压任务较多的焊接电源分配更多的资源。优先允许积压任务较多的焊接电源上传文件,能够保证缺失较多的焊接电源的历史文件数据优先上传至计算机,这样保证历史文件报表较快的实现数据的完整。 〈第三实施例〉为简明起见,以下仅说明第三实施例中与第一实施例不同的方面。图11和图12表示了,与第一实施例中的注册任务流程2不同的注册任务流程2a。在步骤25a中,对于已被响应的,即正在处理的记录,判断是否出现上传异常。如果有异常,则删除已存在的记录,井新增当前的上传请求到任务列表中。如果没有异常,则更新该已存在的记录的内容,而不是新增记录。具体如图12所示,假设计算机60的任务列表中已存在ID为I和2的两条任务记录。其中,ID = I的任务记录的文件数量为300,注册时间和执行时间分别为T30,即处于未被响应状态。此时进入第I请求周期,计算机60收到来自焊接电源50 (ID = I)上传请求301。于是,计算机60在任务列表中查询ID = I的任务记录。由于ID = I的任务记录(任务记录300)处于未被响应状态,进入步骤24,计算机60更新任务记录300的内容将文件数量更新为301,将注册时间和执行时间分别更新为T30P。这样,任务列表中仍然是2条记录,其中ID为I的任务记录被更新为记录301。在计算机60收到焊接电源50上传的251 290文件包时,其更新记录301的执行时间为T31,表示该记录已是处理中的状态。然后进入第2请求周期,计算机60收到来自焊接电源50的上传请求302。计算机60根据步骤25a中的判断得知,ID = I的任务记录301处于正常传送状态(当前系统时间与执行时间之差小于正常执行时间),于是更新任务记录301的内容将文件数量更新为302,将注册时间和执行时间分别更新为当前系统时间T30Q。焊接电源50上传291 302文件包,完成任务302。计算机60注销任务302。由此可见,在第三实施例中,对于未被响应的任务以及正常传送的任务,都是在出现新的上传请求时,根据新的上传请求的内容来更新未被响应的任务记录以及正常传送的任务记录的内容。对于传送异常的任务,则是在出现新的上传请求吋,删除该上传异常的任务记录,并根据新的上传请求的内容来新增一条任务记录。由此在任务列表中保持同一 ID下只有一条记录。由于同一 ID下只有一条记录,第三实施例比第一实施例的任务列表短,查询效率高。但是,因为对正常传送的任务记录也采用更新的方式(而不是第一实施例中的新增任务记录的方式),会造成在任务处理过程中来更新任务记录的文件数量的值。与第一实施例相比,第三实施例任务列表的信息量要少ー些,例如第一实施例中某个ID的焊接电源的任务条数能够体现出该ID焊接电源自第一次任务注册后已经等待了多长时间,而在第三实施例中无法体现这一点,这会使得计算机激活任务列表的策略会少ー些。
〈第四实施例〉在图13中表示了第四实施例的不同于第一实施例的任务注册流程2b。在步骤21中,当计算机60收到焊接电源50的新的上传请求,计算机60判断同一ID下是否已经 存在任务记录。没有该ID下的任务记录,则为该ID新增一条任务记录(步骤22);如果已经存在该ID的任务记录,则更新该已存在的任务记录的内容(步骤23b)。通过第四实施例的任务注册步骤2b,可以实现在任务列表中,同一 ID始終只有一条任务记录。计算机60在选择当前任务时,可以根据ID的优先级别而优先处理某些特殊要求的焊接电源(例如,特定区域的焊接电源)的任务;也可以根据待上传文件包的数量来选择待上传文件包数量最少或最多(例如,任务记录中的“文件数量”的值与文件包存储器中存储的已收到的文件包序列号之差值,差值越大说明待上传文件包的数量越多)的焊接电源的任务。具体如图14所示,假设计算机60的任务列表中已存在ID为I和2的两条任务记录。其中,ID = I的任务记录的文件数量为300,注册时间和执行时间分别为T30,即处于未被响应状态。此时进入第I请求周期,计算机60收到来自焊接电源50 (ID = I)上传请求301。于是,计算机60在任务列表中查询ID = I的任务记录。由于ID = I的任务记录(任务记录300)处于未被响应状态,进入步骤23b,计算机60更新任务记录300的内容将文件数量更新为301,将注册时间和执行时间分别更新为T30P。这样,任务列表中仍然是2条记录,其中ID为I的任务记录被更新为任务301 (记录①)。在计算机60收到焊接电源50上传的251 290文件包时,其更新任务301的执行时间为T31,表示该记录已是处理中的状态。然后进入第2请求周期,计算机60收到来自焊接电源50的上传请求302。计算机60在任务列表中查询ID = I的任务记录,于是更新任务301的内容将文件数量更新为302,将注册时间和执行时间分别更新为当前系统时间T30Q,得到记录④。焊接电源50上传291 302文件包,完成任务302。计算机60注销任务302。由此可见,第四实施例与第三实施例的不同点在于,对于未被响应的任务、正常传送的任务以及传送异常的任务,都是在出现新的上传请求时,根据新的上传请求的内容来更新该记录的内容。第四实施例优点在于计算机中的任务记录条数与焊机数量相等,毎次处理新的任务请求时只需更新现有ID对应的任务记录,算法实现简单,但由于任务记录无法体现该焊接电源第一次申请任务注册的时间,也无法体现该焊接电源是否已经关机或网络中断。当然,作为第四实施例的变形例,对于未被响应的任务、正常传送的任务以及传送异常的任务,也可以是在出现新的上传请求时,将已存在的同一 ID下的记录删除,并且根据新的上传请求的内容来建立新记录。以上,已參照详细或特定的实施方式,对本发明进行了说明,但本领域技术人员理解可以在不脱离本发明的精神与范围的前提下进行各种变更及修正。
权利要求
1.一种焊接电源与计算机之间进行数据通信的方法,该计算机与多台焊接电源通过网络分别连接,该焊接电源内存储有包含焊接数据的文件,包括以下步骤 任务请求步骤该焊接电源通过上传请求向该计算机请求上传文件; 任务注册步骤该计算机根据该上传请求,进行任务注册,在任务列表中产生任务记录,该任务记录包含该焊接电源的ID ; 选定上传焊接电源步骤该计算机从该任务列表中选择要执行的当前任务记录,根据该当前任务记录中的该焊接电源的ID,向该焊接电源发出允许上传的回复; 文件上传步骤该焊接电源向该计算机上传文件; 上传完毕判断步骤该计算机接收到该文件,并判断是否上传完毕,如果上传完毕就进入下一步骤;如果未上传完毕就通知该焊接电源继续上传; 注销任务步骤注销该当前任务记录。
2.如权利要求I所述的焊接电源与计算机之间进行数据通信的方法,其特征在于, 所述文件分别具有序列号,所述上传请求中包含所述焊接电源的当前文件的序列号,所述任务记录中还包含该当前文件的序列号,该当前文件的序列号与所述焊接电源的ID对应存储在所述任务记录中。
3.如权利要求2所述的焊接电源与计算机之间进行数据通信的方法,其特征在于, 在所述上传完毕判断步骤中,所述计算机接收到的文件包的序列号,如果与所述当前任务记录中的当前文件的序列号相同,则判断为上传完毕;如果小于所述当前任务记录中的当前文件的序列号,则判断为未上传完毕。
4.如权利要求I 3中任一项权利要求所述的焊接电源与计算机之间进行数据通信的方法,其特征在于, 所述任务注册步骤包括以下步骤 步骤21 :查询所述任务列表中是否已存在所述焊接电源的任务记录,如果不存在所述焊接电源的任务记录,则进入步骤22 ;如果存在所述焊接电源的任务记录则进入步骤23 ;步骤22 :将所述上传请求添加到该任务列表中; 步骤23 :判断所述焊接电源的任务记录是否被响应,如果该焊接电源的任务记录没有被响应,则更新该焊接电源的任务记录的内容;如果该焊接电源的任务记录已被响应,则将所述上传请求添加到该任务列表中。
5.如权利要求4所述的焊接电源与计算机之间进行数据通信的方法,其特征在于, 所述步骤23中,如果判断出已被响应,则进入步骤25 :判断所述焊接电源的任务记录是否出现上传异常; 如果出现上传异常,则删除该焊接电源的任务记录,并将所述上传请求添加到该任务列表中; 如果没有出现上传异常,则将该上传请求添加到该任务列表中。
6.如权利要求5所述的焊接电源与计算机之间进行数据通信的方法,其特征在于, 所述任务记录中还包含注册时间字段和执行时间字段, 在注册时,该注册时间字段的值与该执行时间字段的值相同; 在所述计算机接收到文件时,就更新该执行时间字段的值为当前系统时间。
在所述步骤25中判断是否出现上传异常是指,当前系统时间与所述任务记录中的执行时间字段的值,两者之差如果大于正常执行时间,则判断为出现上传异常;如果小于等于正常执行时间,则判断为没有出现上传异常。
7.如权利要求I 3中任一项权利要求所述的焊接电源与计算机之间进行数据通信的方法,其特征在于, 所述任务注册步骤包括以下步骤 步骤21 :查询所述任务列表中是否已存在所述焊接电源的任务记录,如果没有,则进入步骤22 ;如果有该焊接电源的任务记录则进入步骤23 ; 步骤22 :将所述上传请求添加到任务列表中; 步骤23 :判断所述焊接电源的任务记录是否已被响应,如果该焊接电源的任务记录未被响应,则更新该焊接电源的任务记录的内容;如果该焊接电源的任务记录已被响应,则进入步骤25a :判断该焊接电源的任务记录是否出现上传异常; 如果该焊接电源的任务记录出现上传异常,则删除该焊接电源的任务记录,并将该上传请求添加到任务列表中;如果该焊接电源的任务记录没有出现上传异常,则更新该所述焊接电源的任务记录的内容。
8.如权利要求I 3中任一项权利要求所述的焊接电源与计算机之间进行数据通信的方法,其特征在于, 所述任务注册步骤包括以下步骤 步骤21 :查询所述任务列表中是否已存在所述焊接电源的任务记录,如果不存在该焊接电源的任务记录,则进入步骤22 ;如果存在该焊接电源的任务记录则进入步骤23b ; 步骤22 :将所述上传请求添加到任务列表中; 步骤23b :根据该上传请求的内容,对该焊接电源的任务记录的内容进行更新。
9.如权利要求4所述的焊接电源与计算机之间进行数据通信的方法,其特征在于, 在所述选定上传焊接电源步骤中,所述计算机从所述任务列表中的同一 ID的所有记录中,判断出注册时间在后的记录,选择该注册时间在后的记录为所述当前任务记录;并且删除该同一 ID下的其他记录。
10.一种实现权利要求I所述的焊接电源与计算机之间进行数据通信的方法的焊接系统。
11.一种焊接电源与计算机之间进行数据通信的方法,该计算机与多台焊接电源通过网络连接,该焊接电源内存储有包含焊接数据的文件,其特征在于 该多台焊接电源分别通过上传请求向该计算机请求上传文件,该计算机通过任务列表对该多台焊接电源的上传请求的任务记录进行排队,并选定部分或者全部该任务记录作为当前任务进行处理。
全文摘要
本发明涉及焊接电源与计算机之间进行数据通信的方法,属于焊接控制技术领域。本发明的焊接电源与计算机数据通信方法包括以下步骤焊接电源通过上传请求向计算机请求上传文件;计算机根据上传请求,进行任务注册,在任务列表中产生任务记录,任务记录包含焊接电源的ID;计算机从任务列表中选择要执行的当前任务,根据当前任务记录中的焊接电源的ID,向焊接电源发出允许上传的回复;焊接电源接收到回复后,向计算机上传文件;计算机接收到文件,并判断是否上传完毕,如果上传完毕就注销当前任务记录;如果未上传完毕就返回等待接收文件。本发明通过任务列表,对来自大量焊接电源的文件上传请求进行排队,避免了大量文件同时上传造成的网络阻塞。
文档编号H04L29/06GK102664950SQ20121011678
公开日2012年9月12日 申请日期2012年4月18日 优先权日2012年4月18日
发明者刘金龙, 李海泉, 王伟 申请人:唐山松下产业机器有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1