Skip to content

子函数类

"√"表示支持此条指令。

指令类型前台全局后台局部后台子函数
子函数类

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。

示例:主程序:

  1. NOP
  2. SET I001=12
  3. SET I002=22
  4. SUB_CALL[$Q11$]IN(I001,I002)OUT(D006,D007)
  5. TIMER T=1
  6. END

示例:子程序Q11:

  1. NOP
  2. PARAM_DECLARATION IN(D001=[-],D002=[-])OUT(10.0,11.0)
  3. TIMER T=0.5
  4. 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.02026-06-29初始版本FDJAK