用户归档数据重复问题

已锁定

白菜费大幅

  • 帖子

    177
  • 精华

    3
  • 被关注

    25

论坛等级:侠士

注册时间:2013-09-09

黄金 黄金 如何晋级?

用户归档数据重复问题

2219

3

2023-06-12 11:17:23

有几个项目用了wincc7.3用户归档记录投料数据

1、使用PLC变量job=6触发wincc用户归档记录数据,用户归档job=PLC变量job,写入成功后,wincc会复位job=0,也就是复位PLC变量job=0,但是有时候会记录两条相同的数据。

2、怀疑是wincc与PLC变量之间不同问题,后改成变量触发wincc vb脚本,新建wincc内部变量job,用户归档触发job=内部变量job,脚本触发周期1秒或2秒,判定PLC变量job是否为6,是则触发内部变量job=6,触发后plc变量job复位,这样写还是会时不时的记录两条相同的数据。

3、后来再改加了一个wincc内部变量Lock,脚本如下。

Dim objtag,Lock
Set objtag = HMIRuntime.Tags("UserData_Job")
Set Lock = HMIRuntime.Tags("Lock")
objtag.Read
Lock.Read
If objtag.Value=6 And Lock.Value=0 Then
HMIRuntime.Tags("ID").Write -1
HMIRuntime.Tags("Job").Write 6
HMIRuntime.Tags("UserData_Job").Write 0
HMIRuntime.Tags("Lock").Write 1
End If
If objtag.Value=0 And Lock.Value=1 Then
HMIRuntime.Tags("Lock").Write 0
End If

写入用户归档一次后,锁住用户归档,待PLC变量"UserData_Job"清零后解锁Lock,但发现数据是记录了,但是PLC变量"UserData_Job"不为0,有时候一直是6。这样Lock就复位不了,第二次想写入数据就写不了。

4、后又改脚本如下:

Dim objtag,Lock,Job
Set objtag = HMIRuntime.Tags("UserData_Job")
Set Lock = HMIRuntime.Tags("Lock")
objtag.Read
Lock.Read

Set Job= HMIRuntime.Tags("Job")

Job.Read

If objtag.Value=6 And Lock.Value=0 Then
HMIRuntime.Tags("ID").Write -1
HMIRuntime.Tags("Job").Write 6
HMIRuntime.Tags("UserData_Job").Write 0
HMIRuntime.Tags("Lock").Write 1
End If
If Job.Value=0 And Lock.Value=1 Then
HMIRuntime.Tags("Lock").Write 0

HMIRuntime.Tags("UserData_Job").Write 0

End If

用wincc内部变量Job做判定复位Lock和清零"UserData_Job"


总感觉不对劲,没找到PLC变量"UserData_Job"不清零的原因,只是增加了进一步复位PLC变量"UserData_Job"。一时间也不知道怎么办才好。





目前PLC程序如图所示,ID=-1和Job=6触发了记录,Job=-1的话会有另外的报警和复位,大多数情况下都是触发后用户归档都能正常的记录数据,偶尔未知原因触发了重复。块是FB,#投料启停状态 是input,#M0和#M1都是Static

用户归档数据重复问题 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC WinCC / Panel

共有32575条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。