软件错误三篇

2024-09-11

软件错误 篇1

某设备由一台主控计算机和三台分控计算机组成, 分控计算机主要用于接收主控计算机的数据和指令、执行机构信号的采集、计算及反馈等。其中, 每台分控计算机分别控制一台执行设备 (以下分别对应称为1号工位设备、2号工位设备、3号工位设备) 。主控计算机通过软件和硬件接口与上位机通信软件完成数据通信。上位机内安装通信软件、数据应用软件, 通信软件主要用于与设备通信, 数据应用软件主要用于数据计算、分析与判断。在系统工作过程中, 存在数据传输及状态确认环节, 即数据文件标识码检查。

2、软件缺陷分析

2.1 问题

在产品实际运行过程中, 出现标识码错误故障, 导致软件流程中止。具体情况为:设备同时进行三个工位设备自检程序时, 上位机、设备主控计算机均提示"标识码错误"故障, 流程终止。重复运行多次三个工位设备的自检程序, 故障多次出现, 这表明, 此故障虽非固定出现, 但出现频率较高, 且提示"标识码错误"的工位具有一定的随机性。而单独进行一个或两个工位设备自检时, 则未出现该故障现象。

不同设备、使用不同数据文件, 也出现类似故障现象。

将设备与上位机断开单独工作 (自检和运行) 时, 同时控制三个工位执行机构工作均正常, 未出现上述故障现象。

2.2 故障分析

分析导致标识码错误的可能原因, 可能的故障原因有:

1) 分控计算机软件发送的标识码错误;

2) 主控计算机软件接收标识码错误;

3) 主控计算机发送标识码错误;

4) 主控计算机接收标识码检查结果错误;

5) 上位机通信软件接收标识码错误;

6) 上位机通信软件发送标识码错误;

7) 上位机通信软件接收标识码检查结果错误;

8) 上位机通信软件发送标识码检查结果错误;

9) 应用软件接收标识码错误;

10) 应用软件判断标识码错误;

11) 原始的标识码错误。

结合故障树进行分析, 由于故障出现具有随机性, 因此可以排除因素11。

通过对设备主控计算机与上位机数据通讯接口的监测, 当故障复现时, 检查设备主控计算机向上位机发送标识码的数据:设备主控计算机共发送出5帧标识码, 分别为1号工位1帧, 2号工位1帧, 3号工位3帧, 1、2号位的标识码为正确帧, 3号位第一帧为正确帧, 后两帧为错误帧;本数据包的标识码的第14字节应为0x38, 但却被异常清零。检查上位机通信软件接收设备主控计算机发送的标识码数据:上位机通信软件共接收到设备主控计算机发送的5帧标识码, 分别为1号位1帧, 2号位1帧, 3号位3帧, 且1、2号位的标识码为正确帧, 3号位的第一帧为正确帧, 后两帧为错误帧, 也是在标识码的第14字节的0x38被异常清零。由此说明因素1是原因之一。

检查设备主控计算机与分控计算机和上位机通信软件的发送和接收数据均一致, 可排除因素2、3。

检查上位机通信软件发送给上位机数据应用软件的数据:所发送数据与接收的数据一致, 可排除因素5、6。

检查上位机通信软件接收上位机数据应用软件给出的标识码检验结果:上位机通信软件共接收到5帧标识码检验结果, 分别是1号位正确, 2号位正确, 3号位正确, 3号位错误, 3号位错误。可排除因素9、10。

检查上位机通信软件转发给设备主控计算机的标识码检验结果:上位机通信软件向设备主控计算机转发了5帧标识码检验结果, 分别是1号工位正确, 1号工位正确, 2号工位正确, 3号工位错误, 3号工位错误。上位机通信软件向设备主控计算机转发了1、2号位标识码正确的检验结果, 但未能正确地向设备主控计算机转发3号位标识码正确的结果, 而是将1号位标识码正确的结果发送了2遍。由此说明因素8是原因之一, 并可排除因素7。

根据设备主控计算机标识码检验结果与上位机通信软件显示一致, 可以排除因素4。

综上所述, 故障原因为分控计算机软件发送的标识码错误 (原因1) 和上位机通信软件发送标识码检查结果错误 (原因8) 。

2.3 机理分析

根据故障分析及数据监测情况, 数据通讯过程中的故障机理为:

