Snapshot Function

<< 点击显示目录 >>

主页  PVI通信 > PVI帮助信息 > PVI base system > 诊断 >

Snapshot Function

快照功能是诊断 PVI 管理器 PVI 对象运行状态的一个有用工具  。

快照功能可以通过 PVI 监控器(快照功能)或从 PVI 应用程序(访问类型 POBJ_ACC_SNAPSHOT)触发。在这两种情况下,所有 PVI 对象的列表以及它们的状态和所有注册客户的文本(ASCII)列表被写入一个文件。当使用访问类型 POBJ_ACC_SNAPSHOT 时,你也可以只写一个较小的 PVI 对象组。

快照文件总是显示出在触发该功能时对象情况的瞬时图像。在执行快照功能时,PVI管理器中的所有其他功能都被封锁。这保证了快照数据的一致性,但当PVI管理器处理大量数据时,也可能导致巨大的时间变化。

快照文件的内容可以用任何文本编辑器或  集成在PVI Monitor中快照查看器查看和分析  。

快照文件的结构

快照信息分为5个部分。

1.一般PVI信息

2.所有注册的 通信实例 (客户端)的列表

3.链接对象的列表

4.进程对象的列表

5.服务对象列表

快照信息被分为几行。根据该行的第一个字符,该行的其余部分被解释如下。

Character

说明

'*'

带有一般PVI信息的评论行

'>'

快照信息的时间戳(日期和时间)。

':'

表示一个列表条目的开始

' '

一个空格字符表示一个列表条目的下一行

在每个列表条目的开头是一个代码,在": "字符之后是一个识别号(ID)。这个ID号在一个列表中是唯一的,并显示为一个十六进制数字。

ID

说明

CId

注册通信实例(客户端)的条目

C

链接对象的条目

P

进程对象的条目

S

一个服务对象的条目

单个对象的分配也以ID号显示。几个过程对象可以分配给一个服务对象,而几个链接对象可以分配给一个过程对象。下图显示了负责对象分配的代码。

pvisnapshotobjectchain

在快照文件中使用的ID号和在 PVI数据记录器中  由主要组件使用的ID号  是相同的。

所有注册的通信实例的列表、链接对象的列表和过程对象的列表对用户来说都是特别重要的。

General PVI information

包含一般PVI信息的注释行在快照文件的开头输出。第一行包含关于操作系统平台和PVI管理器的系统运行模式的信息。第二行显示PVI Manager的文件版本和产品版本。接下来的几行包含关于PVI管理器属性的设置信息,只要它们与默认设置不同。

Communication instance (client) entry

Syntax:

:CId=<ID> Name="<Name>" ComType=<Num> ProcID=<Num> PriorClass=<Num> [Platform=<Platform>] COMT=<Sec> RETR=<Sec> PT=<Sec> LM=<Cnt>

Parameter:

ID

说明

CId

通信实例(客户端)的ID号

Name

应用进程的名称

ComType

通信类型。0 ...本地,1 ...远程。

ProcID

用户进程的ID,十六进制格式

PriorClass

用户进程的优先级

Platform

用户进程运行的平台

COMT

