版本:TIA Portal V18

如图,
已编写好的全局函数,滤池阀门图形(池号, 阀门),
执行 return 滤池阀门图形("三号","进水阀"),
在函数依条件执行 return HMIRuntime.Resources.Graphics("GraphicCollection." + 阀门 + "灰").Name;
此时返回:"HMI_RT_1::GraphicCollection.进水阀灰"
图形不能显示。
如果直接执行 HMIRuntime.Resources.Graphics("GraphicCollection.进水阀灰").Name;
图形显示却正常。
返回值完全是一样的,在HMIRuntime.Trace()用 === 比较,结果为True,数值和类型都相等。
拼接的图形名称不影响返回结果,但就是不能显示,
但如果执行了HMIRuntime.Resources.Graphics("GraphicCollection.进水阀灰").Name,哪怕你不用它,
后面无论是用return HMIRuntime.Resources.Graphics("GraphicCollection." + 阀门 + "灰").Name;
还是直接 return "HMI_RT_1::GraphicCollection.进水阀灰",
都能正常显示了。
如果这样每个图形都要写死,那模块化还有什么意义?