- 1、本文档共18页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
GE PAC CALL指令说明及应用举例
南 阳 理 工 学 院
可编程控制器GE(期末作业)
题 目:
班 级:
学 号:
姓 名:
完成日期 2015 年 5 月
RX3i CALL指令说明[1]
一 CALL指令格式
通过调用子程序(CALL)指令可以实现模块化程的功能。CALL指令可以使程序转入特定的子程序块。如图1所示。
图1 CALL指令
二 指令功能
2.1 梯形图
2.1.1 无参数的调用
打开Proficy Machine Ediion 的开发软件环境,建立一个新的工程,点开编辑程序的 Logic,选用CALL指令,注意红色标记的 CALL 指令。
图2 无参数的调用
2.1.2 带参数调用
可以调用一个带参数的外部子程序或者一个参数子程序,可以有7个输入和8个输出参数。 打开Proficy Machine Ediion 的开发软件环境,建立一个新的工程,点开编辑程序的 Logic,进行编写带参数的程序,选用CALL指令。
图3 带参数调用设置
2.1.3带参数调用子程序的参数设置
对带有参数调用子程序的使用,PAC软件中程序编写应该注意设置参数,结合自己编写的程序来设置Inputs中的 Data Type(数据类型),Pass By(经过)如图4所示和Outputs 中的Data Type(数据类型)进行选定(注意图片中红色标记的为选择设置内容)。如图5所示:
图4 Intputs参数的设置
图5 Outputs参数的设置
2.1.4 总结
当CALL 功能块接收能流,它将使逻辑执行立即跳转到目的程序块,外部子程序(带参数或无参数),或参数子程序并执行。该子程序执行结束后,控制立即返回在CALL 指令之后的原调用点。
注意:
①一个CALL_MAIN块或一个带参数块。但不能在一个外部块中使用。
②不能调用一个_MAIN块。
③执行调用之前,被调用的块必须存在。
④一个已知块的调用和被调用的次数没有限制。
⑤通过调用块本身可以形成递归子程序。当堆栈容量配置为默认值(64K),保证在“应用堆栈
⑥溢出”错误发生之前8个嵌套调用中最小一个调用。
⑦当一个程序块、带参模块或外部C块的Y0参数返回ON 时,CALL向右传递能流,当返回为OFF时,CALL不向右传递能流。
2.2 Call 操作数
2.2.1 块名称:
图6 CALL 块名称
解释:块名称,要跳转到的块名称不能调用 _MAIN。一个程序块或者一个带参数能调用本身。
2.2.2 用于带参数块调用[输入参数(0 - 7);输出参数(1 - 8)]
2.2.2.1 关于外部(C)块的注意:
必须定义每个外部C 块参数的TYPE, LENGTH,和NAME。有效数据类型,数据范围和每个参数的存储区域都在外部块的写文本中有规定。对任何参数数据流都是允许的。更多的信息见第6 章的外部块部分。
2.2.2.2 关于带参块的注意
必须定义每个参数的TYPE, LENGTH 和NAME。CALL 指令中的有效操作数包括变量、流和间接参考。输入操作数也可以是常量。如果一个形式参数是一个BOOL 数组,且其长度是16 的倍数,那么残留在字组存储器中的变量或数组可以作为一个操作数传递到带参数块中。例如,一个带参数块有一个数据类型为BIT,长度为48 的形式参数Y1,可以给Y1 送一个长度为3 的字组。对所有带参数块,BOOL 参数Y0 是自动定义的,可以用于带参数块的逻辑中。当带参数块暂停且Y0 是ON,CALL 向右传递能流。如果Y0 是OFF,CALL 断开能流。带参数块不需要输入和输出的数量相同。
2.3 如何调用程序子程序 在程序逻辑中_MAIN 块和其他块中调用后,程序块执行。在本例中,LD_BLK1 一直被调用。可以设定程序块的调用条件,在输入量%I00500 和输出量 %Q00100 为ON 时,调用LD_BLK2。如图7所示。
图 7 调用子程序的设置
2.4 嵌套调用
只要有足够的执行站空间,CPU 就允许进行嵌套调用。如果没有足够的站空间支持程序块调用,会产生一个”堆栈溢出”故障。这种情况下,CPU 不能执行这个程序块。CPU 会将这个模块的所有二进制输出设为FALSE,并且继续执行程序块调用指令之后的程序。
注意: 由两种方式可以在没有足够堆栈空间时停掉CPU。最好的方法是
您可能关注的文档
- Excel图标之道.doc
- Excel中级培训教材.ppt
- excel在数据处理中的应用.ppt
- E卡包商业计划书.pptx
- E地块土方开挖施工方案1.doc
- Esri杯中国大学生GIS软件开发竞赛.pptx
- F111F211中文说明书.doc
- F1毫克组、克组砝码标准装置技术报告_免费下载.doc
- E眼的解剖生理.ppt
- F1浮阀型精馏塔 化工原理课程设计.doc
- 2025-2026年度国内抗酸药及治疗消化性溃疡和胃肠胀气用药市场发展规划及投资前景咨询报告.doc
- 2025-2026年度第一学期园务计划.doc
- 2025-2026年度第一学期学校工作计划.docx
- 2025-2026年度口服轮状病毒活疫苗市场深度分析及产业链投资价值研究咨询报告.doc
- 高考历史一轮复习 世界史 第03讲 走向整体的世界(原卷版).docx
- 高考历史一轮复习 世界现代史单元检测(学生版).docx
- 高考历史一轮复习 世界史 第03讲 走向整体的世界(解析版).docx
- 中考数学总复习第七模块图形的变化练习题整理.docx
- 《幼儿园管理条例》专业解读课件.pptx
- 人教版二年级数学上册第一二单元综合素质达标测试题课件.pptx
文档评论(0)