本发明专利技术公开了基于不可信OPC服务的写稳定方法和系统,包括以下步骤:S1:接收第三方系统数据请求;S2:订阅位号引脚,保存订阅成功的位号引脚信息;S3:写入位号引脚值,保存结果数据至数据库;S4:读取结果数据并传输至第三方系统。本发明专利技术的有益效果是:能大规模写入数据。能大规模写入数据。能大规模写入数据。
【技术实现步骤摘要】
基于不可信OPC服务的写稳定方法和系统
[0001]本专利技术涉及计算机数据处理
,特别涉及基于不可信OPC服务的写稳定方法和系统。
技术介绍
[0002]工厂里作业工况和位号审计等业务需要写入大量位号引脚值,而OPC(OLE forProcess Control)厂家提供的分布式组件对象模式服务具有不稳定性,写入数据可能延迟度比较高,也可能失败。要在如此不确定因素的场景下进行引脚值的写入,难度较大。
[0003]现有技术中,大部分技术方案是单独写入数据并进行数据正确性判断,此方案容易导致误判和失败。存在不能大规模写入数据的问题。
[0004]例如,一种在中国专利文献上公开的“计算机系统的超高速缓冲存贮器单次写入结构”,其公告号:CN1115891A,其申请日:1994年07月26日,该专利技术将当时数据线置于共用状态,以便进行第一次写入命中的写入动作,并在该装置上留下变动的状态记录,并控制主处理器的存贮写入模式输入信号,将存贮写入变为回写模式,使后续写出动作可被保留而不立即写出,从而节省时钟周期,但是存在不能大规模写入数据的问题。
技术实现思路
[0005]针对现有技术不能大规模写入数据的不足,本专利技术提出了基于不可信OPC服务的写稳定方法和系统,能大规模写入数据。
[0006]以下是本专利技术的技术方案,基于不可信OPC服务的写稳定方法,包括以下步骤:
[0007]S1:接收第三方系统数据请求;
[0008]S2:订阅位号引脚,保存订阅成功的位号引脚信息;
[0009]S3:写入位号引脚值,保存结果数据至数据库;
[0010]S4:读取结果数据并传输至第三方系统。
[0011]本方案中,第三方系统发出数据请求,写稳定系统接收数据请求后,根据数据请求进行订阅和写入,订阅位号引脚,保存订阅成功的位号引脚信息,写入位号引脚值,保存结果数据至数据库,此时以完成数据处理,从数据库中读取结果数据并传输至第三方系统,能进行大规模的写入操作。
[0012]作为优选,S2包括以下步骤:
[0013]S21:加载订阅配置参数至内存中;
[0014]S22:将要订阅的位号引脚加入订阅队列;
[0015]S23:周期性从订阅队列中订阅若干个位号引脚;
[0016]S24:判断位号引脚是否订阅成功?若是,把位号引脚踢出订阅队列并保存订阅成功信息至数据库;若否,订阅计数加一;
[0017]S25:判断订阅计数是否大于最大订阅次数?若是,把位号引脚踢出订阅队列并保存订阅失败信息至数据库;若否,进行步骤S23。
[0018]本方案中,读取数据库中的订阅配置参数至内存中,订阅配置参数包括订阅间隔时间、每次订阅数量和每个位号引脚的最大订阅次数,将要订阅的位号引脚加入订阅队列,在订阅队列中查找位号加引脚对应的值,如果找到已经有这个位号引脚的订阅,直接返回;如果没有找到,就把这个位号引脚加入到订阅队列中,按照间隔时间从订阅队列中选出订阅计数最小的几个位号引脚,订阅这批位号引脚,根据订阅返回值,如果订阅成功,把位号引脚踢出订阅队列并保存订阅成功信息至数据库,通知前端订阅成功信息,如果订阅失败,把订阅计数加一,如果位号引脚的订阅计数大于最大订阅次数,订阅失败,把位号引脚踢出订阅队列并保存订阅失败信息至数据库,通知前端订阅失败信息,如果位号引脚的订阅计数不大于最大订阅次数,继续周期性从订阅队列中订阅若干个位号引脚。
[0019]作为优选,订阅配置参数包括订阅间隔时间、每次订阅数量和最大订阅次数。
[0020]本方案中,需要间隔一定时间再去订阅位号引脚,以免频繁操作,而导致服务器响应不过来,每次批量订阅只能订阅一定的数量,防止网络流量暴增和服务器负载过大。
[0021]作为优选,S3包括以下步骤:
[0022]S31:加载写值配置参数到内存中;
[0023]S32:将要写值的位号引脚加入写值队列;
[0024]S33:周期性从写值队列中写入若干个位号引脚值;
[0025]S34:判断位号引脚的真实值和待写入值是否一致?若是,将位号引脚踢出写值队列并保存写入成功结果数据至数据库;若否,写入计数加一;
[0026]S35:判断写入计数是否大于最大写入次数?若是,当前时间超过写入时间和静默时间之和时,将位号引脚踢出写值队列并保存写入失败结果数据至数据库;若否,进行步骤S33。
[0027]本方案中,读取数据库中的写值配置参数至内存中,写值配置参数包括写值间隔时间、每次写值个数、每个位号引脚的最大写入次数和位号引脚写失败后的静默时间,如果请求的位号引脚允许写值,将要写值的位号引脚加入写值队列,在写值队列中查找位号加引脚对应的值,如果找到已经有这个位号引脚的项目,就重置写入计数并写入值,直接返回;如果没有找到,就把这个位号引脚值加入到写值队列中,按照间隔时间从写值队列中,选出写入计数不满最大写入次数,且写入计数最小的几个位号引脚,写入这批位号引脚对应的值,读取位号引脚的真实值,和待写入值进行对比,如果真实值和待写入值一致,表示位号引脚值写入成功,将位号引脚踢出队列并保存写入成功结果数据到数据库中,通知前端应用,如果真实值和待写入值不一致,写入计数加一,写入计数大于最大写入次数,且当前时间超过了写入时间和静默时间之和,表示写入失败,将位号引脚踢出队列并保存写入失败结果数据到数据库中,通知前端应用,写入计数不大于最大写入次数时,周期性从写值队列中写入若干个位号引脚值。
[0028]作为优选,写值配置参数包括写值间隔时间、每次写值个数、最大写入次数和静默时间。
[0029]本方案中,需要间隔一定时间再去写位号引脚值,以免频繁操作,而导致服务器响应不过来,每次批量写值只能写入一定的数量,防止网络流量暴增和服务器负载过大。
[0030]作为优选,写入时间为写入位号引脚值时的时间,静默时间的范围为1至30秒。
[0031]本方案中,尝试多次后,需要等待一个静默死亡时间,静默时间的范围为1至30秒,
给予服务器最后处理时间,以免误判,提高写入正确率。
[0032]作为优选,优先对订阅计数少的位号引脚进行订阅,优先对写入计数少的位号引脚进行写值。
[0033]本方案中,订阅的时候需要先订阅订阅计数少的位号引脚,写值的时候需要先写入计数少的位号引脚,减少失败次数,提高效率。
[0034]作为优选,位号引脚的写入计数不超过最大写入计数且订阅计数不超过最大订阅计数。
[0035]本方案中,位号引脚的写入计数不超过最大写入计数且订阅计数不超过最大订阅计数,防止OPC系统频繁响应,导致性能下降。
[0036]作为优选,前端采用文字、图像或语音显示订阅结果和写入结果。
[0037]本方案中,订阅成功时将订阅成功信息通知前端,写入成功时将写入成功信息通知前端,写入失败时将写入失败信息通知前端,前端的文字信息、语音信息或图像信息对应写入结果。前端获取本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.基于不可信OPC服务的写稳定方法,其特征在于,包括以下步骤:S1:接收第三方系统数据请求;S2:订阅位号引脚,保存订阅成功的位号引脚信息;S3:写入位号引脚值,保存结果数据至数据库;S4:读取结果数据并传输至第三方系统。2.根据权利要求1所述的基于不可信OPC服务的写稳定方法,其特征在于,S2包括以下步骤:S21:加载订阅配置参数至内存中;S22:将要订阅的位号引脚加入订阅队列;S23:周期性从订阅队列中订阅若干个位号引脚;S24:判断位号引脚是否订阅成功?若是,把位号引脚踢出订阅队列并保存订阅成功信息至数据库;若否,订阅计数加一;S25:判断订阅计数是否大于最大订阅次数?若是,把位号引脚踢出订阅队列并保存订阅失败信息至数据库;若否,进行步骤S23。3.根据权利要求2所述的基于不可信OPC服务的写稳定方法,其特征在于,订阅配置参数包括订阅间隔时间、每次订阅数量和最大订阅次数。4.根据权利要求1所述的基于不可信OPC服务的写稳定方法,其特征在于,S3包括以下步骤:S31:加载写值配置参数到内存中;S32:将要写值的位号引脚加入写值队列;S33:周期性从写值队列中写入若干个位号引脚值;S34:判断位号引脚的真实值和待写入值是否一致?若是,将位号引脚踢出写值队列并保存写入成功结果数据至数据库;若否,写入计数加一;S35:判断写入计数是否大于最大写入次数?若是,当前时间超过写入时间和静默时间之和时,将位号引脚踢出写值队列并保存写入失败结果数据至数据库...
【专利技术属性】
技术研发人员:李冬,史国芳,苏永卫,游嘉铭,王永辉,
申请(专利权)人:浙江中控技术股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。