恭喜,你发布的帖子
发布于 2020-12-29 20:42:18
10楼
可以不用讨论
2.数据视图中填写实际值,填写了就是新值,没有填写默认就是初始值,并且每次下载都会起作用。
当你人为或者自动写入新值,每次下载前,首先作为新的初始值,已经被定义了,你可以理解从从新制作了一个DB_NEW,原来的为DB_OLD (只是这个new 是在OLD里写入了新值),但实际上是一个新的DB块了,只是两者数据结构一致。
3. 监测时会得到另一个实际值,这个值在WINCC中由用户设定的,与数据视图中填写的实际值不一致。
在运行后,会计算或者逻辑处理过程后,会产生新值,这个是必然的,那怕这个值不变化 也是新的值,因为是你现在此刻在运行需要的数据,
你的目的,是如果我要下载DB块,希望下载新值,而不是初始化值,甚至不是前一刻的值。因为你认为目前的这个值是你需要的,
那就存在问题,数据实际值是不停的刷新的,只要PLC 在运行,哪怕现场部分甚至全部设备都没有工作,也是有可能变化的,例如数据错误处理,时间诊断,等等,都是不断的在变化,你怎么能保存某刻的值,来当做后续需要的值,
只能保存一个相对变化小的值(或者非常重要的值) ,当系统PLC从新开机后者现场设备从新运行时,将这些数值刷入,例如,在OB100 上电时刷入,目的,保证你的工作实效性,而不是数据的排他性,因为对系统来讲,永远没有新值,都是过程值,
其实道理很简单,就像我电脑PC装好软件,当出现问题,我GHOST到我需要的那个点即可。
同理,例如 当生产5个零件 每个分5步,但当生产到第3个的第4步开始时,突然断电或者出现故障,你只需要恢复第3个第3步结束时的状态,然后初始化第4步的条件即可。
AA.当然,你可以可以将共享DB1的值 连续赋值到一个背景数据DB2里,想当于 COPY DB1 TO DB2 , 然后当满足你的中断调节(即后面的数据变化对你不在存在意义),DB2不在被调用,那么退出调用的时刻起,DB2可以被理解为最后的实时数据,当需要下载时,COPY DB2 TO DB1 刷新一下,就行,
因为我不清楚你的工艺要求,但 我一般恢复数据就这样做的 AA 过程。
请填写推广理由:
分享
只看
楼主