WINCC脚本个人经验总结
wincc 使用技巧
wincc 使用技巧WinCC是一款功能强大、灵活易用的人机界面软件。
在使用WinCC时,我们可以采用以下一些技巧来提高工作效率和使用体验。
1. 合理组织项目结构:在创建WinCC项目时,可以将各个功能模块按照逻辑关系进行分组,使用文件夹进行管理。
这样可以使项目结构清晰明了,方便后续的维护和升级。
2. 使用模板和屏幕共享:在WinCC中,可以提前设计好一些常用的模板,包括图形、报表等,然后通过屏幕共享的方式在不同的屏幕中使用这些模板。
这样可以避免重复工作,提高开发效率。
3. 使用标签和物理地址:在编写WinCC项目时,可以使用标签来代替具体的变量或地址,这样可以使项目更加灵活、易于维护。
同时,还可以使用物理地址功能,将变量和设备的物理地址进行绑定,这样可以使项目更加直观、易于理解。
4. 使用宏和脚本:WinCC提供了宏和脚本的功能,可以通过编写脚本来实现一些复杂的功能和逻辑。
比如,可以使用脚本来实现数据处理、报警处理等功能,从而使项目更加智能化。
5. 使用报表功能:WinCC提供了报表功能,可以方便地生成各种类型的报表,如小时报表、日报表、月报表等。
可以通过配置报表模板、选择需要的变量等方式来生成报表,轻松实现数据分析和统计。
6. 使用WinCC OA配合使用:WinCC OA是一款用于企业级应用的盖世物联软件平台。
可以将WinCC和WinCC OA结合起来使用,通过WinCC OA提供的功能,实现数据采集、分析和远程监控等功能,从而实现工业自动化的目标。
7. 学习和掌握快捷键:在使用WinCC时,掌握一些常用的快捷键可以提高工作效率。
比如,Ctrl+C和Ctrl+V可以实现复制和粘贴,Ctrl+Z可以撤销上一步操作,Ctrl+S可以保存项目等。
总之,以上是我对使用WinCC的一些技巧的总结。
希望这些技巧可以帮助您更加高效地使用WinCC,提高工作效率。
同时,也欢迎您分享更多的使用经验和技巧。
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-全套脚本总结
)
}
-------------------------------------
——————7、对话框调用——————
BOOL A;
BOOL B;
}
// WINCC:PICNAME_SECTION_START
// syntax: #define PicNameInAction "PictureName"
// next PicID : 1
// WINCC:PICNAME_SECTION_END
return 0;
}
=====================================================
int value;
value=GetTagBit("IM_in");//"IM_in"为触发的变量。
if(value==1)
{
SetVisible("lianxi.pdl","按钮8",TRUE);//lianxi.pdl为控制对象所在画etVisible("lianxi.pdl","按钮8",FALSE);//lianxi.pdl
SetPropWord(lpszPictureName,"qushi","ValueAxisEndValue",Hi);
————————————————————————
——————4、获取位号————————
SetTagChar("TrendTagName1","ProcessValueArchive\\PT111");//Return-Type: BOOL
wincc中C脚本学习方法请教。
wincc中C脚本学习方法请教。
我们学的C语言知识用在WINCC上面时,发现里面有好多的语句是WINCC里面特有的,比如C语言中的print 在WINCC中却是sprint,我学习了C语言却还是不能自己写WINCC的C脚本,为了把WINCC学好,我把c语言基础的教程好好啃了一下,但是发现在自己还是不会写C脚本,C语言学习后并不能让我一下子就上手写WINCC脚本,是否写C脚本不属于电气人员的范畴,必须得学习软件的计算机人员去做的?还是搞电气的全是背下来的C脚本语句来使用吗?
大家分享一下自己是如何将C脚本用得灵活自如的?
最佳答案
首先说一下WinCC里C脚本语法和C语言完全一致
printf函数在WinCC里也是可以直接使用的,不过是输出到诊断窗口
sprintf并不是printf的替代,是规格话字符串的函数,在C语言里也是普遍使用的,在WinCC里使用的也较多其实对于学习WinCC的C脚本,我认为只要掌握C语言基本的语法,数据类型、逻辑运算、字符指针、函数调用
这些熟练应用就差不多了,在C脚本里还有一个非常好的对象指针类型__object,用它来访问WinCC里的对象,或其他如Excel、ADO等可以和VBS脚本里一样便捷的操作对象另外就是熟练掌握WinCC内部函数的使用,其实常用的也就那几个,变量读写,对象属性那些。
相对来说,我觉得VB脚本要容易使用些。
wincc实验报告感想
wincc实验报告感想
《WinCC实验报告感想》
在WinCC实验中,我深刻体会到了工业自动化控制系统的重要性和复杂性。
通过实验,我学会了如何使用WinCC软件来设计、配置和操作人机界面,实现对工业过程的监控和控制。
在这个过程中,我不仅学会了基本的操作技能,还深入了解了自动化控制系统的原理和应用。
在实验中,我发现WinCC软件具有强大的功能和灵活的操作界面,能够满足不同工业场景的需求。
通过WinCC,我们可以实现对工业过程的实时监控、数据采集和分析,从而提高生产效率、降低生产成本。
此外,WinCC还支持多种通信协议和设备接口,能够与各种PLC、传感器和执行器进行无缝连接,实现对整个生产线的集中控制。
在实验中,我还学会了如何使用WinCC软件进行故障诊断和数据记录,及时发现和解决生产过程中的问题,确保生产线的稳定运行。
同时,我也意识到了自动化控制系统在工业生产中的重要性,它不仅可以提高生产效率,还可以提高产品质量、保障生产安全,为企业创造更大的经济效益。
总的来说,通过这次WinCC实验,我不仅掌握了一项重要的工业自动化技术,还深刻理解了自动化控制系统在工业生产中的作用和意义。
我相信这将对我的未来职业发展起到重要的推动作用,我会继续努力学习,不断提升自己的技术水平,为工业自动化领域的发展贡献自己的力量。
VB操作wincc脚本心得
Vbs 操作wincc画面脚本总结一:不使用变量单纯的操作界面1.操作某个画面中控件的属性如Home1.Pdl(总窗体)下的画面窗口2(画面窗口)Sub OnClick(ByVal Item)Dim objCircleDim screennameDim pwnameSet objCircle= ScreenItems("圆1" )objCircle.Radius = 60Set screenname=HMIRuntime.Screens("Home1") //获取要操作的窗体Set pwname=screenname.ScreenItems("画面窗口2") //获取要操作的控件,这里填入你要操作的控件名MsgBox(objCircle.Radius) //输出圆的半径MsgBox (pwname.Picturename) //输出当前画面窗口2的名字End Sub注意当调用某窗体下的某控件的某个属性时,需要声明两个对象,一个接纳这个控件,一个接纳值例如Dim objectDim valueSet object =HMIRuntime.Screens("Home1").ScreenItems("画面窗口2")Set value=object.picturename2.更改画面窗口的对象Sub OnClick(Byval Item)Dim opObjectSet opObject=HMIRuntime.Screens ("Home1").ScreenItems("画面窗口2")opObject.PictureName="Page1.Pdl"End Sub3.设置文本Set titleTxt=HMIRuntime.Screens ("Home1").ScreenItems("静态文本2")titleTxt.Text =titleTxt.Text+"EF" //获取文本的值并追加字符4.vb 字符串函数VB的字符串截取函数有Left(字符串,n),返回字符串前N个字符;Mid(字符串,p,n),从第p个字符开始,向后截取N个字符;right(字符串,n),返回字符串的最后n 个字符。
VB操作wincc脚本心得
Vbs 操作wincc画面脚本总结一:不使用变量单纯的操作界面1.操作某个画面中控件的属性如(总窗体)下的画面窗口2(画面窗口)Sub OnClick(ByVal Item) Dim objCircleDim screennameDim pwnameSet objCircle= ScreenItems("圆1" )= 60Set screenname=("Home1") creenItems("画面窗口2")Set value=2.更改画面窗口的对象Sub OnClick(Byval Item)Dim opObjectSet opObject= ("Home1").ScreenItems("画面窗口2")=""End Sub3.设置文本Set titleTxt= ("Home1").ScreenItems("静态文本2")=+"EF" Dim objTagDim ATextSet objTag = ("a") vb 中Switch语句的变体Dim objTagDim ATextSet objTag = ("a") 你要求是有是和否两个按钮那么MyVar = MsgBox ("Hello World!",65, "MsgBox Example")中的65改成4就可以了!vbs脚本中:if msgbox("确实要启动设备吗",4,"警告")=6 then("tag1").write 1end if。
wincc 全套脚本总结
} -------------------------------------
——————6、时间同步——————
void SetCpuTime() { #pragma code("kernel32.dll"); void GetLocalTime(SYSTEMTIME *lpst); #pragma code(); SYSTEMTIME time BOOL ret; //printf("Start function SetCpuTime\r\n"); GetLocalTime(&time); ret= SetTagMultiWait("%d%d%d%d%d%d%d",
"data_FLAG",1
) }
-------------------------------------
——————7、对话框调用——————
BOOL A; BOOL B; HWND hwnd=NULL; int RetMsg; A=GetTagBit("TJ_ANNIU"); //Return-Type: BOOL hwnd=FindWindow(NULL,"WinCC-运行系统 - "); if (A==0)
MB_OK|MB_SYSTEMMODAL|MB_SETFOREGROUND); SetTagBit("TJ_ANNIU",0);
} else B=0; } else { } ------------------------------------------
——————8、声音报警——————
#pragma code("Winmm.dll") VOID WINAPI PlaySoundA(char* pszSound,char* hmode,DWORD dwflag); #pragma code()
Wincc界面设计——C脚本实践
Wincc界面设计——C脚本实践简介本文档旨在介绍Wincc界面设计中使用C脚本的实践方法。
通过使用C脚本,可以为Wincc界面添加更多的功能和交互性,提升用户体验。
C脚本的基本语法C脚本是一种通用的编程语言,可以用于Wincc界面设计中。
以下是C脚本的基本语法:- 变量声明和赋值- 条件语句(if-else语句)- 循环语句(for循环、while循环)- 函数定义和调用C脚本在Wincc界面设计中的应用1. 控件事件处理通过在控件上绑定事件,并使用C脚本编写相应的事件处理函数,可以实现控件的交互功能。
例如,点击按钮后执行某个操作,或者在文本框中输入内容后进行验证。
2. 数据处理与显示使用C脚本可以对Wincc界面上的数据进行处理和显示。
通过编写相应的C脚本函数,可以实现数据的计算、格式化和转换,然后将结果显示在相应的控件上。
3. 数据库操作C脚本还可以用于与数据库进行交互。
通过使用数据库相关的C库函数,可以实现数据的读取和写入,从而实现与数据库的连接和操作。
4. 系统调用在Wincc界面设计中,有时需要与操作系统进行交互,例如执行外部程序或者访问系统资源。
使用C脚本可以调用系统相关的API函数,实现与操作系统的交互。
注意事项在使用C脚本进行Wincc界面设计时,需要注意以下事项:- 确保C脚本的正确性和安全性,避免出现漏洞和错误。
- 确保C脚本与Wincc界面的兼容性,避免出现冲突和不兼容的情况。
- 在使用C脚本时,应遵循良好的编程惯,保持代码的可读性和可维护性。
结论通过使用C脚本,可以为Wincc界面设计增加更多的功能和交互性。
合理利用C脚本,可以提升用户体验,使Wincc界面更加便捷和高效。
关于WINCC的C脚本的使用总结
Wincc的脚本功能及其强大,可以通过C脚本实现各种功能,但是脚本比较繁琐,始终不得其道,经过对比研究,发现了一些规律
1.全局脚本的实现
打开全局脚本编辑器,在“动作”-“全局动作“-新建动作,出现脚本编辑器的正文
可以看到正文已经有一部分内容,这些内容包括自带的全局脚本的声明及注释内容,都需要更改,也更改不了。
在第一大括号后,我们可以自己编用户脚本了,用户脚本一般是这样的结构:首先对数据和变量进行声明,即对其数据类型进行声明;然后,对变量进行取属性,转换变量,用value1=GetTagDWord("AI0");(这是个例子),意思是把AI0的值取出给value1了,然后就可以对value1进行计算了,计算后再置属性,转换变量,用
SetTagDWord("AI0",value1);
其他的地方注意符号和空格,然后编译,编译过了之后保存,并生成头文件,然后就见证奇迹吧。
下图是依次点亮的脚本
下图是液位高高报警的脚本。
WINCC脚本个人经验总结
lpszPropertyName)
{
#pragma code(\"Winmm.dll\")
void WINAPI PlaySoundA(char *pszSound,char *hmode,DWORD dwflay);
long _main(char* lpszPictureName, char* lpszObjectName, char*
lpszPropertyName)
{
#pragma code(\"Winmm.dll\")
void WINAPI PlaySoundA(char *pszSound,char *hmode,DWORD dwflay);
解答:
重新启动以及在运行期间,您希望HMI系统达到最小的实用性而不使用登录窗口。然而,对于高级操作,登录功能应当保留。此外,如果没有用户登录,则有一个缺省的用户自动登录。缺省用户的权限可以在用户管理器中根据需要设定。
可使用下面的C脚本执行此项功能,请按照下列步骤进行:
将附件中的函数“Silentlogin.pas”复制到项目中的“PAS”子文件夹中。
#pragma code()
if(GetTagBit(\"112排泥备泵故障\"))
PlaySoundA(\"d:\\\\\\\\winnt\\\\\\\\media\\\\\\\\Mircosoft sound.wav\",NULL,8);
return 1020;
}重新启动后,不使用登录窗口如何以一个缺省用户的身份自动登录?怎样确保运行期间有个缺省用户始终处于登入状态?即使另外一个用户已经预先退出。
VB操作wincc脚本心得精选文档
VB操作wincc脚本心得精选文档1. 理解VB语法和WinCC对象模型:在编写VB脚本之前,首先要熟悉VB语法和WinCC对象模型。
了解这些基础知识可以帮助我们更好地理解和应用脚本。
2. 使用合适的事件触发脚本:WinCC提供了多种事件触发的方式,如按钮点击事件、数值变化事件等。
我们需要根据具体的需求选择合适的事件来触发脚本的执行。
例如,如果需要在一些按钮被点击时执行一段脚本,我们可以选择按钮的点击事件。
3.合理使用变量:在脚本中,我们经常需要使用到各种变量。
在使用变量时,需要注意变量的命名规范和作用域。
为了避免混淆和错误,建议在脚本中使用有意义的变量名,并将变量的作用域限制在需要的范围内。
4. 错误处理和调试:在编写脚本时,难免会出现错误。
为了及时发现和解决问题,我们需要合理地处理错误和进行调试。
在编写脚本时,可以使用Try-Catch语句来捕获和处理异常。
同时,可以使用输出语句或调试工具来输出和查看调试信息,帮助我们找到问题的所在。
5. 高效使用WinCC提供的功能:WinCC提供了许多有用的功能和方法,我们可以充分利用这些功能来简化脚本的编写和提高脚本的效率。
例如,我们可以使用WinCC提供的图表功能来实现数据的可视化展示,使用WinCC提供的报警功能来实现报警的处理等。
6.编写可复用的脚本:在实际应用中,我们可能需要多次使用相同或类似的脚本。
为了提高代码的复用性,我们可以将一些常用的脚本封装成函数或子程序,以便在需要的时候调用。
这样不仅可以节省编写代码的时间,还可以提高代码的可维护性。
7.做好文档和注释:在编写脚本时,我们应该养成良好的文档和注释习惯。
在脚本中加入适当的注释可以帮助他人更好地理解和使用脚本。
同时,我们也应该编写清晰明了的文档,记录脚本的功能、用法和注意事项,以便他人参考和使用。
总结起来,编写VB操作WinCC脚本需要掌握VB语法和WinCC对象模型,合理选择事件触发脚本,合理使用变量,处理错误和进行调试,高效使用WinCC提供的功能,编写可复用的脚本,并做好文档和注释。
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-全套脚本总结
wincc-全套脚本总结——————1、wincc全局脚本动作-------隐藏控件——————#include "apdefap.h"int gscAction( void ){// WINCC:TAGNAME_SECTION_START// syntax: #define TagNameInAction "DMTagName"// next TagID : 1// WINCC:TAGNAME_SECTION_ENDint value;value=GetTagBit("IM_in");//"IM_in"为触发的变量。
if(value==1){SetVisible("lianxi.pdl","按钮8",TRUE);//lianxi.pdl为控制对象所在画面名,“按钮8”为对象名称}else{SetVisible("lianxi.pdl","按钮8",FALSE);//lianxi.pdl}// WINCC:PICNAME_SECTION_START// syntax: #define PicNameInAction "PictureName"// next PicID : 1// WINCC:PICNAME_SECTION_ENDreturn 0;}====================================== ===============说明:在触发器里选择变量IM_in——————2、wincc全局脚本动作----提示框——————#include "apdefap.h"int gscAction( void ){// WINCC:TAGNAME_SECTION_START// syntax: #define TagNameInAction "DMTagName"// next TagID : 1// WINCC:TAGNAME_SECTION_ENDint value;value=GetTagBit("IM_in");if(value==1){MessageBox(NULL,"请确认三厅相关门是否关好,或者请解锁。
WINCC脚本字符串处理总结
WINCC脚本字符串处理总结组态注意事项:下面说明了关于在C脚本中处理字符串时最重要的问题。
必须考虑性能和稳定性因素。
在不一致时,内存区可能被覆写,从而使系统锁死。
最坏的情况出现在字符指针。
如果指针设计不当,内存区可能被覆写。
下面是有关错误和正确组态的四个样例。
没有预留内存区: char *a; a=GetTagChar("Tag name"); strcat(a,"xyz"); //有一个连接到文本的指针“a” //没有预留内存区•正确:通过查询有效的指针将字符串正确复制到预定义的缓冲器中(来自描述WinCC信息系统的样例):•char* pszValue = NULL;•char szValue[101];•pszValue = GetTagChar("Varname"); //读标签值并将其缓存到pszValue。
/*如果返回一个有效值,将该函数返回值存入局部字符串szValue中。
最多保存100个字符。
*/•if(pszValue !=NULL) //!=NULL是必须执行的检查//以便保证没有NULL指针提交•{•strncpy(szValue,pszValue,100); …•}•else•{•printf("Pointer invalid\r\n"); //使用了无效值•}•}没有预留足够的内存区:通常,由于预留的内存区太小导致内存被覆写。
在这些情况下,通常在C中进行字符串处理时,文本结尾的一个附加字符必须始终被保留。
也就是说,必须要比被处理的文本长度多预留出一个字符。
•错误: char a[4]; strcpy(a,"1234"); //总是有4个字符被复制到一个4字符的数组中; // 错误:文本的结尾字符被遗漏•正确: char a[5]; //内存区的大小必须//总是比被复制的文本多一个字符 strcpy(a,"1234");•字符*作为项目函数的返回值无效:如果在项目函数中返回“char*”,必须用“SysMalloc”预留相应的内存区。
wincc工业组态心得体会1000字
wincc工业组态心得体会1000字我很喜欢旅行,这次因为工作的原因让我远离家乡和亲人。
不过好在老公一直安慰我说:“放心吧,你去工作,这里有他呢!”其实虽然嘴上这样讲着,但是内心还是十分挂念家人的。
记得上个月老公刚给我打电话说我可以出发了,没想到真正要出门时却开始紧张起来。
总觉得对不住大家似的。
尤其是爸妈,那天晚上只能靠视频看见他们。
心情无比复杂。
经历长达20多小时火车之旅,终于踏上我的异国土地——加拿大。
说起来,最高兴的就是老公。
因为第二天下午才开机,所以带着它俩吃喝玩乐两天,基本都是由他全程负责接待、陪同等事宜。
虽然身体疲惫,但内心充满快乐与幸福感。
回顾整个假期,老公的确做了许多令我惊讶而又温暖的事儿。
除了处理好平日繁琐的文件外,每当我遇到难题或者需要帮助时他也会义不容辞的伸手相助。
特别值得提及的是,他教会了我如何使用 wincc 组态软件。
刚到加拿大时什么东西都找不到,连中餐馆都少之又少,更别谈饭店了。
现代社会哪怕你再懒惰也应该学习些技术,否则生活将变成一团糟糕。
正因为此, wincc 是必须掌握的。
通常我们选择组态软件首先考虑的是价格问题,毕竟谁也不愿意花钱买个***。
因此老公告诉我:“买任何产品前,千万不要盲目追求便宜,质量才是关键;而且不仅是硬件设备,软件方面也非常重要。
”听完他的建议后,瞬间茅塞顿开,立马购入一套。
第三天正式开机调试,老公不厌其烦的指导我怎么操控设备。
通过几次尝试,我已熟练运用 wincc 组态编辑器。
除此之外,更让我受益匪浅的是,以往看图纸画流程图的时候,老是犯晕头转向症状。
换句话说,对我来说图纸太抽象化了,根本搞不懂其中含义。
但有了老公的帮忙,一切显得轻松简单多了。
这段时间里老公耐心细致的教授知识点,尽管他语言表述并不清晰,甚至口音浓厚,但依旧能准确描绘各种数据参数名称,并附注标明数字含义,直观易懂。
当我按照步骤进行操作时,居然毫无障碍,瞬间被圈粉啊。
所谓磨刀不误砍柴功嘛。
WINCC脚本技巧
1、问:如何触发计算机扬声器的声音?答:编写如下C-Action:#pragma code("kernel32.dll");BOOL Beep(DWORD dwFreq,DWORD dwDuration);#pragma code();Beep(500,500);2、问:如何通过C脚本来确定报警信息?答:首先必须在画面中插入报警控件,可以用如下两种方式来确认信息:(1)、确认单条信息4版本和高于此版本的WinCCBOOL OnBtnSinglAckn(char*lpszPictureName,char*lpszObjectName)5版本和高于此版本的WinCCBOOL AXC_OnBtnSinglAckn(char*lpszPictureName,char*lpszObjectName)(2)、确认报警窗口所有可见的报警4版本和低于此版本的WinCCBOOL OnBtnVisibleAckn(char*lpszPictureName,char*lpszObjectName)5版本和高于此版本的WinCCBOOL AXC_OnBtnVisibleAckn(char*lpszPictureName,char*lpszObjectNa me)3、问:如何在WinCC中读取系统时间?答:通过如下C-Action:#pragma code("kernel32.dll");Void GetLocalTimes(SYSTEMTIME*lpst);#pragma code();SYSTEMTIME time;GetLocalTime(&time);SetTagWord("Varname",time.wYear);SetTagWord("Varname",time.wMonth);SetTagWord("Varname",time.wDayOfWeek);SetTagWord("Varname",time.wDay);SetTagWord("Varname",time.wHour);SetTagWord("Varname",time.wMinute);SetTagWord("Varname",time.wSecond);SetTagWord("Varname",time.wMilliseconds);4、问:如何经Windows对话框设置日期时间?答:通过调用Windows对话框实现。
wincc工作总结
一.在wincc中左登陆界面,其中可以设几个用户名合密码1、打开WINCC项目--用户管理器--单击右键添加新用户--设置登录名及口令账户名1234 密码1111112、创建画面 NewPdl0.Pdl(登陆界面) NewPdl11.Pdl(登陆成功界面)3、在NewPdl0.Pdl(登陆界面)画两个输入框输入输出域1(输入账户)输入输出域2(输入密码)先对输入框做调整,属性---》输出/输入输出值:0 数据格式:字符串输出格式 *退出时应用是隐藏输入否属性---》事件-----》输入/输出域--------》属性主题------>输出/输入-----》输入值内的更改选择C动作加入C脚本函数#include "apdefap.h"void OnPropertyChanged(char* lpszPictureName, char* lpszObjectName, c har* lpszPropertyName, char* value){SetOutputValueChar(lpszPictureName,lpszObjectName,GetInputValueChar(l pszPictureName,lpszObjectName));}两个输入框都一样4、在NewPdl0.Pdl(登陆界面)画两个按钮确定退出选择确定属性---》事件---》鼠标内的鼠标动作选择C动作加入C脚本函数#include "apdefap.h"void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszP ropertyName){#pragma code ("UseAdmin.DLL")#include "pwrt_api.h"#pragma code ()if (PWRTSilentLogin(GetInputValueChar(lpszPictureName,"输入输出域1"),GetInputValueChar(lpszPictureName,"输入输出域2")) == FALSE) MessageBox (NULL, "错误,请重新输入!" , "提示", MB_ICONEXCLAMATION| MB_SYSTEMMODAL );//错误时候跳出windows自带的出错对话框}elseOpenPicture("NewPdl1.Pdl");}//成功就开打 NewPdl11.Pdl(登陆成功界面)选择取消属性---》事件---》鼠标内的鼠标动作选择C动作加入C脚本函数#include "apdefap.h"void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszP ropertyName){ExitWinCC ();//退出wincc//Exit WinCC用于退出WinCC组态和运行系统;//Exit Wincc or WIndows 共有4个选项,可选择注销或重启等;//Exit WinCC Runtime则用于退出运行系统;可以选择一种代替上面}二.画中画1、建立一个你要最总要在小画面显示的小画面,在这个画面当中做一个按钮,作用是当你在小窗口调用完这幅画面后隐藏本窗口的如下图对这个按钮进行设置,其中的隐藏按钮画面基本设置好后,可在画面中做你要实现的功能即可。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
if(GetTagBit(\"112排泥备泵故障\"))
PlaySoundA(\"d:\\\\\\\\winnt\\\\\\\\media\\\\\\\\Mircosoft sound.wav\",NULL,8);
return 1020;
}
patch= "d:\"&filename&"demo.xls"
objExcelApp.ActiveWorkbook.SaveAs patch
objExcelApp.Workbooks.Close
objExcelApp.Quit
Set objExcelApp= Nothing
语音报警的组态
在工业现场安全是极其重要的,无论从那个角度讲我们应该利用一切手段减少故障的发生。在故障已经发生的时候,应该在第一时间以多种方式通知操作人员有故障发生。现代微处理计算机的处理速度可以完全胜任对于图形,语音地同时处理。所以我们可以利用计算机的声卡和音箱在有故障发生的时候产生语言报警,但是问题是WinCC本身并不能产生语音的功能,而且其内部的上千个函数也没有提供处理声音的函数。解决这个问题的方法归功于微软开发的WinCC与操作系统地完美结合,因为在WinCC中可以直接调用Windows的API函数。实现的具体C脚本代码如下:
在项目中选择Global Script > C Editor > Actions > Global Actions并打开全局动作(Global Action)“Silentlogin.pas”。
在“PWRTSilentLogin (“Login”,“Password”);”一行中,用缺省的用户名替换用户“Login”,用缺省用户的口令代替“Password”。
#pragma code()
if(GetTagBit(\"112排泥备泵故障\"))
PlaySoundA(\"d:\\\\\\\\winnt\\\\\\\\media\\\\\\\\Mircosoft sound.wav\",NULL,8);
return 1020;
}重新启动后,不使用登录窗口如何以一个缺省用户的身份自动登录?怎样确保运行期间有个缺省用户始终处于登入状态?即使另外一个用户已经预先退出。
无限循环命令
static int a=0, b=0;
if(GetTagBit("BINi_pictu_dyn_09"))
{
if(b==0) a++;
else a--;
if(a==7) b=1;
if(a==0) b=0;
}
return a;
//创建项目函数
BOOL ZS_PA_Start()
{
if(GetTagBit("BINi_ex_tlg_00"))
TlgTrendWindowPressLast件名称以变量的形式表示。参考
'关闭保存
Dim patch,filename
filename=CStr(Year(Now))&CStr(Month(Now))&CStr(Day(Now))&CStr(Hour(Now))+CStr(Minute(Now))&CStr(Second(Now))
long _main(char* lpszPictureName, char* lpszObjectName, char*
lpszPropertyName)
{
#pragma code(\"Winmm.dll\")
void WINAPI PlaySoundA(char *pszSound,char *hmode,DWORD dwflay);
long _main(char* lpszPictureName, char* lpszObjectName, char*
lpszPropertyName)
{
#pragma code(\"Winmm.dll\")
void WINAPI PlaySoundA(char *pszSound,char *hmode,DWORD dwflay);
语音报警的组态
在工业现场安全是极其重要的,无论从那个角度讲我们应该利用一切手段减少故障的发生。在故障已经发生的时候,应该在第一时间以多种方式通知操作人员有故障发生。现代微处理计算机的处理速度可以完全胜任对于图形,语音地同时处理。所以我们可以利用计算机的声卡和音箱在有故障发生的时候产生语言报警,但是问题是WinCC本身并不能产生语音的功能,而且其内部的上千个函数也没有提供处理声音的函数。解决这个问题的方法归功于微软开发的WinCC与操作系统地完美结合,因为在WinCC中可以直接调用Windows的API函数。实现的具体C脚本代码如下:
{
return TRUE;
}
else
{
return FALSE;
}
}
工具栏按钮命令
TlgTrendWindowPressStartStopButton
TlgTrendWindowPressFirstButton
TlgTrendWindowPressPrevButton
TlgTrendWindowPressNextButton
解答:
重新启动以及在运行期间,您希望HMI系统达到最小的实用性而不使用登录窗口。然而,对于高级操作,登录功能应当保留。此外,如果没有用户登录,则有一个缺省的用户自动登录。缺省用户的权限可以在用户管理器中根据需要设定。
可使用下面的C脚本执行此项功能,请按照下列步骤进行:
将附件中的函数“Silentlogin.pas”复制到项目中的“PAS”子文件夹中。