在项目管理器的“设备设置 >设备设置 > 运行系统服务”中,勾选复选框
Sm@rtAccess: Web 服务(SOAP)。
Fig. 01
注意:
| 所需的授权:WinCC flexible / Sm@rtAccess for Panel | |
| 2 | 操作面板的设置: 1.建立以太网连接: 关于如何在本地网络中集成操作面板,请参阅条目 ID: 13336639 2.读取/修改设备名称: 打开操作面板上的 “控制面板”。 在 “System > Device Name”中读取/修改设备名称。 例如,将名称修改为 “MyMP277”。 |
| 3 | PC 设置: 通过 Web 服务( SOAP )访问 Windows CE 操作面板的数据,仅仅应用于“name resolution(命名解析)”。 需要进行以下设置。 适用于 Imhosts 文件: 1.打开 Imhosts 文件 (例如,使用记事本或 Word文档)。 在 C:\\WINDOWS\\System32\\drivers\\etc 中可以找到 Imhosts 文件。 2.在 Imhosts 文件中输入面板的 IP 地址和名称(设备名称)。 在本示例中为 “192.168.0.210 MyMP277” 该条目确保根据操作面板的 IP 地址和名称,PC 可以在网络中确切地找到或指定操作面板。 |
Fig. 02
这样就完成了 PC 上的网络设置。
注意:
lmhosts 文件经常作为 lmhosts.sam 存在,“.sam”代表 sample。为了 Windows 能够识别这个文件,必须改变后缀“.sam”。否则 Windows 将忽略这个文件。
| 4 | 在 Excel 模板的设置: 1.在 Excel 模板中,在“Device Name”下输入操作面板的名称。 在本示例中为 “MyMP277” (并不是操作面板的 IP 地址)。 2.读取变量的值 : 在“Tag name”域中,输入带引号的变量名称 "..." - 例如 "Tag_01" 。 3.将值写入变量: 在“Tag name”域中,可以直接输入变量的名称 - 不需要添加引号 ("...") - - 例如 Tag_02 |
Fig. 03
4.点击“Execute GetValue” 按钮, 相应的变量值显示在“Return value”域中。
如果连接存在问题, 消息 “Error-Runtime is offline” 显示在域中。
注意:
通过Excel的方式并不支持直接访问数组变量中的元素。
注意:
Excel 模板“Soap-Calls.xls”包含一段脚本。
可以在位于“工具 > 宏 > Visual Basic 编辑器”的 Excel 编辑器中打开脚本,并且相应地编辑脚本(例如,添加更多的 IO 域等)。
| 5 | 当使用子文件夹时的特定点: 如果在WinCC flexible组态时,将变量创建在子文件夹下,那么必须在”Excel SOAP“模板中指定该路径, 因为对于“读取变量值”和“写入变量值”的输入稍有区别。 读取变量值 : "路径名称\\\变量名称" (双反斜线 " \\\\ ") 写入变量值: "路径名称\\\变量名称" (单反斜线 " \\ ") |
| 6 | 扩展 Excel 模板: 附带的 Excel 模板包含一个脚本。该脚本用于通过预定义的域读取面板的值或者在操作面板之间传输数值。 Get: Field "D7" => 输入域。 变量名,其值将被读出。 Field "G7" => 输出域。 读出的变量值。 Write: Field "L7" => 输入域。 变量名,其值将被写入。 Field "N7" => 输出域。 写入的变量值。 如果想要组态其它的“ IO 域” ,以读取面板的值或者与操作面板之间传输数值,或者希望改变“按钮”的排列,需要相应地改变脚本或接口。 扩展脚本: 移动按钮。 1.通过 Excel 菜单条打开“Visual Basic”视图。 “视图 > 工具栏 > Visual Basic”。 2.点击“设计模式”图标 。 3.选择想移动或编辑的按钮。 4.右击相应的按钮,例如,打开它的属性,改变名称。 5.再次点击“设计模式”图标,以关闭设计模式。 为 Excel 工作表组态更多的“IO域”。 1.通过 Excel 菜单条打开“Visual Basic”视图。 “视图 > 工具栏 > Visual Basic”。 2.点击“Visual Basic 编辑器”图标 。 或者通过“工具 > 宏 > Visual Basic 编辑器”打开编辑器。 3.通过双击打开第一个工作表。 本例中为“Sheet1” ( Sheet1 )。 4.脚本有4个区域(“four areas”),每一个带有自己的标题,可以进行如下的扩展。 Note: 在 Visual Basic 编辑器的菜单栏中,显示了当前所在的行和列(例如, "L 27, C1")。 标题: Definition of SOAP/WSDL 此处,不需要做任何改变。 标题: Button "Execute GetValue" 拷贝域 "L 27, C 1 -> L 34, C 1" ('组 "GetValue" 针对于一个变量 **********) 并且在那块区域后粘贴拷贝的区域。然后指定相应的新的单元格, 例如, "D7" -> "D9" 等。 标题:Button "Execute SetValue" 拷贝域 "L 63, C 1 -> L 75, C 1" ('组 "SetValue" 针对于一个变量 **********) 并且在那块区域后粘贴拷贝的区域。然后指定相应的新的单元格, 例如,"L7" -> "L9" 等。 标题:Button "Clear response fields" 拷贝行 "L 100, C 1" (Worksheets("Sheet1").Range("G7").Value = "") 并且在那行后粘贴拷贝的行。然后指定相应的新单元格, 例如,"G7" -> "L9" 等,它的内容将被删除。 不需要关闭 Visual Basic 编辑器,即可测试并立即看到运行的结果。 下图显示了标记在脚本中欲拷贝的域。标记为"red"的显示指示光标位于该行。 |