c脚本修改画面窗口的变量前缀

合集下载

VC控件随窗口大小变化而变化的方法

VC控件随窗口大小变化而变化的方法

VC控件随窗口大小变化而变化的方法在VC中,控件随窗口大小变化而变化的方法有多种实现方式。

下面将介绍一种比较常用的方法。

方法一:使用控件的锚点属性3.根据需要,可以调整锚点的位置和大小。

4. 在对话框的OnSize函数中添加控件调整的代码。

示例代码如下:```void CMyDialog::OnSize(UINT nType, int cx, int cy)CDialogEx::OnSize(nType, cx, cy);//获取对话框的客户区大小CRect rect;GetClientRect(&rect);//调整控件的大小和位置m_btnOK.SetWindowPos(NULL, rect.right - 100, rect.bottom - 100, 0, 0, SWP_NOZORDER , SWP_NOSIZE);```在这个示例代码中,m_btnOK是一个按钮控件的变量。

调用SetWindowPos函数可以设置控件的位置和大小。

rect.right和rect.bottom分别表示对话框客户区的右边界和底边界的坐标。

在此示例中,按钮的右下角离对话框的右下角保持了100个像素的距离。

需要注意的是,OnSize函数中必须调用基类的OnSize函数,以确保窗口的基本布局正常。

总结:使用锚点属性和OnSize函数可以实现控件随窗口大小变化而变化。

通过设置锚点的位置和大小,再在OnSize函数中根据对话框的大小调整控件的大小和位置,可以适应不同窗口大小的需求。

这种方法是比较简单、快速实现的方式,特别适用于需要调整的控件数量较少的情况。

除了使用锚点属性和OnSize函数外,还可以使用其他方式实现控件随窗口大小变化,比如使用MoveWindow函数或者使用布局管理器等。

在实际开发中,需要根据具体情况选择合适的方法。

wincc应用结构变量做画面模板[详解]

wincc应用结构变量做画面模板[详解]

利用结构变量做画面模板减少做多个母画面的步骤。

以两个电机调用一个母画面实现启停控制为例
一,打开wincc新2个建结构变量为motor1和motor2,分别在每个结构变量下建立两个元素open和close。

这里是模拟所以用内部变量,在实际应用中这里是建立外部变量
二,然后到内部变量中建立一motor1和motor2为名称的变量。

三,新建两个画面
四,在HD画面中建立两个按钮,将画面的大小改成200X200.。

双击开启按钮鼠标事件按下鼠标左键时组态动画框将1传送给变量open。

按下鼠标右键时组态动画框将0传送给变量open。

双击关闭按钮鼠标事件按下左键时组态动画框将1传送给变量close。

按下鼠标右键时组态动画框将0传送给变量close。

(改变按钮的后缀)
五,打开main画面建立两个电机,和两个画面窗口,和四个输入输出域(用于模拟)
打开两个电机属性鼠标按下属性组态动画框
打开画面窗口一属性显示改成否,可关闭改成是,画面名称和变量前缀改成如下。

打开画面窗口二属性显示改成否,可关闭改成是,画面名称和变量前缀改成如下
六,打开输入输出与属性,在输出值里修改输出变量显示值。

保存即可。

WinCC的画面使用技巧

WinCC的画面使用技巧

WinCC的画⾯使⽤技巧以下内容以VB脚本为主,仅在VB脚本⽆法实现的功能中使⽤C脚本。

画⾯导航画⾯导航的作⽤是打开起始画⾯、前⼀张画⾯和后⼀张画⾯等,只能⽤C脚本实现。

打开起始画⾯: OpenHomePicture();打开前⼀张画⾯: OpenPrevPicture();打开后⼀张画⾯: OpenNextPicture();存储画⾯: StorePicture();打开存储画⾯: OpenStorePicture();切换画⾯窗⼝中的画⾯WinCC通过“画⾯窗⼝”控件将其他画⾯嵌套显⽰在另⼀个画⾯中,可以根据需要让“画⾯窗⼝”显⽰不同的画⾯。

“画⾯窗⼝”控件通过写⼊不同的画⾯名称调⽤不同的画⾯。

“画⾯窗⼝”控件有两个属性跟画⾯名称相关,分别是ScreenName和PictureName,这两个属性有什么区别呢?'画⾯名称不能带后缀名ScreenItems("Window1").ScreenName = "Newpicture"ScreenItems("Window1").PictureName = "Newpicture"通过ScreenName属性切换画⾯后,使⽤ OpenPrevPicture() 切换到上⼀个画⾯将会回到切换画⾯之前,⽽⽤PictureName属性切换画⾯,WinCC的画⾯导航中不会记录这次画⾯的切换,使⽤ OpenPrevPicture() 切换到上⼀个画⾯实际是回到了上上个画⾯。

