我在全局变量表里输入了需要的I/O变量,那么DB中的偏移量是什么?现在编制的是一个输送的程序,根据我的理解,变频电机、输送设备我把这些做成FB块;再把各个操作站的逻辑编成FC块,我在FC里调用FB。DB是配套FB的背景数据,这个变量是我在编写FB块时,在块接口中输入的,DB块自动生成。有INPUT、OUTPUT、等几种类型。那么偏移量在这里起到什么作用。我手上有中文版的官方编程手册,这一点没有看明白。
首次用博途编程,以前只用过200的,很多不懂,问题简单了一些,谢谢大家解惑
图片说明:
最佳答案
300在功能上要比200强大很多,但是也有一些相似的地方的。
比如都有iqm t c等存储区,200有v存储区,300有db存储区,这块是类似的。区别在于根据cpu型号不同,200的v是有确定的区间范围,比如v0-v20000,300的db存储区,也是有大小的,比如是512k的范围,但是其灵活的地方在于可以比较自由的分块建立,比如建立DB1,DB2。。。,就像你在硬盘分区一样,可以分多个区,但是总空间也是确定的了,不能超过这个。既然v有地址,vd1,vw10等,db也是有地址的,地址是自定义+相对偏移量,也就是db块编号+db内变量的偏移量。博途现在主推符号化编程,这个在1200/1500里面更进一步,所以现在博途编程,所以变量必须有符号的,即使你不写,软件也会自动给分配一个,但是鉴于硬件,尤其是300/400,绝对地址还是无法去除的,所以db内,如果不是优化的访问,还是有偏移量一说的,如果你程序能够全部实现符号编程,你可以无需关注这个的。但是如果有偏移量,你仍然可以使用绝对地址进行访问,既然可以写占位2,也可以写DB1.DBX1.3 ,如果软件识别到这个地址有符号,则自动显示符号,如果你写的一个地址,没有符号,这就显示地址,但是会是黄色,警告这个是绝对访问,比如你写DB1.DBB0,你db内并没定义db1内第一个字节是byte类型,软件找不到对应的符号就会报警。但也基本不影响使用。
提问者对于答案的评价:
谢谢您的指教,也感谢其他几位答主。我理解的是DB就是配套FB逻辑使用的,FC中调用FB可以间接把数保存入DB。而偏移量也就是地址,无论在哪个程序段,打出这个就能找到这个变量。
还有就是我直接建立DB,优化访问总是有沟无法去除,关闭再打开也不行,就是没有偏移量。但是在FB块接口填入变量编译就有了,再建立DB就没问题了。那是否通常都是这么做的呢?
不好意思,啰嗦了一些
最佳答案作者回复:
我感觉你对fb还理解的不够;
db分全局db和背景db的。
你这个db取消不了优化的访问,应该是背景db吧?如果是背景的,需要把对应的fb的优化访问去掉,则其背景db自然就是非优化的了。
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc367936.html