wincc 全局脚本c程序功能

合集下载

Wincc画面制作中C脚本的应用分析

Wincc画面制作中C脚本的应用分析

Wincc画面制作中C脚本的应用分析简介本文档旨在分析Wincc画面制作中C脚本的应用。

Wincc是一款用于监控和控制系统的软件,而C脚本是一种编程语言,用于在Wincc中实现自定义功能和逻辑。

C脚本的优势C脚本在Wincc画面制作中具有以下优势:1. 灵活性:C脚本可以通过编程实现各种复杂的逻辑和功能,使得用户能够根据自己的需求进行定制。

2. 功能丰富:C脚本提供了丰富的函数和方法,可以实现数据处理、图像操作、用户交互等各种功能。

3. 高效性:C脚本可以直接访问Wincc的内部对象和属性,因此可以快速地完成任务而无需额外的开发工作。

C脚本的应用场景C脚本在Wincc画面制作中可以应用于以下场景:1. 数据处理:通过C脚本可以对Wincc中的数据进行处理和转换,例如计算数据的平均值、最大值、最小值等。

2. 图像操作:C脚本可以实现图像的显示、隐藏、切换等操作,使得用户能够根据需要动态控制画面的内容。

3. 用户交互:C脚本可以响应用户的操作,例如点击按钮时执行特定的功能,弹出对话框等。

4. 报警处理:C脚本可以监测系统中的报警信息,并根据用户定义的逻辑进行相应的处理,例如发送邮件、生成报表等。

C脚本的注意事项在使用C脚本时,需要注意以下事项:1. 熟悉语法:了解C脚本的语法和基本概念是使用它的前提,只有掌握了基础知识才能更好地应用。

2. 错误处理:编写C脚本时要考虑到可能出现的错误情况,并进行合理的错误处理,以保证程序的稳定性和可靠性。

3. 代码维护:在编写C脚本时,要注重代码的可读性和可维护性,使用合适的命名和注释,方便后续的修改和调试工作。

结论C脚本在Wincc画面制作中具有广泛的应用,可以实现各种复杂的功能和逻辑。

在使用C脚本时,需要熟悉其语法和基本概念,并注意错误处理和代码维护,以提高程序的稳定性和可维护性。

通过充分发挥C脚本的优势,用户可以实现定制化的画面制作,并满足自己的特定需求。

Wincc界面设计——C脚本实践

Wincc界面设计——C脚本实践

Wincc界面设计——C脚本实践简介Wincc是一款用于人机界面设计的软件,通过使用C脚本,可以实现更加复杂的功能和交互。

本文将介绍如何在Wincc界面设计中实践C脚本的使用。

C脚本基础在开始使用C脚本之前,需要了解C语言的基础知识。

C脚本是一种用于编写Wincc界面逻辑的脚本语言,其语法和C语言相似。

熟悉C语言的人员可以更快地上手C脚本的编写。