通过⼀个实验更清楚的了解这个结论,⽤⼀个画⾯窗⼝引⽤三个画⾯,这三个画⾯分别标为A、B、C,⽤ScreenName和PictureName各做两个切换按钮。

(1)初始画⾯为A;(2)使⽤ScreenName切换到画⾯B;(3)使⽤ScreenName切换到画⾯C;(4)使⽤OpenPrePicture()返回前⼀个画⾯,此时返回到画⾯B,ScreenName属性切换的画⾯是有导航路径记录的;(5)使⽤PictureName切换到画⾯C;(6)使⽤OpenPrePicture()返回前⼀个画⾯,此时返回到画⾯A,PictureName属性切换的画⾯没有导航路径记录,事实上返回到了第4步的上⼀张画⾯,第4步是画⾯B,所以上⼀张画⾯是画⾯A。

WinCC技巧

WinCC技巧

在WinCC 中如何在一个画面中显示不同的趋势图?显示订货号描述在同一个WinCC 在线趋势控件中,通过不同的按钮来选择显示不同测量点的曲线,有两种方法。

•选择1: 用脚本分配变量•选择2: 画中画技术两种方法都是在"Trend_Function_Main.PDL", "Trend_Function_1.PDL" 和"Trend_Function_2.PDL" 画面中实现的。

这几个画面可以在例子中找到。

准备:变量"testvar1〞和"testvar2〞分别显示在两个在线控件Trend 1 和Trend 2 中。

No.步骤1 在变量记录中,新建过程值归档"TestArchive〞。

2 在归档中建立相应的变量归档〔testvar1 and testvar2〕。

Fig. 01选择1:WinCC V7.0 中脚本分配变量在本例中,WinCC 在线趋势控件的名称为"Control1〞。

另外,建立了两个趋势,但是并没有分配给*个变量。

分配由VBS 脚本或C 脚本完成。

VBS 和C 脚本在文件"M1_button_assign_tag.t*t〞中。

2 在画面中插入WinCC 在线趋势控件。

连接趋势到测量点〔WinCC V7.0〕的归档变量〔如testvar1〕。

在图片中插入一个应用程序窗口并且连接到测量点的趋势模板〔老板本〕。

3 然后相应的调整图像的几何属性和应用程序窗口。

本例中,高350像素,宽550像素。

这个大小是根据画面窗口的大小定的。

4 重复步骤3和4,为其他的测量点创立画面。

将应用程序窗口到每一个曲线模板上,然后用测量点的名字保存图像。

5 下一步创立一个新图片,可以用不同的按钮调用不同的趋势。

在这个画面中,为已经建好的画面插入一个宽〔550 pi*els〕高〔350 pi*els〕的画面窗口。

wincc声明数组变量及结构变量的使用

wincc声明数组变量及结构变量的使用

wincc声明数组变量及结构变量的使用
既然不能把struct的数组直接传送到wincc,那如何在wincc中声明数据变量呢,包含的变量很多,难道要一个个声明?求指导
另外wincc种的结构变量不是很明白,他是把一些变量归类到一起?具体怎么操作,自己新建了一个可是在画面组态的时候根本看不到结构变量。

希望能指导下。

最佳答案
先建立一个结构,里面包含多个元素,比如建立一个结构叫motor,里面包含man,res,open,close,然后建立变量名为motor1,数据类型为motor,则自动生成motor1.man,motor1.res,motor1.open,motor1.close。

这样方便建立变量,然后用画面窗口显示设备的控制画面,画面连接变量的“.”后面的部分,以及“.”。

然后画面窗口的变量前缀连接变量“.”前面的部分,不包括“.”这样方便控制多个相同的设备只要复制画面窗口,修改变量前缀就好了。

wincc画面模板

wincc画面模板

