小弟刚接触wincc,最近做项目对方提出了一个用户交互文档,大概要求就是比如说PLC.DB1000中有一些BOOL型的变量,是关于设备的启停功能,当我对这些2进制变量进行置位时,需要向PLC的另外一个DB区中写入对应记录,内容如下:
人数 数据 数据类型 说明
1 Timestamp
时间戳 DATE_AND_TIME 以本地时间表示的用户交互事件的时间戳。
Machine name
机器名 CHAR[32] 触发命令的计算机名或客户端系统名(如WinCC客户端计算机名)
如果命令是由X的按钮触发的,那么机器名将设置为“X”
Username
用户名 CHAR [64] 主动触发事件的用户的名称。如果事件由X的按钮触发,系统不知道用户是谁,那么用户名称被设为“X(UNKNOWN)”
Event
事件 CHAR [32] 指定已触发的用户交互事件的标识符:
● “登录”如果用户已登录到可视化系统
● “注销”如果用户已注销可视化系统
● “SYSON*x” 如果用户已打开系统(*表示已被打开的功能组单元ID,如果整个系统被打开,比如,由PLC控制的所有功能组,那么事件设为”SYSON”)
● “SYSOFF*x” 如果用户已关闭系统(*表示被关闭的功能组单元ID,如果整个系统被关闭,比如,由PLC控制的所有功能组,那么事件设为”SYSOFF”)
● “START*x” 如果用户已启动系统(*表示启动的功能组单元ID,如果整个系统被启动,比如,由PLC控制的所有功能组,那么事件设为”START”)
● “STOP*x” 如果用户已停止系统(*表示停止的功能组单元ID,如果整个系统被停止,比如,由PLC控制的所有功能组,那么事件设为”STOP”)
● “RESETFAULTS” 如果用户复位了系统故障
Reset data
重置数据 BYTE[1] 数据缓存是由SCC设置的。有效值有两个:
? “0”: PLC可以在该部分的域写入新用户交互信息。
? “1”: 除“重置数据”域以外,该部分其他所有的域都必须通过PLC重置为二进位的0。一旦数据被重置后,SCC将把“重置数据”的缓存设为0。
对方要求就是一旦DB1000有改变,则向该DB区写入以上这些信息,给的接口如下:
WinCC_Event结构
+0.0 TimeStamp DATE_AND_TIME DT#90-1-1-0:0:0.000
+8.0 MachineName ARRAY[0..31]
*1.0 CHAR
+40.0 UserName ARRAY[0..63]
*1.0 CHAR
+104.0 Event ARRAY[0..31]
*1.0 CHAR
+136.0 ResetData BYTE[1] B#16#0
=138.0
对方意思是总共有若干个这样的部分,写完一个之后再写一个,Resetdata是负责这个的~,求解这样的问题怎么解决~如果能详细解释下,小弟感激不尽~PLC为 S-400,wincc为6.2版本~另外就是date and time这个类型我也没找到~麻烦了~