操作员记录问题

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 V3编译时报警内部错误

    内部错误(详情:路径中具有非法字符) 问题补充:更改项目保存路径为纯英文后还是出现这个错误 最佳答案 新建项目尝试。如果还是出现上述错误,建议检查软件安装情况。smart&nbsp…

    SIMATIC WinCC 2021年7月5日
  • wincc 的变量记录问题

    当点击wincc的变量记录,双击代开的时候出现了提示框,标题是TLgCs,内容是“不能与数据库连接”    点击确定,又出来个提示框,标题还…

    SIMATIC WinCC 2019年6月11日
  • wincc 7.0的xy趋势图如何存储?

    wincc 7.0里利用Fountion Trend Control控件做的xy趋势图怎么能够实现长期存储和实时的打印? 最佳答案 变量归档中长期归档…

    SIMATIC WinCC 2017年12月7日
  • wincc变量如何导到另外一个wincc项目中

    现在要把一个wincc项目的变量弄到另外一个wincc项目里面去,怎么最方便?不会一个一个建吧!! 最佳答案 两种方法:方法1 通过wincc-tools下有个软件叫ta…

    SIMATIC WinCC 2019年6月11日
  • 700IE 触摸屏时间问题

    700IE触摸屏 为什么时间不能跟随系统时间。需要怎么舍设定吗?每次开机都显示2004年的。求解 最佳答案 下述资料是否有帮助:、见《如何同步操作面板与 S7-…

    SIMATIC WinCC 2017年11月23日
  • 关于WINCC报表

    现在要做个报表,报表分两部分,一部分是采集累积量,这个我下位机做好了,上位机直接归档就行了,另一部分是在生产的某个工段中每半个小时记录一下现场的监测点的实际值,我想问下这两部分能不…

    SIMATIC WinCC 2018年3月6日
  • wincc怎么做变量才能读取上位机时间

    我现在用wincc做的上位机,连接好几个PLC,有好几个时间需要交班,不能读取PLC的时间,怕时间不吻合,现在想从wincc内部做时间变量来读取电脑时间。 问题补充:我就是想在wi…

    SIMATIC WinCC 2020年11月1日
  • WINCC上出现Report Alarm Log

    WINCC在运行的时候会出现一个任务“Report  Alarm  Log”,我在两个项目上都遇到了这个情况,只好不断地从“任务管理器”上把…

    SIMATIC WinCC 2019年6月11日
  • wincc v6.0 OPC

    请教实现WINCC通过PC ACCESS软件和S7200连接,在WINCC里面如何设置组态? 最佳答案 基本上是这样的过程,首先你要把PC ACCESS服务器这…

    SIMATIC WinCC 2019年6月11日
  • 关于C脚本的问题

    我是新手,Alarm是我定义的一个内部变量,我在按纽的左键写语句:if (Alarm==1) Alarm=0;提示alarm未定义  最佳答案 按照你…

    SIMATIC WinCC 2019年6月11日