如何利用结构体变量以及C脚本、全局脚本来创建画面模板(实现多个同类设备只需一套操作窗口)1、建立结构体变量,如果窗口内变量少也可以不建,但是要注意同类设备变量后缀统一2、建立PID1/PID2两个结构体变量3、创建画面窗口,创建需要的对象,注意对象属性连接变量时只留后缀注意:由于只留后缀的变量不在变量表内,系统会提示是否创建变量,这里我们不要创建,点忽略就好4、在对应画面创建画面窗口,并将画面名称改为3中创建的画面名称5、做按钮的脚本5.1利用C函数脚本来切换画面窗口的标题、变量前缀按钮1,释放左键SetVisible("001_main.PDL","画面窗口1",0); //关闭窗口,更新SetPropChar(lpszPictureName,"画面窗口1","TagPrefix","pid1."); //设置变量前缀SetPropChar(lpszPictureName,"画面窗口1","CaptionText","PID1"); //设置窗口标题SetVisible("001_main.PDL","画面窗口1",1); //画面窗口1可见按钮2SetVisible("001_main.PDL","画面窗口1",0); //关闭窗口,更新SetPropChar(lpszPictureName,"画面窗口1","TagPrefix","pid2."); //设置变量前缀SetPropChar(lpszPictureName,"画面窗口1","CaptionText","PID2"); //设置窗口标题SetVisible("001_main.PDL","画面窗口1",1); //画面窗口1可见5.2 如果按钮脚本内需要改变的属性比较多,同类设备也比较多,则脚本需要改变的地方也多,此时可以通过项目函数将需要的C脚本打包成一个函数,需改变的变量引出此时按钮1内需要调整的点就少了。

VC++中修改MFC窗口标题

VC++中修改MFC窗口标题
if (!CDocument::OnNewDocument())
return FALSE;
SetTitle (" 文档标题 " );
return TRUE;
}
运行程序,则每次选择选单中的“文件”的“新建”选项时,文档标题就变成 “文档标题- SDITitle”。
5) 是在CMainFrame的PreCreateWindow函数中修改窗口风格:
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
cs.style &= ~(LONG) FWS_ADDTOTITLE;
return CFrameWnd::PreCreateWindow(cs);
BOOL CChildFrame::PreCreateWindow(CREATESTRUCT& cs)
{
cs.style &=~ (LONG) FWS_ADDTOTITLE;
return CMDIChildWnd::PreCreateWindow(cs);
}
改变窗口类型,这步工作必须做。常量FWS_ADDTOTITLE是在文件\ msdev \ mfc \include \afxwin.h中定义。
VC++中修改MFC窗口标题
一·单文档接口(SDI)类型窗口标题的改变
首先,我们来看Windows SDI类型窗口标题栏的结构形式。结合具体例子说明:用VC的AppWizard创建一个名为“SDITitle”的单文档类型的工程,创建完工程后,编译运行该工程,程序主窗口标题形式如下:
文档标题 主窗口标题

C利用句柄操作窗口

C利用句柄操作窗口

C利用句柄操作窗口
在C语言中,可以使用句柄(handle)来操作窗口。

句柄是一个唯一标识符,用来表示窗口或其他资源的引用。

以下是一些常见的句柄操作窗口的函数:
1. GetActiveWindow(:获取当前活动窗口的句柄。

2. FindWindow(lpClassName, lpWindowName):根据类名和窗口名称查找窗口,并返回窗口句柄。

3. SendMessage(hWnd, Msg, wParam, lParam):向指定窗口发送消息。

4. MoveWindow(hWnd, x, y, width, height, repaint):移动指定窗口的位置和大小。

5. ShowWindow(hWnd, nCmdShow):显示或隐藏指定窗口。

以下是一个示例代码,演示如何使用句柄操作窗口:
```c
#include <windows.h>
int mai
HWND hwnd = FindWindow(NULL, "窗口标题"); // 查找窗口句柄
if (hwnd == NULL)
printf("未找到窗口\n");
return 1;
}
//移动窗口的位置和大小
MoveWindow(hwnd, 100, 100, 500, 300, TRUE);
//发送消息给窗口
SendMessage(hwnd, WM_CLOSE, 0, 0);
return 0;
```
注意,上述示例代码是在Windows平台下使用的。

如果你是在其他操作系统下使用C语言,可能需要使用对应的窗口操作函数。

wincc中获取窗口变量前缀以及跨窗口操控的方法

wincc中获取窗口变量前缀以及跨窗口操控的方法

(原创实用版3篇)编制人员:_______________审核人员:_______________审批人员:_______________编制单位:_______________编制时间:____年___月___日序言下面是本店铺为大家精心编写的3篇《wincc中获取窗口变量前缀以及跨窗口操控的方法》,供大家借鉴与参考。

下载后,可根据实际需要进行调整和使用,希望能够帮助到大家,谢射!(3篇)《wincc中获取窗口变量前缀以及跨窗口操控的方法》篇1在 WINCC 中获取窗口变量前缀的方法是通过调用函数 TagPrefix() 来获取当前窗口的变量前缀。

该函数的参数是一个字符串,用于指定要获取前缀的变量名。

例如,如果要获取变量 "MyVariable" 的前缀,可以使用以下代码:```String variableName = "MyVariable";String prefix = TagPrefix(variableName);```在跨窗口操控方面,可以使用 WINCC 中的屏幕元素 (Screen Element) 和脚本 (Script) 来实现。

具体来说,可以通过在父窗口中添加一个屏幕元素,该元素用于在运行时动态加载子窗口的 PDL 文件。

然后在子窗口的 PDL 文件中添加控件,并使用脚本在父窗口中实现对这些控件的访问和操控。

例如,在父窗口中添加一个按钮,该按钮的单击事件绑定了一个脚本。

在该脚本中,可以使用以下代码来加载子窗口的 PDL 文件:```Script// 加载子窗口的 PDL 文件ScreenElement subWindow = new ScreenElement("SubWindow");subWindow.LoadFromFile("SubWindow.PDL");```然后在子窗口的 PDL 文件中添加控件,例如一个文本框,并使用脚本在父窗口中实现对文本框的访问和操控。

VC改变窗口大小和样式

VC改变窗口大小和样式

改变窗口的外观和大小改变窗口的外观和大小需要在窗口创建以前改变。

所以我们可以在CMainFrame的PreCreateWindow中改变CREATESTRUCT 结构体的值就行了。

E.G.BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)改变窗口的大小-> cs.cx = 300; cs.cy = 200;改变窗口的显示位置坐标是 cs.x 和 cs.y这里常用的一个函数是::GetSysMetrics(SM_CXSCREEN);::GetSysMetrics(SM_CYSCREEN);用来取得屏幕的大小。

