WinCC 脚本系统
wincc脚本系统课程设计

wincc脚本系统课程设计一、课程目标知识目标:1. 学生能理解WinCC脚本系统的基本概念,掌握脚本系统的功能与操作流程。
2. 学生能掌握在WinCC中运用脚本语言进行数据处理、监控和报警等基本操作。
3. 学生了解脚本系统在工业自动化领域的应用及其重要性。
技能目标:1. 学生能独立进行WinCC脚本编程,实现对工业数据的实时监控和分析。
2. 学生具备运用脚本系统解决实际工程问题的能力,如编写数据处理、设备控制和报警处理等脚本程序。
3. 学生能通过脚本系统与其他模块的协同工作,实现复杂的自动化控制需求。
情感态度价值观目标:1. 培养学生热爱工业自动化事业,关注行业前沿技术,增强科技创新意识。
2. 培养学生具备良好的团队协作精神,能够与他人共同探讨问题,共同进步。
3. 培养学生具备严谨、负责的工作态度,对实际工程问题进行深入分析和持续优化。
本课程针对高年级学生,课程性质为专业核心课,旨在帮助学生掌握WinCC 脚本系统的实际应用,提高解决实际工程问题的能力。
课程充分考虑学生已具备的自动化基础知识,结合实际工程案例,以任务驱动的方式进行教学,使学生在实践中掌握脚本系统的运用。
课程目标的设定遵循具体、可衡量原则,旨在为教学设计和评估提供明确依据。
二、教学内容1. WinCC脚本系统概述- 脚本系统的基本概念- 脚本系统在工业自动化中的应用2. WinCC脚本编程基础- 脚本语言入门- 常用脚本函数与对象- 数据类型、变量与运算符3. 数据处理与监控- 实时数据读取与写入- 数据处理与转换- 数据报警与事件处理4. 设备控制与脚本应用- 设备控制脚本编写- 控制逻辑与流程控制- 脚本调试与优化5. 脚本系统综合应用- 脚本系统与其他模块的协同工作- 实际工程案例分析与实施- 项目实践与成果展示教学内容依据课程目标进行选择和组织,保证科学性和系统性。
教学大纲明确教学内容安排和进度,结合教材章节进行详细规划。
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 V7.0 SP2 脚本系统介绍高级培训

ANSI - C 脚本概述
• C 脚本使图形和过程动态化是通过使用函数和动作实现的,如下图所示:
标准函数
• •
函数是一段代码,可在多处使用,但只能在一个地方定义。WinCC 包括许多函 数。函数一般由特定的动作来调用。此外,用户还可以编写自己的函数和动作。 动作用于独立于画面的后台任务,例如打印日常报表、监控变量或执行计算等。 动作由触发器启动。
For internal use only / ?Siemens AG 2011. All Rights Reserved. Industry Sector
深入探讨 WinCC 脚本( C 和 VBS )
• 使用动态对话框、动态向导、 C 脚本、VBS 脚本分别实现动态改变对象 的背景颜色。
方法一 使用动态对话框。根据变量值设置矩形的背景颜色,并且可以根据该变量的状态 指定特定的颜色。缺点是只能分配一个变量。 方法二 使用动态向导 [标准动态] / [基于表格的颜色动态]。针对不同的颜色需要分别设 定表达式或变量。针对变量连接错误,单独分配了一种颜色。使用掩码筛选条件,例如, xxxxxx01 代表只要变量最末两位是 01 的即可满足条件。缺点是第一次组态时不是很容易 上手,需要理解各项的含义。 方法三 使用 C 脚本。使用 C 脚本比较灵活,本例中使用动态向导生成的 C 脚本即可满 足要求(推荐)。首先使用 GetTagDWordState 获取指定变量的状态,如果返回值是非 0 (0=No error),返回错误时对应的颜色;否则,根据变量的值,返回相应的颜色。 方法四 使用 VBS 脚本。可以根据不同的变量值设置矩形的背景颜色,使用质量代码来 判断变量的状态信息,代码逻辑与 C 脚本类似。
wincc wscriptshell对象使用

WinCC 是 Siemens 的一种工业自动化控制系统。
WinCC 提供了 WScriptShell 对象,可以用来在脚本中执行 Windows 操作系统的一些命令。
在 WinCC 的脚本中使用 WScriptShell 对象,你可以执行一些系统操作,例如运行外部程序、创建快捷方式、访问网络资源等。
以下是一个简单的示例,展示如何使用 WScriptShell 对象在 WinCC 脚本中执行一个外部程序:
vbs复制代码
Dim shell
Set shell = CreateObject("WScriptShell")
' 执行外部程序
shell.Run "C:\Path\to\your\program.exe", 1, True
在这个示例中,我们首先创建了一个 WScriptShell 对象。
然后,使用 Run 方法来执行指定的外部程序。
Run 方法的第一个参数是要运行的程序路径,第二个参数是窗口样式(1 表示窗口最大化,0 表示隐藏窗口),第三个参数 True 表示程序执行完毕后自动关闭。
除了 Run 方法,WScriptShell 对象还有其他一些方法可以用于执行系统操作。
你可以根据具体需求选择适当的方法。
请注意,使用 WScriptShell 对象时需要谨慎处理输入参数和输出结果,确保脚本的安全性和稳定性。
另外,由于涉及系统操作,请确保你了解相关操作的风险和后果,并在测试和部署脚本时格外小心。
wincc-脚本大全

