本节介绍实现系统变量的方式。系统变量:
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可在 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 程序中使用。