要改变窗口标题栏的字符串:cs.lpszName = "Seven"; 会发现标题栏不会改变窗口的标题栏的上的字符串。

改变单文档应用程序的标题栏的字符串参考MSDN windowstyles/Frame-window styles 下面有一个Changing the styles of a window create by MFC./ The SDI Case默认的情况是WS_OVERLAPPEDWINDOW and FWS_ADDTOTITLE styles FWS_ADDTOTITLE is add the document title to the window’s caption.去掉FWS_ADDTOTITLE 就可以更改窗口标题栏字符串。

cs.style &= ~FWS_ADDTOTITLE;cs.lpszName = "Seven";如果我们需要改变背景,画刷,光标等等时候。

我们可以在:PreCreateWindow中创建窗口类,WNDCLASS wndClass;把这个类里的值改变成自己想要的内容就可以了。

E.G.wndClass.cbClsExtra = 0;wndClass.cbWndExtra = 0;wndClass.hbrBackground = (HBRUSH)GetStockObject(DKGRAY_BRUSH);wndClass.hCursor = LoadCursor(NULL, IDC_WAIT);wndClass.hIcon = LoadIcon(NULL, IDI_WARNING);wndClass.hInstance = AfxGetInstanceHandle();获取应用程序的实例句柄可用AfxGetInstanceHandle函数,这个函数是一个全局的函数,前面有一个AFX表示是一个应用程序框架类函数,哪里都可用。

wincc常用C动作

wincc常用C动作

