wincc使用C脚本显示当前时间

合集下载

wincc画面输入时间,博途程序中输入时间案例

wincc画面输入时间,博途程序中输入时间案例

wincc画面输入时间,博途程序中输入时间案例摘要:一、WinCC 画面输入时间1.WinCC 画面的作用2.输入时间的方法3.时间的显示方式二、博途程序中输入时间案例1.博途程序的介绍2.输入时间的方法3.时间输入的实例正文:WinCC 是一种广泛应用于工业自动化领域的监控和控制系统,它能够实现对现场设备的数据采集、处理和监控。

在WinCC 画面中,输入时间是一个重要的功能,可以帮助用户更好地了解和分析现场设备的工作状态。

本文将详细介绍WinCC 画面输入时间的方法以及时间的显示方式。

首先,我们来了解如何在WinCC 画面中输入时间。

在WinCC 画面中,通常有一个“时间”标签,用户可以在其中输入当前时间。

具体操作方法如下:1.打开WinCC 画面,找到“时间”标签。

2.点击“时间”标签,进入时间设置界面。

3.在时间设置界面中,可以输入年、月、日、时、分、秒等信息。

4.确认输入的信息无误后,点击“确定”按钮,完成时间设置。

接下来,我们来看一下WinCC 画面中时间的显示方式。

在WinCC 画面中,时间通常以数字形式显示,例如:“2022-08-01 12:00:00”。

此外,WinCC 画面还可以设置时间显示的格式,如:年- 月-日、月- 日-年等。

用户可以根据自己的需求选择合适的显示格式。

接下来,我们将介绍如何在博途程序中输入时间。

博途程序是一款强大的PLC 编程软件,广泛应用于工业自动化领域。

在博途程序中,输入时间可以帮助用户更好地控制和调试现场设备。

下面是一个简单的博途程序输入时间的方法:1.打开博途程序,找到需要输入时间的变量。

2.在变量属性中,找到“时间戳”属性。

3.设置时间戳属性,输入当前时间。

下面是一个博途程序中时间输入的实例:```// 定义一个整型变量,用于存储时间戳INT timeStamp;// 设置时间戳属性,输入当前时间timeStamp = 1626789123;```通过以上步骤,我们可以在博途程序中成功输入时间。

用wincc trend control 显示任意时间段的参数趋势

用wincc trend control 显示任意时间段的参数趋势

用wincc trend control 显示任意时间段的参数趋势(转)2007-04-03 11:01首先,你需要建立2个输入输出域用于输入你要显示的起始时间和结束时间。

(变量连接类型为字符型)然后你需要设立一个按钮(当然也可以直接在你一个按钮脚本中输入)用于将输入的字符型变量转换为时间日期格式。

按钮的VBS脚本为:Sub onClick(ByVal Item)Dim ActDateDim Year_SectDim Month_SectDim Day_SectDim Date_ModDim Date_EndDim ActTimeDim Time_Mod_bDim Time_Mod_eDim DateString_bDim DateString_eActDate = Date '当前日期Year_Sect = Year(Date) ‘提取年份Month_Sect = Mo nth(Date) ’提取月份Day_Sect = Day(Date) ‘提取日Date_Mod = Day_Sect & "." & Month_Sect & "." & Year_Sect’然后根据归档的要求将日期重新组合成,日.月.年的格式ActTime = Time ‘当前时间Time_Mod_b = DateAdd("n", -15, ActTime) ’起始时间减15分钟Time_Mod_e = DateAdd("n", -5, ActTime) ‘结束时间减5分钟DateString_b = Date_Mod &" "& Time_Mod_b ’将起始时间编为:日.月.年时间格式DateString_e = Date_Mod &" "& Time_Mod_eHMIRuntime.Tags("strVar_1").Write DateString_b '25.02.2004 21:10:00HMIRuntime.Tags("strVar_2").Write DateString_eEnd Sub这段程序的作用就是查看过去15分钟到过去5分钟的时间段,如果你要显示任意时间,那么只要不调用DateADD函数即可。

wincc系统日期时间获取

wincc系统日期时间获取

wincc系统日期时间获取系统时间的获得,有两种办法,一是建立TAG,二是使用函数获取系统时间方法一:在[Tag Management]添加新的驱动"System Info.chn",然后在新添加的[SYSTEM INFO]新建连接,这样就可以创建实际TAG了;下面新建几个TAG: 名字:date, 数据类型:text tag 8-bit character set,地址设定为Function:date,format:"MM-DD-YYYY"名字:time, 数据类型:text tag 8-bit character set,地址设定为Function:Time,format:"HH:MM:SS"根据上面的方法依次建立year,mon,day,week等TAG,请分别设置对应的format内容TAG建立完成了,就可以读到系统时间了。

新建一个图形文件,分别放置几个静态文本框[static text],把TEXT属性连接到上面新建的TAG,就可以显示系统日期时间,利用WEEK还能显示今天是星期几了.方法二: 使用C脚本获得系统时间#include "apdefap.h"char* _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName){time_t timer;struct tm *ptm;char *p;time(&timer);ptm=localtime(&timer);p=SysMalloc(9);sprintf(p,"%04d:%02d:%02d",ptm->tm_year+1900,ptm->tm_mon+1,p tm->tm_mday);return(p);}其中//系统时间已经获得//年: ptm -> tm_year+1900//月: ptm-> tm_mon+1//日: ptm -> tm_mday//星期: ptm -> tm_wday *注意这个,tm_wday返回的是整数,必须经过转换才能用来表示星期几。

如何使用 WinCC 全局脚本访问系统时钟

如何使用 WinCC 全局脚本访问系统时钟

如何使用WinCC 全局脚本访问系统时钟?
说明:
使用下列函数设置或读取系统时间:
∙SetSystemTime
∙SetLocalTime
∙GetSystemTime
∙GetLocalTime
系统中本地计算机时间和格林威治时间是有区别的。

函数“SetSystemTime / GetSystemTime”用于设置或读取格林威治时间。

函数“SetLocalTime / GetLocalTime”用于设置或读取本地计算机时间。

两种时间会因地理的时区不同而改变,也会受到冬令时和夏令时的影响。

两个函数使用方法相同。

操作本地计算机时间的函数是Windows 系统函数,因此它独立于WinCC 函数“GetLocalTimeString”或WinCC 早期版本的“GetLocalTime”函数。

Time_Functions.zip
图. 01
创建环境
在该FAQ 中的画面和下载,创建在WinCC Professional V11 SP2 中。

条目号:59558655 日期:2012-05-04。

Wincc常用C脚本及常用功能

Wincc常用C脚本及常用功能

Wincc常用C脚本及常用功能打开用户管理器ProgramExecute("Passcs.exe"); 取消激活#include "apdefap.h"void OnLButtonDown(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName,UINT nFlags, int x, int y){#pragma option(mbcs)HWND hwnd=NULL;int iRet;hwnd=FindWindow(NULL,"WinCC-运行系统 - "); //获得句柄iRet=MessageBox(hwnd,"是否取消激活?","Deactivate",MB_OKCANCEL|MB_ICONWARNING|MB_APPLMODAL);if(iRet==1)DeactivateRTProject (); //Return-Type: BOOL}关闭计算机#include "apdefap.h"void OnLButtonDown(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName,UINT nFlags, int x, int y){#pragma option(mbcs)HWND hwnd=NULL;int iRet;hwnd=FindWindow(NULL,"WinCC-运行系统 - ");iRet=MessageBox(hwnd,"是否关闭计算机?","ShutDown",MB_OKCANCEL|MB_ICONWARNING|MB_APPLMODAL);if(iRet==1)DMExitWinCCEx(DM_SDMODE_SYSTEM); }==================================================================== ==登陆代码:#pragma code(“useadmin.dll”)#include <pwrt_api.h>#pragma code()PWRTLogin (…e?);==================================== 取消激活(Deactivate)DeactivateRTProject();====================================== Wincc变量操作GetTagDWord(“变量名称”); 获取Wincc变量值SetTagDWord(“变量“,设定值); 设置Wincc变量对文本读写操作写操作#include "apdefap.h"void OnLButtonUp(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName,UINT nFlags, int x, int y) {#pragma option(mbcs)FILE* lpFile;char *shuzhu[6]={"tag_1","tag_2","tag_3","tag_4","tag_5","tag_6"};char* lpszStr;int i,j;lpszStr=SysMalloc(60); //Return-Type: void*lpFile = fopen("D:\\test.txt", "w+");for(i=0;i<6;i++){lpszStr=GetTagChar(shuzhu[i]); strcat(lpszStr,"\r\n");if(lpFile == NULL){ printf("can not open file\r\n"); return;}fprintf(lpFile, lpszStr); }SysFree(lpszStr);fclose(lpFile);}读操作#include "apdefap.h"void OnLButtonUp(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName,UINT nFlags, int x, int y) {#pragma option(mbcs)char* shuzhu[6]={"tag_1","tag_2","tag_3","tag_4","tag_5","tag_6"}; char tmp[255];int i=0;int ChrNumLine=38;FILE *fp;fp=fopen("D:\\test.txt","r"); if (fp==NULL){return;}else{rewind(fp);while(!feof(fp)){fgets(tmp,ChrNumLine,fp);SetTagChar(shuzhu[i],tmp);i++;}}fclose(fp);}画面窗口显示界面切换SetPictureName(lpszPictureName,"PicWindow_button","produce_manage_bu tton.pdl");SetVisible(lpszPictureName,"PicWindow_button",1);注:PicWindow_button是画面窗口名称;produce_manage_button.pdl是要显示的子画面。

Wincc界面制作:C脚本的实际操作

Wincc界面制作:C脚本的实际操作

Wincc界面制作:C脚本的实际操作本文档将介绍Wincc界面制作中使用C脚本的实际操作步骤。

步骤一:了解C脚本基础知识在开始之前,我们需要了解一些C脚本的基础知识。

C脚本是一种编程语言,常用于Wincc界面制作中的自定义功能和交互。

熟悉C脚本语法和常用函数对于实际操作非常重要。

步骤二:创建C脚本文件在Wincc界面制作软件中,我们可以创建一个C脚本文件来实现自定义功能。

在界面中选择适当的位置,右键点击,然后选择“创建脚本”选项。

给脚本文件起一个有意义的名称,并确保选择C 脚本语言。

步骤三:编写C脚本代码打开创建的C脚本文件,在其中编写所需的代码。

根据具体需求,可以使用各种C脚本语法和函数来实现不同的功能。

注意编写清晰、简洁的代码,以便后续维护和修改。

步骤四:调用C脚本在Wincc界面制作软件中,我们可以通过不同的方式来调用C脚本。

例如,在按钮的点击事件中调用C脚本,或者在某个对象的属性中设置C脚本作为其值。

根据具体需求,选择合适的调用方式,并将C脚本与相应的界面元素关联起来。

步骤五:测试和调试在完成C脚本的编写和调用后,进行测试和调试是非常重要的。

通过模拟用户操作,检查C脚本是否按预期执行,并修复可能存在的错误。

确保C脚本在不同情况下都能正常工作。

步骤六:文档记录最后,完成实际操作后,我们应该记录下所有的C脚本代码和相关的操作步骤。

这样可以方便日后的维护和修改,并为其他团队成员提供参考。

以上是Wincc界面制作中使用C脚本的实际操作步骤。

通过正确的使用C脚本,我们可以实现更多的自定义功能和交互,提升界面的灵活性和用户体验。

请注意,本文档仅提供实际操作步骤的概述,并不包含具体的代码示例。

具体的代码编写需要根据具体需求进行定制。

wincc中常用C脚本

wincc中常用C脚本

查看文章wincc常用C动作2010-06-27 10:311.用户注销:#pragma code ("useadmin.dll")#include "PWRT_api.h"#pragma code()PWRTLogout();2.用户登录:#pragma code ("useadmin.dll")#include "PWRT_api.h"#pragma code()PWRTLogin('c');3.关闭项目并退出wincc:ExitWinCC ();4.退出运行到wincc资源管理器:DeactivateRTProject ();5.结束监控并关闭计算机(会弹出确认对话框)HWND hWnd = NULL;//Author:Smartsysint iRet;hWnd = FindWindow(NULL,"WinCC-运行系统 - ");iRet=MessageBox(hWnd,"结束监控并关闭计算机","关闭操作站",MB_YESNO|MB_ICONWARNING|MB_APPLMODAL);if(iRet==IDYES)DMExitWinCCEx (DM_SDMODE_POWEROFF);6.点击事件弹出对话框,通过点击弹出对话框的确定和取消按钮实现对变量的置位或取消:int r;r=MessageBox(NULL, "YES为开,NO为关", "确定开命令:", MB_YESNO|MB_SYSTEMMODAL);if (r==IDYES)SetTagBit("TAGNAME",TRUE);elseSetTagBit("TAGNAME",FALSE);7.开显示关显示:(要在内部变量中建立三个二进制变量COLSE_DISPLAY、DISPLAY_NO和DISPLAY_COMMENT)// Funktion: Bit in Doppelwort setzen;if (GetTagBitWait("COLSE_DISPLAY")==1 ){SetTagBit("COLSE_DISPLAY",0);SetTagBit("DISPLAY_NO",0); //Return-Type: BOOLSetTagBit("DISPLAY_COMMENT",0);}else{SetTagBit("COLSE_DISPLAY",1);SetTagBit("DISPLAY_NO",1); //Return-Type: BOOLSetTagBit("DISPLAY_COMMENT",0);}8.开阀确认:BOOL a;a=GetTagBit("30T制水启动"); //Return-Type :short intif (a==0){if(MessageBox(NULL,"真的要启动制水吗?","操作提示",MB_YESNO|MB_ICONQUESTION|MB_SETFOREGROUND|MB_SYSTEMMODAL) == 6) { SetTagBit("30T制水启动",1);//Return-Type :BOOL}}else{if(MessageBox(NULL,"真的要停止制水吗?","操作提示",MB_YESNO|MB_ICONQUESTION|MB_SETFOREGROUND|MB_SYSTEMMODAL) == 6) { SetTagBit("30T制水停止",1);}}9.将WinCC运行画面最小化HWND WinCCHwnd;WinCCHwnd=FindWindow(NULL,"WinCC-Runtime - "); //如果运行语言为英文if (WinCCHwnd==0) WinCCHwnd=FindWindow(NULL,"WinCC-运行系统 - "); //如果运行语言为中文CloseWindow(WinCCHwnd);10.显示或不显示(其中hiddVtext为内部的二进制变量)if(GetTagBit("hiddVtext")==0) //Return-Type: BOOL{SetTagBit("hiddVtext",TRUE); //Return-Type: BOOL//Return-Type: BOOL}else{SetTagBit("hiddVtext",FALSE);}10.打开编辑画面的脚本#pragma option(mbcs)#ifdef RUN_ON_WEBNAVIGATOR#elseHWND hExplorerWindow= NULL;HWND hRuntimeWindow= NULL;hExplorerWindow= FindWindow("WinCCExplorerFrameWndClass",NULL);hRuntimeWindow= FindWindow("PDLRTisAliveAndWaitsForYou",NULL);if(hExplorerWindow){ShowWindow(hExplorerWindow, SW_MINIMIZE); // This entry is only necessary for Windows 2000ShowWindow(hExplorerWindow, SW_SHOWNORMAL);SetForegroundWindow(hExplorerWindow);}elseprintf("\r\n SetForeground failed");#endif11.如何在WINCC中制作一个保持型按钮方法1:if( GetTagBit("M10") )SetTagBit("M10",0);elseSetTagBit("M10",1);方法2:SetTagBit("M1.0",(SHORT)!GetTagBit("M1.0"));求反指令,如果为1点击变为0,如果为0点击变为1方法3:或者做两个按钮,按钮一:显示,直接连接m1.0,是--不显示,否--显示。

WinCC定时器C脚本-推荐下载

WinCC定时器C脚本-推荐下载
1、定时器功能介绍
2、脚本中定时器介绍
3、使用脚本实现更多定时器功能 3.1 整点归档 3.2 WinCC 项目激活时避免脚本初次执行及延迟执行脚本
1 定时器功能介绍
WinCC 中定时器的使用可以使 WinCC 按照指定的周期或者时间点去执行任务,比如周 期执行变量归档、在指定的时间点执行全局脚本或条件满足时打印报表。WinCC 已经提供 了一些简单的定时器,可以满足大部分定时功能。但是在有些情况下,WinCC 提供的定时 器不能满足我们需求,这时我们就可以通过 WinCC 提供的脚本接口通过编程的方式实现定 时的功能,因为脚本本身既可以直接 调用 WinCC 其他功能,比如报表打印,也可以通过 中间变量来控制其他功能的执行,比如通过置位/复位归档控制变量来触发变量记录的执行。 WinCC 提供了 C 脚本和 VBS 脚 本,本文主要以全局 C 脚本编程为例介绍定时功能的实 现。
软件环境:Windows 7 Professional Service Pack1 , WinCC V7.0 SP3
对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术关,系电通,力1根保过据护管生高线产中0不工资仅艺料可高试以中卷解资配决料置吊试技顶卷术层要是配求指置,机不对组规电在范气进高设行中备继资进电料行保试空护卷载高问与中题带资2负料2,荷试而下卷且高总可中体保资配障料置各试时类卷,管调需路控要习试在题验最到;大位对限。设度在备内管进来路行确敷调保设整机过使组程其高1在中正资,常料要工试加况卷强下安看与全22过,22度并22工且22作尽22下可护都能1关可地于以缩管正小路常故高工障中作高资;中料对资试于料卷继试连电卷接保破管护坏口进范处行围理整,高核或中对者资定对料值某试,些卷审异弯核常扁与高度校中固对资定图料盒纸试位,卷置编工.写况保复进护杂行层设自防备动腐与处跨装理接置,地高尤线中其弯资要曲料避半试免径卷错标调误高试高等方中,案资要,料求编试技5写、卷术重电保交要气护底设设装。备备置管4高调、动线中试电作敷资高气,设料中课并技3试资件且、术卷料中拒管试试调绝路包验卷试动敷含方技作设线案术,技槽以来术、及避管系免架统不等启必多动要项方高方案中式;资,对料为整试解套卷决启突高动然中过停语程机文中。电高因气中此课资,件料电中试力管卷高壁电中薄气资、设料接备试口进卷不行保严调护等试装问工置题作调,并试合且技理进术利行,用过要管关求线运电敷行力设高保技中护术资装。料置线试做缆卷到敷技准设术确原指灵则导活:。。在对对分于于线调差盒试动处过保,程护当中装不高置同中高电资中压料资回试料路卷试交技卷叉术调时问试,题技应,术采作是用为指金调发属试电隔人机板员一进,变行需压隔要器开在组处事在理前发;掌生同握内一图部线纸故槽资障内料时,、,强设需电备要回制进路造行须厂外同家部时出电切具源断高高习中中题资资电料料源试试,卷卷线试切缆验除敷报从设告而完与采毕相用,关高要技中进术资行资料检料试查,卷和并主检且要测了保处解护理现装。场置设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。

wincc 怎样实现数字时钟?

wincc 怎样实现数字时钟?

wincc 怎样实现数字时钟?怎样实现wincc软件gps授时。

就是,plc控制站及操作站wincc,接受gps的时间?plc通过winccc传受。

最佳答案1、首先通过你的计算机或plc建立与gps接收机联系,其后应用wincc来读取这个时间数据。

有关gps接收器提供了详细的说明及如何装配和配置gps接收,详见:/information/manage/edit/uploadfile/gi s/ch26.pdf2、wincc如何获取系统时间:wincc通道“systeminfo”:从winccv5.0sp2开始,wincc就提供了通道“systeminfo”,通过该选项就可以建立一个wincc文本变量来获取系统时间。

该wincc变量可以用于在过程画面中显示本地计算机的系统时间,或者在全局脚本中利用该变量。

但是不可以通过它来进行时间设置3、相关文档:详见连接:/cn/llisapi.dll?func=cslib. csinfo&objid=24202491&nodeid0=10805585&caller=view&lan g=zh&siteid=cseus&aktprim=0&objaction=csopen&extranet=st andard&viewreg=cn参见《如何同步操作面板与s7-200/300/400控制器间的日期和时间》的例子:/cn/llisapi.dll?func=cslib. csinfo&objid=34281179&load=treecontent&lang=zh&siteid=cs eus&aktprim=0&objaction=csview&extranet=standard&viewre g=cn。

wincc系统日期时间获取

wincc系统日期时间获取

wincc系统日期时间获取wincc系统日期时间获取系统时间的获得,有两种办法,一是建立TAG,二是使用函数获取系统时间方法一:在[Tag Management]添加新的驱动"System Info.chn",然后在新添加的[SYSTEM INFO]新建连接,这样就可以创建实际TAG了;下面新建几个TAG:名字:date,数据类型:text tag 8-bit character set,地址设定为Function:date,format:"MM-DD-YY"名字:time,数据类型:text tag 8-bit character set,地址设定为Function:Time,format:"HH:MM:SS"根据上面的方法依次建立year,mon,day,week等TAG,请分别设置对应的format内容TAG建立完成了,就可以读到系统时间了。

新建一个图形文件,分别放置几个静态文本框[static text],把TEXT属性连接到上面新建的TAG,就可以显示系统日期时间,利用WEEK还能显示今天是星期几了.方法二: 使用C脚本获得系统时间#include "apdefap.h"char*_main(char*lpszPictureName,char*lpszObjectName,char*lpszPropertyNa me){time_ttimer;struct tm*ptm;char *p;time(&timer);ptm=localtime(&timer);p=SysMalloc(9);sprintf(p,"%04d:%02d:%02d",ptm->tm_year+1900,ptm->tm_mon+1,ptm->tm_md ay);return(p);}其中//系统时间已经获得//年:ptm -> tm_year+1900//月:ptm-> tm_mon+1//日:ptm -> tm_mday//星期:ptm -> tm_wday *注意这个,tm_wday返回的是整数,必须经过转换才能用来表示星期几。

wincc系统日期时间获取

wincc系统日期时间获取
ptm=localtime(&timer);
p=SysMalloc
(9);
#34;,ptm->tm_year+1900,ptm->tm_mon+1,ptm->tm_mday);
return(p);}其中
//系统时间已经获得
//年:
ptm -> tm_year+1900
wincc
系统时间的获得,有两种办法,一是建立TAG,二是使用函数获取系统时间
方法一:
在[Tag Management]添加新的驱动"System Info.chn",然后在新添加的[SYSTEM INFO]新建连接,这样就可以创建实际TAG了;
下面新建几个TAG:
名字:
date,数据类型:
text tag 8-bit character set,地址设定为Function:
//月:
ptm-> tm_mon+1
//日:
ptm -> tm_mday
//星期:
ptm -> tm_wday *注意这个,tm_wday返回的是整数,必须经过转换才能用来表示星期几
date,format:
"MM-DD-YY"
名字:
time,数据类型:
text tag 8-bit character set,地址设定为Function:
Time,format:
"HH:
MM:
SS"
根据上面的方法依次建立year,mon,day,week等TAG,请分别设置对应的format内容
TAG建立完成了,就可以读到系统时间了。新建一个图形文件,分别放置几个静态文本框[static text],把TEXT属性连接到上面新建的TAG,就可以显示系统日期时间,利用WEEK还能显示今天是星期几了.方法二:

WINCC中使用C脚本获得操作记录方法

WINCC中使用C脚本获得操作记录方法

目录1应用范围 (3)1.1详述 (3)1.2适用的系统 (4)2硬、软件配置 (4)3解决方法 (4)附件附件文档号说明1 应用范围1.1 详述在生产中,有很多时候需要记录操作员的操作,以便进行事故分析。

WINCC本身提供了一些对象可以产生操作记录,但是在复杂的情况下是无法兼顾既获得操作记录又满足特殊操作的要求。

