操作员记录问题

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日 上午9:12
下一篇 2019年6月11日 上午9:12

相关推荐

  • WinCC脚本问题

    在WinCC中,我想读取一个文本文件的内容,然后加到画面上的组合框里面。 我现在能在C脚本中读取文件,也能在VB里面往组合框里添加选项,但是还是没有办法实现以上功能,想问…

    SIMATIC WinCC 2019年6月11日
  • wincc中插入外面的截图

    我想在wincc中插入外面的截图作为主页行吗?怎么样能够实现?谢谢! 最佳答案 WinCC支持插入图片。先将你的截图保存为*.BMP,然后打开画面编辑器,选择对象选项板->智…

    SIMATIC WinCC 2019年6月11日
  • S7-400H与WIncc通讯时断时续

    我现场使用普通网卡,与S7-400H系统(CP443)连接(通过工业以太网)。现场运行过程中,出现CP443通讯口时断时续的问题,即通讯灯一直正常,突然一段时间CP443就不通讯了…

    SIMATIC WinCC 2018年12月14日
  • WinCC打开项目时 请求数据存储接口失败

    版本是WinCC 7.0 sp3 界面如图所示:用项目复制器复制项目 复制的文件夹也是空的复制别的项目是可以的。请问这个项目该怎么恢复呀?谢…

    2020年11月1日
  • wincc数据格式是*号

    wincc通道格式是32位浮点数,通道能监测到值,界面数据格式是十进制,输出格式99999.99,数据显示几十可以正常数值,5位数就不行了,显示*号,想问下原因 问题补充:输出格式…

    2021年7月5日
  • 如何实现WINCC6.2 报表功能

    为一个水泥厂实现一个报表的功能,客户要求实现班报,日报,月报功能,而且每个变量最后还要求累计。求具体实现的方法,本人对WINCC6.2 报表的了解为0,讲的越详细越好,因…

    SIMATIC WinCC 2019年6月11日
  • wincc c脚本动态改变棒图控件报警AH WH等绑定变量

    wincc c脚本动态改变棒图控件报警AH WH等绑定变量 我发现用setlink函数可以改变棒图高度(过程驱动连接)绑定的变量,但对报警限值变量的改…

    SIMATIC WinCC 2019年6月11日
  • 错误提示123

    程序编译提示个错误,请大家看下,见图片,谢谢 图片说明:    最佳答案 图形太大了 提问者对于答案的评价:OK,已经解决。谢了

    2021年7月5日
  • WinCC中的C动作

    请各位大侠帮忙看看我的代码有什么问题: int x; BOOL s; s=GetTagBit("lx");&n…

    SIMATIC WinCC 2019年6月11日
  • 对wincc function trend control显示趋势曲线的一些疑问

    想要将内部变量DB_VAR1至DB_VAR100中的数据在wincc function trend control中显示为一条曲线(内部变量部分数据如…

    2021年7月5日