wincc常用C动作SetTagPrefix(lpszPictureName, "huamian1","电机1.");//设置变量前缀SetPictureName(lpszPictureName,"huamian1","BENG");//给画面窗口绑定画面名称SetVisible(lpszPictureName,"huamian1",1); //将画面显示出来SetTagChar("电机1.名称","电机1控制窗口"); //给变量赋值其他1.用户注销:#pragma code ("useadmin.dll")#include "PWRT_api.h"#pragma code()PWRTLogout();2.用户登录:#pragma code ("useadmin.dll")#include "PWRT_api.h"#pragma code()PWRTLogin('c');3.关闭项目并退出wincc:ExitWinCC ();4.退出运行到wincc资源管理器:DeactivateRTProject ();5.结束监控并关闭计算机(会弹出确认对话框)HWND hWnd = NULL;//Author:Smartsysint iRet;hWnd = FindWindow(NULL,"WinCC-运行系统- ");iRet=MessageBox(hWnd,"结束监控并关闭计算机","关闭操作站",MB_YESNO|MB_ICONWARNING|MB_APPLMODAL);if(iRet==IDYES)DMExitWinCCEx (DM_SDMODE_POWEROFF);6.点击事件弹出对话框,通过点击弹出对话框的确定和取消按钮实现对变量的置位或取消: int r;r=MessageBox(NULL, "YES为开,NO为关", "确定开命令:", MB_YESNO |MB_SYSTEMMODAL); if (r==IDYES)SetTagBit("TAGNAME",TRUE);elseSetTagBit("TAGNAME",FALSE);7.开显示关显示:(要在内部变量中建立三个二进制变量COLSE_DISPLAY、DISPLAY_NO和DISPLAY_COMMENT)// Funktion: Bit in Doppelwort setzen;if (GetTagBitWait("COLSE_DISPLAY")==1 ){SetTagBit("COLSE_DISPLAY",0);SetTagBit("DISPLAY_NO",0); //Return-Type: BOOLSetTagBit("DISPLAY_COMMENT",0);}else{SetTagBit("COLSE_DISPLAY",1);SetTagBit("DISPLAY_NO",1); //Return-Type: BOOLSetTagBit("DISPLAY_COMMENT",0);}8.开阀确认:BOOL a;a=GetTagBit("30T制水启动"); //Return-Type :short intif (a==0){if(MessageBox(NULL,"真的要启动制水吗?","操作提示",MB_YESNO|MB_ICONQUESTION|MB_SETFOREGROUND|MB_SYSTEMMODAL) == 6){ SetTagBit("30T制水启动",1);//Return-Type :BOOL}}else{if(MessageBox(NULL,"真的要停止制水吗?","操作提示",MB_YESNO|MB_ICONQUESTION|MB_SETFOREGROUND|MB_SYSTEMMODAL) == 6){ SetTagBit("30T制水停止",1);}}9.将WinCC运行画面最小化HWND WinCCHwnd;WinCCHwnd=FindWindow(NULL,"WinCC-Runtime - "); //如果运行语言为英文if (WinCCHwnd==0) WinCCHwnd=FindWindow(NULL,"WinCC-运行系统- "); //如果运行语言为中文CloseWindow(WinCCHwnd);10.显示或不显示(其中hiddVtext为内部的二进制变量)if(GetTagBit("hiddVtext")==0) //Return-Type: BOOL{SetTagBit("hiddVtext",TRUE); //Return-Type: BOOL//Return-Type: BOOL}else{SetTagBit("hiddVtext",FALSE);}10.打开编辑画面的脚本#pragma option(mbcs)#ifdef RUN_ON_WEBNAVIGATOR#elseHWND hExplorerWindow= NULL;HWND hRuntimeWindow= NULL;hExplorerWindow= FindWindow("WinCCExplorerFrameWndClass",NULL);hRuntimeWindow= FindWindow("PDLRTisAliveAndWaitsForYou",NULL);if(hExplorerWindow){ShowWindow(hExplorerWindow, SW_MINIMIZE); // This entry is only necessary for Windows 2000ShowWindow(hExplorerWindow, SW_SHOWNORMAL);SetForegroundWindow(hExplorerWindow);}elseprintf("\r\n SetForeground failed");#endif11.如何在WINCC中制作一个保持型按钮方法1:if( GetTagBit("M10") )SetTagBit("M10",0);elseSetTagBit("M10",1);方法2:SetTagBit("M1.0",(SHORT)!GetTagBit("M1.0"));求反指令,如果为1点击变为0,如果为0点击变为1方法3:或者做两个按钮,按钮一:显示,直接连接m1.0,是--不显示,否--显示。

WinCC+V7.3中如何使用结构变量组态画面模板

WinCC+V7.3中如何使用结构变量组态画面模板

WinCC+V7.3中如何使⽤结构变量组态画⾯模板操作指南 5⽉/2016WinCC V7.3中如何使⽤结构变量组态画⾯模板WinCC, 结构类型,画⾯模板,脚本填写C o p y r i g h t ?S i e m e n s A G C o p y r i g h t y e a r A l l r i g h t s r e s e r v e d 摘要在实际的⼯业级现场及应⽤中,经常会遇到多个设备需要显⽰相同的参数(组)的情况,如现场有多个电机,每个电机需要显⽰和控制的参数(组)都相同,只是不同电机的参数数值不同。

使⽤画⾯模板,能够避免多册重复组态相同的画⾯,减少组态⼈员的⼯作量,⼜能避免⽇后项⽬维护时期的⼤量⼯作,提⾼系统的可维护性。

画⾯模板和结构变量配合使⽤,能够快速⾼效地组态模板,满⾜现场要求。

本⽂档实例的组态环境为SIMATIC WinCC V7.3SE Update9,操作系统环境为64位Windows 7 Ultimate SP1。

