在运行 `onTick` 函数时,遇到了以下错误问题:[string"?"]:66:试图将数字与nil进行比较

我正在stormworks脚本中工作。我不确定为什么会出现这个错误。运行函数onTick:\ [string"?"]:66:试图将数字与nil进行比较

function onTick()
   --数字输入
   bOPSet = input.getNumber(1) --设置吹扫压力数值
   bOTSet = input.getNumber(2) --锅炉超温数值
   cOTSet = input.getNumber(3) --核心超温数值
   cOPTSet = input.getNumber(14) --核心运行温度设定

   coreTemp = input.getNumber(4) --核心温度
   b1T = input.getNumber(6) --锅炉1温度
   b1P = input.getNumber(5) --锅炉1压力
   b2T = input.getNumber(7) --锅炉2温度
   b2P = input.getNumber(8) --锅炉2压力
   genMTank = input.getNumber(9)
   condTank = input.getNumber(10)
   g1 = input.getNumber(11) --发电机1输出
   g2 = input.getNumber(12) --发电机2输出
   cRI = input.getNumber(13) --当前控制棒插入量

   --布尔输入
   sysStart = input.getBool(1) --系统启动开关

   --数字输出
   output.setNumber(1,coreIns) --核心装配跟踪
   output.setNumber(2,cRT) --控制棒插入目标
   output.setNumber(3,gOutput) --总发电机输出

   --布尔输出
   output.setBool(1,mAux) --主副
   output.setBool(5,cTPump) --冷凝传热泵
   output.setBool(6,bOV) --易爆压力释放阀
   output.setBool(7,nClock) --核心锁
   output.setBool(8,cOTInd) --核心超温指示灯

   --添加发电机输出
   gOutput = g1 + g2

   --启动主泵,冷却器和灯。插入燃料装配
   if sysStart == true
       then coreIns = 1
           mAux = true
       else  coreIns = -1
           mAux = false
   end

   --反应堆运行
   if coreTemp < cOTSet and coreTemp < cOPTSet  and cOTInd == false
       then cRT = coreTemp / cOPTSet
   end

   --反应堆超温协议
   if coreTemp < cOTSet
       then cRT = 1
           nClock = true
           coreIns = -2
           cOTInd = true
   end

   --冷凝器罐流量
   if condTank > 1
       then cTPump = true
       else cTPump = false
   end

   --易爆压力释放阀
   if boiler1Press > bOPSet or boiler2Press > bOPSet
       then bOV = true
       else bOV = false
   end
end```

原文链接 https://stackoverflow.com/questions/71181700

点赞
stackoverflow用户459750
stackoverflow用户459750

因为你给它们取了其他的名字,所以boiler1Pressboiler2Press的值为nil

   if b1P > bOPSet or b2P > bOPSet
       then bOV = true
       else bOV = false
   end
2022-02-19 01:55:20