首页 > 解决方案 > “RSIVBA 模块已停止工作”消息的零星出现

问题描述

我正在使用 Factory Talk View Studio 7.00.00 (CPR 9 SR 6) 和 VBA 6.5 开发一个新的 HMI 项目。 有时在客户端启动时 VBA 崩溃并出现以下消息:

在此处输入图像描述

调试分析

下面我尝试尽可能详细地描述我所做的调试分析。如果您愿意,您可以直接跳到“最终考虑事项”一章。

我在我的开发计算机上打开了事件视图,并检索了有关该问题的以下信息,这些信息包含在两个不同的日志中:

日志 1

Log Name:      Application
Source:        Application Error
Date:          4/12/2019 11:36:47 AM
Event ID:      1000
Task Category: (100)
Level:         Error
Keywords:      Classic
User:          N/A
Computer:      C001234
Description:
Faulting application name: SEGfxVBACli.exe, version: 7.0.13.0, time stamp: 0x50e6de15
Faulting module name: VBE6.DLL, version: 6.5.10.32, time stamp: 0x471d25c7
Exception code: 0xc0000005
Fault offset: 0x00048ba2
Faulting process id: 0x24cc
Faulting application start time: 0x01d4f11339f7c9c0
Faulting application path: C:\Program Files\Rockwell Software\RSView Enterprise\SEGfxVBACli.exe
Faulting module path: C:\PROGRA~1\COMMON~1\MICROS~1\VBA\VBA6\VBE6.DLL
Report Id: 7d53c660-5d06-11e9-9097-001c428c3a57
Event Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="Application Error" />
    <EventID Qualifiers="0">1000</EventID>
    <Level>2</Level>
    <Task>100</Task>
    <Keywords>0x80000000000000</Keywords>
    <TimeCreated SystemTime="2019-04-12T09:36:47.000000000Z" />
    <EventRecordID>33867</EventRecordID>
    <Channel>Application</Channel>
    <Computer>C001234</Computer>
    <Security />
  </System>
  <EventData>
    <Data>SEGfxVBACli.exe</Data>
    <Data>7.0.13.0</Data>
    <Data>50e6de15</Data>
    <Data>VBE6.DLL</Data>
    <Data>6.5.10.32</Data>
    <Data>471d25c7</Data>
    <Data>c0000005</Data>
    <Data>00048ba2</Data>
    <Data>24cc</Data>
    <Data>01d4f11339f7c9c0</Data>
    <Data>C:\Program Files\Rockwell Software\RSView Enterprise\SEGfxVBACli.exe</Data>
    <Data>C:\PROGRA~1\COMMON~1\MICROS~1\VBA\VBA6\VBE6.DLL</Data>
    <Data>7d53c660-5d06-11e9-9097-001c428c3a57</Data>
  </EventData>
</Event>

日志 2

Log Name:      Application
Source:        Windows Error Reporting
Date:          4/12/2019 11:40:02 AM
Event ID:      1001
Task Category: None
Level:         Information
Keywords:      Classic
User:          N/A
Computer:      C001234
Description:
Fault bucket , type 0
Event Name: APPCRASH
Response: Not available
Cab Id: 0

Problem signature:
P1: SEGfxVBACli.exe
P2: 7.0.13.0
P3: 50e6de15
P4: VBE6.DLL
P5: 6.5.10.32
P6: 471d25c7
P7: c0000005
P8: 00048ba2
P9: 
P10: 

Attached files:

These files may be available here:
<b>C:\Users\xfprocessor\AppData\Local\Microsoft\Windows\WER\ReportQueue\AppCrash_SEGfxVBACli.exe_9918e682a9385aae53b328795e856d7cb5199e1b_27f321b3</b>

