数据块生成source的问题

1.数据块在generate source 后在PLC restart 后可以有一个数值的保留并不会清零,该值称为什么呢?和初始值有什么区别
2.  DB块source文件中STRUCT  下直接赋值是否为赋初始值呢?BEGIN 下赋值影响什么呢?
3.如何安全地写入以上两种值,generate source 以后如果DB里的数值改变了想覆盖以前的source,我现在是通过将online 的DB复制后覆盖offline的DB,然后重新generate source 覆盖之前source,这么做正确吗,同样问下初始值的正确写入方法
感谢老师们指教!

问题补充:
感谢您的回答!关于第一个问题我还是有疑问,一个DB如果不去generate source的话,如果CPU重启数据是会清零的吧?如果generate source 或者 写入其他初始值在CPU重启后DB就会有保存的值,那么如果一个DB的source 中STRUCT下和BEGIN下都有赋值的话,在CPU 重启后DB会采用哪个值呢?

最佳答案

1、DB块本身具有保存功能,该值是实际值,就是执行程序后的数值。数据块的初始值仅对于一个数据块的"离线"组态有意义。如果用户离线创建了一个新的数据块或者在离线组态的过程中在数据块里创建了一个新的变量,如果用户不做任何修改,新建的变量会使用系统默认值作为初始值,如果用户为此变量指定了其它数值作为初始值,数据块将会多占用相应变量长度的Load  memory。在此后的操作中(数据块的上传及下载),只要数据块的结构,变量的数据类型没有发生改变,变量的初始值都没有实际作用,只起到变量类型定义的作用。
2、STRUCT下直接赋值是赋初始值,BEGIN 下赋值是赋实际值。
3、是这样的。

提问者对于答案的评价:
感谢您的回答

专家置评

已阅,最佳答案正确。

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc233936.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2018年12月1日 下午2:06
下一篇 2018年12月1日 下午2:06

相关推荐