PCS 7中如何自动上传变量到WinCC| PCS 7专栏
作者简介:来自西门子DI PA AE 一名水平一般的技术工程师
PLC工程师在使用Step7+WinCC编程时,“勤劳”的工程师手动在WinCC变量管理器中创建需要监视和控制的变量,聪明的工程师会使用变量导入导出工具,最“懒”的工程师会使用AS-OS-Enginnering。
—————————————————————————————————————————————————
AS-OS-Engineering
PCS 7在安装时已经自动集成了AS-OS-Engineering,该软件比较常用的功能之一就是通过OS编译的方式,把AS变量和消息上传到WinCC对应的列表中,大大的减少了工程师在WinCC上简单重复又低级的手动去创建变量和消息的工作。另外一个常见的功能就是生成经典的PCS 7风格上位机操作界面。非PCS 7环境下,Step 7和WinCC单独安装后,再单独安装AS-OS-Engineering,也支持自动上传变量和消息。

图1 PCS 7集成安装AS-OS-Engineering
S7_m_c 属性
有了AS-OS-Engineering组件后,PCS 7中FB的接口参数如果需要上传,只需要添加S7_m_c属性即可,该属性中m代表monitor(监视),c是control(控制)的缩写,实则就是在描述这个变量是需要被控制和监视,需要被上传添加至变量管理器列表。
上传FB背景参数
CFC中的FB只有OCM属性被激活后,才能上传变量到WinCC,需要激活块的OCM属性,首先为块添加S7_m_c系统属性,然后为需要上传的参数再分别添加S7_m_c属性加以区分哪些变量需要上传的。

图2 VlvL功能块的OCM已经被激活
—————————————————————————————————————————————————
1. 为块添加S7_m_c属性,其SCL语法
FUNCTION_BLOCK VlvL
TITLE ='Valve - Large'
{S7_m_c:='true'
}
AUTHOR: AdvLib90
NAME: VlvL
VERSION: '5.2'
FAMILY: Drives
KNOW_HOW_PROTECT
2. 为参数Ctrl/ SimOn添加S7_m_c属性,其SCL语法
VAR_INPUT
SimOn {S7_m_c:='true'
} : BOOL; // Simulation on/off
END_VAR
结构体上传其中的元素需要使用S7_xm_c属性,其语法如下:
VAR_OUTPUT
Ctrl {
S7_m_c:='true';
S7_xm_c :='Value,true;';
} :STRUCT
Value : BOOL: =false; // Value
ST : BYTE:=16#80; // Signal Status
END_STRUCT; // Control output (dependent from SafePos)
END_VAR
—————————————————————————————————————————————————
FB的WinCC属性
右键CFC中的"VlvL"功能块,选择对象属性,点击图2的OCM按钮,新的对话框中展示了该FB中需要被上传的参数列表,OS编译后,FB对应的背景DB变量会自动生成在WinCC变量管理器列表中。

图3 AS Block的WinCC属性

图4 WinCC变量管理器列表