}
8、问: How can I program a waiting function (Sleep) in WinCC?
答: The following sample program shows how the "Sleep" is used.
#pragma code("Kernel32.dll")
void Sleep(int milliseconds);
#pragma code()
Sleep(1000); //time specification in milliseconds
Warning:
If you use Sleep(), processing the C script is interrupted for the time indicated. Requests for the interrupted function cannot be processed during this time.
9、问: How can I output a SIMATIC timer minutes and seconds in WinCC?
答: If you want to output a SIMATIC Timer in minutes and seconds in WinCC, then in WinCC please use a static text in the Graphics Designer to which you interface the following action:
char* _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
char *p;
DWORD hilf;
int min, sec;
p=SysMalloc(10);
hilf=GetTagDWord("Time");
min=hilf/60000;
sec=hilf%60000/1000;
sprintf(p,"%d min %d sec",min,sec);
return p;
}
The "Time" variable linked to the I/O field must have the following properties:
•Data type "32-bit value without sign"
•Format adaptation "DwordToSimaticBCDTimer"
•Address: data area "Times" and addressing "Word"
10:快捷地切换画面
通常要将所有的设备都显示在一张画面里是不可能的,所以将设备按照处理工艺的功能步骤分级在多张画面内,以一个污水处理厂为例分为电泳线、前处理线、生化线、加药线等,之间的切换使用按钮的鼠标动作来实现。这对于用WinCC现成的鼠标动作来实现是很简单的,但是不是要在每张图上都使用相同数量且位置排列顺序一致的按钮呢?(出于对操作的一致性考虑,不能让操作人员在不同的图上,不同的位置找想要操作的按钮)这个问题的解决我们使用WinCC的脚本编程,在按钮动作中调用它的内部函数来实现。首先,组态一幅背景画面,其中包括要显示的静态文本、OLE(例如,时钟)、所有的图形切换按钮及推出关机按钮。第二,在背景画面中插入智能对象(Smart Object)中的画面窗口(Picture Window),并且使其的尺寸与其分级画面相同。第三,在相应的切换按钮的属性->事件->鼠标动作中编写如下C语言脚本代码:
#include\"apdefap.h\"
void onClick(char *lpsz PictureName,
char *lpsz ObjectName,char *lpsz PropertyName)
{
SetPictureName(\"背景画面\", \"画面窗口\", \"电泳处理线\");
} //\"背景画面\"即为始终显示地静态背景的属性名,\"画面窗口\"即为在背景画//面中插入地画面窗口(Picture
Window)属性名,\"电泳处理 线\"即为分级画面//的名称
这样就能方便快捷地切换画面。
11:必须始终显示的报警记录,用画面颜色闪烁来提示操作者有故障发生,可以用同样的C语言脚本(当然不是加在鼠标动作中)在背景画面的底部留下一条类似Windows状态栏的报警栏,当出现故障报警的时候在报警栏显示最近一条报警记录,操作人员可以利用按钮切换到主报警记录画面了解故障的完全信息。
12:单个部件的组态
WinCC在其内部的图库里集成很多的图形对象,如水箱、电机、阀门等等,对于污水处理用的最多的是水池,搅拌机等等。为了使组态画面贴近实际,能够更好的反应现场工况,图库里的元素并不能满足要求。我们可以利用
