了解系统变量

简介

本节介绍实现系统变量的方式。系统变量:

o使您可以访问一般系统信息、执行系统诊断以及通过命令进行简单操作。

o是符合 IEC 61131-3 定义和命名约定的结构化变量。您可以通过 IEC 符号名称 PLC_GVL 访问系统变量。其中一些 PLC_GVL 变量是只读变量(例如 PLC_R),另有一些变量是读/写变量(例如 PLC_W)。

o会自动声明为全局变量。这些变量的作用范围是整个系统,它们可以在任何任务中通过任何程序组织单元 (POU) 进行访问。

命名约定

系统变量的标识方法如下:

o表示系统变量类别的结构名称。例如,PLC_R 表示用于控制器诊断的只读变量的结构名称。

o一组标识变量用途的组件名称。例如,i_wVendorID 表示控制器的供应商 ID

访问系统变量时,您可以键入变量的结构名称,然后再输入组件名称。

下面是一个实现系统变量的示例:

VAR
   myCtr_Serial : DWORD;
   myCtr_ID : DWORD;
   myCtr_FramesRx : UDINT;
END_VAR

myCtr_Serial := PLC_GVL.PLC_R.i_dwSerialNumber;
myCtr_ID := PLC_GVL.PLC.R.i_wVendorID;
myCtr_FramesRx := SERIAL_R[0].i_udiFramesReceivedOK

注意: 上面示例中系统变量的完全限定名称为 PLC_GVL.PLC.R。在使用输入助手声明变量时,PLC_GVL 是隐式的,但是也可以进行完整输入。优秀编程实践通常规定在声明中使用完全限定的变量名称。

系统变量位置

在对控制器进行编程时,可定义两种要使用的系统变量:

o定位变量

o非定位变量

定位变量:

o可在 RUNNING 和 STOPPED 状态下,通过 Modbus TCP、Modbus 串行和 EtherNet/IP 请求访问这些变量。

o根据前面介绍的 structure_name.component_name 约定在 EcoStruxure Machine Expert 程序中使用。可以直接访问从 0 到 59999 的 %MW 地址。大于此地址的地址将被 EcoStruxure Machine Expert 视为超出范围,只能通过 structure_name.component_name 约定进行访问。

非定位变量:

o在 %MW 区域中没有实际位置.

o不能通过任何现场总线或网络请求访问这些变量,除非在重新定位表中找到它们,也只有这样才能在 RUNNING 和 STOPPED 状态中访问它们。重新定位表使用以下动态 %MW 区域:

o%MW60200 到 %MW61999,用于只读变量

o%MW62200 到 %MW63999,用于读/写变量

o根据前面介绍的 structure_name.component_name 约定在 EcoStruxure Machine Expert 程序中使用。