上网笔记
更新时间:2024-05-01 22:18:01 阅读量: 综合文库 文档下载
http://zhyo720211.2008red.com/ STEP7 常用功能块说明
1. SFB0 \\\\TOF 兼容IEC61131-3的计数和计时功能块
2. SFB41 \\\用于PID控制 41---连续 42---离散
43---用于将一个模拟量转化为与之对应的周期性开关量脉冲信号,该脉冲的 占空比与模拟量的数值大小成正比.
3. SFC0 \\用于读写PLC中的系统时间
4. SFC14 \T\SFC15 \T\
用于读写DP从站中的一致性数据 如:读写用DP通讯的变频器中的控制字
5. SFC20 \SFC21 \块拷贝,块填充
6. SFC46 \SFC47 \
SFC46 使PLC进入STOP状态,挺有用的:可以当软件陷阱,或利用上位控制PLC停机
7. SFC60 \\MPI的GD通讯
8.IEC Function Blocks
FC22 \\\FC22 ---限幅输出
FC25,FC27 --- 3个数比大小 9.PID Control Blocks
FB41/42/43 同 SFB41 \\\FB58 \FB59 \用于温度控制PID
10.Ti-S7 Converting Blocks
FC105 \模拟量输入输出的比例和数据类型转换
分享]用电动阀的开关度来调节温度,而且用PID实现
控制电动阀的开度来达到控制温度是可以的,我个人认为用比例电磁阀替代电动阀完全可以实现PID的控制。
因为比例电磁阀有标准的模拟量输入信号和反馈信号而且具有PID调节功能。
经过多年的工作经验,我个人认为PID参数的设置的大小,一方面是要根据控制对象的具体情况而定;另一方面是经验。P是解决幅值震荡,P大了会出现幅值震荡的幅度大,但震荡频率小,系统达到稳定时间长;I是解决动作响应的速度快慢的,I大了响应速度慢,反之则快;D是消除静态误差的,一般D设置都比较小,而且对系统影响比较小。对于温度控制系统P在5-10%之间;I在180-240s之间;D在30以下。对于压力控制系统P在30-60%之间;I在30-90s之间;D在30以下。
WINNT/2000下Wincc与Excel通过netdde通讯的设置
网络dde是使用dde共享特性来管理通过网络进行程序通讯和共享数据的方式。
Windows2000/NT之间的网络通讯可以使用Windows2000/NT自带的netdde功能。 客户端运行excel程序,服务器端运行wincc程序,可以通过netdde实现两个程 序之间的动态数据交换。
请注意:netdde的使用必须保证两台机器是在连网的条件下,能够找到网络名称。 Netdde的具体使用方法如下 1、打开dde
要打开 DDE 共享,请单击windows系统菜单“开始”,单击“运行”,然后键入ddeshare确定。
2、添加dde共享
选择“共享”菜单下的“dde共享”,单击“添加共享”按钮, 共享名:显示共享的名称
应用程序名:进行dde对话的双方的名称。商业应用程序的名称在产品文档中给出。 “wincc”数据库运行系统的程序名是“wincc”,Microsoft Excel的应用程序名是“Excel”, 主题名:对于大多数程序,主题名就是文件名。Wincc下是当前工程的完整路径。 Excel的主题名是电子表格的名称,比如sheet1、sheet2 ……;
允许启动应用程序:如果dde服务器程序没有运行,则dde对话将启动该应用程序。 项目安全:指出用户可以访问任何项目,还是只能访问指定的项目。 权限:指出具有访问权限的用户和组,以及每个用户和组的访问类型 3、信任共享设置
用于查看和修改与信任的 DDE 共享有关的属性。选中刚才建立的共享,然后单击按钮“信任共享”。
允许启动应用程序,当某个客户dde应用程序尝试初始化一个dde对话时,服务器dde应用程序将自动启动。若不选,则只有服务器dde程序运行时,dde对话才能成功。 允许初始化应用程序,若选中,则允许建立到当前dde的新连接,若不选,则只运行当前dde对话。 4、设置访问权限,
可以设置为everyone完全控制,或者用户根据需要设置访问权限。 5、EXCEL做客户端的设置:=\\\\网络机器名\\wincc|工程路径名!tagname
SIEMENS WINCC标准函数
标准函数
该系统包含标准函数。 可以按需要修改这些函数。 此外,还可以自己创建标准函数。 该系统包括一个标准函数集。 一、Alarm - 简短描述
Alarm组包含控制WinCC报警控件的函数。标准函数可用于工具栏中的每一个按钮。这些
函数可用来创建自定义工具栏,例如选择画面,或者定义控件上的设置。
1.void AcknowledgeMessage(DWORD MsgNr)函数,确认消息系统中带编号的消息,该编号被传递为参数。
使用标准函数操作WinCC报警控件的实例 {//确认选择的报警记录消息
AcknowledgeMessage(GetTagWord(\ }
指定待确认的消息号。在本例中是从变量读取的。
2.BOOL AXC_OnBtnArcLong(char* lpszPictureName, char* pszMsgWin)函数,在消息窗口中该函数表示消息存储在长期归档中。
使用标准函数操作WinCC报警控件的实例 {// 跳转到WinCC报警控件中的第一条消息 AXC_OnBtnMsgFirst(\ }
AXC_OnBtnMsgFirst函数参数:
“gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。 Control 1是WinCC报警控件的对象名。
3.BOOL AXC_OnBtnArcShort(char* lpszPictureName, char* pszMsgWin)函数,在消息窗口中该函数表示消息存储在短期归档中。
使用标准函数操作WinCC报警控件的实例 {// 跳转到WinCC报警控件中的第一条消息 AXC_OnBtnMsgFirst(\ }
AXC_OnBtnMsgFirst函数参数:
“gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。 Control 1是WinCC报警控件的对象名。
4.BOOL AXC_OnBtnComment(char* lpszPictureName, char* pszMsgWin)函数 外部消息窗口操作,该函数显示先前所选消息的注释。 使用标准函数操作WinCC报警控件的实例 {// 跳转到WinCC报警控件中的第一条消息 AXC_OnBtnMsgFirst(\ }
AXC_OnBtnMsgFirst函数参数:
“gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。 Control 1是WinCC报警控件的对象名。
5.BOOL AXC_OnBtnEmergAckn(char* lpszPictureName, char* pszMsgWin)函数,外部消息窗口操作,此函数打开确认对话框(紧急确认/复位)。
使用标准函数操作WinCC报警控件的实例 {// 跳转到WinCC报警控件中的第一条消息 AXC_OnBtnMsgFirst(\ }
AXC_OnBtnMsgFirst函数参数:
“gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。 Control 1是WinCC报警控件的对象名。 6.BOOL AXC_OnBtnHornAckn(char* lpszPictureName, char* pszMsgWin)函数,外部消息窗口操作,该函数确认蜂鸣器信号。
使用标准函数操作WinCC报警控件的实例 {// 跳转到WinCC报警控件中的第一条消息 AXC_OnBtnMsgFirst(\ }
AXC_OnBtnMsgFirst函数参数:
“gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。 Control 1是WinCC报警控件的对象名。
7.BOOL AXC_OnBtnInfo(char* lpszPictureName, char* pszMsgWin)函数,外部消息窗口操作,该函数显示信息文本。
使用标准函数操作WinCC报警控件的实例 {// 跳转到WinCC报警控件中的第一条消息 AXC_OnBtnMsgFirst(\ }
AXC_OnBtnMsgFirst函数参数:
“gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。 Control 1是WinCC报警控件的对象名。
7.BOOL AXC_OnBtnLock(char* lpszPictureName, char* pszMsgWin)函数,外部消息窗口操作,该函数打开“设置锁定”对话框。
使用标准函数操作WinCC报警控件的实例 {// 跳转到WinCC报警控件中的第一条消息 AXC_OnBtnMsgFirst(\ }
AXC_OnBtnMsgFirst函数参数:
“gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。 Control 1是WinCC报警控件的对象名。
8.BOOL AXC_OnBtnLockUnlock(char* lpszPictureName, char* pszMsgWin),函数,该函数锁住在消息窗口中选择的消息。之后,不再归档该消息。该函数释放在锁定列表中选择的消息。 使用标准函数操作WinCC报警控件的实例
{// 跳转到WinCC报警控件中的第一条消息 AXC_OnBtnMsgFirst(\ }
AXC_OnBtnMsgFirst函数参数:
“gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。 Control 1是WinCC报警控件的对象名。
9.BOOL AXC_OnBtnLockWin(char* lpszPictureName, char* pszMsgWin)函数,外部消息窗口操作.该函数调用锁定列表。
使用标准函数操作WinCC报警控件的实例 {// 跳转到WinCC报警控件中的第一条消息 AXC_OnBtnMsgFirst(\ }
AXC_OnBtnMsgFirst函数参数:
“gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。 Control 1是WinCC报警控件的对象名。
10.BOOL AXC_OnBtnLoop(char* lpszPictureName, char* pszMsgWin)函数,外部消息窗口操作,此函数触发所选消息的“报警回路”函数。 使用标准函数操作WinCC报警控件的实例 {// 跳转到WinCC报警控件中的第一条消息 AXC_OnBtnMsgFirst(\ }
AXC_OnBtnMsgFirst函数参数:
“gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。 Control 1是WinCC报警控件的对象名。
11.BOOL AXC_OnBtnMsgFirst(char* lpszPictureName, char* pszMsgWin)函数,外部消息窗口操作,该函数移动到消息列表的开始处。 使用标准函数操作WinCC报警控件的实例 {// 跳转到WinCC报警控件中的第一条消息 AXC_OnBtnMsgFirst(\ }
AXC_OnBtnMsgFirst函数参数:
“gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。 Control 1是WinCC报警控件的对象名。
12.BOOL AXC_OnBtnMsgLast(char* lpszPictureName, char* pszMsgWin)函数,外部消息窗口操作,该函数移动到消息列表的结束处。 使用标准函数操作WinCC报警控件的实例 {// 跳转到WinCC报警控件中的最后一条消息
AXC_OnBtnMsgLast(\ }
AXC_OnBtnMsgLast函数参数:
“gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。 Control 1是WinCC报警控件的对象名。 13.BOOL AXC_OnBtnMsgNext(char* lpszPictureName, char* pszMsgWin)函数,外部消息窗口操作,该函数移动到消息列表中的下一条消息。 使用标准函数操作WinCC报警控件的实例 {// 跳转到WinCC报警控件中的第一条消息 AXC_OnBtnMsgFirst(\ }
AXC_OnBtnMsgFirst函数参数:
“gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。 Control 1是WinCC报警控件的对象名。
14.BOOL AXC_OnBtnMsgPrev(char* lpszPictureName, char* pszMsgWin)函数,外部消息窗口操作,该函数移动到消息列表中的前一条消息。 使用标准函数操作WinCC报警控件的实例 {// 跳转到WinCC报警控件中的第一条消息 AXC_OnBtnMsgFirst(\ }
AXC_OnBtnMsgFirst函数参数:
“gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。 Control 1是WinCC报警控件的对象名。
15.BOOL AXC_OnBtnMsgWin(char* lpszPictureName, char* pszMsgWin)函数,外部消息窗口操作,该函数调用过程消息窗口。
使用标准函数操作WinCC报警控件的实例 {// 跳转到WinCC报警控件中的第一条消息 AXC_OnBtnMsgFirst(\ }
AXC_OnBtnMsgFirst函数参数:
“gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。 Control 1是WinCC报警控件的对象名。
16.BOOL AXC_OnBtnPrint(char* lpszPictureName, char* pszMsgWin)函数,外部消息窗口操作,打印机打印出符合在报警控件中定义的选择标准的全部消息。 WinCC报警控件的实例
{// 跳转到WinCC报警控件中的第一条消息 AXC_OnBtnMsgFirst(\
}
AXC_OnBtnMsgFirst函数参数:
“gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。 Control 1是WinCC报警控件的对象名。
17.BOOL AXC_OnBtnScroll(char* lpszPictureName, char* pszMsgWin)函数,外部消息窗口操作,该函数激活水平和垂直滚动功能。
使用标准函数操作WinCC报警控件的实例 {// 激活/取消激活滚动功能
AXC_OnBtnScroll(\ }
AXC_OnBtnScroll函数参数:
“gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。 Control 1是WinCC报警控件的对象名。
18.BOOL AXC_OnBtnSelect(char* lpszPictureName, char* pszMsgWin)函数,外部消息窗口操作,该函数打开“设置选择”对话框。
使用标准函数操作WinCC报警控件的实例 {// 跳转到WinCC报警控件中的第一条消息 AXC_OnBtnMsgFirst(\ }
AXC_OnBtnMsgFirst函数参数:
“gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。 Control 1是WinCC报警控件的对象名。
19.BOOL AXC_OnBtnSinglAckn(char* lpszPictureName, char* pszMsgWin)函数,外部消息窗口操作,该函数确认当前所选的消息。
使用标准函数操作WinCC报警控件的实例 {// 确认激活的消息
AXC_OnBtnSinglAckn(\ }
AXC_OnBtnSinglAckn函数参数:
“gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。 Control 1是WinCC报警控件的对象名。
20.BOOL AXC_OnBtnVisibleAckn(char* lpszPictureName, char* pszMsgWin)函数,外部消息窗口操作,确认消息窗口中可见的全部消息(组确认)。 使用标准函数操作WinCC报警控件的实例 {// 跳转到WinCC报警控件中的第一条消息 AXC_OnBtnMsgFirst(\ }
AXC_OnBtnMsgFirst函数参数:
“gs_alarm_00”是在其中组态WinCC报警控件的画面的名称。 Control 1是WinCC报警控件的对象名。
21.BOOL AXC_SetFilter(char* lpszPictureName, char* lpszObjectName, LPMSG_FILTER_STRUCT lpMsgFilter, LPCMN_ERROR, lpError)函数,外部消息窗口操作,该函数为WinCC报警控件设置过滤器,以便根据指定的过滤标准筛选出可用的消息。 使用标准函数操作WinCC报警控件的实例 {BOOL ret;
MSG_FILTER_STRUCT Filter; CMN_ERROR Error;
//重新设置过滤器结构 memset
( &Filter, 0, sizeof( MSG_FILTER_STRUCT ) ); //设置过滤器名称 strcpy
( Filter.szFilterName, \ // 挑选选择元素 Filter
.dwFilter = MSG_FILTER_NR_FROM | MSG_FILTER_NR_TO; // 消息号来自 Filter .dwMsgNr[0] = 2; // 消息号来自 Filter .dwMsgNr[1] = 2;
ret = AXC_SetFilter(\ }
1. 命名该过滤器。 2. 选择过滤器的类型。 3. 指定过滤器标准。 4. 设置过滤器。 常规使用注释
过滤器类型和过滤器标准必须适合使用;在过滤器结构中描述所有其它的过滤器类型。 使用标准函数操作WinCC报警控件的实例 {BOOL ret;
MSG_FILTER_STRUCT Filter; CMN_ERROR Error;
//删除整个过滤器结构 memset
( &Filter, 0, sizeof( MSG_FILTER_STRUCT ) ); //设置空的过滤器结构 AXC
_SetFilter(\ }
1. 删除该过滤器结构。
2. 用空值填充过滤器结构。 结构定义MSG_FILTER_STRUCT
typedef struct {
CHAR szFilterName[MSG_MAX_TEXTLEN+1]; WORD dwFilter; SYSTEMTIME st[2]; DWORD dwMsgNr[2]; DWORD dwMsgClass;
DWORD dwMsgType[MSG_MAX_CLASS]; DWORD dwMsgState; WORD wAGNr[2]; WORD wAGSubNr[2]; DWORD dwArchivMode; char szTB[MSG_MAX_TB][ MSG_MAX_TB_CONTENT+1] DWORD dwTB;
Double dPValue[MSG_MAX_PVALUE][2]; DWORD dwPValue[2];
DWORD dwMsgCounter[2]; DWORD dwQuickSelect; }
MSG_FILTER_STRUCT; 描述
在该结构中定义过滤标准。 组成部分 dwFilter
通过下列常数从“m_global.h”文件定义过滤条件: MSG_FILTER_DATE_FROM 从日期 MSG_FILTER_DATE_TO 到日期 MSG_FILTER_TIME_FROM 从时间 MSG_FILTER_TIME_TO 到时间 MSG_FILTER_NR_FROM 从消息号 MSG_FILTER_NR_TO 到消息号 MSG_FILTER_CLASS 消息等级 MSG_FILTER_STATE 消息状态 MSG_FILTER_AG_FROM 从AG号 MSG_FILTER_AG_TO 到AG号
MSG_FILTER_AGSUB_FROM 从AG子号 MSG_FILTER_AGSUB_TO 到AG子号 MSG_FILTER_TEXT 消息文本 MSG_FILTER_PVALUE 过程值
MSG_FILTER_COUNTER_FROM 从内部消息计数器
MSG_FILTER_COUNTER_TO 到内部消息计数器 MSG_FILTER_PROCESSMSG 过程消息 MSG_FILTER_SYSMSG 系统消息 MSG_FILTER_BEDMSG 事件消息 MSG_FILTER_DATE 日期从...到... MSG_FILTER_TIME 日期从...到... MSG_FILTER_NR 消息号从...到... st
日期/时间从...到...
在这种情况下,st[0]是开始时间(从),st[1]是结束时间(到)
为过滤标准填充这些域:MSG_FILTER_DATE,MSG_FILTER_DATE_FROM,MSG_FILTER_DATE_TO, MSG_FILTER_TIME,MSG_FILTER_TIME_FROM和MSG_FILTER_TIME_TO
如果传送SYSTEMTIME参数要求当前时间,使用GetLocalTime函数而非GetSystemTime。通常这两个函数之间的时间差别很大。 dwMsgNr
消息号从...到...
在这种情况下,dwMsgNr[0]是开始号(从),dwMsgNr[1]是结束号(到)
为过滤标准填充这些域:MSG_FILTER_NR,MSG_FILTER_NR_FROM和MSG_FILTER_NR_TO dwMsgClass 位代码消息等级
为过滤标准填充这个域:MSG_FILTER_CLASS dwMsgType
每个消息等级的位代码消息类型
为过滤标准填充这个域:MSG_FILTER_CLASS dwMsgState
位代码消息状态
为过滤标准填充这个域:MSG_FILTER_STATE wAGNr
AG号从...到...
为过滤标准填充这些域:MSG_FILTER_AG_FROM和MSG_FILTER_AG_TO wAGSubNr
AGSubNr从...到
为过滤标准填充这些域:MSG_FILTER_AGSUB_FROM和MSG_FILTER_AGSUB_TO dwArchivMode 归档/协议识别 必须用0填充。 szTB
文本块文本
为过滤标准填充这个域:MSG_FILTER_TEXT
dwTB
文本块激活(从...到...,位代码)
为过滤标准填充这个域:MSG_FILTER_TEXT dPValue
过程值从...到...
为过滤标准填充这个域:MSG_FILTER_PVALUE dwPValue
过程值激活(从...到... 位代码)
为过滤标准填充这个域:MSG_FILTER_PVALUE dwMsgCounter
内部消息计数器从...到...
为过滤标准填充这些域:MSG_FILTER_COUNTER_FROM,MSG_FILTER_COUNTER_TO dwQuickSelect
快速选择小时,天,月
为以后扩展而保留该参数,并且必须用0预定义。
为过滤标准填充这个域:MSG_FILTER_QUICKSELECT LOWORD类型:
MSG_FILTER_QUICK_MONTH 快速选择后n个月 MSG_FILTER_QUICK_DAYS 快速选择后n天
MSG_FILTER_QUICK_HOUR 快速选择后n个小时 HIWORD号:1...n
快速选择函数的结束时间与本地计算机的当前系统时间有关。开始时间是n * (往回计算月,日,小时)。
结构定义CMNERROR
struct CMNERRORSTRUCT { DWORD dwError1, DWORD dwError2, DWORD dwError3, DWORD dwError4, DWORD dwError5;
TCHAR szErrorText[MAX_ERROR_LEN]; }
CMNERROR 描述
扩展的错误结构包含错误代码和与发生的错误相关的错误文本。每个应用程序可以使用该错误结构评价或发出错误消息。 组成部分
dwError1 .. dwError5
可按API函数的要求使用这些条目。
API描述包含出错时条目的各自数值。否则,错误代码在dwError1中。 szErrorText
错误代码的文本描述缓冲区
从资源建立该内容,因此依赖于语言。 BOOL GMsgFunction(char* pszMsgData)函数 该函数提供消息数据。
表示单个消息的全局函数。为每个消息调用全局函数,为每个消息设置“触发动作”参数。 最好在项目函数中解释消息数据,从GMsgFunction调用项目函数。 参数
pszMsgData
指向在其中存储消息数据的缓冲区的指针。 返回值 TRUE
已执行函数,无错。 FALSE 出错。 注意
请注意,WinCC安装会重写已修改的标准函数,所以被改变的函数丢失。
Graphics - 简短描述
Graphics组包含用于编程图形系统的函数。
1.char* GetLinkedVariable(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)函数,提供与指定的对象属性链接的变量的名称。 读出直接连接的变量名的实例。 {char* pszVarName = NULL;
char szVarName[_MAX_PATH+1]; //获得变量名 pszVarName
= GetLinkedVariable(\ //复制字符串
if (pszVarName != NULL)
{ strncpy(szVarName,pszVarName,_MAX_PATH); }
//自定义代码
//在那里用户可以使用返回值做某事 ...}
GetLinkedVariable函数参数:
“gs_stand_graph_00”是在其中组态该对象的画面的名称。 “Static Text 6”是该对象的名称。 “Visible”是链接到变量的属性。
1). 将函数GetLinkedVariable的返回值缓冲存储在pszVarName中。 2). 如果返回有效数值,将该返回值存储在szVarName中。最多存储_MAX_PATH个字符。 3). 执行处理返回值的自定义代码。
2.char* GetLocalPicture(char* lpszPictureName)函数,返回指向画面名的指针。 在这种情况下,画面名就是该文件名,不带扩展名“.PDL”。 读出本地画面的实例。 {char* pszPicName = NULL;
char szPicName[_MAX_PATH+1]; //获得本地画面 pszPicName
= GetLocalPicture(lpszPictureName); //复制字符串
if (pszPicName != NULL)
{ strncpy(szPicName,pszPicName,_MAX_PATH); }//自定义代码
//在那里用户可以使用返回值做某事 ... }
1). 将函数GetLocalPicture的返回值缓冲存储在pszPicName中。
2). 如果返回有效数值,将该返回值存储在szPicName中。最多存储_MAX_PATH个字符。 3). 执行处理返回值的自定义代码。
3.char* GetParentPicture(char* lpszPictureName)函数,返回指向画面名称的指针。 在这种情况下,画面名就是该文件名,不带扩展名“.PDL”。 读出画面名称路径的实例 {char* pszPicName = NULL;
char szPicName[_MAX_PATH+1]; //获得母画面 pszPicName
= GetParentPicture(lpszPictureName); //复制字符串
if (pszPicName != NULL)
{strncpy(szPicName,pszPicName,_MAX_PATH); }//自定义代码
//在那里用户可以使用返回值做某事 ...}
1). 将该函数GetParentPicture的返回值缓冲存储在pszPicName中。 2). 如果返回有效数值,将该返回值存储在szPicName中。。。。。. 最多存储_MAX_PATH个字符。
3). 执行处理返回值的自定义代码。
4.char* GetParentPictureWindow(char* lpszPictureName)函数,返回指向画面窗口的名称的指针。
实例:
基本画面“Picture_1”有画面窗口“Picture Window_1”,在其中调用画面“Picture_2”。
画面“Picture_2”有画面窗口“Picture Window_2”,在其中调用画面“Picture_3”。 该函数调用
GetParentPictureWindow(lpszPictureName) 指向画面窗口名称的指针:
“Picture_2”,是否从画面“Picture_3”调用该函数。
“Picture Window_1”,是否从画面“Picture_2”调用该函数。 “Picture_1”,是否从画面“Picture_1”调用该函数。
5. void OpenPicture(Picture Name)函数,用设置的画面名打开画面。
6. char* Registry2(char* mode, char* String0, char* String1)函数,该函数管理字符串对(String0,String1)的列表。
Report - 简短描述
Report组包含用来启动打印作业的打印预览或打印输出本身的函数。
1. void ReportJob(LPSTR lpJobName, LPSTR lpMethodName)函数,根据参数lpMethodName的数值,决定启动打印作业或打印预览。
RPTJobPreview和RPTJobPrint, 打印作业被启动和打印作业的预览被启动
2. BOOL RPTJobPreview(LPSTR lpJobName)函数,打印作业的预览被启动。 启动作业预览的实例
{//启动指定打印作业的打印预览
RPTJobPreview(\ }
RPTJobPreview函数参数:
@Text library (compact)是打印作业的名称。
3. BOOL RPTJobPrint(LPSTR lpJobName)函数,打印作业被启动。 启动打印作业的实例
{//打印输出指定的打印作业
RPTJobPrint(\ }
RPTJobPrint函数参数:
@Text library (compact)是打印作业的名称。
4. void RptShowError(LPCSTR pszFailedFunction, CMN_ERRORA* pCmnErrorA)函数,该函数提供对失败的打印作业的错误描述。该函数调用是标准函数RptJobPrint和RptJobPreview的组成部分,因此不要求单个调用命令。 结构定义CMNERROR
struct CMNERRORSTRUCT { DWORD dwError1, DWORD dwError2, DWORD dwError3, DWORD dwError4, DWORD dwError5;
TCHAR szErrorText[MAX_ERROR_LEN]; }
CMNERROR描述
扩展的错误结构包含错误代码和与发生的错误相关的错误文本。每个应用程序可以使用该错误结构评价或发出错误消息。 组成部分
dwError1 .. dwError5
可按API函数的要求使用这些条目。
API描述包含出错时条目的各自数值。否则,错误代码在dwError1中。 szErrorText
错误代码的文本描述缓冲区
从资源建立该内容,因此依赖于语言。
TagLog - 简短描述
TagLog函数包含控制WinCC表格控件和WinCC趋势控件的函数。 Template子组包含调用某些控制值的函数。
Toolbar Buttons子组包含用于工具栏中每个按钮的标准函数。 这些函数可用来创建自定义工具栏,例如选择画面,或者定义控件上的设置。
1. int TlgGetColumnPosition(char* lpszTemplate)函数,以表格窗口中的列指针的当前位置作为列索引。
使用标准函数操作WinCC表格控件的实例 {char text[5]; long int columns //获得列数
columns = GetNumberOfColumns(\ //转换长整型为字符 sprintf (text,\
//在Text Field 5 SetText上设置文本 (lpszPictureName,\ }
TlgGetNumberOfColumns函数参数:
“Table Control_01”是WinCC表格控件的名称。
1). 将函数TlgGetNumberOfColumns的返回值缓冲存储在columns中。 2). 将返回值缓冲存储在String text中。
3). 在静态文本域中发出返回值。
2. int TlgGetNumberOfColumns(char* lpszTemplate)函数,在表格窗口中给出列的数量。用参数lpszTemplate传递相应WinCC在线表格控件窗口的名称。 使用标准函数操作WinCC表格控件的实例 {char text[5]; long int columns //获得列数
columns = GetNumberOfColumns(\ //转换长整型为字符 sprintf (text,\
//在Text Field 5 SetText上设置文本 (lpszPictureName,\ }
TlgGetNumberOfColumns函数参数:
“Table Control_01”是WinCC表格控件的名称。
1). 将函数TlgGetNumberOfColumns的返回值缓冲存储在columns中。 2). 将返回值缓冲存储在String text中。 3). 在静态文本域中发出返回值。
3. int TlgGetNumberOfRows(char* lpszTemplate)函数,在表格窗口中给出行的数量。用参数lpszTemplate传递相应WinCC在线表格控件窗口的名称。 使用标准函数操作WinCC表格控件的实例 {char text[5]; long int rows; //获得行数
rows = TlgGetNumberOfRows(\ //转换长整型为字符 sprintf (text,\
//在Text Field 5 SetText上设置文本 (lpszPictureName,\ }
TlgGetNumberOfRows函数参数:
Table Control_01是WinCC表格控件的名称。
1). 将函数TlgGetNumberOfRows的返回值缓冲存储在rows中。 2). 将返回值缓冲存储在String text中。 3). 在静态文本域中发出返回值。
4. int TlgGetNumberOfTrends(char* lpszTemplate)函数,在趋势窗口中给出趋势的数量。用参数lpszTemplate传递相应WinCC在线趋势控件窗口的名称。 使用标准函数操作WinCC表格控件的实例
{char text[5]; long int columns //获得列数
columns = GetNumberOfColumns(\ //转换长整型为字符 sprintf (text,\
//在Text Field 5 SetText上设置文本 (lpszPictureName,\ }
TlgGetNumberOfColumns函数参数:
“Table Control_01”是WinCC表格控件的名称。
1). 将函数TlgGetNumberOfColumns的返回值缓冲存储在columns中。 2). 将返回值缓冲存储在String text中。 3). 在静态文本域中发出返回值。
5. int TlgGetRowPosition(char* lpszTemplate)函数,在表格窗口中给出行指针的当前位置。用参数lpszTemplate传递相应WinCC在线表格控件窗口的名称。 使用标准函数操作WinCC表格控件的实例 {char text[5]; long int columns //获得列数
columns = GetNumberOfColumns(\ //转换长整型为字符 sprintf (text,\
//在Text Field 5 SetText上设置文本 (lpszPictureName,\ }
TlgGetNumberOfColumns函数参数:
“Table Control_01”是WinCC表格控件的名称。
1). 将函数TlgGetNumberOfColumns的返回值缓冲存储在columns中。 2). 将返回值缓冲存储在String text中。 3). 在静态文本域中发出返回值。
6. char* TlgGetRulerArchivNameTrend(char* lpszTemplate, int nTrend)函数,在趋势窗口中这个标尺位置上给出带编号nTrend的趋势的归挡名称。用参数lpszTemplate传递相应WinCC在线趋势控件窗口的名称。
使用标准函数操作WinCC趋势控件的实例 {char* pszVarName = NULL; char szVarName[20];
//获得标尺变量名 pszVarName
= TlgGetRulerVariableNameTrend(\
if (pszVarName != NULL) {// 复制字符串 strncpy
(szVarName,pszVarName,19); }
//输出变量名 SetText
(lpszPictureName,\ }
TlgGetRulerVariableNameTrend函数参数:
“Trend Control_01”是WinCC趋势控件的名称。 “0”是该趋势的编号。
1). 将函数TlgGetRulerVariableNameTrend的返回值缓冲存储在pszVarName中。 2). 如果返回有效数值,将返回值复制到szVarName中。 3). 在静态文本域中发出返回值。
7. SYSTEMTIME TlgGetRulerTimeTrend(char* lpszTemplate, int nTrend)函数,在趋势窗口中这个标尺位置上给出带编号nTrend的趋势的时间。用参数lpszTemplate传递相应WinCC在线趋势控件窗口。
使用标准函数操作WinCC趋势控件的实例 {SYSTEMTIME systime; WORD wHour; WORD wMin; WORD wSec; char szTime[10];
//获得当前系统时间 systime
= TlgGetRulerTimeTrend(\ //获得小时 wHour = systime.wHour; //获得分钟 wMin = systime.wMinute; //获得秒 wSec = systime.wSecond; //
sprintf(szTime,\ //输出变量名 SetText
(lpszPictureName,\ }
1). 读出当前系统时间。
2). 从SYSTEMTIME结构读出小时、分和秒。 3). 创建包含该时间的字符串。 4). 读出当前时间。
8. double TlgGetRulerValueTrend(char* lpszTemplate, int nTrend)函数,在趋势窗口中这个标尺位置上给出带编号nTrend的趋势的数值。用参数lpszTemplate传递相应WinCC在线趋势控件窗口。
使用标准函数操作WinCC表格控件的实例 {char text[5]; long int columns //获得列数
columns = GetNumberOfColumns(\ //转换长整型为字符 sprintf (text,\
//在Text Field 5 SetText上设置文本 (lpszPictureName,\ }
TlgGetNumberOfColumns函数参数:
“Table Control_01”是WinCC表格控件的名称。
1). 将函数TlgGetNumberOfColumns的返回值缓冲存储在columns中。 2). 将返回值缓冲存储在String text中。 3). 在静态文本域中发出返回值。
9. char* TlgGetRulerVariableNameTrend(char* lpszTemplate, int nTrend)函数,在趋势窗口中给出编号为nTrend的趋势的变量名。用参数lpszTemplate传递相应WinCC在线趋势控件窗口。 使用标准函数操作WinCC趋势控件的实例 {char* pszVarName = NULL; char szVarName[20];
//获得标尺变量名 pszVarName
= TlgGetRulerVariableNameTrend(\ if (pszVarName != NULL) {// 复制字符串 strncpy
(szVarName,pszVarName,19); }
//输出变量名 SetText
(lpszPictureName,\ }
TlgGetRulerVariableNameTrend函数参数:
“Trend Control_01”是WinCC趋势控件的名称。 “0”是该趋势的编号。
1). 将函数TlgGetRulerVariableNameTrend的返回值缓冲存储在pszVarName中。 2). 如果返回有效数值,将返回值复制到szVarName中。 3). 在静态文本域中发出返回值。
10. char* TlgGetTextAtPos(char* lpszTemplate, int nColumn, int nLine)函数,为过程变量归档
和用户归档提供表格窗口的单元格内容作为文本。单元由nColumn和nLine指定。用参数lpszTemplate传递相应WinCC在线表格控件窗口的名称。 使用标准函数操作WinCC趋势控件的实例 {char* pszVarName = NULL; char szVarName[20];
//获得标尺变量名 pszVarName
= TlgGetRulerVariableNameTrend(\ if (pszVarName != NULL) {// 复制字符串 strncpy
(szVarName,pszVarName,19); }
//输出变量名 SetText
(lpszPictureName,\ }
TlgGetRulerVariableNameTrend函数参数:
“Trend Control_01”是WinCC趋势控件的名称。 “0”是该趋势的编号。
1). 将函数TlgGetRulerVariableNameTrend的返回值缓冲存储在pszVarName中。 2). 如果返回有效数值,将返回值复制到szVarName中。 3). 在静态文本域中发出返回值。
11. BOOL TlgTableWindowPressEditRecordButton(char* lpszWindowName)函数,锁住或释放表格窗口的编辑(切换功能)。如果允许编辑,将停止更新表格窗口。即使因为使用另一个函数而使编辑被禁止,表格窗口更新将仍保持停止状态。 使用标准函数操作WinCC报警趋势的实例 {//开始/停止
TlgTrendWindowPressStartStopButton(\ }
TlgTrendWindowPressStartStopButton函数参数: “TrendControl_01”是WinCC趋势控件的对象名。
12. BOOL TlgTableWindowPressFirstButton(char* lpszWindowName)函数,显示表格窗口中显示区域的第一个数据记录。显示的数据记录数量由所组态的时间范围决定。 使用标准函数操作WinCC报警趋势的实例 {//开始/停止
TlgTrendWindowPressStartStopButton(\ }
TlgTrendWindowPressStartStopButton函数参数: “TrendControl_01”是WinCC趋势控件的对象名。
13. BOOL TlgTableWindowPressHelpButton(char* lpszWindowName)函数,显示表格窗口的在
线帮助
使用标准函数操作WinCC报警趋势的实例 {//开始/停止
TlgTrendWindowPressStartStopButton(\ }
TlgTrendWindowPressStartStopButton函数参数: “TrendControl_01”是WinCC趋势控件的对象名。
14. BOOL TlgTableWindowPressInsertRecordButton(char* lpszWindowName)函数,插入数据记录。
使用标准函数操作WinCC报警趋势的实例 {//开始/停止
TlgTrendWindowPressStartStopButton(\ }
TlgTrendWindowPressStartStopButton函数参数: “TrendControl_01”是WinCC趋势控件的对象名。
15. BOOL TlgTableWindowPressLastButton(char* lpszWindowName)函数,显示表格窗口中显示区域的最后一个数据记录。显示的数据记录数量由所组态的时间范围决定。 使用标准函数操作WinCC报警趋势的实例 {//开始/停止
TlgTrendWindowPressStartStopButton(\ }
TlgTrendWindowPressStartStopButton函数参数: “TrendControl_01”是WinCC趋势控件的对象名。
16. BOOL TlgTableWindowPressNextButton(char* lpszWindowName)函数,显示表格窗口中当前显示区域后面的数据记录。显示的数据记录数量由所组态的时间范围决定。 使用标准函数操作WinCC报警趋势的实例 {//开始/停止
TlgTrendWindowPressStartStopButton(\ }
TlgTrendWindowPressStartStopButton函数参数: “TrendControl_01”是WinCC趋势控件的对象名。
17. BOOL TlgTableWindowPressNextItemButton(char* lpszWindowName)函数,表格窗口的列将向左移动一列,最左边的列移到右边。
使用标准函数操作WinCC报警趋势的实例 {//开始/停止
TlgTrendWindowPressStartStopButton(\ }
TlgTrendWindowPressStartStopButton函数参数: “TrendControl_01”是WinCC趋势控件的对象名。 18. BOOL lgTableWindowPressOpenArchiveVariableSelectionDlgButton(char* lpszWindowName)函数,打开用来链接表格列与归档和变量的对话框。 使用标准函数操作WinCC报警趋势的实例 {//开始/停止
TlgTrendWindowPressStartStopButton(\ }
TlgTrendWindowPressStartStopButton函数参数: “TrendControl_01”是WinCC趋势控件的对象名。
19. BOOL TlgTableWindowPressOpenDlgButton(char* lpszWindowName)函数,打开用来在线组态表格窗口的对话框。
使用标准函数操作WinCC趋势控件的实例 {//打开属性对话框
TlgTrendWindowPressOpenDlgButton(\ }
TlgTrendWindowPressOpenDlgButton函数参数: “TrendControl_01”是WinCC趋势控件的对象名。
20. BOOL TlgTableWindowPressOpenItemSelectDlgButton(char* lpszWindowName)函数,打开用来选择表格窗口的可见列和第一列的对话框。 使用标准函数操作WinCC报警趋势的实例 {//开始/停止
TlgTrendWindowPressStartStopButton(\ }
TlgTrendWindowPressStartStopButton函数参数: “TrendControl_01”是WinCC趋势控件的对象名。
21. BOOL TlgTableWindowPressPrevButton(char* lpszWindowName)函数,显示表格窗口中当前显示区域前面的数据记录。显示的数据记录数量由所组态的时间范围决定。 使用标准函数操作WinCC报警趋势的实例 {//开始/停止
TlgTrendWindowPressStartStopButton(\ }
TlgTrendWindowPressStartStopButton函数参数: “TrendControl_01”是WinCC趋势控件的对象名。
22. BOOL TlgTableWindowPressPrevItemButton(char* lpszWindowName)函数,表格窗口的列将向右移动一列,最右边的列移到左边。
使用标准函数操作WinCC报警趋势的实例 {//开始/停止
TlgTrendWindowPressStartStopButton(\ }
TlgTrendWindowPressStartStopButton函数参数: “TrendControl_01”是WinCC趋势控件的对象名。
23. BOOL TlgTableWindowPressRemoveRecordButton(char* lpszWindowName)函数,删除数据记录。
使用标准函数操作WinCC报警趋势的实例 {//开始/停止
TlgTrendWindowPressStartStopButton(\ }
TlgTrendWindowPressStartStopButton函数参数: “TrendControl_01”是WinCC趋势控件的对象名。
24. BOOL TlgTableWindowPressStartStopButton(char* lpszWindowName)函数,打开或关闭表格窗口的更新(切换功能)。
使用标准函数操作WinCC报警趋势的实例 {//开始/停止
TlgTrendWindowPressStartStopButton(\ }
TlgTrendWindowPressStartStopButton函数参数: “TrendControl_01”是WinCC趋势控件的对象名。
25. BOOL TlgTrendWindowPressFirstButton(char* lpszWindowName)函数,显示趋势窗口中显示区域的首要数据记录。显示的数据记录数量由所组态的时间范围决定。 使用标准函数操作WinCC报警趋势的实例 {//开始/停止
TlgTrendWindowPressStartStopButton(\ }
TlgTrendWindowPressStartStopButton函数参数: “TrendControl_01”是WinCC趋势控件的对象名。
26. BOOL TlgTrendWindowPressHelpButton(char* lpszWindowName)函数,显示趋势窗口的在线帮助。
使用标准函数操作WinCC报警趋势的实例 {//开始/停止
TlgTrendWindowPressStartStopButton(\ }
TlgTrendWindowPressStartStopButton函数参数:
“TrendControl_01”是WinCC趋势控件的对象名。
27. BOOL TlgTrendWindowPressLastButton(char* lpszWindowName)函数,显示趋势窗口中显示区域的最后一个数据记录。显示的数据记录数量由所组态的时间范围决定。 使用标准函数操作WinCC报警趋势的实例 {//开始/停止
TlgTrendWindowPressStartStopButton(\ }
TlgTrendWindowPressStartStopButton函数参数: “TrendControl_01”是WinCC趋势控件的对象名。
28. BOOL TlgTrendWindowPressLinealButton(char* lpszWindowName)函数,显示或隐藏趋势窗口标尺(切换功能)。使用“光标向左”和“光标向右”键可以移动标尺。 使用标准函数操作WinCC报警趋势的实例 {//开始/停止
TlgTrendWindowPressStartStopButton(\ }
TlgTrendWindowPressStartStopButton函数参数: “TrendControl_01”是WinCC趋势控件的对象名。
29. BOOL TlgTrendWindowPressNextButton(char* lpszWindowName)函数,显示趋势窗口中当前显示区域后面的数据记录。显示的数据记录数量由所组态的时间范围决定。 使用标准函数操作WinCC报警趋势的实例 {//开始/停止
TlgTrendWindowPressStartStopButton(\ }
TlgTrendWindowPressStartStopButton函数参数: “TrendControl_01”是WinCC趋势控件的对象名。
30. BOOL TlgTrendWindowPressNextItemButton(char* lpszWindowName)函数,将趋势窗口中所有趋势向前移动一个层面。前面的那个趋势将被移到后面。 使用标准函数操作WinCC报警趋势的实例 {//开始/停止
TlgTrendWindowPressStartStopButton(\ }
TlgTrendWindowPressStartStopButton函数参数: “TrendControl_01”是WinCC趋势控件的对象名。
31. BOOL TlgTrendWindowPressOneToOneButton(char* lpszWindowName)函数,该趋势窗口被重新设置为激活缩放功能前的状态。缩放被取消激活。使用鼠标才可以选中待缩放的区域(参考TlgTrendWindowPressZoomInButton)。
使用标准函数操作WinCC报警趋势的实例 {
//开始/停止
TlgTrendWindowPressStartStopButton(\ }
TlgTrendWindowPressStartStopButton函数参数: “TrendControl_01”是WinCC趋势控件的对象名。 32. BOOL lgTrendWindowPressOpenArchiveVariableSelectionDlgButton(char* lpszWindowName)函数,打开链接趋势与归档和变量的对话框。 使用标准函数操作WinCC报警趋势的实例 {//开始/停止
TlgTrendWindowPressStartStopButton(\ }
TlgTrendWindowPressStartStopButton函数参数: “TrendControl_01”是WinCC趋势控件的对象名。
33. BOOL TlgTrendWindowPressOpenDlgButton(char* lpszWindowName)函数,打开趋势窗口的在线组态对话框。
使用标准函数操作WinCC报警趋势的实例 {//开始/停止
TlgTrendWindowPressStartStopButton(\ }
TlgTrendWindowPressStartStopButton函数参数: “TrendControl_01”是WinCC趋势控件的对象名。
34. BOOL TlgTrendWindowPressOpenItemSelectDlgButton(char* lpszWindowNumber)函数,打开用来选择可见趋势以及要在前景中显示的趋势的对话框。 使用标准函数操作WinCC报警趋势的实例 {//开始/停止
TlgTrendWindowPressStartStopButton(\ }
TlgTrendWindowPressStartStopButton函数参数: “TrendControl_01”是WinCC趋势控件的对象名。
35. BOOL TlgTrendWindowPressOpenTimeSelectDlgButton(char* lpszWindowNumber)函数,打开定义显示时间段的对话框。
使用标准函数操作WinCC报警趋势的实例 {//开始/停止
TlgTrendWindowPressStartStopButton(\
}
TlgTrendWindowPressStartStopButton函数参数: “TrendControl_01”是WinCC趋势控件的对象名。
36. BOOL TlgTrendWindowPressPrevButton(char* lpszWindowName)函数,在趋势窗口中显示当前显示区域前面的数据记录。显示的数据记录数量由所组态的时间范围决定。 使用标准函数操作WinCC报警趋势的实例 {//开始/停止
TlgTrendWindowPressStartStopButton(\ }
TlgTrendWindowPressStartStopButton函数参数: “TrendControl_01”是WinCC趋势控件的对象名。
37. BOOL TlgTrendWindowPressPrevItemButton(char* lpszWindowName)
函数,将趋势窗口中所有趋势向后移动一个层面。后面的那个趋势将被移到前面。 使用标准函数操作WinCC报警趋势的实例 {//开始/停止
TlgTrendWindowPressStartStopButton(\ }
TlgTrendWindowPressStartStopButton函数参数: “TrendControl_01”是WinCC趋势控件的对象名。
38. BOOL TlgTrendWindowPressStartStopButton(char* lpszWindowName)函数,打开或关闭趋势窗口的更新(切换功能)。
使用标准函数操作WinCC报警趋势的实例 {//开始/停止
TlgTrendWindowPressStartStopButton(\ }
TlgTrendWindowPressStartStopButton函数参数: “TrendControl_01”是WinCC趋势控件的对象名。
39. BOOL TlgTrendWindowPressZoomInButton(char* lpszWindowName)函数,将打开趋势窗口中的放大镜。 只能用鼠标选择比例缩放区域。 使用标准函数操作WinCC趋势控件的实例 {//放大
TlgTrendWindowPressZoomInButton(\ }
TlgTrendWindowPressZoomInButton函数参数: “TrendControl_01”是WinCC趋势控件的对象名。
40. BOOL TlgTrendWindowPressZoomOutButton(char* lpszWindowName)函数,恢复趋势窗口
到缺省大小(1:1)。
使用标准函数操作WinCC报警趋势控件的实例 {// 缩小
TlgTrendWindowPressZoomOutButton(\ }
TlgTrendWindowPressZoomOutButton函数参数: “TrendControl_01”是WinCC趋势控件的对象名。
WinCC简短描述
WinCC组包含影响整个WinCC系统的函数。
1. BOOL GetHWDiag(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName, LPCTSTR lpProperties)函数
运行时该函数可实现诊断的直接启动,由事件触发。必须在对象上组态、运用该事件。 如果该事件发生,硬件诊断功能从关联PLC的STEP7被启动。 为了使用该功能,必须满足下列条件:
? WinCC项目,带有从其进行访问的画面,而且STEP7项目必须在同一台计算机上。
? 必须将WinCC项目存储为STEP7项目(STEP7 Projekt\\wincproj\\WinCC Projekt)的子目录。 ? 已将S7变量映射到WinCC。
2. BOOL GetHWDiagLevel(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName, LPCTSTR lpProperties, DWORD dwLevel)函数
根据在dwLevel下面指定的用户管理员功能号为激活的用户执行用户配置文件级测试。 之后,运行时诊断被直接启动并由事件触发,须在对象上组态该事件。 如果该事件发生,硬件诊断功能从关联PLC的STEP7被启动。 为了使用该功能,必须满足下列条件:
? 在WinCC中激活的用户必须有必要的用户配置文件级。
? WinCC项目,带有从其进行访问的画面,而且STEP7项目必须在同一台计算机上。 ? 必须将WinCC项目存储为STEP7项目(STEP7 Projekt\\wincproj\\WinCC Projekt)的子目录. ? 已将S7变量映射到WinCC。
3. BOOL GetKopFupAwl(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName, LPCTSTR lpProperties)函数
该函数执行WinCC Step7编辑器“KFA”的网络激活。 执行该函数,完成两项子任务:
? 建立从WinCC访问网络所需要的数据。
? 将该数据传送到Step 7并使用AUTAPI定位Step 7程序中操作数的利用点。 4. BOOL GetKopFupAwlLevel(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName,LPCTSTR lpProperties, DWORD dwLevel)函数
根据在dwLevel下面指定的用户管理员功能号为激活的用户执行用户配置文件级测试,然
后访问Step 7编辑器“KFA”。
作为三项子任务执行该函数:
? 建立从WinCC进行网络访问所需要的数据。
? 在WinCC中为激活的用户执行用户配置文件级测试。
? 将该数据传送到Step 7并使用AUTAPI定位Step 7程序中操作数的利用点。
5. void OnDeactivateExecute()函数 终止WinCC时调用该函数。
由于它是标准函数,可以插入指令,然后执行它们。
6. void OnErrorExecute(CCAPErrorExecute ErrorExecute)函数 执行动作或函数而发生错误时由系统调用OnErrorExecute。 此函数能够确定出错的准确原因。
由系统调用该函数,并且不要求附加的调用命令。
由于包括作为标准函数的此函数,可以改变输出的类型。
7. void OnTime(CCAPTime time)函数 OnTime只能由系统调用。该函数给出所有动作的运行时间或确定哪个动作的运行时间超出了指定时间。 通过APDIAG可以激活和取消激活时间测量。
由于此函数是一个标准函数,所以可以通过修改函数代码来改变输出的类型。 结构定义CCAPTime typedef struct {
DWORD dwCurrentThreadID; 当前线程的线程ID DWORD dwCode; 代码 BOOL bCycle; 周期/非周期
char* szApplicationName;应用程序的名称 char* szFunctionName; 函数的名称 LPVOID lpParam; 指向动作堆栈的指针 DWORD dwParamSize; 动作堆栈的大小 double dblTime;
DWORD dwFlags; 标记 } CCAPTime; 组成部分 dwCode
dwCode结构元素提供OnTime调用信息: dwCode = 113 用每个动作的时间调用 dwCode = 114 用一个动作的超时调用 dwFlags
dwFlags结构元素提供输出类型的信息: dwFlags = TRUE 结果被输出到文件中。 dwFlags = FALSE 结果被输出到诊断窗口中
Windows - 简短描述
Windows组包含Execute Program函数。 该函数可用来执行任何功能。
1. unsigned int Execute(char* Program_Name)函数,用指定的名称启动该程序。 从WinCC启动程序的实例 {//启动程序calc.exe
执行程序 (\ }
指定带路径的文件为参数。
二、内部函数
内部函数用来画图形对象和使归档动态化,并用于项目函数、标准函数和全局脚本动作中。 在整个项目中都识别内部函数。
既不能创建新的内部函数,也不能修改已存在的内部函数。 1. allocate保留和释放工作存储器空间的函数
void SysFree(void* lpFree)函数,通过SysMalloc函数释放保留的存储器区域。 参数lpFree,指向通过SysMalloc函数保留的存储器区域的指针。
2. void* SysMalloc(unsigned long int size)函数,为动作保留存储器空间。存储器区域被分配给该动作。已完成动作和已传送结果时,系统再次释放存储器。 SysFree函数可用来过早释放保留的存储器空间。 参数size,按字节计算的存储器区域的大小。
3. c_bib函数组c_bib包含来自C库的C函数
Graphics - 简短描述
使用Graphics组中的函数可以修改或调用WinCC对象的图形属性。
Axes - 简短描述
Axes组中的函数仅用于棒图对象。
该函数可用来修改或调用各种棒图对象属性。
1. BOOL GetAlignment(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName)函数,使用棒图对象时,它指明文本在棒图的左面还是右面。 读出棒图对象的布尔型属性的实例 {
BOOL bscaling;
//获得标尺状态 bscaling
= GetScaling(lpszPictureName,\
if (bscaling) {
// 自定义代码
// 棒图对象有一个附加的标尺 ... } else {
// 自定义代码
// 棒图对象没有附加的刻度 ... } }
GetScaling函数参数:
“lpszPictureName”是在其中组态该对象的画面的名称。 “Bar1”是该对象的名称。
1). 读出棒图刻度是否可见以及bscaling中的缓冲区。 2). 根据该函数的返回值执行自定义代码。
2. double GetAxisSection(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName)函数,使用棒图对象时,它指定两个邻近轴标签之间的数值差。
3. BOOL GetExponent(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName)函数,使用棒图对象时,它指定轴标签对应于小数或指数形式。 读出棒图对象的布尔型属性的实例 {BOOL bscaling;
//获得标尺状态 bscaling
= GetScaling(lpszPictureName,\
if (bscaling) {
// 自定义代码
// 棒图对象有一个附加的标尺 ... } else
{
// 自定义代码
// 棒图对象没有附加的刻度 ... } }
GetScaling函数参数:
“lpszPictureName”是在其中组态该对象的画面的名称。 “Bar1”是该对象的名称。
1). 读出棒图刻度是否可见以及bscaling中的缓冲区。 2). 根据该函数的返回值执行自定义代码。
4. long int GetLeftComma(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName)函数,使用棒图对象时,它指定轴标签中的整数数量。 参数lpszPictureName 画面名lpszObjectName 对象名
返回值,轴标签中的整数数量
5. BOOL GetLongStrokesBold(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName)函数,使用棒图对象时,它指定以粗体还是常规形式显示标尺上的主要刻度线。 读出棒图对象的布尔型属性的实例 {
BOOL bscaling;
//获得标尺状态 bscaling
= GetScaling(lpszPictureName,\ if (bscaling) {
// 自定义代码
// 棒图对象有一个附加的标尺 ... } else {
// 自定义代码
// 棒图对象没有附加的刻度 ... } }
GetScaling函数参数:
“lpszPictureName”是在其中组态该对象的画面的名称。
“Bar1”是该对象的名称。
1). 读出棒图刻度是否可见以及bscaling中的缓冲区。 2). 根据该函数的返回值执行自定义代码。
6. long int GetLongStrokesSize(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName)函数,使用棒图对象时,它指定主要刻度线的长度。
7. long int GetLongStrokesTextEach(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName)函数,使用棒图对象时,它指定主要刻度线标签的间隔长度。
8. long int GetRightComma(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName)函数,使用棒图对象时,它指定坐标轴标签中的小数位数。
9. long int GetScaleTicks(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName)函数,使用棒图对象时,它将标尺单位定义为标尺分段的数量。一个标尺分段对应于两条主要刻度线之间的范围
10. BOOL GetScaling(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName)函数,使用棒图时,它指定激活还是取消激活标尺。 读出棒图对象的布尔型属性的实例 {
BOOL bscaling;
//获得标尺状态 bscaling
= GetScaling(lpszPictureName,\ if (bscaling) {
// 自定义代码
// 棒图对象有一个附加的标尺 ... } else {
// 自定义代码
// 棒图对象没有附加的刻度 ... } }
GetScaling函数参数:
“lpszPictureName”是在其中组态该对象的画面的名称。 “Bar1”是该对象的名称。
1). 读出棒图刻度是否可见以及bscaling中的缓冲区。
2). 根据该函数的返回值执行自定义代码。
11. long int GetScalingType(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName)函数,使用棒图对象时,它指定棒图标尺的类型。
Color - 简短描述
使用Color组中的函数可以修改或调用对象的颜色属性。
1. long int GetBackColor(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName)函数,指定对象的背景色为数字值。 读出颜色值的实例 {
long int bk_color; //
linkinfo.szLinkName是变量名。 // linkinfo.dwCycle是更新周期 // linkinfo.LinkType是该连接的类型
//自定义代码
//在那里用户可以使用返回值做某事 ... }
GetBackColor函数参数:
“lpszPictureName”是在其中组态该对象的画面的名称。 “Static Text1”是该对象的名称。
1). 读出当前背景色和bk_color中的缓冲区。 2). 执行处理返回值的自定义代码。
2. long int GetBackColor2(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName)函数,使用棒图对象时,它指定棒图的颜色为数字值。 读出颜色值的实例 {
long int bk_color; //
linkinfo.szLinkName是变量名。 // linkinfo.dwCycle是更新周期 // linkinfo.LinkType是该连接的类型
//自定义代码
//在那里用户可以使用返回值做某事 ... }
GetBackColor函数参数:
“lpszPictureName”是在其中组态该对象的画面的名称。
“Static Text1”是该对象的名称。
3. long int GetBackColor3(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName)函数,使用棒图对象时,它指定棒图的背景色为数字值。 读出颜色值的实例 {
long int bk_color; //
linkinfo.szLinkName是变量名。 // linkinfo.dwCycle是更新周期 // linkinfo.LinkType是该连接的类型
//自定义代码
//在那里用户可以使用返回值做某事 ... }
GetBackColor函数参数:
“lpszPictureName”是在其中组态该对象的画面的名称。 “Static Text1”是该对象的名称。
Fill - 简短描述
Fill组中的函数控制对象的动态填充。
1. BOOL GetFilling(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName)函数,指定是否激活背景色动态填充。
读出“动态填充”属性的实例 {
BOOL bfilling;
//获得动态填充的实际状态 bfilling
= GetFilling(lpszPictureName,\ if(bfilling) {
// 自定义代码
// 动态填充是否被激活 ... } else {
// 自定义代码
// 动态填充是否被取消激活 ... } }
GetFilling函数参数:
“lpszPictureName”是在其中组态该对象的画面的名称。 “Rectangle1”是该对象的名称。
1). 读出动态填充是否激活以及bfilling中的缓冲区。 2). 根据该函数的返回值执行自定义代码。
2.long int GetFillingIndex(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName)函数,指定当前填充量。
读出填充索引的实例 {
long int filling_index;
//获得该对象的实际填充索引 filling
_index = GetFillingIndex(lpszPictureName,\ //自定义代码
//在那里用户可以使用返回值做某事 ... }
GetFillingIndex函数参数:
“lpszPictureName”是在其中组态该对象的画面的名称。 “Rectangle1”是该对象的名称。
1). 读出该对象的当前填充索引以及filling_index中的缓冲区。 2). 执行处理返回值的自定义代码。
Flash - 简短描述
使用Flash组中的函数可以修改或调用各种闪烁属性。
1. long int GetBackFlashColorOff(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName)函数,指定取消激活状态的闪烁背景色 读出闪烁颜色的实例 {
long int flashcol_on; //获得背景闪烁颜色
flashcol_on = GetBackFlashColorOn(lpszPictureName,\ //自定义代码
//在那里用户可以使用返回值做某事 ... }
GetBackFlashColorOn函数参数:
“lpszPictureName”是在其中组态该对象的画面的名称。 “Group 1”是该对象的名称。
1). 读出该对象的开状态的当前背景闪烁颜色以及flashcol_on中的缓冲区。 2). 执行处理返回值的自定义代码。
2. long int GetBackFlashColorOn(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName)函数,指定激活状态的背景闪烁颜色。 读出闪烁颜色的实例 {
long int flashcol_on;
//获得背景闪烁颜色
flashcol_on = GetBackFlashColorOn(lpszPictureName,\ //自定义代码
//在那里用户可以使用返回值做某事 ... }
GetBackFlashColorOn函数参数:
“lpszPictureName”是在其中组态该对象的画面的名称。 “Group 1”是该对象的名称。
1). 读出该对象的开状态的当前背景闪烁颜色以及flashcol_on中的缓冲区。 2). 执行处理返回值的自定义代码。
3. long int GetBorderFlashColorOff(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName)函数,指定取消激活状态的边框或线闪烁颜色。 读出闪烁颜色的实例 {
long int flashcol_on;
//获得背景闪烁颜色
flashcol_on = GetBackFlashColorOn(lpszPictureName,\ //自定义代码
//在那里用户可以使用返回值做某事 ... }
GetBackFlashColorOn函数参数:
“lpszPictureName”是在其中组态该对象的画面的名称。 “Group 1”是该对象的名称。
4. long int GetBorderFlashColorOn(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName)函数,指定激活状态的边框或线闪烁颜色。 读出闪烁颜色的实例 {
long int flashcol_on;
//获得背景闪烁颜色
flashcol_on = GetBackFlashColorOn(lpszPictureName,\ //自定义代码
//在那里用户可以使用返回值做某事 ... }
GetBackFlashColorOn函数参数:
“lpszPictureName”是在其中组态该对象的画面的名称。 “Group 1”是该对象的名称。
5. BOOL GetFlashBackColor(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName)函数,指定是否激活背景闪烁。
读出“闪烁背景激活”属性的实例 {
BOOL bflash_col;
//了解闪烁是开还是关 bflash
_col = GetFlashBackColor(lpszPictureName,\ if(bflash_col) {
// 自定义代码 // 闪烁是否被激活 ... } else {
// 自定义代码
// 闪烁是否被取消激活 ... } }
GetFlashBackColor函数参数:
“lpszPictureName”是在其中组态该对象的画面的名称。 “Group 1”是该对象的名称。
1). 读出背景色闪烁是否被激活以及bflash_col中的缓冲区。 2). 根据该函数的返回值执行自定义代码。
Focus - 简短描述
使用Focus组中的函数,可以设置焦点或轮询哪个对象有焦点。
1. char* Get_Focus()函数,指定当前或最后聚焦的对象的名称。 要求当前在哪一个对象上设置焦点的实例 {
char* pszValue = NULL;
char szValue[_MAX_PATH+1]; //获得具有焦点的对象 pszValue = Get_Focus(); //复制字符串
if (pszValue != NULL) {
strncpy(szValue,pszValue,_MAX_PATH); }
//自定义代码
//在那里用户可以使用返回值做某事 ... }
1). 读出在其上设置焦点的对象以及pszValue中的缓冲区。
2). 如果返回有效数值,将该函数的返回值存储在本地字符串szValue中。最多存储_MAX_PATH个字符。
3). 执行处理返回值的自定义代码。
Font - 简短描述
使用Font组中的函数可以修改或调用影响文本的各种属性。
1. long int GetAlignmentLeft(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName)函数,定义水平文本对齐(左对齐、居中、右对齐)。 读出字体大小的实例 {
long int fontsize;
//获得实际字体大小 fontsize
= GetFontSize(lpszPictureName,\
//自定义代码
//在那里用户可以使用返回值做某事 ... }
GetFontSize函数参数:
“lpszPictureName”是在其中组态该对象的画面的名称。 “Static Text1”是该对象的名称。
1). 读出当前字体大小和fontsize中的缓冲区。
2). 执行处理返回值的自定义代码。
2. long int GetAlignmentTop(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName)函数,定义垂直文本对齐(上对齐、居中、下对齐)。 读出字体大小的实例 {
long int fontsize;
//获得实际字体大小 fontsize
= GetFontSize(lpszPictureName,\ //自定义代码
//在那里用户可以使用返回值做某事 ... }
GetFontSize函数参数:
“lpszPictureName”是在其中组态该对象的画面的名称。 “Static Text1”是该对象的名称。
3. BOOL GetFontBold(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName)函数,定义字体样式是否为“粗体字”。
读出静态文本域的布尔型属性的实例 {
BOOL bbold;
//了解文本是否是粗体字 bbold
= GetFontBold(lpszPictureName,\ if(bbold) {
// 自定义代码
// 字体是否是粗体字 ... } else {
// 自定义代码
// 字体是否不是粗体字 ... } }
GetFontBold函数参数:
“lpszPictureName”是在其中组态该对象的画面的名称。 “Static Text1”是该对象的名称。
4. char* GetText(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName)函数,为对象,例如静态文本、复选框和单选框,指定“文本”属性的数值。 读出文本的实例 {
char* pszValue = NULL; char szValue[13];
//获得实际设置的文本 pszValue
= GetText(lpszPictureName,\ if(pszValue != NULL) {
//复制字符串
strncpy(szValue,pszValue,12); }
//自定义代码
//在那里用户可以使用返回值做某事 ... }
GetText函数参数:
“lpszPictureName”是在其中组态该对象的画面的名称。 “Static Text1”是该对象的名称。
5. long int GetLayer(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName)函数,指定该对象所在的画面层。
参数lpszPictureName 画面名lpszObjectName
Geometry - 简短描述
使用Geometry组中的函数可以修改或调用对象的大小、位置和其它几何属性。
1. long int GetActualPointLeft(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName)函数,指定多边形或折线中当前位置的X轴数值。 读出对象位置的实例 {
long lPos;
//获得对象的X轴位置 lPos
= GetLeft(lpszPictureName,\
//自定义代码
//在那里用户可以使用返回值做某事 ... }
正在阅读:
上网笔记05-01
贫困生补助感谢信01-07
大润发超市物流配送分析04-29
在集体活动中如何进行有效的师幼互动04-09
一名话笑话02-18
教育信息化建设与应用典型案例04-14
山西省太原市2011届高三模拟试题(一)(数学理)缺答案04-10
干部个性化的述职报告09-27
- 亚信联创4A白皮书
- 贵州省白酒出口发展现状及对策
- 2017年劳动合同书范本
- 操作系统课后题答案二
- 福建师范大学18年3月课程考试《国际法》作业考核试题
- 浅谈我国的社会分层现状
- 360度绩效考核体系文件实例(DOC+21页)
- 2012年青岛市高三统一质量检测高三数学试题理科
- 化学必修2复习 知识点归纳
- 中国热固性塑粉行业市场前景分析预测报告(目录) - 图文
- 应收账款大学优秀毕业论文
- 2018年北京社保补贴政策word版本(4页)
- 系统动力学软件VENSIM PLE教程
- 创造力成分理论及其应用研究
- GCP知识学习要点
- 病理课后题
- 浙江省大学物理试题库412-浙江工商大学
- 乡镇人民代表大会程序大全
- 浅析新媒体环境下信息化科普的发展—渝北区双龙湖街道文化服务中
- 天大历年试题分类
- 上网
- 笔记