关键词 WinCC ,结构类型,画⾯模板,脚本Key Words WinCC ,construct ,picture template ,scriptC o p y r i g h t ?S i e m e n s A G C o p y r i g h t y e a r A l l r i g h t s r e s e r v e d ⽬录1⽰例说明 (4)1.1⽰例任务............................................................................................ 41.2解决⽅案 (42)建⽴结构变量.................................................................................................... 53使⽤变量前缀建⽴画⾯窗⼝. (6)3.1创建画⾯模板..................................................................................... 63.1.1新建画⾯............................................................................................ 63.1.2组态IO 域 .......................................................................................... 63.1.3组态按钮............................................................................................ 83.1.4组态滚动条和量表 ............................................................................ 103.1.5组态趋势控件 ................................................................................... 113.2创建起动画⾯,调⽤画⾯模板 .......................................................... 123.2.1静态设置TagPrefix .......................................................................... 133.2.2通过变量修改TagPrefix ................................................................... 143.2.3通过脚本修改TagPrefix . (14)4使⽤动态向导建⽴画⾯模板 (16)4.1创建基准画⾯ ................................................................................... 164.2利⽤动态向导创建模板 ..................................................................... 164.2.1启动动态向导 ................................................................................... 164.2.2选择结构类型 ................................................................................... 164.2.3连接对象属性 ................................................................................... 174.2.4完成向导.......................................................................................... 174.3调⽤模板.......................................................................................... 184.3.1添加模板.......................................................................................... 184.3.2连接模板和结构变量 ........................................................................ 194.3.3完成组态.......................................................................................... 194.3.4运⾏效果 (20)5两种画⾯模板建⽴⽅法的⽐较 (21)附录-推荐⽹址 (22)C o p y r i g h t ?S i e m e n s A G C o p y r i g h t y e a r A l l r i g h t s r e s e r v e d 1⽰例说明1.1⽰例任务假设某⽣产现场有3台电机,每台电机都有电机名字、速度实际值、速度设定值、启停状态等参数需要显⽰在WinCC 画⾯中,需达到的效果如图1-1所⽰。

wincc多个按钮调用同一个窗口而该窗口调用了一个画面这个画面里调用了画面模板

wincc多个按钮调用同一个窗口而该窗口调用了一个画面这个画面里调用了画面模板

wincc多个按钮调用同一个窗口而该窗口调用了一个画面这个画面里调用了画面模板
请问:wincc多个按钮调用同一个窗口而该窗口调用了一个画面这个画面里调用了画面模板,结构变量我已经建好了,并在调用的窗口里的画面的窗口调用的模板里单个设备可以调用,但多个设备就不会弄了,C和VB又不会。

讲得很绕,我想了半天可以这个表达就是怎么实现多个按钮调用同一个窗口的画中画的画中画。

不知道我讲明白了没有,可能看我上传的图片更容易明白我想干嘛!
图片说明:1,2 2,3 3,1
最佳答案
看完你的描述以及截图,个人觉得你做的就是一个画中画。

即画面中调出画面窗口,显示画面控制模版。

这种情况用结构变量来做确实可以节省很多步骤。

一个画面你会控制,多个画面有疑问,你这个多个画面是不是多个一样的画面呢?如果是多个一样的画面不同的设备的话,可以使用更改变量前缀的方法。

这里提供VBS方式,添加在按钮动作里。

Dimb”“定义变量
Setb=ScreenItems(“TXDCF1”)”“设置画面对象,画面名
称为“TXDCF1”
b.Visible=False”“可见属性
b.CaptionText=“电动阀门控制”““设置标题名称
b.TagPrefix=“RJG_ZQ_DDF.”““设置变量前缀
b.Visible=True”“画面可见
把画面里面的设备后缀名设置好后,只要通过按钮更改变量前缀即可实现控制要求。

clion重命名变量

clion重命名变量

clion重命名变量
在CLion中重命名变量可以通过以下步骤实现:
1. 找到你想要重命名的变量。

可以在编辑器中直接点击该变量,或者将光标放在该变量上。

2. 使用快捷键Shift + F6(默认情况下)或者右键点击变量,选择Refactor -> Rename。

3. 在弹出的对话框中输入新的变量名,然后按下Enter键。

4. CLion会自动重命名所有相应的变量实例,包括该变量的声
明和使用处。

需要注意的是,CLion会自动处理变量名的作用域,以确保重
命名不会引起错误。

此外,CLion还会在重命名操作完成后进行代
码的重新编译,以确保重命名不会导致编译错误。

另外,CLion还提供了一些高级的重命名功能,比如批量重命
名和自定义重命名规则。

