故事作者:手机用户20180604694547

最近创作

看看TA的故事

【跨新年】博图里一个让人又爱又恨的指令

已锁定

手机用户20180604694547

  • 帖子

    996
  • 精华

    7
  • 被关注

    29

论坛等级:奇侠

注册时间:2018-06-04

钻石 钻石 如何晋级?

【跨新年】博图里一个让人又爱又恨的指令

596

8

2023-01-05 09:33:38

  之前两个项目CPU采用的是1511,但应为我使用了UDT并且设备比较多需要保存的数据也很多,如果不采用UDT可能1511的保持区应该是够用的,但为了偷懒我还是使用了UDT,所以保持区就超了,于是我就去查指令看看有没有可以解决这个问题的指令,结果还真给我找到了。这指令就是WRIT_DBL和READ_DBL,这两个指令一个是把DB里的数据写入内存卡中,一个是把内存卡中的数据读取到DB块内。

   使用时需要单独创建一个或多个DB块用于储存数据,这个DB块需要修改一下属性,在属性选项栏里把“仅储存在装载内存中”勾选,还有就是优化块这个可以根据需求勾选,如果DB块是一对一的这个可以用优化块,如果是一对多则需要用非优化。

    我因为是使用UDT我把相同数据都放在一个DB块中所以我的项目中的需要保存的数据的DB块并不多只有四五个,所以我选择用了一对一的方法,上位机使用的是wincc V7.5 SP2可以as上载数据所以我所有的DB都是优化的数据块。

      程序写的是每一分钟调用一次WRIT_DBL把数据写到储存卡中,CPU刚启动的时候调用一次WRIT_DBL把储存卡内的数据读取到程序DB块内

      这样程序看起来设计没什么问题,唯一有点问题的地方是每次在线时用于存储的DB永远是不一致的,这个可以忽略不记。

        但这个还有一个非常致命的问题WRIT_DBL这个指令会损伤储存卡的寿命,储存卡是有读写寿命的,使用这个指令会周期性的对储存卡进行读写操作,周期长还好,如果周期短了可能会导致储存卡损坏。

        前年的那个项目在去年的时候出现一次储存卡损坏的情况,当时也没在意就直接换了一张。直到今年再看这个指令的帮助文档,发现有一行字就是说周期性的使用这个指令会损失存储卡寿命。

        后来我把程序修改的了一下把写入周期改成了24小时加手动触发。每天执行一次或者修改参数后手动去保存一次。这样可以大大延长存储卡的寿命也不需要跟换CPU了。



        

【跨新年】博图里一个让人又爱又恨的指令 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

网友专栏

共有3363条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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