欢迎来到西门子工业支持中心网站!
欢迎来到西门子工业支持中心网站!
悬赏:10分 | 解决时间:2013-02-21 22:56
产品版区:
SIMATIC S7-300(F)/S7-400(F/H/FH)
小.苹.果
小.苹.果 - 助理工程师  第8级
DB中可以兴建一个数组,但是我怎么读取数组内的每一个值呢?应该怎么给数组的每一个元素赋值呢?
最佳答案
回答者:
阿鸣
回答时间:2013-02-20 21:46
提问者对于答案的评价:
谢谢,也就是说数组里面的第一个元素到最后一个元素 就是 DB1中 DB1.DBB0到DB1.DB99这100数据呢?!应该是这样的吧?!
最佳答案作者回复:
DB1中 DB1.DBB0到DB1.DB99这100数据呢?
这是100个字节(8位)。如果是DB1.DBW0到DB1.DBW98则为50个字(16位),如果是DB1.DBD0到DB1.DBD96则为25个双字(32位).。
还可以使用符号寻址的方式赋值。
如
opn db1
l 1
t #from_1200[1]
要付给多少就在中括号内写几
1.按照你建立的DB块,该DB中建立了100个BYTE
要访问其中的一个BYTE,找到对应的地址就可以了
在程序编辑器中可以这么写
OPN DB2
L DBB0 //取出DB2中的第一个字节
L DBB1 //取出DB2中的第二个字节
按照对应的地址就可以读取每一个元素了
2.对每一个元素赋值,可以采用阿鸣老师给你的方法就可以了。
在DB中进入VIEW------DATA VIEW中进行赋值,选择Edit-->Initialize Data Block初始化DB块。将DB块恢复到初始建立时的状态,然后再重新下载DB块。
对于DB块中数组的访问可以使用绝对地址或使用符合寻址的方式:
绝对寻址:DB2.DBB0到DB2.DBB99
符合寻址:DB2.FROM_1200[1]到DB2.FROM_1200[100]
综合一楼二楼为正解
按实际的存储地址去访问就可以了,就当是单个变量存储去访问
1.您可以直接使用地址DB2.DBB0到DB2.DBB99
2.修改数值,可以在变量表中使用地址DB2.DBB0到DB2.DBB99,直接修改数据。这样相比较在 工具栏 中的 view ----> data view 中对变量声明的优点是,不需要下载。
补充一下:对于DB块的掉电保持功能,两种方法没有区别,掉电再上电,按默认DB设置,都能保存。但是如果执行了存储器复位,则CPU运行后,DB块中的实际值,是在view ----> data view 中变量声明时创建的数值。
同意“半瓶醋”老师的观点。
现赠您1张1847体验会员卡,可免费领取,畅学1847会员内容,是否领取?
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!