编号22--多重背景数据块的项目举例
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
多重背景数据块的项目举例
下面以发动机控制系统的用户程序为例,介绍生成和调用FB多重背景数据块的方法。
用STEP7的新项目创建一个名为“多重背景实例”的项目,项目中创建组织块OB1是主程序,FB1电机4,FB2电机3,FB3电机2,UDT1电机1控制。如图:
首先:明白功能块的调用关系,此实例关系图如下:
1、在项目右侧单击右键新建数据块DB1,在生成时如下图,选择instance DB 对应是FB1,下图红笔处。
2、FB2、FB3和UDT1没有自己的背景数据块,创建好FB2和FB3和UDT1后分别定义FB2和FB3的输入输出管脚。如创建FB3后,打FB3。
如上图红圈处,定义了三个输入管脚,分别是
DIANJI1shoudong电机1手动启动,DIANJI1zidong电机1自动,DIANJI1sudu电机1速度。同理定义FB2的2个输出管脚和FB3的输入输出管脚及其UDT1的输入输出管脚。
3、此时FB1,FB2,FB3,UDT1都已经定义好,但是只是建立了DB1
作为FB1的背景数据块,这时我们要把FB2,FB3嵌套到FB1里面。使FB2和FB3定义的管脚建立在DB1里面。具体如下:
①打开FB1数据块,在FB1管脚STAT定义区,添加name:q_control,数据类型:选FB
同理添加另外两个,其中调用了FB2两次,调用了FB3一次。保存后,打开DB1数据块。如图:
问题1:为什么在STAT区域定义?因为FB与FC相比多了一个STAT 静态背景数据区,保存在DB1中。不能直接修改DB1,DB1的数据生成由FB1的管脚定义。
问题2:DB1数据块的地址生成规律,如上图红笔部分。地址是根据
FB1中管脚定义的顺序生成的。
DB1的生成是从FB1管脚IN区域开始由上图红笔圈1中,由于我们没有定义IN区域管脚,直接从STAT管脚区域开始,DIANJI4_IN1的地址从零开始,上图红笔圈2 DIANJI4_IN1的地址依次往后推。
②在FB1中调用FB2和FB3即可,多重背景的使用方便多次重复调用一个数据块。在两次调用FB2中,使用不同的实参使FB1分别控制汽油机和柴油机,区别仅在于变量的实际参数不同。如下图:
红笔圈处,FB1中调FB2的简单使用。
下图是FB2中参数变量的简单应用