阮子
级别: 工控侠客
精华主题: 0
发帖数量: 658 个
工控威望: 4416 点
下载积分: 5359 分
在线时间: 250(小时)
注册时间: 2009-12-27
最后登录: 2015-10-29
查看阮子的 主题 / 回贴
楼主  发表于: 2011-10-26 20:15
各位朋友,我是一个刚开始学习西门子S7-300的菜鸟,有没有高手帮我解释一下编程过程中FC与FB,SFC与SFB之间的区别啊,我是想了很久了都搞不明白啊,小弟在些先谢谢了。
cvlsam
富士低压,POD(觸摸屏),PLC专卖
级别: VIP会员

精华主题: 3 篇
发帖数量: 6777 个
工控威望: 38380 点
下载积分: 4203 分
在线时间: 9537(小时)
注册时间: 2006-09-13
最后登录: 2024-12-22
查看cvlsam的 主题 / 回贴
1楼  发表于: 2011-10-26 21:42
首先,我们以IEC61131来阐述一下FB与FC的不同:
在61131标准中:
1、FB具有独立的存储空间,而FC不具备。
2、FB允许使用静态变量,而FC不允许。
3、FB允许使用输入输出变量,而FC仅具有输入或者输出变量。
4、FC中不允许读写全局变量。

嗯,大致也就是以上4点。

这是针对于IEC61131标准而言,但是西门子虽然号称支持IEC61131标准,但不是一个听话的孩子。
1、FB具有背景数据块DI,FC没有,但是,FC可以通过独享的共享数据块(DB)来达到类似的功能。在其他厂牌的PLC中,FB具有的专属空间有PLC的操作系统进行内存分配,而在西门子中,这个工作是通过用户建立数据块来实现自我分配。
2、在西门子中,FC与FB均具有静态变量的能力。
3、FB通过读写DI来实现对变量的读写,而FC则通过读写共享数据块来实现。
4、共享数据块也可以理解为全局变量,因此,在西门子中,FC可以读写全局变量。

西门子在FB,FC的编写中给予了用户极大的灵活性,但是也同时增加了编程出错的几率,另一方面,由于编程中的灵活而导致程序上使用的不规范,从而使得在西门子PLC编写的程序向其他品牌PLC编写的程序移植困难。这对于用户来说,其为西门子编写的FB,FC,当使用其他品牌时,不得不重新编写。

而对于SFC,SFB来说,只不过这些功能块由西门子提供并固化在PLC的ROM中,因此,其根本区别与FB,FC的区别相同。

以上仅表示个人见解。

Good Luck~
本帖最近评分记录:
  • 下载积分:+5(阮子)
  • 下载积分:+5(雪花飘飘) 热心助人