寄存记录器点

启用应用程序记录器

如要使用应用程序记录器,必须在项目中将其激活。为此,必须在程序开始时,调用一次全局接口 GVL.G_ifApplicationlogger 的方法 RegisterCommunicationService

可以通过将对象应用程序记录器添加到设备树(经典导航器视图)或添加到应用程序树导航器视图),来经由 EcoStruxure Machine Expert 读取记录器消息。

寄存记录器点

应用程序记录器的工作方式略不同于其他记录器。无法直接将记录器消息提供到应用程序记录器。

相反,应用程序记录器收集提供到在整个项目上分布的记录器点的记录器消息。因此,消息可以被简化,因为它们被提供时的上下文更清晰。

如果在您的项目中有(比如)两个相同的 POU,那么您必须提供与模块的哪个实例发送了记录器消息有关的信息,以便清楚发生了什么。利用应用程序记录器,你可以将记录器点分配到每个 POU。由此就清楚在发送了消息(如“产品不可用”)时哪个程序部分受到了影响。

记录器点是功能块 FB_LoggerPoint 的实例。如要通过记录器点发送记录器消息,必须先将记录器点寄存到应用程序记录器。这通过调用一次 FB_LoggerPoint 的方法 RegisterLoggerPoint 来实现。此方法需要以下信息作为输入:

1. i_ifParent:此输入指定必须寄存记录器点的记录器对象。

第一个记录器点必须寄存在由全局接口 GVL.G_ifApplicationLogger 表示的应用程序记录器下方。下一个记录器点可以寄存在此应用程序记录器或其他记录器点下方以便生成记录器点树。

请参阅“生成记录器点树”。

2. i_sName:此输入指定记录器点的名称。

通过此记录器点发送的某个记录器消息都连接到此记录器点。记录器点必须表示机器或项目的某个部分或者表示某个特殊功能。为了避免混淆,记录器点的名称在项目中必须是唯一的。

3. i_sType:此输入指定记录器点表示的机器部分的类型(比如 AxisModule、FillingModule)。此信息必须在这里定义,因为记录器点的名称并不始终提供这一信息。

作为 Schneider Electric 库的组成部分的记录器点设置它们所表示的功能块的名称。

4. i_sSource::此输入指定程序部分来自哪里。例如,哪个库包含提供记录器消息的功能块。这一信息可用来识别非唯一性信息,如库的枚举 ET_DiagExt

作为 Schneider Electric 库的组成部分的记录器点设置它们所属的库的命名空间。

以下示例为模板演示项目的 MainMachine 寄存记录器点:

fbLoggerPointMainMachine.RegisterLoggerPoint(   i_ifParent := APL.G_ifApplicationLogger,
                                                i_sName := 'Machine name',
                                                i_sType := 'MainMachine',
                                                i_sSource := 'Project',
                                                q_etDiag => ,
                                                q_etDiagExt => );

生成记录器点树

随着项目增大,项目的内部结构也变得更为复杂。为了说明记录内部的项目结构,应用程序记录器让您能够将一个或多个记录器点寄存在另一个记录器点下方。这样就能够生成表示项目结构的记录器点树。

记录器点只能寄存在已寄存的记录器点下方。如要将新记录器点寄存在另一个记录器点下方,必须调用方法 RegisterLoggerPoint。通过在输入 i_ifParent 处调用此方法,必须给出已寄存的记录器点以用于寄存必须寄存在其下方的记录器点。

以下示例将用于模板演示项目的 Alpha 模块的记录器点寄存在已寄存的 MainMachine 记录器点下方。

fbLoggerPointAlpha.RegisterLoggerPoint(   i_ifParent := fbLoggerPointMainMachine,
                                          i_sName := 'Machine name',
                                          i_sType := 'MainMachine',
                                          i_sSource := 'Project',
                                          q_etDiag => ,
                                          q_etDiagExt => );

项目的已寄存的记录器点必须表示项目结构。

G-SE-0064741.2.gif-high.gif

 

 

寄存 Schneider Electric 库功能块内部的记录器点

如果功能块应支持记录器消息,那么它便会创建 FB_LoggerPoint 的实例,从而经由该实例发送记录器消息。如要寄存记录器点实例,功能块应支持 RegisterLoggerPoint 方法。此方法与 FB_LoggerPoint 的 RegisterLoggerPoint 方法相同,但不支持输入 i_sType 和 i_sSource

在使用 Schneider Electric 库功能块时,根据功能块的类型,不可用的输入 i_sType 和 i_sSource 被设置为固定值。