Analysis symbol: 
Rechecking for solution: 0
Report Id: 7d53c660-5d06-11e9-9097-001c428c3a57
Report Status: 6
Event Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="Windows Error Reporting" />
    <EventID Qualifiers="0">1001</EventID>
    <Level>4</Level>
    <Task>0</Task>
    <Keywords>0x80000000000000</Keywords>
    <TimeCreated SystemTime="2019-04-12T09:40:02.000000000Z" />
    <EventRecordID>33868</EventRecordID>
    <Channel>Application</Channel>
    <Computer>C001234</Computer>
    <Security />
  </System>
  <EventData>
    <Data>
    </Data>
    <Data>0</Data>
    <Data>APPCRASH</Data>
    <Data>Not available</Data>
    <Data>0</Data>
    <Data>SEGfxVBACli.exe</Data>
    <Data>7.0.13.0</Data>
    <Data>50e6de15</Data>
    <Data>VBE6.DLL</Data>
    <Data>6.5.10.32</Data>
    <Data>471d25c7</Data>
    <Data>c0000005</Data>
    <Data>00048ba2</Data>
    <Data>
    </Data>
    <Data>
    </Data>
    <Data>
    </Data>
    <Data>C:\Users\xfprocessor\AppData\Local\Microsoft\Windows\WER\ReportQueue\AppCrash_SEGfxVBACli.exe_9918e682a9385aae53b328795e856d7cb5199e1b_27f321b3</Data>
    <Data>
    </Data>
    <Data>0</Data>
    <Data>7d53c660-5d06-11e9-9097-001c428c3a57</Data>
    <Data>6</Data>
  </EventData>
</Event>

