【发布时间】:2017-07-21 14:59:41
【问题描述】:
我有一个应用程序和一些有效的代码,但我想让它成为一个可调用的函数,例如:-
tankFunction("tank1") 这样下面的函数(有效)将能够根据输入的参数"tank1" 或 "tank2" 或 "tank3" 等在任何坦克上工作..
所以基本上现有函数中包含的每个变量都代表输入参数:
tank1CoolManCtrlOn = reg.tank1CoolManCtrlOn
目前,上述两个变量仅针对"tank1" 进行编码,如果将"tank2" 传递给tankfucntion,例如tankfunction("tank2"),则变量需要为:
tank2CoolManCtrlOn = reg.tank2CoolManCtrlOn
因此变量将是####CoolManCtrlon = reg.####CoolManCtrlOn,其中#### 是需要输入参数的位置。
创建这些变量后,需要将它们传递给tank() 函数,然后需要将返回值设置到输出寄存器。
function tank1Function()
--Tank1 - Start
--This is the Control Function Block Call for - Tank1
--Below is where each variable is set for the function block call.
tank1CoolManCtrlOn = reg.tank1CoolManCtrlOn
tank1CoolManCtrlOff = reg.tank1CoolManCtrlOff
tank1HeatManCtrlOn = reg.tank1HeatManCtrlOn
tank1HeatManCtrlOff = reg.tank1HeatManCtrlOff
tank1PV = reg.tank1PV
tank1SV = reg.tank1SV
tank1Debounce = reg.tank1Debounce
tank1Hysteresis = reg.tank1Hysteresis
tank1LowAlm = reg.tank1LowAlm
tank1HighAlm = reg.tank1HighAlm
tank1CoolManIND = reg.tank1CoolManIND
tank1HeatManIND = reg.tank1HeatManIND
tank1Mode = reg.tank1Mode
tank1CTRLType = reg.tank1CTRLType
--This is the function block call for Tank1 where each parameter is set.
tank1CoolManIND1, tank1HeatManIND1, tank1CoolManCtrlOn1,
tank1CoolManCtrlOff1, tank1HeatManCtrlOn1, tank1HeatManCtrlOff1 =
tank(tank1CoolManCtrlOn, tank1CoolManCtrlOff, tank1HeatManCtrlOn,
tank1HeatManCtrlOff, tank1PV, tank1SV, tank1Debounce, tank1Hysteresis,
tank1LowAlm, tank1HighAlm, tank1CoolManIND, tank1HeatManIND, tank1Mode,
tank1CTRLType)
--This is where the results of the function block set the required
--Variables.
reg.tank1CoolManIND = tank1CoolManIND1
reg.tank1HeatManIND = tank1HeatManIND1
reg.tank1CoolManCtrlOn = tank1CoolManCtrlOn1
reg.tank1CoolManCtrlOff = tank1CoolManCtrlOff1
reg.tank1HeatManCtrlOn = tank1HeatManCtrlOn1
reg.tank1HeatManCtrlOff = tank1HeatManCtrlOff1
--Tank1 - End
end
【问题讨论】: