操作员记录问题

WINCC6.0版本,如何来记录操不同的作员操作记录,比如甲操作员在某年某月某日某时某分进入WINCC运行系统,在某年某月某日某时某分开某某设备,又在某年某月某日某时某分关设备,这些都要记录下来;另一个操作员换班进入WINCC系统等操作也要记录下来,这个功能怎么实现啊?有没有具体的例子?麻烦高手帮帮忙啊,正在做工程,急用啊。查询过以前类似问题的回答,感觉都很笼统,有没有具体点的回答和例子说明?谢谢
 邮箱:yxh-0818@qq.com

最佳答案

以下可做参考:

 如何实现用户登陆日志(wincc中用c脚本实现?)( 柳树成林原创)
 用户登陆日志:(包括用户的登陆退出信息,以便查询在什么时间段是哪个用户在使用这个监控软件)

 #i nclude "apdefap.h"

 int gscAction( void )
 {
 #pragma code("kernel32.dll")
 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;

 //读取系统时间,并且复制给变量a,b,c,d,e,f
 GetLocalTime(&sysTime);

 a=sysTime.wHour; 
 b=sysTime.wMinute; 
 c=sysTime.wSecond; 
 f=sysTime.wYear; 
 e=sysTime.wMonth; 
 d=sysTime.wDay;

 //得到当前用户名称
 username = GetTagChar("@CurrentUser");
 fp= fopen("c:\\wincclog.txt", "a+"); 
 if(strcmp(username, preuser)!=0)    //如果当前用户名称和前一个用户名不同
 {
        if((strcmp(username, "")  != 0)&&(strcmp(preuser, "") == 0))     //如果当前用户名称不空同时前一个用户名为空
   
        { 
                 sprintf(buf, "用户:%s\t登陆时间是:\t %d-%d-%d,%d-%d-%d\n", username,a,b,c,d,e,f);
                 fputs(buf, fp);
         }
        else
        { 
                if((strcmp(username, "") == 0)&&(strcmp(preuser, "")  != 0))     //如果当前用户名称为空同时前一个用户名不空
   
               { 
                          sprintf(buf, "用户:%s\t退出时间是:\t %d-%d-%d,%d-%d-%d\n", preuser,a,b,c,d,e,f);
                          fputs(buf, fp);
                }

                else
               { 
                          sprintf(buf, "用户:%s\t退出时间是:\t %d-%d-%d,%d-%d-%d\n", preuser,a,b,c,d,e,f);
                          fputs(buf, fp);
                          sprintf(buf, "用户:%s\t登陆时间是:\t %d-%d-%d,%d-%d-%d\n", username,a,b,c,d,e,f);
                          fputs(buf, fp);
                }
         }
 }

 strcpy(preuser, username);
 fclose(fp);

 return 0;
 }
 

提问者对于答案的评价:
探索中

专家置评

可参考SG9所提供的WinCC关于操作员操作消息的标准做法

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc272506.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2019年6月11日
下一篇 2019年6月11日

相关推荐

  • WINCC flexible smart 软件版本

    公司用的触摸屏型号为是Smart 700 IE V3,我有屏幕程序(是供应商给我的),我自己从网上下载了wincc软件(版本号是V3 SP1…

    2021年7月5日
  • 西门子的Pack&Go功能下载程序时,发生通讯错误:通讯中断

    西门子的Pack&Go功能下载程序时,发生通讯错误,下面有截图。谢谢 最佳答案 没有看到截图,有安装donet 么???· 参见对应西门子软件帮助,搜索…

    SIMATIC WinCC 2021年7月5日
  • wincc鼠标指针的设置

    鼠标指针移到已组态图形(从库里选的)上时指针不改变,就是没有那个绿色的闪电符号,请问该怎么设置?这样都看不出来哪些是可以操作哪些不能操作……非常着急 最佳答案 标准控件只要组态了事…

    SIMATIC WinCC 2019年6月11日
  • wincc7.0与300时钟同步

    我在全局脚本中通过全局脚本将计算机的时间读上来写入DB1,数据类型为date and time,监控时间是和电脑时间一直的,然后再OB1中掉系统系统功能SFC0…

    SIMATIC WinCC 2017年12月9日
  • Wincc7.3安装SQL2008没通过

    Wincc7.3安装需要多长世时间,SQL装了得2个小时了,还没通过 最佳答案 如果等了一两个小时还是没反应的话,估计你就需要重做系统了电脑上有没有安全管家 杀毒软件之类…

    SIMATIC WinCC 2017年6月5日
  • wincc数据库表格问题

    在wincc V7.3自带的sql server数据库内自己手动建立的表,是保存在项目文件夹下吗?可以随着项目复制器拷贝到别的计算机吗? 最佳答案 手动建立的表…

    SIMATIC WinCC 2021年7月5日
  • wincc5.1新建外部二进制变量

    我在STEP7(5.2版本)符号表中把的一个点位,上的名称更改为1504M3_RDY,地址是I65.0。用梯形图已经把程序做好。在WINCC中,把以前改点位的外部二进制变量删掉,新…

    SIMATIC WinCC 2019年6月10日
  • wincc如何直接读取归档数据在画面显示

    怎么能直接读取归档的数据在画面显示,或者写入到变量中,有没有函数可以调用,谢谢了 问题补充:不想增加变量了,能不能在输入输出域的输出用脚本写一下,谁能帮我写一段代码,谢谢了 最佳答…

    2019年6月11日
  • wincc 支持WINDOWS SCRIPTING吗?

    TIA PORTAL V12 WINCC 支持WINDOWS SCRIPTING脚本吗?若支持,提示一下在什么地方可以找到参考资料…

    SIMATIC WinCC 2017年5月29日
  • SAP的ERP系统如何与WINCC通讯?

    项目需要采集现场SAP ERP系统的计划数据,请问WINCC如何与SAP的ERP系统实现通讯呢?WINCC V 6.2购买时是否一并带有SQL和安装授…

    SIMATIC WinCC 2019年6月11日