gkket 发表于 2024-11-2 14:41:58

FB块接口类型大不同

对于工控新人来说,使用STEP7编程时,首先需了解OB/FC/FB/DB等块的功能和作用,待掌握这些块后再进行编程就“轻而易举”了。√微软雅黑
   在热线上经常遇到用户咨询FB的接口变量类型IN_OUT、STAT、TEMP在使用上有何区别,以下通过一个简单的例子进行说明。运用FB块编程计算公式:(A+B) * C = D,在程序中需要通过一个中间变量(例如其变量名定义为“TEMP_value”)传递“A”和“B”相加的结果,然后再乘以“C”得到最终结果“D”;将中间变量“TEMP_value”分别定义为IN_OUT、STAT或TEMP类型后做如下测试。
   首先创建FB1,在IN接口类型中新建A、B、C 三个变量,数据类型INT;在OUT接口类型中新建D 变量,数据类型INT;在OB1中调用FB1,并生成对应的背景DB块DB1。


      情形一,将中间变量“TEMP_value”定义为IN_OUT类型时,接口定义及程序如图1:http://s8/mw690/669692a6gx6CpkAUyphe7&690
    图1 中间变量“TEMP_value”定义为IN_OUT类型下载到CPU中执行程序监控,在调用FB1的接口参数处和背景DB块中都可以监控到变量“A”和“B”相加的中间结果“TEMP_value”,如图2所示。
http://s9/mw690/669692a6gx6CpkDp9uoe8&690
图2中间变量“TEMP_value”定义为IN_OUT时的在线数据
情形二,将中间变量“TEMP_value”定义为STAT类型时,接口定义及程序如图3:http://s2/mw690/669692a6gx6CpkKMIDL71&690

下载到CPU中执行程序监控,仅能在其背景DB块中监控到变量“A”和“B”相加的中间结果“TEMP_value”的值,而在调用FB1的接口参数处无该中间变量,如图4所示。http://s1/mw690/669692a6gx6CpkMLxn260&690
图4 中间变量“TEMP_value”定义为STAT时的在线数据

@me€巧 发表于 2025-11-13 19:44:47

楼主太会说了,字字句句都在理~

翟学鹏 发表于 2025-11-13 20:10:40

水个经验,支持楼主,加油呀

Kevin 发表于 2025-11-13 20:52:44

原来还有这种操作,长见识了!

hide001 发表于 2025-11-13 20:54:16

来凑个热闹,为楼主增加点人气!

陈晨 发表于 2025-11-13 21:04:24

来凑个热闹,增加点人气~

m507705831 发表于 2025-11-14 01:18:30

谁懂啊!真的被戳中笑点 / 泪点了

华1178109845 发表于 2025-11-14 02:41:18

救命!这回复笑到我捶桌,必须置顶~

Zzzh 发表于 2025-11-14 03:33:38

占个楼慢慢看,先马克一下
楼主辛苦啦,期待下一篇分享

shubin 发表于 2025-11-14 03:44:44

路过混个脸熟,顺便为优质内容打 call~
页: [1] 2
查看完整版本: FB块接口类型大不同