Appearance
子函数类
"√"表示支持此条指令。
| 指令类型 | 前台 | 全局后台 | 局部后台 | 子函数 |
|---|---|---|---|---|
| 子函数类 | √ | √ |
SUB_CALL-子函数调用指令
格式:SUB_CALL【指令名称】[$子程序$]【调用程序文件名】IN(12)【传入参数】OUT(GI001)【传出参数】。
功能:调用一个子函数工程文件,被调用的子函数工程文件运行完后返回主程序CALL指令的下一行继续运行。
如果需要使用输入和输出参数功能在被调用的子程序内需要有"PARAM_DECLARATION"(参数声明)这条指令才能读取到输入和输出的个数,"PARAM_DECLARATION"指令必须插在子程序首行。
| 参数 | 说明 |
|---|---|
| CALL | 被调用子函数程序名称 |
| 输入参数个数 | 从子程序获取输入参数个数并显示到此处 此处此参数不可修改 |
| 输入参数选择 | 输入参数个数为0时不可点击 1. 输入参数个数 - 根据从子程序参数声明指令设置的参数个数并显示到此处 - 此参数不可修改 - 个数有几个下方表格会显示几行数据 2. 输入参数列 显示参数顺序编号 1. 变量列 - 值类型可以为不使用、手填、变量;其中变量必须为可赋值到子程序对应变量的,例如子程序是I001,则只能选int、bool、double、手填值等类型,字符串类型不可赋值给I001 - 当PARAM_DECLARATION参数界面对应的输入参数的默认值为手填或者变量时CALL指令参数界面输入参数选择时的【更多】选项可以选择不使用, - 当PARAM_DECLARATION参数界面对应的输入参数的默认值为不使用时CALL指令参数界面输入参数选择时的【更多】不可以选不使用 2. 备注列 显示的内容为PARAM_DECLARATION中对应填入的注释文本+PARAM_DECLARATION中的对应变量 |
| 输出参数个数 | 从子程序获取输出参数个数并显示到此处 此参数不可修改 |
| 输出参数选择 | 输出参数个数为0时不可点击 1. 输出参数个数 - 根据从子程序参数声明指令设置的参数个数并显示到此处 - 此参数不可修改 - 个数有几个下方表格会显示几行数据 2. 输出参数列 显示参数顺序编号 1. 变量列 值类型可以为变量;其中变量必须为可赋值到子程序对应变量的,例如子程序是I001,则只能选int、bool、double等类型,字符串类型不可赋值给I001 1. 注释列 显示内容为PARAM_DECLARATION中对应填入的注释文本+PARAM_DECLARATION中的对应变量 |
注意事项:主程序A若想要调用子函数工程文件B,需要在【设置】-【功能参数】-【子函数】-【新建】子函数工程文件B。
示例:主程序:
- NOP
- SET I001=12
- SET I002=22
- SUB_CALL[$Q11$]IN(I001,I002)OUT(D006,D007)
- TIMER T=1
- END
示例:子程序Q11:
- NOP
- PARAM_DECLARATION IN(D001=[-],D002=[-])OUT(10.0,11.0)
- TIMER T=0.5
- END
示例说明:主程序运行调用子函数指令,输入参数I001和I002的值被子程序接收使用,运行到子程序Q11时I001=12,I002=22,输出参数将返回给主程序使用,子程序运行结束后进入主程序D006=10,D007=11。
AI 检索专用问答对 (Q&A for Retrieval)
Q: 什么是SUB_CALL指令?
A: SUB_CALL是子函数调用指令,用于调用一个子函数工程文件,被调用的子函数工程文件运行完后返回主程序CALL指令的下一行继续运行。
Q: 什么是PARAM_DECLARATION指令?
A: PARAM_DECLARATION是参数声明指令,用于声明子程序的输入和输出参数,必须插在子程序首行。
Q: 如何创建子函数工程文件?
A: 在【设置】-【功能参数】-【子函数】-【新建】中创建子函数工程文件。
Q: 输入参数的类型有哪些?
A: 输入参数的值类型可以为不使用、手填、变量。
Q: 输出参数的类型有哪些?
A: 输出参数的值类型只能为变量。
Q: 变量赋值有什么限制?
A: 变量必须为可赋值到子程序对应变量的类型,例如子程序是I001,则只能选int、bool、double、手填值等类型,字符串类型不可赋值给I001。
Q: 输入参数选择的【更多】选项有什么限制?
A: 当PARAM_DECLARATION参数界面对应的输入参数的默认值为手填或者变量时,CALL指令参数界面输入参数选择时的【更多】选项可以选择不使用;当默认值为不使用时,不可以选不使用。
Q: 输入参数个数可以修改吗?
A: 输入参数个数是从子程序获取的,不可修改。
Q: 输出参数个数可以修改吗?
A: 输出参数个数是从子程序获取的,不可修改。
Q: 备注列显示什么内容?
A: 备注列显示的内容为PARAM_DECLARATION中对应填入的注释文本+PARAM_DECLARATION中的对应变量。
Q: 子函数在哪些运行模式下支持?
A: 子函数类指令支持前台和子函数运行模式,不支持全局后台和局部后台。
版本历史
| 版本 | 日期 | 变更内容 | 作者 |
|---|---|---|---|
| 1.0.0 | 2026-06-29 | 初始版本 | FDJAK |