For personal use only in study and research; not for commercial use
For personal use only in study and research; not for commercial use
——————1、wincc
#include \
int gscAction( void )
{
1.脚本中加入 DMExitWinCCEx (DM_SDMODE_SYSTEM);也可以
——————16、过
全局脚本动作-------隐藏控件——————
WINCC API函数读出当前报警消息 ——————
1、使用GMsgFunction中读出当前报警信息的ID(dwMsgNr);
2、使用MSRTGetMsgCSData函数读出该报警信息ID对应文本库TEXTLIB中的文本ID(dwTextID1);
3、使用MSRTGetMsgText函数读出该文本ID的文本。 信息到达处理:如果读取文本成功,则置文本变量MSG。
信息离去处理:如果MsgNr与上一次相同,则复位MSG,如果不是,则继续保持信息。 具体函数说明请看ODK文档
BOOL GMsgFunction( char* pszMsgData) {
#pragma code(\#i nclude \#pragma code();
MSG_TEXT_STRUCT tMeld; MSG_CSDATA_STRUCT sM; CMN_ERROR err; BOOL bRet;
DWORD dwTextID1; DWORD dwMsgNum; char szMsg[255]; #define TAG_MSG \ MSG_RTDATA_STRUCT mRT;
memset( &mRT, 0, sizeof( MSG_RTDATA_STRUCT ) ); if( pszMsgData != NULL )
{
printf( \sscanf( pszMsgData, \&, _GO, .._QUIT, .._QUIT_SYSTEM & d, Dur: %d, Cnt %d, Fl %drn\, , , , ) ;
SetTagChar(TAG_MSG,szMsg); return( TRUE ); }
——————17、实现用户登陆日志(wincc
中用c脚本实现)——————
用户登陆日志:(包括用户的登陆退出信息,以便查询在什么时间段是哪个用户在使用这个监控软件) #i nclude \
int gscAction( void ) {
#pragma code(\
VOID GetLocalTime(LPSYSTEMTIME lpSystemTime); #pragma code() char* username; char buf[128];
static char preuser[128]; unsigned a,b,c,d,e,f; FILE* fp;
SYSTEMTIME sysTime; av\ }
if(GetTagFloat(\av\ }
if(GetTagFloat(\av\ }
if(GetTagFloat(\ }
if(GetTagFloat(\av\ }
if(GetTagFloat(\av\
}
if(GetTagFloat(\| GetTagFloat(\ | GetTagFloat(\|| GetTagBit(\|| GetTagBit(\|| GetTagBit(\ }
if(GetTagFloat(\ || GetTagFloat(\ || GetTagBit(\ }
if(GetTagFloat(\|| GetTagFloat(\|| GetTagBit(\ }
if(GetTagFloat(\av\ }
if(GetTagBit(\|| GetTagBit(\av\ }
if(GetTagBit(\|| GetTagBit(\) av\ }
if(GetTagBit(\av\ }
if(GetTagBit(\av\ }
if(GetTagBit(\av\ } }
----------------------------------------------------------------------------------------------
——————19、闪烁边框图片的脚本——————
Flash - 简短描述
使用Flash组中的函数可以修改或调用各种闪烁属性。
int GetBackFlashColorOff(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName)函数,指定取消激活状态的闪烁背景色 读出闪烁颜色的实例 {
long int flashcol_on;
读出该对象的开状态的当前背景闪烁颜色以及flashcol_on中的缓冲区。 2). 执行处理返回值的自定义代码。
2. long int GetBackFlashColorOn(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName)函数,指定激活状态的背景闪烁颜色。 读出闪烁颜色的实例 {
long int flashcol_on;
读出该对象的开状态的当前背景闪烁颜色以及flashcol_on中的缓冲区。 2). 执行处理返回值的自定义代码。 3. long int GetBorderFlashColorOff(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName)函数,指定取消激活状态的边框或线闪烁颜色。 读出闪烁颜色的实例 {
long int flashcol_on;
long int GetBorderFlashColorOn(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName)函数,指定激活状态的边框或线闪烁颜色。 读出闪烁颜色的实例 {
long int flashcol_on;
BOOL GetFlashBackColor(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName)函数,指定是否激活背景闪烁。
读出“闪烁背景激活”属性的实例 {
BOOL bflash_col;
读出背景色闪烁是否被激活以及bflash_col中的缓冲区。 2). 根据该函数的返回值执行自定义代码。
——————20、I/0
脚本——————
使用i_o组中的函数可以修改或调用影响输入和输出值的各种属性。
1. char* GetAssignments(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName)函数,对于列表,分配文本给数值范围
2. BOOL GetAssumeOnExit(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName)函数,使用I/O域时,它指定退出该域时是否应用输入的数值。
3. BOOL GetAssumeOnFull(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName)函数,使用I/O域时,它指定完成输入时是否应用输入的数值。
4. long int GetBitNumber(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName)函数,使用列表类型“位”时,它指定输出值中相关的位。 读出布尔型属性的实例
{
BOOL bHiddenInput;
读出文本是否是粗体字以及bHiddenInput中的缓冲区。 2). 根据该函数的返回值执行自定义代码。
5. BOOL GetClearOnError(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName)函数,使用I/O域时,它指定错误输入后是否激活删除内容。
6. long int GetDataFormat(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName)函数,对于I/O域,它指定域内容的数据类型。 读出布尔型属性的实例 {
BOOL bHiddenInput;
BOOL GetTagBitStateWait(Tag Tag_Name, PDWORD lp_dwstate)函数,
建立数据类型“二进制变量”的过程变量的数值。直接从PLC读取该数值。 也返回变量的状态。
读出二进制类型变量的实例 {
DWORD dwstate; BOOL bValue;
dwstate = 0xFFFFFFFF; } else {
读出该变量值以及bstate中的缓冲区。 该函数将变量状态存储在dwstate中。 2). 根据该函数的返回值执行自定义代码。
——————22、Wincc
项目脚本——————
使用来自WinCC组的函数可以在运行系统中定义各种设置。 使用System子组中的函数可以操作WinCC运行系统。 1. BOOL DeactivateRTProject()函数,取消激活该项目。 取消激活WinCC运行系统的实例 {
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,