你可以在Refactor菜单中找到这些功能,
并根据自己的需求进行操作。

总之,在CLion中重命名变量非常方便,而且由于其智能的重构功能,可以确保重命名操作的准确性和安全性。

希望这些信息能够帮助到你。

wincc常用脚本

wincc常用脚本

wincc常用脚本DeactivateRTProject ();//退出系统#pragma code("useadmin.dll")#include"PWRT_api.h"#pragma code()char* CUser=NULL;CUser=GetTagChar("@CurrentUser");if (strlen(CUser)==0){PWRTSilentLogin("operator","123456");//用户“operator",密码"123456”登录}OpenPicture("@MAIN.pdl");}在画面中结合不同按钮来组态下面 C 操作LoginAction for login (for example, "mouse click" event):#pragma code ("useadmin.dll")#include "PWRT_api.h"#pragma code()PWRTLogin('c');LogoutAction for logout (for example, "mouse click" event):#pragma code ("useadmin.dll")#include "PWRT_api.h"#pragma code()PWRTLogout();PWRTLogin参数必须是CHAR 字符。

它指定了显示对话框的监视器。

如果只使用一个监视器,那么保留默认参数“c”或者指定“1”。

注意可以使用PASSLoginDialog函数来代替PWRTLogin 或者PWRTLogout函数。

这个函数需要和函数PWRTLogin 相同的参数。

wincc变量前缀的使用

wincc变量前缀的使用

Wincc变量前缀的使用
在Siemens Wincc中使用变量前缀可以节省许多不必要的重复图形,现将Wincc中变量前缀的用法介绍给新接触Wincc的朋友们,希望大家可以共同提高。

第一步:建立一个变频电机启动的功能块FB1
第二步:在FB1中定义自己的程序所需的变量
以上是输入变量
以上是输出变量
以上是静态变量
第三步:编写自己的FB功能块程序以上是对变频器反馈信号的采样
以上是对变频器频率的给定
以上是对变频器启动/停止的控制
第四步:在OB1中分别调用3次FB1,并定义相应的背景数据DB1,DB2,DB3
第五步:在Wincc中定义相关可以用到的结构体变量,如图
第六步:在变量管理中建立结构体变量
地址的定义:如果数据块开始地址为0,就从DB1的0开始下面将自动生成Motor结构体的变量
第七步:制作Motor.pdl
第八步:对里面的变量进行赋值
下面举两个例子:
1.开关量点:
2.模拟量点:
与开关量点类似,然后保存。

第九步:在Main.pdl中建立这样的画面
这两步很重要是对变量前缀使用的属性及事件定义。

画面窗口2,3同样的做法。

会出现下列画面。

WinCC中的画面模板

WinCC中的画面模板

WinCC中的画面模板介绍画面模板是WinCC做画面组态的常用工具。

现实工作中经常遇到多个设备需要显示相同参数(组)的情况。

使用画面模板,可以避免反复组态相同画面布局的工作,减少项目后期某些细节部位的修改而带来的工作量;画面模板与结构变量的配合使用,可以在一个画面中根据条件显示具有相同类型参数的多个对象(如电机),极大地丰富了画面信息。

下面列出了四种不同的实现方式:用户自定义对象画面原型使用变量前缀的画面窗口使用动态向导的画面窗口1. 用户自定义对象图1 所示为用户自定义对象的样例用户自定义对象是由多个WinCC对象组合而成的,可以挑选其中的某些用户需要的属性作为用户自定义属性,因此生成的新对象可作为模板连接不同的变量,这种模板不适用于结构变量。

观看制作演示请双击下面的压缩文件,运行其中的可执行文件。

用户自定义对象a.rar2. 画面原型图2 所示为画面原型的样例在用户自定义对象的基础上,如果要支持结构变量的使用,可以用动态向导的方法来简化工作。

如例子所示,首先做好自定义对象的模板,利用标准动态下的”Add dynamics to the prototype”在输入输出值属性里连接结构变量,将这个模板拷贝成多份,分别创建标准动态下的“Link a prototype to a structure or rename an existing link”,在创建的过程中,您可以选择和原型结构类型相同的其它前缀,用这个模板迅速生成连接不同结构变量的自定义对象。

观看制作演示请双击下面的压缩文件,运行其中的可执行文件。

画面原型a.rar注:以上两种方式主要用于一些对象集合需要多次使用,连接多套参数的情况,但是不能使用脚本,动态对话框等,如果要实现复杂的功能,则需要画面窗口。

画面窗口也分为两种实现方式,使用变量前缀型和动态向导型。

