S7300-400的程序时数据块DB可以不要吗?

西门子plc 发布于 8个月前 分类:S7-300/400

编S7300-400的程序时数据块DB可以不要吗?插入DB块后需要写入东西吗?还是它自动生成数据?要是能自动生成数据为何还要自已插入DB数据块?要插入多少块DB块为妙.....?

3个回复

  • plc学习
    plc学习

    插入数据块后是必须要“写入东西的”,也就是说你必须定义数据块所占的空间;例如你需要一个100byte的空间,那么可以这样定义:
    变量名     数组定义
    VAR1          ARRAY[1..100]
    BYTE

    这样就开辟了一个100byte空间的数据区,供程序使用了。如果不写入这些数据的话,那么在程序中调用该DB块会发生错误;但是若该数据块是背景数据块(Instance),即与FB,SFB对应的,那么系统会自动对其分配相应的空间。

    因此数据块的个数是有限制的,300的DB块一般最多为511个,最大空间为16K;400 的DB块一般最多为512个,最大空间为64K;也就是说DB块的使用受这两个条件的限制。
    至于插入的DB块个数,就根据的你的要求了。^_^

  • plc电工爱好者
    plc电工爱好者

    如果在程序中没有使用FB,而CPU的中间变量又够用的话,那么是可以不使用DB的。
    DB块,如果是通过其他办法生成的话,就不需要自己生成数据了!如果是共享DB,就需要自己添加数据了,不然,数据块就没有意义了!
    插入DB快是有数量限制的,并不是可以无限添加的,不同的CPU的限制也不尽相同,够用就是最好的。

  • plc电工爱好者
    plc电工爱好者

    DB数据快在与其他设备通讯过程中使用是非常有用的,
    如果能使用M中间变量就尽量不要使用DB,因为CPU处理DB数据的速度没有处理M的速度快,会影响处理精度。
    还有就是CPU处理DB时是先打开数据快再处理DBX,DBB,DBW等,因此打开一个DB中的变量,要经过两步,所以CPU处理速度会降低一些,这是我个人的看法,请各位指教。如果在一个FC或者FB或者要使用一个DB中的变量,尽量在开始时使用一条指令OPN[#DB_NUM],以下使用时就不会降低处理速度了

联系我们

在线咨询:点击这里给我发消息

邮件:344133793@qq.com<仅限广告合作>

工作时间:周一至周五,9:30-18:30,节假日休息