组态步骤
1. 在 SIMATIC Manager 中插入一个FB功能块,双击FB1打开此功能块。 2. 在功能块FB1中新建结构变量aaa,然后在此结构变量中建立三个元素为a1、a2、a3。
 图1 建立结构变量
3. 在 FB1 中选择结构变量aaa,单击右键打开 aaa 的关联菜单。打开 aaa 的 “Object Properties”。跳转到 “Attributes”标签,输入系统属性 “S7_m_c”。输入值“true”。单击 “OK”保存设置。
 图2 组态结构变量属性
注意:在“Attributes”标签中,可以看到一个系统属性 “S7_xm_c”,此属性在普通的OS项目中没有任何意义,此功能是针对于PCS7项目增加的功能。
 图3 结构变量属性
4. 在 SIMATIC Manager中创建一个OB1功能块,双击打开OB1,然后在程序中调用FB1并且设置背景数据块为DB1。
 图4 FB1调用程序
5. 在SIMATIC Manager 中选择 DB1,单击右键打开 DB1 的关联菜单。打开 DB1 的 “Object Properties”。跳转到 “General – Part1” 标签,在“Symbolic Name”中输入ddd并点击“OK”保存设置。
 图5 DB1符号名设置
6. 在SIMATIC Manager 中选择 DB1,单击右键打开 DB1 的关联菜单。通过 “Special Object Properties > Operator Control and Monitoring...” 打开 DB 的 OC&M 属性。启用 “Operator Control and Monitoring”选项框并单击 “Save”保存设置。
 图6 DB1 OC&M设置
7. 在 SIMATIC Manager 中选择 DB1,单击右键打开 DB1 的关联菜单。打开 DB 的 “Object Properties”。跳转到 “Attributes” 标签,输入系统属性 “S7_m_c”。输入值 “true”。单击 “OK”保存设置。
 图7 DB1 Attributes设置
8. 在 SIMATIC Manager 中选择 OS站,单击右键打开 OS站 的关联菜单。打开 OS站 的 “Compile”,点击“Next”打开项目选择界面,选择要关联的plc程序如下图,再点击“Next”两次,最后点击“Compile”完成项目编译。
 图8 PLC程序选择
9. 在 SIMATIC Manager 中打开 OS项目,然后在WinCC项目树中展开结构变量,可以看到PLC程序中的FB1已经被编译过来了。

图9 结构变量
10. 在WinCC变量管理器“SIMATIC S7 PROTOCOL SUITE—TCP/IP”下可以看到编译过来的S7连接,在S7连接里可以看到编译过来的FB1中的结构变量。

图10 编译过来的结构变量
声 明 目前PLC程序块中的复杂数据类型的编译功能,只支持结构变量的编译,而数组和UDT数据类型目前还不支持,因为在数组和UDT类型变量的属性中没有“S7_m_c”这个参数,所以无法进行编译。
 图11 数组变量属性参数
 图12 UDT变量属性参数
|