{
SetTagBit("TJ_ANNIU",1);
MessageBox (hwnd, "停机", "停机警告", MB_OK|MB_SYSTEMMODAL|MB_SETFOREGROUND);
SetTagBit("TJ_ANNIU",0);
}
else B=0;
}
else
————————————————————————
——————4、获取位号————————
SetTagChar("TrendTagName1","ProcessValueArchive\\PT111");//Return-Type: BOOL
SetTagSWord("TrendHi",200);
SetTagSWord("TrendLo",0);
z=GetTagBit("202搅拌机运行"); //取得PLC搅拌机的运行状态
if(z!=0)
{
switch(y)
{
case 0:
x=x-4;
if(x<=0)
y=1;
break;
default :
x=x+4;
if(x>=25)
y=0;
break;
}
}
return x;
}
——————12、运行时图形产生动态旋转——————
#include "apdefap.h"
long _main(char* lpszPictureName, char* lpszObjectName, char*
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 全套脚本总结

} -------------------------------------
——————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 VBS脚本

WinCC 例程分析
脚本系统 VBS脚本 变量读写 调试诊断 例程分析
例程: 变量读写 属性——返回值/Item 线程 描绘曲线
14
IS Sales TAS 2012.02 / TECH Talk / For internal use only.
Thank you!
IS Sales TAS 2012.02 / TECH Talk / For internal use only.
会被加载。
▪ 模块越大,包含的过程越多,模块加载的时间就越长。
▪ 需要加载的模块越多,运行系统的性能越差。
因此,需要合理地组织模块,将相互关联的过程放在同一模块中。 例如:
▪ 可以把用于特定系统或画面的过程放在一个模块中。
▪ 也可以按照功能来构建模块。比如,把具有计算功能的过程放 在一个模块中。
8
IS Sales TAS 2012.02 / TECH Talk / For internal use on有良好的容错性
IS Sales TAS 2012.02 / TECH Talk / For internal use only.
图形编辑器中的VBS
脚本系统 VBS脚本 变量读写 调试诊断 例程分析
VBS可实现类似ANSI C的功能: ▪ 基于对象(VBS)/基于功能(C)
例如,读变量: VBS代码: Tag.Read C代码: WORD value = GetTagWord(“Tag”)
▪ 再次读取变量时,异步读直接将映像区中的数据返回,变量读取的 时间不受AS系统和总线负载的影响。同步读直接从AS系统读取当前 值,比异步读方式要花费更长的时间。
11
IS Sales TAS 2012.02 / TECH Talk / For internal use only.
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
动作 (action)
触
命令1
发
命令2
器
过程C
命令N
模块(module)
过程A
过程B 过程C
命令-A 命令-B
•当调用一幅画面时,需要加载的模块越 多,运行状态下系统的性能越差。 • 模块越大,包含的过程越多,模块加载的 时间就越长。 所以,我们要合理的组织模块。例如,可以 把用于特定系统或画面的过程组织在一个模 块中。我们也可以按照功能来构建模块,例 如,可以把具有计算功能的过程放在一个模 块中。 SIMATIC HMI WinCC V6.2
IPC RI 20
CS
OPEN
RT
yyy.pdl Event
Trigger
SetTagxxxWait(Soll_Temp2,T_Soll); <90>
Application GraphicsRT
Write tag once
Data manager
Soll_Temp2 90 . .
1x
Acknowledgement
脚本系统 C 脚本 VBS 脚本 VBA 脚本
运行机理
Trigger Types: •Acyclic Triggers •Cyclic Triggers •Tag Triggers
During the first call:
Cyclic Triggers Æ Step by step
Cyclic Triggers
Announce all tags
Data manager
Ist_Temp1 . . .
2 sec
81
SIMATIC HMI WinCC V6.2
2007年 4 月 20
SIMATIC WinCC 人机界面
The Way GetTagxxx Works with an Event as Trigger
脚本系统 C 脚本 VBS 脚本 VBA 脚本
运行机理
Standard Functions(标准函数) *包含用于WinCC编辑器、报警、存档等。
Internal Functions(内部函数) *C语言常用函数。
Action (动作功能) 用户创建,不由其它C脚本中调用,与其它函数不同,它是 由其它判断出发的: *Acyclic(非周期) –根据日期和时间调用一次。 *Cyclic(周期)每小时、天、秒等。 *Tag Triggered(变量标签触发) – 当绑定的标签变化时触发。
自动化与驱动集团
VBScripting
Visual Basic 可以 可以 是 WinCC运行环境(RT) 图形编辑器;全局脚本 WinCC组态环境(RT) 图形编辑器;变量(tags ); C-Script 和ODK
SIMATIC HMI WinCC V6.2
2007年 4 月 14
自动化与驱动集团
脚本系统 C 脚本 VBS 脚本 VBA 脚本
运行机理
CS
RT
OPEN
yyy.pdl Properties
Default tr. e.g. 2 sec I1=GetTagxxx(Ist_Temp1); <81> return();
2sec
Application GraphicsRT
Announce all tags
通过其它应用程序扩展WinCC的功能 VBA是一个开放的解决方案:不仅能访问WinCC对象,也同时能访
问其它具有COM组件的应用
ANSI-C和ODK仍然可用
应用举例
用户自定义的快速配置对话框 增加用户自定义的菜单项 添加用户自定义对象时自动生成变量、消息和归档变量 变量的合法性测试 导入外部数据来自动生成图形 以任意格式导出图形
SIEMENS
zzz.pdl
SICOMP IPC RI 20
脚本系统 C 脚本 VBS 脚本 VBA 脚本
运行机理
CS
RT
OPEN
yyy.pdl Properties
Tag trigger 2 sec <81>I1=GetTagxxx(Ist_Temp1);
><Ist_Temp1
return();
Application GraphicsRT
过程D 过程E
2007年 4 月 11
Visual Basic for Applications(VBA)
自动化与驱动集团
SIMATIC WinCC 人机界面
是Microsoft用来拓宽标准应用的功能,以及 对标准应用进行客制化的解决方案
脚本系统 C 脚本 VBS 脚本 VBA 脚本
运行机理
图形编辑器中集成的VBA的功能
运行机理
WinCC V6.0 VBA Object model in WinCC
VBA和VBS的区别
VBA
语言 可调试 可访问其他应用程序 WinCC已集成功能 适用范围 可访问对象
功能近似于
Visual Basic
可以
可以
是
WinCC 组态环境(CS) 图形编辑器 WinCC组态环境(CS) 图形编辑器;变量(tags );报警;归档;文本; 动态向导和ODK
Functionality of the GetTag x Functions
SIMATIC WinCC 人机界面
脚本系统 C 脚本 VBS 脚本 VBA 脚本
运行机理
SIMATIC HMI WinCC V6.2
2007年 4 月 15
Defining and Using Triggers
SIMATIC WinCC 人机界面
联接Office应用(Excel, Word, Access)
读写变量、启动报表
连接数据库
易于学习 SI程MAT序IC H有MI W良inC好C V的6.2 容错性
自动化与驱动集团
2007年 4 月 7
SIMATIC WinCC 人机界面
Visual Basic Script
举例(图形系统和全局脚本)
.
.
1x
SIMATIC HMI WinCC V6.2
自动化与驱动集团
2007年 4 月 17
SIMATIC WinCC 人机界面
脚本系统 C 脚本 VBS 脚本 VBA 脚本
运行机理
The Way SetTagxxxWait Works (Synchronous)
SIEMENS
SICOMP
zzz.pdl
SIEMENS
SICOMP IPC RI 20
zzz.pdl
脚本系统 C 脚本 VBS 脚本 VBA 脚本
运行机理
CS
RT
OPEN
yyy.pdl Event
Trigger
<81> I1=GetTagxxx(Ist_Temp1);
SIMATIC HMI 人机界面
自动化与驱动集团
SIMATIC WinCC - 脚本系统 A&D AS Cui Wei
SIMATIC WinCC 人机界面
WinCC的脚本系统
自动化与驱动集团
脚本系统 C 脚本 VBS 脚本 VBA 脚本
运行机理
¾整个WinCC系统通过完整和丰富的编程系统实现 了双向的开放性。
SIMATIC HMI WinCC V6.2
自动化与驱动集团
2007年 4 月 18
SIMATIC WinCC 人机界面
自动化与驱动集团
The Way GetTagxxx Works with the Event Name Default Trigger
SIEMENS
zzz.pdl
SICOMP IPC RI 20
运行机理
嵌入函数
函
数
和
用户函数
动
作
动作
SIMATIC HMI WinCC V6.2
自动化与驱动集团
内部函数
标准函数 内部函数 项目函数 DLL函数 全局动作
本地动作
2007年 4 月 5
函数分类:
自动化与驱动集团
SIMATIC WinCC 人机界面
Project Functions(项目函数) *可生成全局访问的C函数。
Tag Triggers
SIMATIC HMI WinCC V6.2
自动化与驱动集团 Tag Triggers Æ together
2007年 4 月 16
SIMATIC WinCC 人机界面
The Way SetTagxxx Works (Asynchronous)
SIEMENS
zzz.pdl
SICOMP IPC RI 20
脚本系统 C 脚本 VBS 脚本 VBA 脚本
运行机理
CS
RT
OPEN
yyy.pdl Event
Trigger
SetTagxxx(Soll_Temp2,T_Soll); <90>
Application GraphicsRT
Write tag
once
Data manager Soll_Temp2
.
90
Example: Set my_Soll1=HMIRuntime.Tags("Soll1")
SIMATIC HMI WinCC V6.2
2007年 4 月 10
SIMATIC WinCC 人机界面
脚本系统 C 脚本 VBS 脚本 VBA 脚本
运行机理
自动化与驱动集团
VBScript-过程(Procedures),模块(modules)和动作 (atcion)