plc&inverter
S7-300的数据块必须定义或生成才能使用吗?
第一个问题:没有生成一个共享数据块DB10,程序中能在DB10中存储或调用数据吗?
第二个问题:生成了一个共享数据块DB1,但只定义到DBB50,那么DBB51以后的能在程序中使用吗?
再补充一个问题,教程或教材里未限制背景数据块的写入,但论坛上却说,背景数据块不能随便写入,否则会产生错误。那么我要在触摸屏上设定数据,只能将功能块里的相应的数据使用共享数据块的数据了,而不能用其静态变量了?这也等于变相限制了功能块的使用了?
yuanle
问题1:没有生成数据块,将不能使用数据块地址。
问题2:先定义后使用,使用未定义的地址将发生写入长度错误。
问题3:论坛上说不能随便写入不代表不能写入,只是提醒用户承担写入非恰当数据而导致的潜在错误而已。
西门子工控技术
可以通过系统功能块在程序运行时产生,SFC20 CreateDB,一般在OB100中调用,即系统启动时就产生DB块。
背景块一般不允许编辑,这样会使相关的程序块无法运行,但你要改变其中数据数值那肯定是可以的。
谢谢楼上各位指点。尤其是“yuanle”解答的简洁明了。
其实共享数据块和背景数据块并没有本质区别!任何写入都应保持严谨的态度。读出当然没有任何问题。