登录
首页 PLC论坛 西门子SIEMENS
回帖 发帖
正文

主题:西门子FB块中还有功能块,怎样实现的块与块的参数传递的?

点击:3786 回复:7

请教问题如题所示,在FB功能块中还有自定义的功能块,那么自定义的功能块的数据是如何传到FB块内呢。还有就是图片中P#DBn.dbx ,表示的是指针指向的名为N的数扰块的第X位对吗?
附件 QQ截图20180303164946.jpg
18-03-03 16:52
1、块与块的数据交换可以通过IN,OUT,IN_OUT引脚来交换,最垃圾的方法是通过全局变量交换,这种方法原厂工程师是不会做的,这破坏了块的移植性。
2、P#DBn.dbx ,表示数据块的首地址,实际上完整的用法是
 P#DBn.DBX  Byte(Int) x
Good Luck~
18-03-03 18:22
还是C版解释专业。我再补充一句,P#DBn.dbx ,这种用法,你可以看看DB块对应的地址点是不是写了数据结构,这个看懂你就明白了。
18-03-03 23:22
谢谢您的回答,我想再问下,fb功能块中还有功能块,如图片上的就是fb块中的功能块,那这个块的比如图片上的LT的输出,给的地址就是p#db399.dbxn,而fb块的背景数据块是db309,那这个数据怎么给fb块的数据块呢?我看了fb块的in out in_out都是空的,只有stat才有数据地址,
18-03-04 06:57
是的,您说的是对的,确实是数数据结构,那这个意思是不是就是指的是指向了数据结构的首地址
18-03-04 07:09

引用 jiouai84 在 2018/3/4 6:57:25 发言【内容省略】

这就是西门子的问题了,不通过上面的IN,OUT,IN_OUT传递变量值,而是通过全局变量传递,背景数据块虽然对应与FB,但是在西门子中,通过绝对地址仍然可以访问背景块中的数据,相当于全局变量的访问。
所以,在西门子博图中,已经将默认的这种方式改为非默认的,之所以不彻底断了这种方式是为了兼容以前的编程方式。
所以,你如果编程,应该通过IN,OUT,IN_OUT这种方式传递数据,这样也可以在使用其他厂牌的编程时保持良好的移植性。
Good Luck~
18-03-04 08:38
看得挺眼熟的 雷诺的?
18-03-04 09:05
变频器通讯里的状态字和控制字不就是这么用的吗?
18-06-11 15:41

工控新闻

更多新闻资讯