CODESYS中函数块实例传入另一函数块时按值还是按引用传递?
CODESYS函数块实例参数传递规则
默认传递方式:按引用传递
当把函数块(FB)实例作为参数传入另一个FB的VAR_INPUT变量时,默认传递的是该实例的引用。也就是说,在被调用的FB里对这个输入实例的任何修改,都会直接作用于原实例本身。强制按值传递的方法
如果需要按值传递(创建原实例的副本,修改副本不影响原实例),可以在VAR_INPUT声明时加上BY_VALUE关键字,示例代码如下:FUNCTION_BLOCK MyReceiverFB VAR_INPUT // 声明为按值传递的FB实例参数 fb_source : BY_VALUE MySourceFB; END_VAR官方文档说明位置
相关规则在CODESYS官方文档的《CODESYS Development System Documentation》中,可通过CODESYS软件内置帮助系统(按下F1键)搜索以下关键词找到详细说明:- "Function Block Instance as Input Parameter"
- "Parameter Passing Mechanisms for Function Blocks"
内容的提问来源于stack exchange,提问作者ivvi
相关产品推荐
相关产品推荐