a) 设备分控计算机首先读取3个工位的数据标识码, 并发送给主控计算机;

b) 设备主控计算机将3个工位的数据标识码依次、正确地发送到上位机通信软件;

c) 上位机通信软件依次、正确地接收到并将标识码转发到了上位机数据应用软件;

d) 上位机数据应用软件对标识码判断后向上位机通信软件发送3个工位标识码正确的判断结果;

e) 上位机通信软件正确接收上位机数据应用软件给出的标识码检验结果;

f) 上位机通信软件向设备主控计算机转发1、2号工位标识码正确的检验结果, 但未能正确地向设备主控计算机转发3号工位标识码正确的结果, 而是将1号工位标识码正确的结果发送了2遍。

g) 设备主控计算机在5s内未接收到3号工位的标识码正确的结果, 依据通信协议重新发送3号工位的标识码。但此次发送的3号工位标识码的第14字节的0x38被错误地清零。

h) 上位机通信软件正确地接收并向上位机数据应用软件转发了3号工位的标识码, 上位机数据应用软件判断3号工位标识码错误。

i) 上位机通信软件将3号工位标识码错误的结果发送到设备主控计算机, 设备主控计算机第三次发送3号工位标识码, 但该标识码的第14字节的0x38仍然被错误地清零。

j) 上位机软件按上述步骤判断后, 再次向设备发出标识码错误的结果。设备收到后使流程终止, 故障出现。

显然, 上位机通信软件和设备主控计算机软件存在设计缺陷。

2.4 软件缺陷分析

a) 上位机通信软件缺陷分析

走查上位机通信软件代码和分析, 引起上位机通信软件故障的原因是以下因素综合作用的结果:

1) 由于设备状态变化, 设备主控计算机与上位机的串口传输波特率由9600bps提高到614.4Kbps, 使得上位机通信软件接收数据的速率、以及数据处理的时序都发生了变化。

2) 上位机通信软件利用同一个数组接收上位机应用软件对三个工位标识码的判断结果。

在状态变化前, 由于9600bps的通信速率相对较低, 上位机通信软件每接收一组标识码 (52字节) 的时间约为50ms, 在这段时间内, 上位机通信软件将标识码转发给上位机数据应用软件, 并将上位机数据应用软件给出的判断结果及时地取走;然后上位机通信软件才会向上位机数据应用软件转发下一组标识码, 并取走上位机数据应用软件给出的下一组标识码判断结果, 再向设备主控计算机转发。

而状态变化后, 上位机通信软件接收一组标识码的时间约为0.8ms, 这样, 上位机通信软件可能在2.4ms内就收到了三组标识码, 并将其发送给上位机应用软件处理。上位机应用软件迅速依次给出三个工位标识码正确的判断结果。但上位机通信软件处理时, 在未能及时从数组取走并向设备主控计算机发送3号工位标识码正确的情况下, 又收到上位机数据应用软件的1号工位的标识码检验结果, 使得该数组内又填充了1号工位的标识码检验结果, 将前一检验结果覆盖, 从而丢掉了3号工位标识码检验的正确帧;而上位机通信软件却将1号工位的标识码正确误作为3号工位的标识码正确向设备主控计算机发送, 出现上述故障现象。

b) 设备主控计算机、分控计算机软件缺陷分析

走查设备主控计算机软件和分控计算机软件代码, 引起设备软件故障的原因是以下因素综合作用的结果:

1) 设备主控计算机软件在进行标识码检验的过程中, 按2s一次的周期进行数据采集与处理, 并将结果写入特定变量中。

2) 设备分控计算机重新发送的某工位的标识码在变量使用上有冲突。依据设备内部通信协议, 采用一个108个字节的数组commbuf_f[]的第40~92字节存储标识码。而同时该数组的第53字节, 还用于存储执行机构的状态字参数。

当设备分控计算机软件首次读取各工位的标识码, 并通过设备主控计算机软件, 向上位机通信软件发送时是正确的。2s后当设备主控计算机软件进行执行机构状态字参数检查时, 由于此时执行机构实际状态未到位 (处于未开机状态) , 因此将第53字节 (对应标识码的第14字节) 置0。当设备主控计算机在5s内未收到3号工位标识码正确的时候, 再次重发的标识码已经被错误地改写。

3、软件更改

3.1 上位机通信软件更改

