WINCC脚本个人经验总结

合集下载

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脚本,可以实现更加复杂的功能和交互。

本文将介绍如何在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-全套脚本总结

wincc-全套脚本总结
"data_FLAG",1
)
}
-------------------------------------
——————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脚本学习方法请教。

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,我们可以实现对工业过程的实时监控、数据采集和分析,从而提高生产效率、降低生产成本。

此外,WinCC还支持多种通信协议和设备接口,能够与各种PLC、传感器和执行器进行无缝连接,实现对整个生产线的集中控制。

在实验中,我还学会了如何使用WinCC软件进行故障诊断和数据记录,及时发现和解决生产过程中的问题,确保生产线的稳定运行。

同时,我也意识到了自动化控制系统在工业生产中的重要性,它不仅可以提高生产效率,还可以提高产品质量、保障生产安全,为企业创造更大的经济效益。

总的来说,通过这次WinCC实验,我不仅掌握了一项重要的工业自动化技术,还深刻理解了自动化控制系统在工业生产中的作用和意义。

我相信这将对我的未来职业发展起到重要的推动作用,我会继续努力学习,不断提升自己的技术水平,为工业自动化领域的发展贡献自己的力量。

VB操作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脚本心得

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 全套脚本总结

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