C脚本实践以下是一些常见的C脚本实践示例:1. 按钮点击事件void Button_Click(){// 点击按钮后执行的代码// ...}在Wincc界面中,可以为按钮添加点击事件。

当按钮被点击时,会调用`Button_Click`函数,可以在该函数中编写相应的逻辑代码。

2. 数据处理double CalculateAverage(double[] data, int length){double sum = 0;for (int i = 0; i < length; i++){sum += data[i];}return sum / length;}在Wincc界面中,可以使用C脚本进行数据处理。

上述示例代码演示了如何计算一组数据的平均值。

可以根据实际需求编写相应的数据处理函数。

3. 界面更新void UpdateLabel(){double value = GetSensorValue();Label.SetText(value);}C脚本还可以用于更新界面元素的内容。

上述示例代码演示了如何根据传感器的值来更新标签的文本。

通过调用相应的函数或方法,可以实现界面元素的动态更新。

总结通过使用C脚本,可以在Wincc界面设计中实现更加复杂的功能和交互。

本文介绍了C脚本的基础知识以及一些常见的实践示例。

在实际应用中,可以根据需求灵活运用C脚本,提升Wincc界面的设计和交互体验。

Wincc常用C脚本及常用功能

Wincc常用C脚本及常用功能

Wincc常用C脚本及常用功能打开用户管理器ProgramExecute("Passcs.exe"); 取消激活#include "apdefap.h"void OnLButtonDown(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName,UINT nFlags, int x, int y){#pragma option(mbcs)HWND hwnd=NULL;int iRet;hwnd=FindWindow(NULL,"WinCC-运行系统 - "); //获得句柄iRet=MessageBox(hwnd,"是否取消激活?","Deactivate",MB_OKCANCEL|MB_ICONWARNING|MB_APPLMODAL);if(iRet==1)DeactivateRTProject (); //Return-Type: BOOL}关闭计算机#include "apdefap.h"void OnLButtonDown(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName,UINT nFlags, int x, int y){#pragma option(mbcs)HWND hwnd=NULL;int iRet;hwnd=FindWindow(NULL,"WinCC-运行系统 - ");iRet=MessageBox(hwnd,"是否关闭计算机?","ShutDown",MB_OKCANCEL|MB_ICONWARNING|MB_APPLMODAL);if(iRet==1)DMExitWinCCEx(DM_SDMODE_SYSTEM); }==================================================================== ==登陆代码:#pragma code(“useadmin.dll”)#include <pwrt_api.h>#pragma code()PWRTLogin (…e?);==================================== 取消激活(Deactivate)DeactivateRTProject();====================================== Wincc变量操作GetTagDWord(“变量名称”); 获取Wincc变量值SetTagDWord(“变量“,设定值); 设置Wincc变量对文本读写操作写操作#include "apdefap.h"void OnLButtonUp(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName,UINT nFlags, int x, int y) {#pragma option(mbcs)FILE* lpFile;char *shuzhu[6]={"tag_1","tag_2","tag_3","tag_4","tag_5","tag_6"};char* lpszStr;int i,j;lpszStr=SysMalloc(60); //Return-Type: void*lpFile = fopen("D:\\test.txt", "w+");for(i=0;i<6;i++){lpszStr=GetTagChar(shuzhu[i]); strcat(lpszStr,"\r\n");if(lpFile == NULL){ printf("can not open file\r\n"); return;}fprintf(lpFile, lpszStr); }SysFree(lpszStr);fclose(lpFile);}读操作#include "apdefap.h"void OnLButtonUp(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName,UINT nFlags, int x, int y) {#pragma option(mbcs)char* shuzhu[6]={"tag_1","tag_2","tag_3","tag_4","tag_5","tag_6"}; char tmp[255];int i=0;int ChrNumLine=38;FILE *fp;fp=fopen("D:\\test.txt","r"); if (fp==NULL){return;}else{rewind(fp);while(!feof(fp)){fgets(tmp,ChrNumLine,fp);SetTagChar(shuzhu[i],tmp);i++;}}fclose(fp);}画面窗口显示界面切换SetPictureName(lpszPictureName,"PicWindow_button","produce_manage_bu tton.pdl");SetVisible(lpszPictureName,"PicWindow_button",1);注:PicWindow_button是画面窗口名称;produce_manage_button.pdl是要显示的子画面。

Wincc图形界面制作---C脚本的详细解读

Wincc图形界面制作---C脚本的详细解读

Wincc图形界面制作---C脚本的详细解读1. 引言本文档旨在详细解读Wincc图形界面制作中C脚本的相关知识,以便于开发人员更好地理解和应用C脚本,提高Wincc项目开发效率。

本文档适用于具有一定Wincc使用经验和C脚本编程基础的用户。

2. C脚本概述在Wincc中,C脚本是一种扩展语言,用于实现图形界面与实际工程数据之间的交互。

通过编写C脚本,可以实现对Wincc内置对象的属性、方法和事件的操作,从而实现复杂的业务逻辑。

C脚本在Wincc项目中具有广泛的应用,例如:数据处理、界面动态刷新、定时任务等。

3. C脚本基本语法C脚本的基本语法与C语言类似,主要包括数据类型、变量、运算符、控制结构、函数等。

以下简要介绍C脚本的基本语法:3.1 数据类型C脚本支持以下数据类型:- 整型(int)- 浮点型(float)- 字符型(char)- 布尔型(bool)- 字符串型(string)- 枚举型(enum)3.2 变量C脚本中的变量分为全局变量和局部变量。

全局变量在脚本中定义,可在整个脚本中访问;局部变量仅在定义它们的函数内部有效。

变量声明时需指定数据类型。

3.3 运算符C脚本支持以下运算符:- 算术运算符:+、-、*、/、%- 关系运算符:==、!=、<、<=、>、>= - 逻辑运算符:&&、||、!- 位运算符:&、|、^、~、<<、>>3.4 控制结构C脚本支持以下控制结构:- 条件语句:if、if-else、switch- 循环语句:for、while、do-while- 跳转语句:break、continue、goto3.5 函数C脚本中的函数用于实现特定功能。

函数定义包括返回类型、函数名、参数列表和函数体。

函数调用时,需传递与参数列表匹配的实参。

4. Wincc内置对象和C脚本Wincc提供了丰富的内置对象,如变量、趋势图、报警等。

Wincc画面制作中C脚本的应用分析

Wincc画面制作中C脚本的应用分析

Wincc画面制作中C脚本的应用分析Wincc是一种用于人机界面(HMI)开发的软件,它提供了丰富的功能和工具,以便于用户制作交互性强的画面。

在Wincc画面制作中,C脚本是一种常用的编程语言,用于实现画面的特定功能和逻辑。

1. C脚本的基本概念和语法C脚本是一种类似于C语言的编程语言,它具有简单易学的特点。

在Wincc画面制作中,C脚本用于处理各种事件和操作,例如按钮点击、数据读写、画面切换等。

C脚本的语法与C语言基本相同,包括变量声明、条件语句、循环语句、函数定义等。

通过使用C脚本,用户可以根据自己的需求编写特定的逻辑代码,实现画面的自定义功能。

2. C脚本在Wincc画面制作中的应用场景2.1 数据处理和计算在Wincc画面制作中,常常需要对实时数据进行处理和计算,例如计算平均值、最大值、最小值等。

通过使用C脚本,可以方便地实现这些功能,提高画面的实用性和可读性。

2.2 事件处理和交互操作用户在与画面进行交互时,往往需要对按钮点击、鼠标移动等事件进行处理。

通过使用C脚本,可以捕捉这些事件,并编写相应的逻辑代码,实现画面的交互操作。

2.3 画面切换和导航在复杂的画面系统中,用户可能需要进行画面之间的切换和导航。

通过使用C脚本,可以实现画面之间的跳转和导航,提高用户的操作效率和便捷性。

3. C脚本的优势和注意事项3.1 灵活性和可扩展性C脚本作为一种编程语言,具有很高的灵活性和可扩展性。

用户可以根据自己的需求编写特定的逻辑代码,实现画面的自定义功能。

3.2 需要一定的编程知识使用C脚本进行画面制作需要一定的编程知识和经验。

对于不熟悉编程的用户来说,和掌握C脚本可能需要一定的时间和精力投入。

3.3 注意安全性和稳定性在使用C脚本进行画面制作时,需要注意安全性和稳定性。

编写的代码应该经过充分的测试和验证,以确保其能够正常运行并不会对系统造成不良影响。

4. 结论C脚本在Wincc画面制作中具有广泛的应用,可以实现画面的自定义功能和逻辑。

Wincc界面制作:C脚本的实际操作

Wincc界面制作:C脚本的实际操作

Wincc界面制作:C脚本的实际操作本文档将介绍Wincc界面制作中使用C脚本的实际操作步骤。

步骤一:了解C脚本基础知识在开始之前,我们需要了解一些C脚本的基础知识。

C脚本是一种编程语言,常用于Wincc界面制作中的自定义功能和交互。

熟悉C脚本语法和常用函数对于实际操作非常重要。

步骤二:创建C脚本文件在Wincc界面制作软件中,我们可以创建一个C脚本文件来实现自定义功能。

在界面中选择适当的位置,右键点击,然后选择“创建脚本”选项。

给脚本文件起一个有意义的名称,并确保选择C 脚本语言。

步骤三:编写C脚本代码打开创建的C脚本文件,在其中编写所需的代码。

根据具体需求,可以使用各种C脚本语法和函数来实现不同的功能。

注意编写清晰、简洁的代码,以便后续维护和修改。

步骤四:调用C脚本在Wincc界面制作软件中,我们可以通过不同的方式来调用C脚本。

例如,在按钮的点击事件中调用C脚本,或者在某个对象的属性中设置C脚本作为其值。

根据具体需求,选择合适的调用方式,并将C脚本与相应的界面元素关联起来。

步骤五:测试和调试在完成C脚本的编写和调用后,进行测试和调试是非常重要的。

通过模拟用户操作,检查C脚本是否按预期执行,并修复可能存在的错误。

确保C脚本在不同情况下都能正常工作。

步骤六:文档记录最后,完成实际操作后,我们应该记录下所有的C脚本代码和相关的操作步骤。

这样可以方便日后的维护和修改,并为其他团队成员提供参考。

以上是Wincc界面制作中使用C脚本的实际操作步骤。

通过正确的使用C脚本,我们可以实现更多的自定义功能和交互,提升界面的灵活性和用户体验。

请注意,本文档仅提供实际操作步骤的概述,并不包含具体的代码示例。

具体的代码编写需要根据具体需求进行定制。

Wincc图像制作---C脚本的核心技术

Wincc图像制作---C脚本的核心技术

Wincc图像制作---C脚本的核心技术1. 概述Wincc图像制作是Wincc项目中的一项重要工作,它涉及到数据的采集、处理、展示等方面。

而C脚本作为Wincc图像制作的核心技术之一,具有灵活、高效、可定制性强等特点。

本文将详细介绍Wincc图像制作中C脚本的核心技术,帮助读者深入了解并掌握这一技术。

2. C脚本的基本结构C脚本是一种基于文本的脚本语言,它的基本结构包括:头文件、变量声明、函数声明、主函数和脚本主体。

2.1 头文件头文件包含了项目所需的库文件和头文件,例如:include "wincc.h"include "script.h"2.2 变量声明变量声明部分用于声明项目中使用的变量,包括全局变量和局部变量。

例如:VARi: INTs: STRING2.3 函数声明函数声明部分用于声明项目中自定义的函数。

例如:FUNCTION myFunction(p1: INT, p2: STRING) : INT...END_FUNCTION2.4 主函数主函数是C脚本的核心部分,它负责调用其他函数和处理数据。

例如:FUNCTION main()...END_FUNCTION2.5 脚本主体脚本主体是C脚本的核心部分,它包含了项目的实际代码。

例如:IF i > 10 THENs := "i大于10"ELSEs := "i小于等于10"END_IF3. C脚本的核心技术3.1 数据类型和运算符C脚本支持多种数据类型,包括整数(INT)、浮点数(REAL)、字符串(STRING)等。

同时,C脚本也支持丰富的运算符,包括算术运算符、比较运算符、逻辑运算符等。

3.2 控制结构C脚本支持多种控制结构,包括条件语句(IF...END_IF)、循环语句(FOR...END_FOR、WHILE...END_WHILE)等。

这些控制结构可以帮助我们实现复杂的逻辑判断和数据处理。

wincc常用C脚本功能

wincc常用C脚本功能

.用户注销:#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 ();按钮变三种颜色#include "apdefap.h"long _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName){#pragma option(mbcs)if(GetTagWord("TX/ZSH001")==1)return 0x0000ff00;elseif(GetTagWord("TX/ZSL001")==1)return 0x000000ff;elsereturn 0x00c0c0c0;}一个调用按钮变色#include "apdefap.h"long _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName){#pragma option(mbcs)if(GetTagWord("NewTag")==0)return 0x0000ff00;elsereturn 0x00ffffff;}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: BOOL SetTagBit("DISPLAY_COMMENT",0);}else{SetTagBit("COLSE_DISPLAY",1);SetTagBit("DISPLAY_NO",1); //Return-Type: BOOL SetTagBit("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("rn 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中常用C脚本

wincc中常用C脚本

查看文章wincc常用C动作2010-06-27 10:311.用户注销:#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_SYSTEM MODAL) == 6){ SetTagBit("30T制水启动",1);//Return-Type :BOOL}}else{if(MessageBox(NULL,"真的要停止制水吗?","操作提示",MB_YESNO|MB_ICONQUESTION|MB_SETFOREGROUND|MB_SYSTEM MODAL) == 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上使用C脚本的基本方法

在WinCC上使用C脚本的基本方法

在WinCC上使用C脚本的基本方法wq 去学PLC技术一、创建、编辑动作WinCC有3个编辑脚本动作的入口:(1)画面对象的属性任务;(2)画面对象的事件任务;(3)全局脚本编辑器。

3者都能进入脚本编辑界面,但却各有不同之处。

1、画面对象的属性任务和事件任务画面对象的属性任务和事件任务都可以组态成'C动作',二者的不同之处在于:•用'C动作'实现'属性任务',需要为动作指定'触发器',否则该动作不会执行;•用'C动作'组态'事件任务',则无需指定'触发器',事件本身即为该动作的触发器。

2、'全局脚本编辑器'下编辑动作在'全局脚本编辑器'下,编写的'C动作'也需要指定'触发器'后,动作才能执行,方法见图2所示。

另外,与画面对象的'属性任务'及'事件任务'不同,在全局脚本编辑器中编写的动作用于处理独立于画面的后台任务,如打印日常报表、监控变量或执行计算等。

'属性任务'和'事件任务'虽然也能处理上述工作,但最常见的用法是用于和画面对象相关的操作。

此外,'全局脚本编辑器'里的动作,要想执行,还需要在'计算机属性'的'启动'选项卡中,将'全局脚本运行系统'使能。

'C动作'本质上是一段C代码,语法遵循C语言的语法规则。

我们可以自己写代码,也可以调用已存在的项目函数、标准函数及内部函数等。

二、'全局脚本编辑器'中动作的特点'属性任务'和'事件任务'中的C脚本比较好理解,下面重点介绍'全局脚本编辑器'下的动作的特点有哪些?1、'动作'是有用户创建、编辑的一段C代码,为了防止未经授权的人员修改和查看,可以为动作设置'口令保护',如图4所示。

Wincc屏幕设计---C脚本的行业应用

Wincc屏幕设计---C脚本的行业应用

Wincc屏幕设计---C脚本的行业应用1. 引言Wincc(Windows Control Center)是一款由西门子开发的用于监控和配置工业过程的优秀软件。

在众多的行业应用中,C脚本因其强大的功能和灵活性,成为了Wincc屏幕设计的重要工具。

本文将详细介绍C脚本在Wincc屏幕设计中的行业应用,帮助读者深入了解C脚本在实际工程项目中的优势和应用场景。

2. C脚本概述C脚本是一种基于C语言的脚本语言,可用于Wincc屏幕设计中的自定义功能实现。

它具有以下特点:- 强大的功能:C脚本可以实现数据处理、数学计算、逻辑判断等复杂功能。

- 灵活性:C脚本可以与Wincc中的各种数据类型和对象进行交互,满足各种工程需求。

- 跨平台:C脚本可在不同操作系统上运行,具有较好的兼容性。

3. C脚本在Wincc屏幕设计中的应用场景3.1 数据处理与计算在工业过程中,经常需要对实时数据进行处理和计算。

例如,计算流量、温度、压力等参数的平均值、最大值、最小值等。

利用C脚本,可以方便地实现这些功能,并在Wincc屏幕上展示。

3.2 逻辑判断与控制在工业控制过程中,需要根据实时数据进行逻辑判断,以控制设备的启停、切换等。

C脚本可以实现复杂的逻辑判断功能,例如:- 如果温度超过设定值,则启动冷却系统;- 如果压力低于设定值,则停止泵送系统。

3.3 动态显示与动画C脚本可以实现动态显示和动画效果,使Wincc屏幕更具互动性和可视性。

例如,根据实时数据动态显示液位高度、设备运行状态等。

3.4 数据记录与报警利用C脚本,可以实现数据的记录和报警功能。

例如,记录设备运行参数的历史数据,当参数超过设定范围时触发报警。

4. 行业应用案例以下是一些C脚本在Wincc屏幕设计中的行业应用案例:4.1 石油化工行业在石油化工行业中,C脚本可用于实时监测生产设备的状态,如温度、压力、流量等参数,并根据这些数据进行逻辑判断,以实现自动控制。

关于WINCC的C脚本的使用总结

关于WINCC的C脚本的使用总结

Wincc的脚本功能及其强大,可以通过C脚本实现各种功能,但是脚本比较繁琐,始终不得其道,经过对比研究,发现了一些规律
1.全局脚本的实现
打开全局脚本编辑器,在“动作”-“全局动作“-新建动作,出现脚本编辑器的正文
可以看到正文已经有一部分内容,这些内容包括自带的全局脚本的声明及注释内容,都需要更改,也更改不了。

在第一大括号后,我们可以自己编用户脚本了,用户脚本一般是这样的结构:首先对数据和变量进行声明,即对其数据类型进行声明;然后,对变量进行取属性,转换变量,用value1=GetTagDWord("AI0");(这是个例子),意思是把AI0的值取出给value1了,然后就可以对value1进行计算了,计算后再置属性,转换变量,用
SetTagDWord("AI0",value1);
其他的地方注意符号和空格,然后编译,编译过了之后保存,并生成头文件,然后就见证奇迹吧。

下图是依次点亮的脚本
下图是液位高高报警的脚本。

Wincc常用C脚本及常用功能

Wincc常用C脚本及常用功能

Wincc常用C脚本及常用功能打开用户管理器ProgramExecute("Passcs.exe"); 取消激活#include "apdefap.h"void OnLButtonDown(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName,UINT nFlags, int x, int y){#pragma option(mbcs)HWND hwnd=NULL;int iRet;hwnd=FindWindow(NULL,"WinCC-运行系统 - "); //获得句柄iRet=MessageBox(hwnd,"是否取消激活?","Deactivate",MB_OKCANCEL|MB_ICONWARNING|MB_APPLMODAL);if(iRet==1)DeactivateRTProject (); //Return-Type: BOOL}关闭计算机#include "apdefap.h"void OnLButtonDown(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName,UINT nFlags, int x, int y){#pragma option(mbcs)HWND hwnd=NULL;int iRet;hwnd=FindWindow(NULL,"WinCC-运行系统 - ");iRet=MessageBox(hwnd,"是否关闭计算机?","ShutDown",MB_OKCANCEL|MB_ICONWARNING|MB_APPLMODAL);if(iRet==1)DMExitWinCCEx(DM_SDMODE_SYSTEM); }==================================================================== ==登陆代码:#pragma code(“useadmin.dll”)#include <pwrt_api.h>#pragma code()PWRTLogin (…e?);==================================== 取消激活(Deactivate)DeactivateRTProject();====================================== Wincc变量操作GetTagDWord(“变量名称”); 获取Wincc变量值SetTagDWord(“变量“,设定值); 设置Wincc变量对文本读写操作写操作#include "apdefap.h"void OnLButtonUp(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName,UINT nFlags, int x, int y) {#pragma option(mbcs)FILE* lpFile;char *shuzhu[6]={"tag_1","tag_2","tag_3","tag_4","tag_5","tag_6"};char* lpszStr;int i,j;lpszStr=SysMalloc(60); //Return-Type: void*lpFile = fopen("D:\\test.txt", "w+");for(i=0;i<6;i++){lpszStr=GetTagChar(shuzhu[i]); strcat(lpszStr,"\r\n");if(lpFile == NULL){ printf("can not open file\r\n"); return;}fprintf(lpFile, lpszStr); }SysFree(lpszStr);fclose(lpFile);}读操作#include "apdefap.h"void OnLButtonUp(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName,UINT nFlags, int x, int y) {#pragma option(mbcs)char* shuzhu[6]={"tag_1","tag_2","tag_3","tag_4","tag_5","tag_6"}; char tmp[255];int i=0;int ChrNumLine=38;FILE *fp;fp=fopen("D:\\test.txt","r"); if (fp==NULL){return;}else{rewind(fp);while(!feof(fp)){fgets(tmp,ChrNumLine,fp);SetTagChar(shuzhu[i],tmp);i++;}}fclose(fp);}画面窗口显示界面切换SetPictureName(lpszPictureName,"PicWindow_button","produce_manage_bu tton.pdl");SetVisible(lpszPictureName,"PicWindow_button",1);注:PicWindow_button是画面窗口名称;produce_manage_button.pdl是要显示的子画面。

Wincc画面生成技巧——C脚本详解

Wincc画面生成技巧——C脚本详解

Wincc画面生成技巧——C脚本详解介绍本文档旨在详细解释Wincc画面生成中的C脚本技巧,帮助读者更好地理解和应用这些技术。

C脚本简介C脚本是Wincc中用于编写逻辑和功能的一种脚本语言。

通过使用C脚本,我们可以实现画面的自动化操作和控制。

C脚本技巧以下是一些C脚本技巧,可以帮助您在Wincc画面生成中更高效地编写代码:1. 变量使用:合理使用变量可以提高代码的可读性和可维护性。

在使用变量时,应注意变量的作用范围和命名规范。

变量使用:合理使用变量可以提高代码的可读性和可维护性。

在使用变量时,应注意变量的作用范围和命名规范。

2. 条件语句:使用条件语句可以根据不同的情况执行不同的操作。

常见的条件语句包括if语句和switch语句。

条件语句:使用条件语句可以根据不同的情况执行不同的操作。

常见的条件语句包括if语句和switch语句。

3. 循环语句:使用循环语句可以重复执行某段代码。

常见的循环语句有for循环和while循环。

循环语句:使用循环语句可以重复执行某段代码。

常见的循环语句有for循环和while循环。

4. 函数封装:将常用的代码封装成函数,可以提高代码的重用性和可维护性。

在编写函数时,应注意函数的输入参数和返回值。

函数封装:将常用的代码封装成函数,可以提高代码的重用性和可维护性。

在编写函数时,应注意函数的输入参数和返回值。

5. 错误处理:在编写代码时,应考虑可能出现的错误,并进行相应的错误处理。

可以使用try-catch语句来捕捉和处理异常。

错误处理:在编写代码时,应考虑可能出现的错误,并进行相应的错误处理。

可以使用try-catch语句来捕捉和处理异常。

6. 调试技巧:在编写代码时,应养成良好的调试惯,通过使用断点、打印变量值等方式来调试代码,以确保代码的正确性。

调试技巧:在编写代码时,应养成良好的调试习惯,通过使用断点、打印变量值等方式来调试代码,以确保代码的正确性。

7. 代码优化:在编写代码时,应尽量优化代码结构和算法,以提高代码的执行效率。

Wincc制图过程中的C脚本应用

Wincc制图过程中的C脚本应用

Wincc制图过程中的C脚本应用Wincc是一款用于监控和控制系统的软件,而C脚本是Wincc中用于编写自定义功能的一种编程语言。

在制图过程中,使用C脚本可以实现更复杂的功能和逻辑,提高图形界面的交互性和灵活性。

以下是在Wincc制图过程中应用C脚本的一些常见用途:1. 数据处理和计算:使用C脚本可以对传感器数据进行处理和计算,实现实时数据的加工和分析。

例如,可以使用C脚本计算温度的平均值或者累积量。

2. 动态图形效果: C脚本可以控制图形元素的显示和动态效果。

例如,可以使用C脚本实现图形元素的闪烁、颜色变化或者位置移动等动态效果,以便更直观地展示系统状态。

3. 用户交互和控制: C脚本可以实现用户输入的处理和系统控制的反馈。

例如,可以使用C脚本获取用户输入的数值或选项,并根据用户的选择进行相应的操作。

4. 报警和通知:使用C脚本可以实现报警和通知功能。

例如,可以使用C脚本监测某个变量的数值,当其超过设定的阈值时触发报警或发送通知。

在应用C脚本时,需要注意以下几点:- 熟悉C语言语法:由于C脚本是基于C语言的,所以熟悉C 语言的语法和编程思想非常重要。

- 合理使用变量和函数:在编写C脚本时,应合理定义和使用变量和函数,以便实现代码的可读性和重用性。

- 错误处理和调试:在编写C脚本时,应注意错误处理和调试技巧,以确保代码的稳定性和可靠性。

总而言之,C脚本在Wincc制图过程中具有广泛的应用,可以实现更复杂的功能和逻辑,提高系统的交互性和灵活性。

熟练掌握C脚本编程技巧,将能更好地应用于Wincc制图中。

Wincc常用C脚本及常用功能

Wincc常用C脚本及常用功能

打开用户管理器ProgramExecute("");取消激活#include ""void OnLButtonDown(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName, UINT nFlags, int x, int y){#pragma option(mbcs)HWND hwnd=NULL;int iRet;hwnd=FindWindow(NULL,"WinCC-运行系统- "); 01-1",".A01-0",".A00-2",".A00-3",".A00-6",".A21-2",".A21-1",".T1",".T2",".T3",".T4",".steady_time ",".overfeed_time",".A01-3",".A01-4",".A30-1",".A30-2",".A30-3",".A30-4",".A30-5",".A30-6",".A30-7",".A30-8",".A30-9",".A30-10",".A3 0-11",".A30-12",".A31-1",".A31-2",".A31-3",".A31-4",".A31-5",".A31-6",".A31-7",".A31-8",".A31-9",".A31-10",".A3 1-11",".A31-12"};char *chr_current;char *pos;HWND hWnd=NULL;hWnd=FindWindow(NULL,"WinCC-运行系统- ");chr_current=SysMalloc(30); //Return-Type: void*pos=SysMalloc(10); //Return-Type: void*pos=GetTagChar("current");//--------------Get Value-----------------------------------if(GetTagWord("current")>=1){for(i=0;i<39;i++){strcpy(chr_current,"stru_pos_");strcat(chr_current,pos);strcat(chr_current,houzui[i]);mid_value[i]=GetTagFloat(chr_current);}//-------------------------muti send---------------------------------------start_flag=GetTagWord("start");end_flag=GetTagWord("end");if(start_flag<=end_flag){for(i=start_flag;i<=end_flag;i++){SetTagWord("mid_pos",i);pos=GetTagChar("mid_pos");for(j=0;j<39;j++){strcpy(chr_current,"stru_pos_");strcat(chr_current,pos);strcat(chr_current,houzui[j]);SetTagFloat(chr_current,mid_value[j]);}}MessageBoxA(hWnd,"群设置完成!","Multi Send",MB_OK|MB_ICONINFORMATION|MB_APPLMODAL);}elseMessageBoxA(hWnd,"起始位需小于等于结束位!","Warning",MB_OK|MB_ICONWARNING|MB_APPLMODAL);}elseMessageBoxA(hWnd,"当前位号输入错误!","Warning",MB_OK|MB_ICONWARNING|MB_APPLMODAL);}。

Wincc界面制作:C脚本的实际操作

Wincc界面制作:C脚本的实际操作

Wincc界面制作:C脚本的实际操作概述本文档介绍了在Wincc界面制作中使用C脚本的实际操作。

通过使用C脚本,您可以实现更复杂的逻辑和功能,提升Wincc界面的灵活性和交互性。

C脚本的基本语法C脚本是一种编程语言,用于控制Wincc界面的行为和响应。

以下是C脚本的基本语法:- 代码块使用花括号({})包围。

- 使用分号(;)表示语句的结束。

- 使用双斜杠(//)表示注释,注释的内容将被忽略。

在Wincc界面中使用C脚本在Wincc界面制作中,您可以将C脚本与各种控件和事件关联,以实现特定的功能和行为。

以下是一些常见的C脚本应用示例:控件事件响应您可以为控件(如按钮、文本框等)添加事件响应函数,以实现用户交互时的相应操作。

例如,当用户点击按钮时,可以触发相应的事件处理函数。

数据处理与逻辑控制通过C脚本,您可以对Wincc界面中的数据进行处理和控制。

例如,您可以编写代码来验证用户输入的数据是否合法,并根据结果做出相应的处理。

界面切换与导航使用C脚本,您可以实现界面之间的切换和导航功能。

例如,当用户点击某个按钮时,可以通过编写代码来切换到另一个界面。

数据库和文件操作通过C脚本,您可以实现对数据库和文件的读写操作。

例如,您可以编写代码来从数据库中检索数据,并将其显示在Wincc界面上。

实际操作示例以下是一个简单的实际操作示例,展示了如何使用C脚本实现一个简单的功能:// 定义一个变量,用于存储按钮点击次数int clickCount = 0;// 按钮点击事件处理函数void OnButtonClick(){// 每次点击增加计数clickCount++;// 更新界面上的文本显示SetText("label1", "按钮点击次数:" + clickCount);}在上述示例中,我们定义了一个变量`clickCount`,并在按钮点击事件处理函数`OnButtonClick`中对其进行增加,并通过`SetText`函数更新界面上的文本显示。

C脚本在Wincc画面制作中的角色

C脚本在Wincc画面制作中的角色

C脚本在Wincc画面制作中的角色Wincc作为一款功能强大的监控和控制软件,在画面制作中扮演着重要的角色。

而C脚本作为Wincc的脚本语言,更是在画面制作中发挥着重要的作用。

下面将简要介绍C脚本在Wincc画面制作中的角色。

1. 实现画面逻辑控制:C脚本可以用来实现画面之间的跳转和逻辑控制。

通过编写C脚本,我们可以根据特定的条件来决定画面的跳转路径,实现画面间的交互。

同时,C脚本还可以用来实现画面元素的显示和隐藏,根据不同的条件进行控制,提供更好的用户体验。

2. 实现数据处理和计算:在画面制作中,经常需要对采集到的数据进行处理和计算,以及显示处理结果。

C脚本提供了强大的编程能力,可以用来编写数据处理和计算的逻辑。

通过C脚本,我们可以对数据进行各种运算、判断和转换,得到需要的结果,并将结果显示在画面上。

3. 实现报警和事件处理:画面制作中,报警和事件处理是非常重要的功能。

C脚本可以用来监测特定的条件,并在满足条件时触发相应的报警和事件处理逻辑。

通过编写C脚本,我们可以实现报警信息的生成和显示,以及相应的声音和图像提示,及时提醒操作人员。

4. 实现用户界面定制:Wincc的画面制作是为了满足不同用户的需求,提供个性化的界面。

C脚本可以用来实现用户界面的定制化,通过编写C脚本,我们可以根据用户的需求,改变画面元素的样式、位置和行为,实现更加灵活和可定制的用户界面。

总之,C脚本在Wincc画面制作中扮演着重要的角色,它可以实现画面逻辑控制、数据处理和计算、报警和事件处理,以及用户界面定制等功能。

通过合理利用C脚本,我们可以实现更加灵活和强大的画面制作,提高监控和控制系统的效率和可靠性。

WINCC几个常用C语言编程

WINCC几个常用C语言编程

WINCC几个常用C语言编程全局脚本编程(按钮连续增减)说明:1、建立全局脚本函数2、建立全局动作C脚本3、在启动画面的打开画面中调用全局脚本函数4、在计算机的启动选项中选中全局脚本全局脚本函数InitAction ()extern char tagname[30] = " ";extern SHORT count = 0;extern FLOAT low = 0;extern FLOAT high = 0;extern FLOAT step = 0;void InitAction()按钮左键按下连续增加extern char tagname[30];extern SHORT count;extern FLOAT low;extern FLOAT high;extern FLOAT step;strcpy(tagname,"S32i_varia_but_04");count = 1;low = 0;high =1400;step =0.5;精选文档按钮左键按下连续减少extern char tagname[30];extern SHORT count;extern FLOAT low;extern FLOAT high;extern FLOAT step;strcpy(tagname,"S32i_varia_but_04");count = 2;low = 0;high =1400;step =0.5;按钮左键松开停止增减extern SHORT count;count=0;全局动作C脚本(counter.pas)#include "apdefap.h"int gscAction( void ){extern char tagname[30];extern SHORT count;extern FLOAT low;extern FLOAT high;extern FLOAT step;FLOAT value;if ((count==1)||(count==2)) {//get current valuevalue = GetTagFloat (tagname);if (count==1){ //incvalue = value+step;if (value>high) (value=high); //high limit}//ifif (count==2){ //decvalue = value-step;if (value<low) (value=low); //low limit}//ifSetTagFloat (tagname,value);}//ifreturn(0);}全局脚本函数(InitAction)文件:C脚本(counter.pas)文件:按钮左键连续增加文件:按钮左键松开文件:C脚本编程(按钮按击增减)1、直接调用C动作方式实现:#include "apdefap.h"void OnLButtonDown(char* lpszPictureName, char* lpszObjectName, char* lpszPr opertyName, UINT nFlags, int x, int y){FLOAT value;value=GetTagFloat("S32i_varia_but_00"); //get tag valueif (value>1300) (value=1400); //check limitelse value=value+100; //inc valueSetTagFloat("S32i_varia_but_00",value); //set new value2、调用函数方式实现(incdecvalue):FLOAT value;value=GetTagFloat ("S32i_varia_but_04");IncDecValue(&value,0,1400,100,1);SetTagFloat ("S32i_varia_but_04",value);项目函数(incdecvalue)void IncDecValue(FLOAT *value,FLOAT low,FLOAT high,FLOAT step,DWOR D a){FLOAT v;v=*value; //get current valueswitch (a){case 0: {if (v<step) (v=0); //low limitelse v=v-step; //decrement} //case 0break;case 1:{if (v>(high-step))(v=high); //high limitelse v=v+step; //increment}//case 1break;}//switch*value=v; //return}项目函数(incdecvalue)文件:C脚本编程(按钮切换开关):#include "apdefap.h"void OnLButtonDown(char* lpszPictureName, char* lpszObjectName, char* lpszPr opertyName, UINT nFlags, int x, int y){BOOL state; //flip tagstate = !GetTagBit("BINi_varia_but_16"),SetTagBit("BINi_varia_but_16",(SHORT)state);}按钮切换开关文件:。

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

wincc 全局脚本c程序功能
wincc全局脚本c程序实现什么功能
尤其是其中的变量d、及s_state作用。

问题补充:还有一个疑问:“当时间大于2013年9月1日后,画面将产生报警dataalm,报警dataalm2,故障fault,然后再清楚报警dataalm,dataalm2,但是故障将一直有。


中的fault会对系统正常运行有影响吗?
图片说明:1,wincc 全局脚本c程序解读
最佳答案
d是一个解锁密码,d为1时,清楚所有报警和故障。

s_state变量是wincc的一个变量,就是d。

当d为0时,有一个内部状态机,状态值为e,该值为0,1,2,反复循环。

当e为2时,自动清楚两个报警;
当e为1时,时间大于2013年7月1日,将产生报警dataalm;
当e为1时,时间大于2013年9月1日,将再产生一个报警dataalm2和故障fault;
也就是说,时间大于2013年7月1日,画面将反复产
生dataalm报警,然后再清楚该报警;
当时间大于2013年9月1日后,画面将产生报警dataalm,报警dataalm2,故障fault,然后再清楚报警dataalm,dataalm2,但是故障将一直有。

相关文档
最新文档