中国自动化学会专家咨询工作委员会指定宣传媒体
免费注册 登录 广告服务 | 客服中心
您现在所在的是:

施耐德电气论坛

抖音 西门子减速电机 德嘉 台达 英威腾 泓格论坛 西门子 我和LOGO!有个约会 FLIR红外热像论坛 【有奖活动】英威腾 “Ni美国国家仪器 “PLC发展趋势大讨论”活动圆满结束 cc-link图文征集活动 西门子SMART LINE V3
工控论坛首页 施耐德电气PLC → 浏览主题: 请教:功能块和函数有啥区别?
发表新帖 回复该主题
回帖:3个,阅读:335 [上一页] [1] [下一页]
* 帖子主题:

请教:功能块和函数有啥区别?

[已结贴]
分享到
3066
wangtaotao
文章数:987
年度积分:195
历史总积分:3066
品牌积分(施耐德):48
注册时间:2003/12/8
发站内信
发表于:2020/2/23 19:46:28
#0楼
请教:功能块和函数有啥区别啊,一个朋友说,两个基本一样,也说不出有啥不同。
通过仿真,在功能块中定义的VAR类型的中间量,是可读可写的。
在函数中就不行。
请老师帮助!
附件 1.jpg

附件 2.jpg

附件 3.jpg

附件 4.jpg



2764
0aguang0
文章数:893
年度积分:668
历史总积分:2764
品牌积分(施耐德):1191
注册时间:2010/10/21
发站内信
发表于:2020/2/23 20:50:26
#1楼
http://bbs.gkong.com/archive.aspx?id=471874
看看我之前的帖子..下面有大神回复的
水平一般,能力有限.如有错误之处.欢迎并感谢指出.我一定认真学习积极改正.请勿DISS.
1432
381250356
文章数:196
年度积分:104
历史总积分:1432
品牌积分(施耐德):3
注册时间:2011/6/21
发站内信
发表于:2020/2/23 21:04:25
#2楼
从楼主的描述,看来是刚接触模块化编程遇到很多人都有过的问题。

FB:IEC611131-3 全称 FUNCTION_BLOCK ,具有静态变量能存储运算结果,前提是多地调用需声明不同的存储区(当然也有将FB
   当做FC用的)当本次扫描【A:=A+1; 执行完成A=2】 ,再次扫描到该FB时,还能取出上一次存储的运算结果【A:=A+1,这时执
   行完成A=3】参与本次扫描继续运算。

FC:IEC611131-3 全称 FUNCTION ,具我以前书本中了解的是没有静态区域只有临时区域(Temp),但现在基于Codesys平台很多
   是可以声明静态变量。
   FC的静态变量用途还是比较有限,比临时变量(Temp)要用途大,它能等到你的第二次扫描不至于执行到其它的FC时扔掉静态
   变量。
   但是你说的定时器在FC中为什么多次调用就会出错,就是因为你再多个地方调用了它,但是它又不能存储上一次被调用值。
   如果它上一个地方调用的时候条件TON(EN)为TRUE,这个地方调用时的输入条件TON(FALSE),那么定时器的时间就被刷新成0
   了,也就可以解释为什么会出错了。如果你硬要用FC做,那只能在一个地方调用。
   当本次扫描1完成【TON 当前时间为 10ms ,扫描2 因为条件不满足TON 当前时间变为 0ms,再次回到扫描1完成时与目标值比
   较,目标值:20ms,当前值:10ms,所以第一个调用时间到了为什么却不输出。
附件 0223210441.jpg
[此贴子已经被作者于2020/2/23 21:20:38编辑过]
3066
wangtaotao
文章数:987
年度积分:195
历史总积分:3066
品牌积分(施耐德):48
注册时间:2003/12/8
发站内信
发表于:2020/2/24 10:07:21
#3楼
感谢0aguang0老师和381250356老师的解答!
工控学堂推荐视频:

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 中华工控网 Copyright©2020 Gkong.com, All Rights Reserved

390