这时,可以使用C脚本来获得操作记录。

目前,在WINCC中以下对象可以很方便地获得操作记录:●任何对象,将Event\Direct Connection\Operator Input Message选中。

图1 通过DirectConnection获得操作记录的组态●Check Box对象和Option Group对象,将property\Operator Input Message属性选择为yes。

图2 Check Box对象和Option Group对象获得操作记录的组态●IO Field对象和Slider对象:将property\Operator Input Message属性选择为yes;或将property\Operator Activities Report属性选择为yes。

Operator Input Message和Operator Activities Report的区别是后者可以输入操作理由,确认之后操作记录的Comment中可以查看到操作理由。

图3 IO Field对象和Slider对象获得操作记录的组态以上方法可以快捷地实现获取操作记录的功能,但是在某些情况下,功能要求更复杂,通过以上方法并不能满足要求。

比如:操作员操作一个启动按钮,要求系统能够记录操作员操作信息。

在单步操作的情况下,通过Direct Connection能够很方便地实现这一功能。

但是在两步操作的情况下,需要操作员先确认,在得到确认之后操作才能生效,由于Direct Connection并没有提供操作确认功能,显然通过Direct Connection并不能满足要求。

WinCC定时器C脚本

WinCC定时器C脚本

1、定时器功能介绍2、脚本中定时器介绍3、使用脚本实现更多定时器功能3.1 整点归档3.2 WinCC 项目激活时避免脚本初次执行及延迟执行脚本1 定时器功能介绍WinCC 中定时器的使用可以使WinCC按照指定的周期或者时间点去执行任务,比如周期执行变量归档、在指定的时间点执行全局脚本或条件满足时打印报表。

WinCC 已经提供了一些简单的定时器,可以满足大部分定时功能。

但是在有些情况下,WinCC 提供的定时器不能满足我们需求,这时我们就可以通过WinCC 提供的脚本接口通过编程的方式实现定时的功能,因为脚本本身既可以直接调用WinCC其他功能,比如报表打印,也可以通过中间变量来控制其他功能的执行,比如通过置位/复位归档控制变量来触发变量记录的执行。

WinCC 提供了 C 脚本和VBS 脚本,本文主要以全局 C 脚本编程为例介绍定时功能的实现。

2 脚本中定时器介绍既然在全局脚本中可以编程控制其他功能的执行,那么首先看看全局脚本的触发:图1 脚本触发器分类如图1所示:脚本触发器分为使用定时器和使用变量,定时器又分为周期执行和非周期执行一次,比如每分钟执行一次脚本属于周期执行,指定2012年10月1日执行一次属于非周期执行。

使用变量触发脚本,即在变量发生变化时,脚本就执行一次,而变量的采集可以根据指定周期循环采集,或者根据变化采集,根据变化实际是1秒钟采集变量一次。

3使用脚本实现更多定时器功能利用脚本自身的定时器,可以通过在脚本中编程的方式实现更多其它定时功能。

3.1整点归档WinCC提供了变量归档,变量归档分为周期归档和非周期归档,不管是周期归档或非周期的归档,都又可以通过一些变量或脚本返回值来控制归档,比如:整点归档。

下面的设置结合WinCC脚本,实现了在整点开始归档,归档五分种后停止归档,即每个小时仅归档前五分钟的数据。

软件环境:Windows 7 Professional Service Pack1 , WinCC V7.0 SP3归档名称:ProcessValueArchive归档变量:NewTag归档周期:1 分钟归档控制变量 startarchiveC脚本触发周期:10秒脚本代码:#include"apdefap.h"int gscAction( void ){#pragma option(mbcs)#pragma code ("kernel32.dll");void GetLocalTime (SYSTEMTIME* lpst);#pragma code();SYSTEMTIME time;int t1;GetLocalTime(&time);t1=time.wMinute;if(t1==00){SetTagBit("startarchive",1); }if(t1==05){SetTagBit("startarchive",0); }return0;}归档设置如图2:图2 归档设置同理,在以上脚本的基础上做修改,可以实现在某个指定的时间点打印报表,只要在满足触发条件时调用下列函数:RPTJobPrint("Myprintjob");Myprintjob为事先创建好的打印作业。