1) 上位机通信软件在接收到设备主控计算机一帧标识码后, 人为设置增加50ms延时后, 再向上位机数据应用软件转发。

2) 取消接收上位机数据应用软件标识码检验结果的数组Buff_7D[], 将标识码检验结果作为函数::PostMessage (, , wparam, lparam) 的参数形式进行传递, 将工位和标识码的检验结果信息存在wparam和lparam参数中, 从根本上避免问题的发生。数组Buff_7D[]只用来存储标识码检验结果, 取消后对其他功能无影响。

3.2 设备主控、分控计算机软件更改

1) 更改主控计算机和分控计算机之间的通讯协议, 将执行机构状态字参数检查结果信息的存储位置由原来的第53字节调整到第15字节 (该字节原为备用) 。

2) 设置标志, 等待标识码检查流程结束后再进行执行机构状态字参数检查, 避免冲突。

软件更改后, 对不同组合形式的使用状态进行了试验验证, 系统工作正常, 标识码信息处理流程、结果正确。

4、结论

针对某设备在流程运行中出现的流程终止问题, 对故障发生的原因进行了分析及故障定位, 找出了上位机通信软件和设备计算机软件中存在的缺陷并进行了更改, 更改后的软件进行了试验验证, 结果表明, 软件更改正确, 设备工作正确、协调。

摘要:本文对某设备软件数据标识码检验结果错误问题进行了详细分析, 列举和分析了可能的故障原因, 找出了软件设计缺陷, 结果表明软件标识码检验错误的原因主要包括:上位机通信软件接收数据速率与数据传输速率不匹配, 上位机通信软件仅用一个数组接收三个工位标识码的判断结果不合理, 设备计算机软件存储标识码的变量数组第53字节为复用不合理。对软件设计缺陷进行了相应更改并进行了试验验证, 取得了很好效果。

软件错误 篇2

赖永锋:

赖永锋,新加坡人。1997年毕业于新加坡国立大学,曾在知名咨询公司埃森哲公司任电信、金融行业资深IT顾问,为企业提供最佳IT实践模式;还在渣打银行的业务经营分析系统建设项目中任技术主管;后进入美国NCR公司研发中心,担任技术主管,并为多家.COM公司提供IT支撑系统的架构设计。2003年加入MDCL-Frontline公司,现任摩卡软件有限公司总经理。

现在,软件企业存在着“近视”和“远视”两个问题。原因很简单,因为企业决策者的眼力不好,看不清市场的需求在哪!而眼力较好,能看透市场需求的企业,就能获得客户的青睐。

为什么这么说呢?因为近视和远视是企业常常会犯的两个错误。先说近视的问题,1960年,美国著名市场营销专家、哈佛大学教授西奥多· 李维特提出了营销近视症的概念。这种病症是指企业不适当地把主要精力放在产品或技术上,而不是放在市场需要或者顾客的需要上,结果就会导致企业丧失市场,失去竞争力。

到底什么是近视?可以用一个事例来说明:有一个客户,购买了某国际知名企业的一套系统,花了9个月的时间都搭建不起来,最后找到摩卡公司。结果,摩卡公司的工程师过去,只花了9天的时间就搭好了。但接着客户问:这套系统怎么用啊?工程师又花时间给客户讲解。

客户为什么会有这样的疑问?事实上,有很多国际厂商只是把产品拿来,安装好,之后的事情一般就不会顾及了。但应用软件产品和一般的产品不同,客户有了产品,却不等于这个产品就会百分百地适合自己,也不等于客户就能把产品最终用起来。产品不能发挥作用,客户支付了不菲的价格,最终却没有得到价值。因此,这些国际大厂在某种程度上讲是近视的。

平心而论,这些国际厂商的产品的确很好,性能也很强,技术含量很高,但是他们不能贴近中国的客户,以每个客户的具体需求为着眼点来提供产品。但国内公司不一样。目前,国内公司普遍有复杂分级管理的应用需求,这是因为他们的机构很庞大,分支众多,总公司希望将权力下放给子公司,子公司再进一步下放权力,这种需求尤其在实行多元化经营的公司中很明显,因为总公司可能对下面的分支机构的业务并不了解,迫切需要分级管理。但是这些国际厂商提供的产品却无法满足这种需求,所以他们在研发产品的时候,不可能针对中国客户的具体需求考虑。原本,这种产品的不完善可以通过二次开发等服务解决,但国际厂商响应客户的需求通常比较缓慢,要走很多流程,甚至要报到总部,经历了漫长的公文旅行,客户等不及。而即使等来了,对方工程师每小时高达几千美金的服务费用也会使得客户觉得不堪重负。