用于通信超时的设置(秒)(COMT初始化参数或 PviInitialize 或PviXInitialize函数中的 "Timeout "参数

RETR

用于PVICOM用户信息重试时间的设置(秒)(RETR初始化参数或PviInitialize或PviXInitialize函数中的 "重试时间 "参数)。

PT

用于进程超时的设置,单位为秒(PviInitialize或PviXInitialize函数中的PT初始化参数)。

LM

用于限制用户信息的设置(PviInitialize或PviXInitialize函数中的LM初始化参数)

Example:

:CId=599a0005 Name="PviDemo.exe" ComType=0 ProcID=fff2e8ab PriorClass=32 COMT=10 RETR=0 PT=0 LM=1

Link object entry

Syntax:

:C=<ID> P=<ID> CId=<ID>

 Desc: <LinkObjectDescription>

 State: <Act/Idl> Msg=(<Msg>) [E=<Code>] [LastE=<Code>] Ctr=<State> DCond=<State>

Parameter:

ID

说明

C

链接对象的ID号

P

指定的进程对象的ID号

CId

创建链接对象的通信实例(客户端)的ID号

Desc:

具有当前链接对象属性设置的行的代码。这里输出的参数与 链接对象描述的参数一致

State:

具有链接对象状态的行的代码

<Act/Idl>

当前的活动状态。"Act":活动,"Idl":不活动(闲置)。

Msg

分配给链接对象用户信息 ,以发出事件数据信号

Windows消息。W:<WindowHandle>,<MessageNumber>, <MessageParameter>

信息功能。F:<MessageHandle>, <MessageParameter>

带数据的回调。CBD:<CallbackPointer>, < MessageParameter>

没有数据的回调。CB:<CallbackPointer>,<MessageParameter>

异步回调。CBA:<CallbackPointer>, <MessageParameter>

如果没有定义用户信息,则输出 "Msg=(NULL)"。

E

LastE

如果链接对象处于错误状态,那么错误代码将以 "E=<Code>"输出。"LastE=<Code>"显示最后发生的错误。链接对象在此不再处于错误状态。

Ctr

DCond

这显示了链接对象的额外内部操作模式。这些操作模式不能由用户解释。

例子:

:C=0091 P=00e11f60 CId=599a0005
Desc: EV=de LT=prc VT=string VL=80 VN=1
State: Act Msg=(W:000009a0,1026,1001) LastE=0 Ctr=12 DCond=20

Process object entry

语法:

:P=<ID>(<HID>) S=<ID> Pn=<PathName> OT=<Type>

 Desc: <ProcessObjectDescription>

 State: <Act/Idl>,<WState>[,Temp] [E=<Code>] Ctr=<State> DCond=<State>

Parameter:

ID

说明

P

进程对象的ID号 。在对象结构中更高层次的过程对象的ID号在括号中输出。

S

分配的 服务对象的ID号 。如果没有为进程对象分配服务对象(例如,内部进程对象),则输出ID号0(空)。

Pn

流程对象的路径名称

OT

进程对象的对象类型

Desc:

具有当前流程对象属性设置的行代码。这里输出的参数与 过程对象描述的参数相对应

State:

流程对象状态规格的行的ID。

<Act/Idl>

当前的活动状态。"Act":活动,"Idl":不活动(闲置)。

<WState>

当前的运行状态。"NotRdy":未就绪,"Rdy":就绪,"Err":错误。以下括号内的数值以二进制格式显示运行状态。

Temp

这显示了一个临时的进程对象。

E

如果进程对象处于错误状态,那么错误代码将以 "E=<Code>"输出。

Ctr

DCond

这显示进程对象的额外内部操作模式。这些操作模式不能由用户解释。

Example:

:P=00e11f60(00e10180) S=0082 Pn=@Pvi/LNINA2/COM2/CPU/Pvar1 OT=Pvar
Desc: CD="PV1" AT=rw RF=250 VT=i32 VL=4 VN=1
State: Act,Rdy(1),Temp Ctr=03 DCond=21

服务对象条目

语法 :

:S=<ID>(<HID>) L=<ID> Pn=<PathName> OT=<Type>

 State: <Act/Idl>,<WState> [E=<Code>] [AT=<Mask>] [RF=<Num>] [Ev=<Mask>] [CdP=<ID>] [FrP=<ID>] [HyP=<ID>] Ctr=<State> PrL=<State> StL=<State>

Parameter:

ID

说明

S

服务对象的ID号 。对象结构中更高层次的服务对象的ID号在括号中输出。

L

行内指定对象的识别号 此ID号用于行的PVI记录器输出。

Pn

服务对象的路径名称。与进程对象不同,这里的路径名称是由连接名称形成的。

OT

服务对象的对象类型

State:

关于服务对象状态规格的行的ID

<Act/Idl>

当前的活动状态。"Act":活动,"Idl":不活动(闲置)。

<WState>

当前的运行状态。"NotRdy":未就绪,"Rdy":就绪,"Err":错误。以下括号内的数值以二进制格式显示工作状态。

E

如果服务对象处于错误状态,那么错误代码将以 "E=<Code>"输出。

AT

显示服务对象的对象属性(只针对变量对象)。

"r":允许读取访问

"w":允许写访问

"e":PLC事件操作。

RF

被用于服务对象的刷新时间,单位为ms(仅适用于变量对象)

Ev

行中事件的启用掩码。

CdP

连接描述的过程对象的识别号

FrP

数据格式的过程对象的识别号(仅适用于可变对象)

HyP

滞后的过程对象识别码(仅适用于可变对象)。

Ctr

PrL

StL

这显示了服务对象的额外内部操作模式。这些操作模式不能由用户解释。

例子:

:S=0082(0081) L=016b0360 Pn=lnina2/com2/null/test/PV1 OT=Pvar
 State: Act,Rdy(1) AT=rw RF=250 CdP=00e11f60 FrP=00e11f60 Ctr=9e PrL=07 StL=02