在S7-300中怎样生成数据块的数据结构
最佳答案
针对S7-300/400来说,DB是它的一个存储区。DB块有二种,一种是背景数据库,这种DB块是在调用功能块的时候自动生成的,称为instance DB.另外一种是用户自己定义的DB块,称为shared DB.如果CPU没有足够的内部存储位,那我们可以使用shared DB块来存储,这是一个全局的数据块。而instance DB块中的数据则是在特殊的功能块中有效。
若该DB块是背景数据块(Instance),即被FB,SFB所调用的,那么系统会自动对其分配相应的空间。如果你在其它地方不再调用该数据块了,你就不需要再在DB块中定义数据;但这并不是说不允许对该DB块进行编辑,而是为了不导致编程上的混乱,强烈建议不要这样使用!
对于需要一般的共享数据块(Shared DB),在定义了数据块后,就必须根据你编程的要求,在该DB中开辟相应的数据空间。例如你需要读/写 DB10中存储100个byte的数据,那么打开,DB10,可以这样定义一个100byte的空间:
变量名 数组定义
VAR1 ARRAY[1..100]
BYTE
这样就开辟了一个100byte空间的数据区,供程序使用了。如果不写入这些数据的话,那么在程序中调用该DB块会发生错误。
对于CPU来说,数据块的个数是有限制的,300的DB块一般最多为511个,最大空间为16K;400 的DB块一般最多为512个,最大空间为64K;也就是说DB块的使用受这两个条件的限制。当然通过存储卡,也可以实现扩展。
提问者对于答案的评价:
您的回答比较适合我,非常感谢
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc316891.html