经典 WinCC 一个画面监控多个设备及趋势图实现指南
经典wincc一个画面监控多个设备,(画面中可监视趋势图)技术指导,代写代码,c,或vbs均可。 可提供详细操作笔记(笔记含可复制的脚本)
在工业自动化领域,经典 WinCC 是一款非常强大的监控软件。很多时候,我们需要在一个画面中监控多个设备,并且实时查看它们的趋势图,以便更好地掌握设备运行状态。今天就来跟大家分享下如何实现这一功能,并且会提供 C 和 VBS 两种代码示例以及详细操作笔记。
一、整体思路
首先,我们要在 WinCC 画面中添加多个设备的监控元素,比如指示灯、数值显示等。然后,为每个设备关联对应的变量。对于趋势图,我们利用 WinCC 自带的趋势控件,通过代码动态地为其添加不同设备变量的趋势显示。
二、C 代码实现
1. 初始化画面及变量关联
在画面的初始化事件中,我们可以使用 C 代码来进行一些初始化操作,比如为各个设备监控元素关联变量。假设我们有两个设备,设备 1 的状态变量为 “Device1Status”,设备 2 的状态变量为 “Device2Status”。
#include "apdefap.h" void OnLButtonDown(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName, UINT nFlags, int x, int y) { // 获取设备 1 状态指示灯对象 HMIRuntimeObject* pDevice1Indicator = GetObject(lpszPictureName, "Device1_Indicator"); if(pDevice1Indicator) { // 关联变量 pDevice1Indicator->SetPropChar("LinkName", "Device1_Status"); } // 获取设备 2 状态指示灯对象 HMIRuntimeObject* pDevice2Indicator = GetObject(lpszPictureName, "Device2_Indicator"); if(pDevice2Indicator) { // 关联变量 pDevice2Indicator->SetPropChar("LinkName", "Device2_Status"); } }2. 趋势图添加设备变量趋势
假设我们有一个趋势图控件名为 “TrendGraph”,现在要为其添加设备 1 和设备 2 的变量趋势。
#include "apdefap.h" void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName) { HMIRuntimeObject* pTrendGraph = GetObject(lpszPictureName, "TrendGraph"); if(pTrendGraph) { // 添加设备 1 变量趋势 pTrendGraph->SetPropChar("Trend1.Tag", "Device1_Value"); pTrendGraph->SetPropChar("Trend1.Name", "Device1 Trend"); // 添加设备 2 变量趋势 pTrendGraph->SetPropChar("Trend2.Tag", "Device2_Value"); pTrendGraph->SetPropChar("Trend2.Name", "Device2 Trend"); } }代码分析:在第一段代码中,我们通过GetObject函数获取画面中的指示灯对象,然后使用SetPropChar函数为其关联对应的变量,这样指示灯就能根据变量值来显示状态。第二段代码中,同样使用GetObject获取趋势图控件,然后通过设置 “Trend1.Tag” 和 “Trend2.Tag” 等属性,为趋势图添加不同设备变量的趋势,并且为每个趋势设置一个名称便于区分。
三、VBS 代码实现
1. 初始化画面及变量关联
Sub OnClick(ByVal Item) Dim device1Indicator Set device1Indicator = ScreenItems("Device1_Indicator") device1Indicator.LinkName = "Device1_Status" Dim device2Indicator Set device2Indicator = ScreenItems("Device2_Indicator") device2Indicator.LinkName = "Device2_Status" End Sub2. 趋势图添加设备变量趋势
Sub OnClick(ByVal Item) Dim trendGraph Set trendGraph = ScreenItems("TrendGraph") trendGraph.Trend1.Tag = "Device1_Value" trendGraph.Trend1.Name = "Device1 Trend" trendGraph.Trend2.Tag = "Device2_Value" trendGraph.Trend2.Name = "Device2 Trend" End Sub代码分析:VBS 代码相对更加简洁易懂。在第一段代码中,通过ScreenItems获取指示灯对象,直接设置其LinkName属性来关联变量。第二段代码中,同样使用ScreenItems获取趋势图控件,然后设置趋势图中不同趋势的Tag和Name属性,实现为趋势图添加设备变量趋势的功能。
四、详细操作笔记
- 创建变量:在 WinCC 变量管理器中,创建各个设备需要监控的变量,比如设备状态变量(布尔型)、设备数值变量(整型或浮点型等)。
- 绘制画面:在画面编辑器中,绘制各个设备的监控元素,如指示灯、文本框用于显示数值等。同时,添加趋势图控件。
- 关联代码:对于 C 代码,需要在画面的事件属性中,如初始化事件、按钮点击事件等地方,添加对应的 C 脚本。对于 VBS 代码,同样在相应的事件中添加 VBS 脚本。
- 测试运行:完成上述步骤后,激活 WinCC 运行系统,观察画面中设备监控元素是否正常显示,趋势图是否能正确显示设备变量的趋势。
希望通过以上的技术指导、代码示例以及操作笔记,能帮助大家顺利在经典 WinCC 中实现一个画面监控多个设备并显示趋势图的功能。如果在实际操作中有任何问题,欢迎留言交流。
经典wincc一个画面监控多个设备,(画面中可监视趋势图)技术指导,代写代码,c,或vbs均可。 可提供详细操作笔记(笔记含可复制的脚本)