要解决近视的问题,就需要企业从产品驱动转变为顾客驱动,更贴近客户,更了解客户的需求,以客户需要为出发点提供产品。把目光放在更远的顾客身上而不是仅仅落在产品身上,这样才能不近视。

国内企业与之相比,都有一支完备的服务队伍,可以在第一时间内响应客户需求,实现产品的客户化,为客户做二次开发,从而使得产品应用更加满足客户的要求。正因为不“近视”,才使得国内厂商在和国际企业竞争时丝毫不落下风,而摩卡是其中的代表企业。

但企业仅仅拥有贴近客户的能力,也不可能取得竞争中的优势。放眼国内,从客户需求出发来提供产品的企业有很多,他们的服务意识都很强,但摩卡同这些企业竞争时,仍然具有很大优势,奥妙在哪里呢?那是因为它不“远视”。

近些年来,针对“营销近视症”,一些管理学者开始提出“营销远视症”的危害。所谓“营销远视症”是指企业在生产过程当中只看到顾客,却忽视了产品。其实这对企业来说,同样是致命的缺点。

有一个企业使用的OA系统是国内公司的产品。在运营过程中,客户需要增加一个新需求,这家企业就找到提供OA系统的公司。对方说,公司需要20个人来进行二次开发,这家企业听说后有些拿不准,就找到摩卡公司寻求解决方案。结果,摩卡公司的工程师说:“我只要两个小时”。客户不相信,工程师当时就跟他到现场,包括配流程、测试、上线,一共只用了两个小时。

这就是产品的差别,国内的很多软件厂家是在以项目实施的心态来做产品,很多情况下这些产品就是从某个项目里面抽出来,修改一些代码,产品不可能有一个优良的架构,这样做的后果是产品当时符合了客户的需求,但不可扩展,不可配置。当客户使用系统的人数增加或者需要增加新功能的时候,这些厂家只好带着一大堆人到现场修改代码,不是在现有产品的基础上扩展,而是兴师动众,另起炉灶。客户不但花费不菲,而且原来的投资没有得到充分的利用。

只有一方面顾及顾客,一方面重视产品,才能为企业赢得更多的市场。在推广销售过程中,企业提供的产品一开始就应该强调简单易用,降低使用的技术门槛,确保客户用起来方便;而且产品具备优良的架构,可以很方便地扩展和配置,保护客户之前的投资,使客户以有限的IT支出完成更多的事情。

用友软件错误91问题汇总 篇3

用友软件, 汇总用友软件, 汇总

1.在总账中,查询管理费用时报“7-内存溢出”或“未设置对象变量,运行时91错误”。此问题请检查机器环境: 机器名是否含特殊字符或中文,登陆操作系统的操作员名是否含特殊字符或中文,其权限是否为超级管理员或高级用户.重新注册软件的所有组件,可使用通网站服务工具中的维护通2.0中的三十九号工具进行注册.清空系统临时文件夹,路径:C:Documents and SettingsAdministratorLocal

SettingsTemp 如问题未解决,请将账套引入到其它机器确定是否为数据问题.2.在总账记账时提示“运行时错误 91,未设置对象变量或With block 变量”。

总账中遇到这种错误,可能就是和计算机名称、登陆账户有关。计算机名称最好是全英文的,登陆账户也应该用英文名。查看登陆操作系统的用户具有什么权限,我们要求必须是超级用户以上的权限才可以。

3.客户在使用薪资统计查询时,出现“91号错误,未设置对象变量或With block 变量”同时个人工资统计查询表不可用,不能查询出

结果

此问题是因为组件丢失所致请重新注册一下组件或是重新安装一下软件

4.销售发票列表联查销售发票,出错“运行错误91”

开发已做出补丁,请上网下载相应版本的补丁。补丁路径:用友通10.2标准版:tongserver补丁包补丁包用友通10.2补丁包标准版2007-11-05星期一23335-23067用友通10.2工业版tongserver补丁包补丁包用友通10.2补丁包工业版2007-11-05星期一23335-

23067

5.查询账表时提示,运行时错误91,服务器为2000server可以正常登陆,客户端为xp出现此问题< /font>

