- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
STEP7中FC的应用
FC参数处理过程解析:
实例:
新建一个FC块,编写一个简单的按钮启停程序,如下图所示:
2个bool型输入变量IN1,IN2;一个bool型输出变量OUT1;
以及完成简单的按钮启停程序如下:
在OB1中调用FC1,实参输入为M区变量,观察结果如下:
如图:M250.0有输入时,M250.2输出为1;M250.3没有输入,M250.4输出为0,结果符合程序预期,运行正确;
在OB1中再次调用FC1,赋给实参为DB区的变量,如下图所示:
注意,如上图:但把DB3.DBX0.0置1时,DB3.DBX0.2有输出;但同时发现,Network 2中,DB3.DBX0.4也输出了1,这是为什么呢,本来不应该有输出的啊?
问题提出:为什么同样的FC,当参数为M区变量和DB区变量时,执行的结果会不同呢,FC对于参数的调用机制是怎么样的?
问题解答:
在STEP 7 V5.4编程手册中,我们可以找到这样的描述:
在编程调用块时,请确保写入声明为OUTPUT的参数。否则,输出值为随机值!对于功能块,该值为最后一个调用指定的实例DB中的数值;对于功能,该值为位于L堆栈的数值。注意以下几点:
调用FC时,初始化所有OUTPUT参数;
尽量不要使用任何置位和复位指令,这些指令取决于RLO,当RLO的值为0时,将保持随机值;
如果在块内跳转,那么确保没有跳过写入OUTPUT参数的位置。
结论:FC调用输出实参为数据块时的处理,与输出实参为M、I、Q、PQ不同。
在输出实参为M、I、Q、PQ时,FC输出形参(指针)指向实参实际存储地址,如果在FC中,没有对输出形参形成实质性操作,则形参指针所指向的实际存储区内容不会改变,对于参数传递过程而言,仅仅是调用时形参指向实参,调用结束时形参指针区域释放的一个过程。
在输出实参为DB块时,FC开始调用时,先在V区为该形参分配一个存储区(可能是位,也可能是字节或其它,根据形参参数类型而定),每一次调用FC,根据调用FC时所传递的实参类型不同,为输出形参分配的V区区域可能不同,比如一个FC有一个位输入形参,一个位输出形参,在第一次调用时,实参分别是I0.0,DB0.DBX0.0,则为输出形参分配的V区为V20.1;第二次调用FC,实参分别为DB0.DBX0.1,DB0.DBX0.2,则为输出形参分配的V区为V20.2,原来的V20.1被输入形参所对应的实参DB0.DBX0.1内容所填充。如果??二次调用FC时,实参为M0.1,DB0.DBX0.2,则为输出形参分配的V区仍为V20.1。
其后,FC在实际运行时,针对输出形参(数据块)的处理其实都是在对该V区进行处理,在FC结束调用后,不管在FC中有没有对该V区进行实质性处理,该V区的内容均会被拷贝至另一个存储区,比如L区,该L区与实参区对应,但不在同一区,此时并一直等到本次OB循环结束,该L区内容都不会被拷贝至实参区,所以这个时候实参区的内容还不会有变化。
等到下一个OB循环开始之前,该L区内容就会被拷贝至实参区。
根据以上内容,结合本例分析:
1:第一次调用FC1时,在V区为形参分配一个存储区,本例中实参为DB3.DBX0.0,DB3.DBX0.1,输出实参为DB3.DBX0.2,则为形参分配的V区为V20.1,V20.2,V20.3;程序执行完毕后,V20.3值为1,并输出给DB3.DBX0.2;
2: 第二次调用FC1时,同样为形参分配的V区为V20.1,V20.2,V20.3,但程序并未对OUT1变量进行初始化操作,此时V20.3的值仍然为1,即OUT1保持为第一次调用后的V20.3的值,所以第二次调用FC1时,输出DB3.DBX0.4也变为了1!
解决办法:
在FC1中对OUT1进行初始化操作,如下图所示:
把OUT1变量改为IN/OUT类型。
以上2点适用于所有FC调用,切记。
您可能关注的文档
- 中国政法大学2011年攻读硕士学位研究生初试复试科目命题范围.doc
- 状语从句如何转化.ppt
- 难得原创实用案例--23G切换优化经验总结.doc
- 6-2电场中能的性质.doc
- 云大设计模式实验3装饰着模式.doc
- 科研论文撰写和科研漫谈.ppt
- 【钟文琴】《初识Excel》教学设计及反思.doc
- 8、switch和case.doc
- 五英上说教材课件.ppt
- 城中村改造计划书.doc
- 2025AACR十大热门靶点推荐和解读报告52页.docx
- 财务部管理报表.xlsx
- 高中物理新人教版选修3-1课件第二章恒定电流第7节闭合电路欧姆定律.ppt
- 第三单元知识梳理(课件)-三年级语文下册单元复习(部编版).pptx
- 俄罗斯知识点训练课件-七年级地理下学期人教版(2024).pptx
- 课外古诗词诵读龟虽寿-八年级语文上学期课内课件(统编版).pptx
- 高三语文二轮复习课件第七部分实用类文本阅读7.2.1.ppt
- 高考物理人教版一轮复习课件第4章第3讲圆周运动.ppt
- 高考英语一轮复习课件53Lifeinthefuture.ppt
- 2025-2030衣柜行业风险投资发展分析及投资融资策略研究报告.docx
最近下载
- 普法知识宣传.pptx VIP
- 人教版(2024)七年级地理上册教学设计全册.pdf VIP
- 2025年根河市“归雁计划”模拟试卷带答案详解(名师推荐).docx VIP
- 水泥性能与检测.ppt VIP
- 记叙文阅读之记叙顺序课件(共31张ppt) 2025年中考语文一轮复习(全国通用).pptx VIP
- 2024年高考物理试卷(甘肃)(空白卷).pdf VIP
- 农村土地永久互换协议合同.docx VIP
- 2025至2030年中国智能胎教仪市场分析及竞争策略研究报告.docx
- 2025党校入党积极分子发展对象考试题库(含答案).docx VIP
- 人教版高中数学选择性必修二全套教材例题课后习题变式及答案解析.pdf VIP
文档评论(0)