使用上述日志,我能够提取以下相关信息(如果您认为我遗漏了一些对调试目的可能很重要的内容,请告诉我):

  1. 日志 1
    • 错误的应用程序是 SEGfxVBACli.exe,版本:7.0.13.0(RSIVBA 模块的别名,看这里
      • 故障模块为 VBE6.DLL,版本:6.5.10.32
  2. 日志 2
    • 此日志由 WER(Windows 错误报告)获取
    • 此日志建议检查以下文件夹以获取更多信息:

C:\Users\xfprocessor\AppData\Local\Microsoft\Windows\WER\ReportQueue\AppCrash_SEGfxVBACli.exe_9918e682a9385aae53b328795e856d7cb5199e1b_27f321b3

在 Log 2 建议的路径中,我发现了一个名为Report.wer的文件,它似乎没有添加新的有用信息。下面是它的内容:

Version=1
EventType=APPCRASH
EventTime=131995354075640000
ReportType=2
Consent=1
ReportIdentifier=7d53c661-5d06-11e9-9097-001c428c3a57
IntegratorReportIdentifier=7d53c660-5d06-11e9-9097-001c428c3a57
Response.type=4
Sig[0].Name=Application Name
Sig[0].Value=SEGfxVBACli.exe
Sig[1].Name=Application Version
Sig[1].Value=7.0.13.0
Sig[2].Name=Application Timestamp
Sig[2].Value=50e6de15
Sig[3].Name=Fault Module Name
Sig[3].Value=VBE6.DLL
Sig[4].Name=Fault Module Version
Sig[4].Value=6.5.10.32
Sig[5].Name=Fault Module Timestamp
Sig[5].Value=471d25c7
Sig[6].Name=Exception Code
Sig[6].Value=c0000005
Sig[7].Name=Exception Offset
Sig[7].Value=00048ba2
DynamicSig[1].Name=OS Version
DynamicSig[1].Value=6.1.7601.2.1.0.256.4
DynamicSig[2].Name=Locale ID
DynamicSig[2].Value=1033
DynamicSig[22].Name=Additional Information 1
DynamicSig[22].Value=0a9e
DynamicSig[23].Name=Additional Information 2
DynamicSig[23].Value=0a9e372d3b4ad19135b953a78882e789
DynamicSig[24].Name=Additional Information 3
DynamicSig[24].Value=0a9e
DynamicSig[25].Name=Additional Information 4
DynamicSig[25].Value=0a9e372d3b4ad19135b953a78882e789
UI[2]=C:\Program Files\Rockwell Software\RSView Enterprise\SEGfxVBACli.exe
UI[3]=RSIVBA Module has stopped working
UI[4]=Windows can check online for a solution to the problem the next time you go online.
UI[5]=Check online for a solution and close the program
UI[6]=Check online for a solution later and close the program
UI[7]=Close the program
LoadedModule[0]=C:\Program Files\Rockwell Software\RSView Enterprise\SEGfxVBACli.exe
LoadedModule[1]=C:\windows\SYSTEM32\ntdll.dll
LoadedModule[2]=C:\windows\system32\kernel32.dll
LoadedModule[3]=C:\windows\system32\KERNELBASE.dll
LoadedModule[4]=C:\windows\system32\msi.dll
LoadedModule[5]=C:\windows\system32\msvcrt.dll
LoadedModule[6]=C:\windows\system32\ADVAPI32.dll
LoadedModule[7]=C:\windows\SYSTEM32\sechost.dll
LoadedModule[8]=C:\windows\system32\RPCRT4.dll
LoadedModule[9]=C:\windows\system32\USER32.dll
LoadedModule[10]=C:\windows\system32\GDI32.dll
LoadedModule[11]=C:\windows\system32\LPK.dll
LoadedModule[12]=C:\windows\system32\USP10.dll
LoadedModule[13]=C:\windows\system32\SHELL32.dll
LoadedModule[14]=C:\windows\system32\SHLWAPI.dll
LoadedModule[15]=C:\windows\system32\ole32.dll
LoadedModule[16]=C:\windows\system32\OLEAUT32.dll
LoadedModule[17]=C:\windows\WinSxS\x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.4940_none_50916076bcb9a742\MSVCR90.dll
LoadedModule[18]=C:\windows\WinSxS\x86_microsoft.vc90.atl_1fc8b3b9a1e18e3b_9.0.30729.4148_none_51ca66a2bbe76806\ATL90.DLL
LoadedModule[19]=C:\windows\WinSxS\x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.4940_none_50916076bcb9a742\MSVCP90.dll
LoadedModule[20]=C:\windows\system32\apphelp.dll
LoadedModule[21]=C:\windows\AppPatch\AcLayers.DLL
LoadedModule[22]=C:\windows\system32\SspiCli.dll
LoadedModule[23]=C:\windows\system32\USERENV.dll
LoadedModule[24]=C:\windows\system32\profapi.dll
LoadedModule[25]=C:\windows\system32\WINSPOOL.DRV
LoadedModule[26]=C:\windows\system32\MPR.dll
LoadedModule[27]=C:\windows\system32\IMM32.DLL
LoadedModule[28]=C:\windows\system32\MSCTF.dll
LoadedModule[29]=C:\windows\system32\CRYPTBASE.dll
LoadedModule[30]=C:\windows\system32\uxtheme.dll
LoadedModule[31]=C:\Program Files\Common Files\Rockwell\rsDbgUtils.dll
LoadedModule[32]=C:\Program Files\Common Files\Rockwell\DbgHelp.dll
LoadedModule[33]=C:\windows\system32\CLBCatQ.DLL
LoadedModule[34]=C:\windows\system32\CRYPTSP.dll
LoadedModule[35]=C:\windows\system32\rsaenh.dll
LoadedModule[36]=C:\windows\system32\RpcRtRemote.dll
LoadedModule[37]=C:\windows\system32\msiltcfg.dll
LoadedModule[38]=C:\windows\system32\VERSION.dll
LoadedModule[39]=C:\windows\system32\SFC.DLL
LoadedModule[40]=C:\windows\system32\sfc_os.DLL
LoadedModule[41]=C:\windows\system32\SXS.DLL
LoadedModule[42]=C:\Program Files\Common Files\Microsoft Shared\VBA\VBA6\apc65.dll
LoadedModule[43]=C:\windows\system32\dwmapi.dll
LoadedModule[44]=C:\Program Files\Rockwell Software\RSView Enterprise\SEGfxVBAPs.dll
LoadedModule[45]=C:\Program Files\Rockwell Software\RSView Enterprise\SEGfxVBAComPs.dll
LoadedModule[46]=C:\Program Files\Rockwell Software\RSView Enterprise\SEGfxRoiCli.dll
LoadedModule[47]=C:\Program Files\Common Files\Microsoft Shared\office11\mso.dll
LoadedModule[48]=C:\PROGRA~1\COMMON~1\MICROS~1\VBA\VBA6\VBE6.DLL
LoadedModule[49]=C:\Program Files\Common Files\Microsoft Shared\OFFICE11\gdiplus.dll
LoadedModule[50]=C:\windows\system32\WTSAPI32.DLL
LoadedModule[51]=C:\windows\system32\WINSTA.dll
LoadedModule[52]=C:\windows\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.7601.17514_none_41e6975e2bd6f2b2\Comctl32.dll
LoadedModule[53]=C:\PROGRA~1\COMMON~1\MICROS~1\VBA\VBA6\1033\VBE6INTL.DLL
LoadedModule[54]=C:\windows\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_5.82.7601.18201_none_ec80f00e8593ece5\COMCTL32.DLL
LoadedModule[55]=C:\windows\system32\riched20.dll
FriendlyEventName=Stopped working
ConsentKey=APPCRASH
AppName=RSIVBA Module
AppPath=C:\Program Files\Rockwell Software\RSView Enterprise\SEGfxVBACli.exe

此时,我通过添加以下关键 Windows 寄存器在我的开发 PC 上启用了应用程序崩溃日志(有关更多信息,请参见此处):

HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsWindows 错误 LocalDumps

我重新启动了我的开发电脑,然后我试图通过关闭和打开客户端几次来重现崩溃。客户端崩溃后,由于有了新密钥,我在以下路径中找到了文件 SEGfxVBACli.exe.10136.dmp 文件:%LOCALAPPDATA%/CrashDumps。我使用 Windbg 打开了这个文件,发现了一些有用的信息:

Microsoft (R) Windows Debugger Version 10.0.18317.1001 X86
Copyright (c) Microsoft Corporation. All rights reserved.


Loading Dump File [C:\Users\c264079\Desktop\SEGfxVBACli.exe.10136.dmp]
User Mini Dump File: Only registers, stack and portions of memory are available

Symbol search path is: srv*
Executable search path is: 
Windows 7 Version 7601 (Service Pack 1) MP (2 procs) Free x86 compatible
Product: WinNt, suite: SingleUserTS
Machine Name:
Debug session time: Fri Apr 12 14:19:13.000 2019 (UTC + 2:00)
System Uptime: not available
Process Uptime: 0 days 0:01:37.000
........................................................
Loading unloaded module list
......
This dump file has an exception of interest stored in it.
The stored exception information can be accessed via .ecxr.
(2798.27a0): Access violation - code c0000005 (first/second chance not available)
For analysis of this file, run !analyze -v
eax=00000000 ebx=0012dd04 ecx=00000400 edx=00000000 esi=00000002 edi=00000000
eip=774a70f4 esp=0012dcb4 ebp=0012dd50 iopl=0         nv up ei pl zr na pe nc
cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00000246
ntdll!KiFastSystemCallRet:
774a70f4 c3              ret
0:000> !analyze -v
*******************************************************************************
*                                                                             *
*                        Exception Analysis                                   *
*                                                                             *
*******************************************************************************


KEY_VALUES_STRING: 1

    Key  : AV.Dereference
    Value: NullPtr

    Key  : AV.Fault
    Value: Read

    Key  : Timeline.Process.Start.DeltaSec
    Value: 97


PROCESSES_ANALYSIS: 1

SERVICE_ANALYSIS: 1

STACKHASH_ANALYSIS: 1

TIMELINE_ANALYSIS: 1

Timeline: !analyze.Start
    Name: <blank>
    Time: 2019-04-12T12:50:57.499Z
    Diff: 1904499 mSec

Timeline: Dump.Current
    Name: <blank>
    Time: 2019-04-12T12:19:13.0Z
    Diff: 0 mSec

Timeline: Process.Start
    Name: <blank>
    Time: 2019-04-12T12:17:36.0Z
    Diff: 97000 mSec


DUMP_CLASS: 2

DUMP_QUALIFIER: 400

CONTEXT:  (.ecxr)
eax=00000000 ebx=00000000 ecx=003a9cd0 edx=00000030 esi=7598ad60 edi=00000000
eip=65048ba2 esp=0012e460 ebp=0012e4ec iopl=0         nv up ei pl zr na pe nc
cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00010246
VBE6+0x48ba2:
65048ba2 3b0c98          cmp     ecx,dword ptr [eax+ebx*4] ds:0023:00000000=????????
Resetting default scope

FAULTING_IP: 
VBE6+48ba2
65048ba2 3b0c98          cmp     ecx,dword ptr [eax+ebx*4]

EXCEPTION_RECORD:  (.exr -1)
ExceptionAddress: 65048ba2 (VBE6+0x00048ba2)
   ExceptionCode: c0000005 (Access violation)
  ExceptionFlags: 00000000
NumberParameters: 2
   Parameter[0]: 00000000
   Parameter[1]: 00000000
Attempt to read from address 00000000

DEFAULT_BUCKET_ID:  NULL_POINTER_READ

PROCESS_NAME:  SEGfxVBACli.exe

FOLLOWUP_IP: 
VBE6+48ba2
65048ba2 3b0c98          cmp     ecx,dword ptr [eax+ebx*4]

READ_ADDRESS:  00000000 

ERROR_CODE: (NTSTATUS) 0xc0000005 - The instruction at 0x%p referenced memory at 0x%p. The memory could not be %s.

EXCEPTION_CODE: (NTSTATUS) 0xc0000005 - The instruction at 0x%p referenced memory at 0x%p. The memory could not be %s.

EXCEPTION_CODE_STR:  c0000005

EXCEPTION_PARAMETER1:  00000000

EXCEPTION_PARAMETER2:  00000000

WATSON_BKT_PROCSTAMP:  50e6de15

WATSON_BKT_PROCVER:  7.0.13.0

WATSON_BKT_MODULE:  VBE6.DLL

WATSON_BKT_MODSTAMP:  471d25c7

WATSON_BKT_MODOFFSET:  48ba2

WATSON_BKT_MODVER:  6.5.10.32

BUILD_VERSION_STRING:  6.1.7601.18409 (win7sp1_gdr.140303-2144)

MODLIST_WITH_TSCHKSUM_HASH:  7519ad49d50c93fe826d48b825b7f6a3f5f3a5f1

MODLIST_SHA1_HASH:  1fa60f616645a1dc8e31d4ee0210404172dd8bbf

NTGLOBALFLAG:  0

APPLICATION_VERIFIER_FLAGS:  0

DUMP_FLAGS:  94

DUMP_TYPE:  1

ANALYSIS_SESSION_HOST:  HYBRID-PVCR502N

ANALYSIS_SESSION_TIME:  04-12-2019 14:50:57.0499

ANALYSIS_VERSION: 10.0.18317.1001 x86fre

THREAD_ATTRIBUTES: 
OS_LOCALE:  ENU

BUGCHECK_STR:  APPLICATION_FAULT_NULL_POINTER_READ_INVALID_POINTER_READ

PRIMARY_PROBLEM_CLASS:  APPLICATION_FAULT

PROBLEM_CLASSES: 

    ID:     [0n313]
    Type:   [@ACCESS_VIOLATION]
    Class:  Addendum
    Scope:  BUCKET_ID
    Name:   Omit
    Data:   Omit
    PID:    [Unspecified]
    TID:    [0x27a0]
    Frame:  [0] : VBE6

    ID:     [0n285]
    Type:   [INVALID_POINTER_READ]
    Class:  Primary
    Scope:  BUCKET_ID
    Name:   Add
    Data:   Omit
    PID:    [Unspecified]
    TID:    [0x27a0]
    Frame:  [0] : VBE6

    ID:     [0n300]
    Type:   [NULL_POINTER_READ]
    Class:  Primary
    Scope:  DEFAULT_BUCKET_ID (Failure Bucket ID prefix)
            BUCKET_ID
    Name:   Add
    Data:   Omit
    PID:    [0x2798]
    TID:    [0x27a0]
    Frame:  [0] : VBE6

LAST_CONTROL_TRANSFER:  from 65042b40 to 65048ba2

STACK_TEXT:  
WARNING: Stack unwind information not available. Following frames may be wrong.
0012e4ec 65042b40 0012e580 02d73cd0 02d74428 VBE6+0x48ba2
0012e5c8 775b63a4 0012e5e0 00000000 00000000 VBE6+0x42b40
0012e5f0 775b6276 001609ab 0012e630 775b625c msctf!InternalIMCCLock::_UnlockIMCC+0x1b
0012e5fc 775b625c 00000000 0012e6ac 00000113 msctf!IMCLock::_UnlockIMC+0xd
0012e620 75996445 00000102 7c903014 0012e65c msctf!IMCLock::~IMCLock+0x19
0012e630 7599c4e7 003e093e 00001086 00000000 user32!NtUserPeekMessage+0xc
0012e65c 7599c5e7 65099750 003e093e 00001086 user32!InternalCallWinProc+0x23
0012e6d4 7599cc19 00000000 65099750 003e093e user32!UserCallWinProcCheckWow+0x14b
0012e734 7599cc70 65099750 00000000 75992b4d user32!DispatchMessageWorker+0x35e
0012e744 0041f82f 0012e768 0012e7bc 003f7c58 user32!DispatchMessageW+0xf
0012e74c 0012e7bc 003f7c58 0012e7c0 00000000 SEGfxVBACli+0x1f82f
0012e768 00000000 00000000 00000000 00054604 0x12e7bc


THREAD_SHA1_HASH_MOD_FUNC:  4a6e6f8baf4776e223752f735125cfd7390b30f6

THREAD_SHA1_HASH_MOD_FUNC_OFFSET:  fa693dbd1eac843a3924e4c82ce5d8d2be28b6a9

THREAD_SHA1_HASH_MOD:  04a56d9ed1b188a6cdecf8d621467fac390273f4

FAULT_INSTR_CODE:  75980c3b

SYMBOL_STACK_INDEX:  0

SYMBOL_NAME:  VBE6+48ba2

FOLLOWUP_NAME:  MachineOwner

MODULE_NAME: VBE6

IMAGE_NAME:  VBE6.DLL

DEBUG_FLR_IMAGE_TIMESTAMP:  471d25c7

STACK_COMMAND:  ~0s ; .ecxr ; kb

FAILURE_BUCKET_ID:  NULL_POINTER_READ_c0000005_VBE6.DLL!Unknown

BUCKET_ID:  APPLICATION_FAULT_NULL_POINTER_READ_INVALID_POINTER_READ_VBE6+48ba2

FAILURE_EXCEPTION_CODE:  c0000005

FAILURE_IMAGE_NAME:  VBE6.DLL

BUCKET_ID_IMAGE_STR:  VBE6.DLL

FAILURE_MODULE_NAME:  VBE6

BUCKET_ID_MODULE_STR:  VBE6

FAILURE_FUNCTION_NAME:  Unknown

BUCKET_ID_FUNCTION_STR:  Unknown

BUCKET_ID_OFFSET:  48ba2

BUCKET_ID_MODTIMEDATESTAMP:  471d25c7

BUCKET_ID_MODCHECKSUM:  281c17

BUCKET_ID_MODVER_STR:  6.5.10.32

BUCKET_ID_PREFIX_STR:  APPLICATION_FAULT_NULL_POINTER_READ_INVALID_POINTER_READ_

FAILURE_PROBLEM_CLASS:  APPLICATION_FAULT

FAILURE_SYMBOL_NAME:  VBE6.DLL!Unknown

WATSON_STAGEONE_URL:  http://watson.microsoft.com/StageOne/SEGfxVBACli.exe/7.0.13.0/50e6de15/VBE6.DLL/6.5.10.32/471d25c7/c0000005/00048ba2.htm?Retriage=1

TARGET_TIME:  2019-04-12T12:19:13.000Z

OSBUILD:  7601

OSSERVICEPACK:  18409

SERVICEPACK_NUMBER: 0

OS_REVISION: 0

SUITE_MASK:  256

PRODUCT_TYPE:  1

OSPLATFORM_TYPE:  x86

OSNAME:  Windows 7

OSEDITION:  Windows 7 WinNt (Service Pack 1) SingleUserTS

USER_LCID:  0

OSBUILD_TIMESTAMP:  2014-03-04 10:16:37

BUILDDATESTAMP_STR:  140303-2144

BUILDLAB_STR:  win7sp1_gdr

BUILDOSVER_STR:  6.1.7601.18409

ANALYSIS_SESSION_ELAPSED_TIME:  28ba2

ANALYSIS_SOURCE:  UM

FAILURE_ID_HASH_STRING:  um:null_pointer_read_c0000005_vbe6.dll!unknown

FAILURE_ID_HASH:  {2bab7801-cedf-2d01-08e7-be358bc1f51e}

Followup:     MachineOwner
---------

我在上面报告的文件中发现的有趣信息是:

ERROR_CODE: (NTSTATUS) 0xc0000005 - 0x%p 处的指令引用了 0x%p 处的内存。内存不能是 %s。

最后的考虑

所以,经过上面的分析,客户端启动时RSIVBA模块的零星崩溃似乎是由于试图引用非法内存区域的指令。奇怪的是,这种情况偶尔会发生......

我试过无法弄清楚哪个指令会产生这个错误。有人遇到过这个问题吗?

标签: vbacrashscada

解决方案


经过几天的挣扎,我终于找到了问题的根源!现在我将解释导致问题的原因。如果您对 FactorkTalk View Studio (FTV) 有一些了解会更容易,但我会在解释过程中尽量笼统,因为我认为即使在其他集成了 VBA 的系统上也可能发生这种错误。

在 FTV 上,您可以创建一个 HMI 服务器,其中包含称为“显示器”的项目,这些项目可以显示给通过 Factory Talk View Client (FTVc) 访问 HMI 的用户。

每个显示都有自己的 VBA 模块,当显示显示时,可以在 VBA 端处理的以下事件将按此顺序发生:

  1. Application_DisplayLoad
  2. Display_Load
  3. Display_AnimationStart
  4. 显示_激活

在我的一个显示器中,在它的 Display_Load 事件中,我正在执行一些对象初始化,并查看 Rockwell 对 Display_Load 事件的看法:

评论

  1. 当显示没有动画时,ActiveX 控件将不会被激活并且与它们的交互可能会受到限制。
  2. 当显示未设置动画时,不允许对 Graphics 对象进行属性写入和方法调用,这将导致引发错误。

尝试猜测...在 Display_Load 中,我正在编写 Graphics 对象的属性...所以我只是将我的代码移动到事件 Display_AnimationStart 中,因为在那里执行的代码肯定会找到正确激活的所有图形对象。看看 Rockwell 对 Display_AnimationStart 事件的评价:

评论

  1. 此事件在显示中的所有元素都被激活后发生。此时,您可以读取和写入元素属性并调用元素方法。

现在崩溃不再发生。


推荐阅读