数据块DB在程序中不可见的原因分析-S300/S1500

已锁定

1Shadow1

  • 帖子

    155
  • 精华

    6
  • 被关注

    72

论坛等级:侠士

注册时间:2013-12-11

钻石 钻石 如何晋级?

数据块DB在程序中不可见的原因分析-S300/S1500

2571

10

2024-07-25 11:12:48

有没有遇到过明明数据块里面的数据被引用了,但是就是找不到这个数据块,但是程序运行也没有报错??

不用多想,这大概是因为数据块是被程序创建的;在300/400 PLC 中使用的是SFC22;在1500中是"CREATE_DB".

为什么我要搞这个指令,因为我也被坑到了;老外几十年的程序还在使用,排查故障时候发现的;

说到这里顺便介绍一下这个指令的使用方法:

先说在300PLC中的使用,介绍很简练,以下来自官方帮助文档.


LOW LIMIT: 是最小的DB;

UP_LIMIT :最大的DB;  这两个数字可以一样,这样只会创建一个DB,不然就是多个DB;

COUNT:每个DB 里面会有多少个BYTES;

RET-VAL :返回是否创建成功的结果;

DB_NUMBER: 返回创建的DB 号码:


文档前面是一些描述和要求;




大体意思是说:这个DB 没有预设值,一开始里面的值是随机的;这意思是提醒要初始化一下;根据参数分配DB 大小,这个大小得是偶数;要是打算创建一个指定号码的DB,把最大和最小值设成一样大小的;不能设成已经存在DB的号码;

      CALL  SFC   22

       LOW_LIMIT:=W#16#A

       UP_LIMIT :=W#16#A

       COUNT    :=W#16#200

       RET_VAL  :=#Pa_Mig_ret_val

       DB_NUMBER:=#db_number

1500 PLC 对这个指令进行了扩展:



最明显的就是增加了属性接口,利用前四个bit对产生的DB 的细节进行了描述,比如是不是只存在装载区,是不是写保护,是不是保持;另外对产生的DB的号码上下限制做了限制,最小DB 从60000开始;

下面是我做的一个基本测试,可以看到可以正常生成,但是数据只有在线才能看到;




因为不是在TIA 中直接创建的:













数据块DB在程序中不可见的原因分析-S300/S1500 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54618条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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