3. 使用变量前缀的画面窗口图3 所示为画面窗口的样例这是本篇讲述的重点,因为画面窗口作为模板来使用,它所提供的功能最丰富,也最灵活。

WINCC 结构变量制作

WINCC 结构变量制作

WINCC画面模板
1,在OB1里添加FB41模块然后在新建FC中调用FB41并建立背景数据块DB2
并在DB2中调用LMN 的引脚背景数据DB2.DBD72并用模拟量输出传给现场调节阀
其中DB1.DBD36为现场变送器通过FC105转化而来DB2.DBD72是FB41背景数据块的手动值,DB2.DBX0.1为FB41的手动开关
2,在WINCC中添加结构变量的驱动然后添加相应的变量名称并与DB中的地址相对应
然后在变量组里新建变量添加相应的设备编号及所对应的DB背景数据块
然后在在变量组里面自动产生变量
3画面连接
制作一个画面并连接变量点后面的变量忽略
在添加一个画面窗口并在画面窗口中做如下设置
1、在画面窗口中把要显示的画面添加进去
2、在变量前缀里面把结构变量里点前面的便后写进去
3、在画面中制作按钮打开画面窗口中的画面。

C++修改对话框标题

C++修改对话框标题

vc更改对话框标题收藏在VC++程序设计过程中经常会遇到这样的情况:执行程序的多个地方需要调用同一个对话框,但在不同的情况下希望给对话框加上不同的标题。

开始可能会用下面的一段程序以达到这一目的:CTestDialogdlg;dlg.SetWindowText(“标题-1");dlg.DoModal();利用上述办法,希望在程序不同的地方,通过设置函数SetWindowText不同的参数,以达到使同一对话框具有不同标题的目的,但这样做是行不通的(同理其它的对象和控件)。

利用这种方法,当执行该段程序时,在一个可以忽略的错误之后,对话框的标题不会发生任何改变。

这是因为,VC++程序设计中,大部分窗体是动态创建的。

比如上述对话框,在对dlg.DoModal的调用之前,虽然已构造了对话框的VC++对象,但窗体对象还没有被创建,显然对一个没有创建窗体对象的对话框设置标题是行不通的。

另外,dlg.DoModal 的调用结束时,对话框窗体对象将立即被释放,因此在该函数之后设置对话框标题也是不行的。

通过对VC++框架结构中函数的调用顺序的分析,发现在dlg.DoModal执行的开始时,程序会自动调用对话框的一系列初始化函数,其中包括对对话框成员函数OnInitDialog的调用,这里才能改变对话框标题。

为此,首先为对话框引进一个类型为CString的公有成员变量m_strCaption,并将上述程序段改为:CTestDialogdlg;dlg.m_strCaption = “标题-1";dlg.DoModal();然后重载对话框的虚成员函数OnInitDialog如下:BOOL CTestDialog::OnInitDialog(){CDialog::OnInitDialog();SetWindowText(m_strCaption);…return TRUE;}通过这种办法,每次在打开对话框之前,只要将对话框公有成员变量m_strCaption设置为一个不同的值,就可使得对话框有不同的标题。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

c脚本修改画面窗口的变量前缀
现场有六台带变频器的水泵,想用一个画面通过按钮切换来显示不同变频器的参数,画面上添加一个画面窗口a,画面窗口连接上一个公用画面,再在画面窗口旁边添加六个按钮,分别为变频器1到6,通过点击按钮来改变画面窗口的变量前缀,这样画面窗口中就会显示不同变频器额参数了,如何在按钮中添加修改变量前缀的c或者vb代码,请给出具体代码,
最佳答案
关于前缀的问题,给出代码是不方便的。

需要的是在创建画面窗口的时候,在属性栏前缀项输入已经建立好了的变量前缀。

输入好变量前缀之后,该画面在打开后,画面窗口里面的所有变量都将附上该前缀。

如有的该画面里面的变量不是结构变量,则该变量不能被执行,需要加上屏蔽指令,通常用@nop即可。

该符号的意思是取消变量前缀和服务器前缀,是一个通用的。

具体输入格式如tag=hmiruntime.tags(“@notp::@currentuser”).read那么就把用户变量屏蔽了。

关于按钮的话,只需要附上不同的后缀即可。

如前缀是motor.umotor.v那么在按钮处点击事件-直接连接-就只需附上u或者v。

当画面打开就构成了完整的结构变量。

ps:在控制同样的电机时,建议建立一个结构变量,这样在画面里面改变相应后缀即可实现)。

相关文档
最新文档