使用服务工具中的维护通2.0中的工具三十九把客户端的组件重新注册一下,或卸载客户端软件,删除system32 fcomsql这个文件夹,然后再

重新安装软件。

6.凭证无法打印,预览时提示“运行时错误91,未设置变量或with block”。

先检查机器名是否为纯英文,不允许有._%等特殊字符;2.如果正常,则删除ZWSQLTemp.mdb文件,重新登录产品,文件保存位置:ZWSQLTemp.mdb默认路径(XXX:指系统登录帐户)操作系统路径Documents and SettingsXXXLocal SettingsTemp,此路径即系统环境变量中用户变量的Tmp变量值(参见系统环境参数章),如C:Documentsand SettingsAdministrator Local SettingsTemp;3.如果不行,请使用注册组件的工具,下载:http: //tong.ufida.com.cn/infomanage/qudao/ewebeditor/UploadFile/***.rar还解决不了,请重新安装

软件,卸载完软件后,删除c:windowsystem32下的ufcomsql文件夹,再装。

7.新装系统,安装用友通10.1plus2后,运行自定义转帐、期间损益结转、查询明细账时均报错“运行时错误91”。卸载软件,删除

ufcomsql后重装软件问题依旧。

用for %%s in(%windir%system32ufcomsql*.dll)do regsvr32.exe/s %%s

for %%s in(%windir%system32ufcomsql*.ocx)do regsvr32.exe/s %%s

注册后问题依旧。

此提示有这个几种情况

1、登录系统的操作员不够

2、登录系统的操作员是中文名

3、ZWSQLTemp.mdb出错,此文件存于操作系统路径Documents

and SettingsXXXLocal SettingsTemp,删除掉即可,所以建立一个新的只有英文字母的操作员来登录系统。

8.在查询明细账时提示“运行时错误91,未设置对象变量或withblock变量”。

请看一下机器名和登陆操作系统的用户名有没有特殊符号,或带有中文名,如有请将机器名修改为纯英文的,增加一个纯英文的操作系统用户。

如过没有,那请将软件进行卸载,删除system32下的ufcomsql文件夹,重新安装软件。

9.用户在安装用友通普及版10.2时,在进行打印设置时,打印预览凭证时,提示:“运行时错误91未设置对象变量或 WITH BLOCK变量”。此时自动退出.此后进入填制凭证时,刚又提示:“运行时错误429ACTIVEX.部件不能创建对象”.重新注册后,才可进行填制凭证界

面。已经试过重装软件.等一些操作,仍不能解决问题。

有控件没有注册上,重新注册下列文件:ufmoney.ocx,ufrtpm.ocx,uszzpub.dll, usnate.dll2.硬盘可能有坏道,换一个硬盘安装软件 3.重

装软件没删除干净,请重装前把安装目录和注册表以及c:windowsystem32ufcomsql 删除

10.点击如凭证打印,明细账查询,打印等查询和打印时都提示“运行时错误91,未设置对象变量或with& nbsp;block 变量”。请检查登陆操作系统的用户名是否为中文名,计算机名称是否带有特殊符号,或是以中文开头,这两者最好是全英文的。2.请将软件进行卸

载,然后停止mssqlserver服务(开始/运行/netstop mssqlserver),删除ufcomsql文件夹,再启动mssqlserver服务,重装软件。

11.在总账模块中,在进行月末结账时提示为"运行错误91"不能进行结账。

请检查一下机器名是否带有特殊符号或以数字开头,机器名最好是纯英文的,还有登陆操作系统的用户名也应该上以英文字母开头,不能带特

殊符号。

12.一客户有普及版总账.出现很多报错.能做凭证其他的什么都不能做.包括打印.提示"运行错误91未设置对象变量或 withblock变量".如果重新注册再进问题又发生变化了可能不能做凭证但能做其他的一项.不知是什么原因造成的.安装时没有任

何报错。

请按如下操作假如操作系统安装在c盘下 打开开始里的运行输入xp版本:regsvr32 c:windowssystem32ufcomsqlufmoney.ocx2000

版本:regsvr32 c:winntsystem32ufcomsqlufmoney.ocx提示成功。

13.固定资产减少时报错DAO-ADO对象模型,然后“运行时错误91”,“运行时错误440”

上一篇:周围性眩晕下一篇:女人是男人的倒影