wincc常用C脚本功能

wincc常用C脚本功能

.用户注销:#pragma code ("")#include ""#pragma code()PWRTLogout();2.用户登录:#pragma code ("")#include ""#pragma code()PWRTLogin('c');3.关闭项目并退出wincc:ExitWinCC ();4.退出运行到wincc资源管理器:DeactivateRTProject ();按钮变三种颜色#include ""long _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName){#pragma option(mbcs)if(GetTagWord("TX/ZSH001")==1)return 0x0000ff00;elseif(GetTagWord("TX/ZSL001")==1)return 0x000000ff;elsereturn 0x00c0c0c0;}一个调用按钮变色#include ""long _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName){#pragma option(mbcs)if(GetTagWord("NewTag")==0)return 0x0000ff00;elsereturn 0x00ffffff;}5.结束监控并关闭计算机(会弹出确认对话框)HWND hWnd = NULL;击事件弹出对话框,通过点击弹出对话框的确定和取消按钮实现对变量的置位或取消:int r;r=MessageBox(NULL, "YES为开,NO为关", "确定开命令:",MB_YESNO |MB_SYSTEMMODAL);if (r==IDYES)SetTagBit("TAGNAME",TRUE);elseSetTagBit("TAGNAME",FALSE);7.开显示关显示:(要在内部变量中建立三个二进制变量COLSE_DISPLAY、DISPLAY_NO和DISPLAY_COMMENT)阀确认:BOOL a;a=GetTagBit("30T制水启动"); WinCC运行画面最小化HWND WinCCHwnd;WinCCHwnd=FindWindow(NULL,"WinCC-Runtime - "); 示或不显示(其中hiddVtext为内部的二进制变量)if(GetTagBit("hiddVtext")==0) 开编辑画面的脚本#pragma option(mbcs)#ifdef RUN_ON_WEBNAVIGATOR#elseHWND hExplorerWindow= NULL;HWND hRuntimeWindow= NULL;hExplorerWindow=FindWindow("WinCCExplorerFrameWndClass",NULL);hRuntimeWindow=FindWindow("PDLRTisAliveAndWaitsForYou",NULL);if(hExplorerWindow){ShowWindow(hExplorerWindow, SW_MINIMIZE); 何在WINCC 中制作一个保持型按钮方法1:if( GetTagBit("M10") )SetTagBit("M10",0);elseSetTagBit("M10",1);方法2:SetTagBit("",(SHORT)!GetTagBit(""));求反指令,如果为1点击变为0,如果为0点击变为1方法3:或者做两个按钮,按钮一:显示,直接连接,是--不显示,否--显示。

wincc时间显示函数

wincc时间显示函数

wincc时间显示函数一、方法一1.设置一个或多个变量,类型为内存字符串或者是一个连接PLC 的外部变量的字符串2.全局脚本:C脚本#pragma code("kernel32.dll"); 定义系统链接文件GetLocalTimes(SYSTEMTIME*lpst);获取系统时间变量#pragma code();SYSTEMTIME time;GetLocalTime(&time);SetTagWord("Varname1",time.wYear);年SetTagWord("Varname2",time.wMonth);月SetTagWord("Varname3",time.wDayOfWeek);星期SetTagWord("Varname4",time.wDay);天SetTagWord("Varname5",time.wHour);小时SetTagWord("Varname6",time.wMinute);分钟SetTagWord("Varname7",time.wSecond);秒SetTagWord("Varname8",time.wMilliseconds);毫秒3.在输入输出域关联变量,记住要修改显示类型为字符串如果要在一个中显示,则把Varname1-Varname8通过字符串连接即可方法二:char* temp=(char*)SysMalloc(26);time_t *p=(time_t*)SysMalloc(sizeof(time_t)),CT;CT=time(p);strcpy(temp,ctime(&CT));*(temp+24)='\0';return temp;方法三:利用控件中的wincc digital/analog clock contol。

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