fb块的in参数里设置了slot5 里面包含子参数
刘玉蓉
发布于2014-10-20 18:01
1
0
标签:
一段用在dp通讯里的程序,在图一里fb121的in参数里slot4和slot5是怎么生成的,为什么在图二里调用FB121对应的slot4和slot5却是个bool变量,slot4和slot5里的参数是怎么生成,怎么进行数据传递的?
图片说明: 1,图一 2,图二
佳答案
步骤如下:
1.建立自定义类型例如UDT1:在SIMATIC MANAGER中STEP7项目的BLOCKS右键--INSERT NEW OBJECT--DATA TYPE
2.编辑UDT1:双击打开UDT1,在其中输入你想要包含的内容(包括BOOL,INT,WORD等绝大多数STEP7中定义的数据类型,甚至可以输入其他的UDT)
3.创建功能块FB121,在上方的interface--in一栏输入变量,例如SLOT4,在DATA TYPE 中输入UDT1,刚才自定义的内容会自动包括在SLOT4中(你可以观察在接下来输入的SLOT5,起始地址和SLOT4相差的字节数就是你的UDT1中定义的变量占用地址的总和)
4.调用FB121,因为SLOT4被定义为UDT1类型,因此必须在SLOT4引脚连接一个被定义为UDT1的变量,输入这个变量后,会自动显示这个变量的起始地址(也就是初始指针)
为什么要采用UDT类型,这个应该是很显而易见的:清晰,简洁且寻址不易出错。
对于许多功能类似仅仅参数值不同的对象,我们可以把这个对象的所有属性(对应于UDT1中输入的不同类型的变量)综合到一起定义一个UDT,然后在程序中只要建立不同的变量,但属性都是UDT1,这样就可以轻易的输入及访问不同对象的不同属性(例如你程序中的SLOT4.LADDR,SLOT5.CONSIST等)