西门子里的组织块就是主程序吗? 点击:4834 | 回复:10



时空——王者之师

    
  • 精华:2帖
  • 求助:234帖
  • 帖子:482帖 | 4472回
  • 年度积分:66
  • 历史总积分:31282
  • 注册:2008年6月06日
发表于:2014-03-23 16:00:19
楼主

西门子里的组织块就是主程序吗?

如何区分OB、FB、FC、DI、DB,不要取笑我,我对西门子不懂

他们与主程序、子程序等有啥异同?



楼主最近还看过



yuanle

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 10210回
  • 年度积分:2747
  • 历史总积分:48332
  • 注册:2005年4月22日
发表于:2014-03-23 16:12:47
1楼

西门子中,OB实际上就是被赋予任务的程序段,如果您能想明白这个道理,那么您就不会受到品牌的制约了。


OB实质上就是赋予任务的程序段,在其他符合IEC61131-3标准的PLC厂牌中,一般将程序段称作为POU,也就是程序组织单元,POU是无法执行的,必须赋给任务Task,才能被PLC执行。


当POU被分配给定时任务时,它就是西门子中的诸如OB35这样的定时任务.....只有被赋予任务的程序段才能被执行,所以西门子中只有OB才能被PLC执行。


接下来说一下FB,FC:

FB,FC的差异在于:FB可以返回多个返回值,通过IN_OUT或者OUT变量。FC只能返回单一的返回值。


如果您在编程中做到需要返回多个值得时候,使用FB,否则使用FC的话,那么您的程序跨厂牌是很简单的,反之,几乎需要重写,西门子并不完全遵守IEC规范,其FB,FC的差异实际上并不是很大,甚至于非常小,原因在于西门子仍然允许FC具有FB的特性,且允许FB,FC直接访问全局变量,这样的好处在于程序会很灵活且方便,后遗症是无法进行跨厂牌,当然,西门子也不希望用户跨厂牌。


至于DI,DB的差异,由于FB,FC的差异并不明显,所以DI可以认为FB的专属存储区域,这个在其他厂牌中是由系统分配而不是用户干预的,西门子也认识到这一点,在其新的软件中已经更符合IEC规范了。


至于OB与主程序的不同,要看您对于编程的理解了,前面已经描述过,OB实质上就是赋予任务的程序段,不管任务是循环任务还是中断程序,所以,在这种情况下,主程序的概念会有所变化,例如,循环程序中没有程序片段,但是中断程序中有程序,主程序到底是中断任务还是循环任务呢?


FB,FC与子程序的概念其实是类似的。


阿水--王者之师

  • 精华:25帖
  • 求助:348帖
  • 帖子:1617帖 | 22281回
  • 年度积分:37
  • 历史总积分:98482
  • 注册:2007年3月22日
发表于:2014-03-23 18:19:53
2楼

  时空,你在 考人吧??


  OB、FB、FC、DI、DB  是各类块的 类型,直接 英文就有区别能看出其功能 !

小小付

  • 精华:1帖
  • 求助:3帖
  • 帖子:14帖 | 1802回
  • 年度积分:0
  • 历史总积分:2312
  • 注册:2012年1月09日
发表于:2014-03-23 21:06:16
3楼

引用 阿水--王者之师 的回复内容:    时空,你在 考人吧??   OB、FB、FC、D...



时空——王者之师

  • 精华:2帖
  • 求助:234帖
  • 帖子:482帖 | 4472回
  • 年度积分:66
  • 历史总积分:31282
  • 注册:2008年6月06日
发表于:2014-03-24 12:13:31
4楼

回复内容:

对: 阿水--王者之师    时空,你在 考人吧??   OB、FB、FC、D... 内容的回复!


更深层次的思考,其实西门子做的非常好,很多像三菱那样的只是入门级,所以在向西门子靠近

银光人生—华

  • 精华:0帖
  • 求助:0帖
  • 帖子:5帖 | 13597回
  • 年度积分:0
  • 历史总积分:52877
  • 注册:2007年11月23日
发表于:2014-03-24 13:46:56
5楼

FC叫功能,你可以把他理解成一个函数,函数需要输入输出参数,调用的时候就有输入输出引脚。定义好了函数后,可以在其他的地方调用函数。


DB叫数据块,顾名思义,存数据用的。


FB是功能块,和FC类似,但是他需要一个固定的DB—数据块,DB数据块用来存储FB的引脚参数


SFC和SFB,S是system的缩写,也就是系统功能、系统功能块。SFB,SFC已集成在CPU操作系统中,我们不需要也不能去在建立SFC和SFB了,只调用好了。


综上所述,FC和FB、DB都可以根据需要编写。然后又其他的地方调用。例如,我编写一个FC叫FC1,FC1实现某个功能,然后我在OB1中调用FC1就可以了。



死心眼

  • 精华:0帖
  • 求助:0帖
  • 帖子:7帖 | 292回
  • 年度积分:0
  • 历史总积分:402
  • 注册:2008年1月09日
发表于:2014-03-24 16:22:14
6楼

5楼回答的非常好。顶一下。

monkeyluyi

  • 精华:0帖
  • 求助:1帖
  • 帖子:3帖 | 138回
  • 年度积分:14
  • 历史总积分:3367
  • 注册:2011年11月23日
发表于:2014-03-26 14:06:49
7楼

了解了!学习中。。。。。

li1990523

  • 精华:0帖
  • 求助:6帖
  • 帖子:10帖 | 42回
  • 年度积分:0
  • 历史总积分:26
  • 注册:2012年9月22日
发表于:2014-10-30 11:40:03
8楼

路过  温习一遍。。。。。。。

yaojie19801220

  • 精华:0帖
  • 求助:15帖
  • 帖子:64帖 | 341回
  • 年度积分:18
  • 历史总积分:6993
  • 注册:2014年8月08日
发表于:2014-10-31 09:13:33
9楼

学习了,谢谢各位高手的详细解答

人丑脚臭

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 3回
  • 年度积分:0
  • 历史总积分:3
  • 注册:2016年9月27日
发表于:2016-10-02 10:38:33
10楼

5楼回答的非常好。顶一下。5楼回答的非常好。顶一下。5楼回答的非常好。顶一下。


热门招聘
相关主题

官方公众号

智造工程师