大家都了解在PCS 7项目中,主要的编程语言是CFC。很多客户在用CFC编程时,除了采用系统自带的库之外,还会制作和使用自定义的库,这个过程中,也常会出现这样或那样的问题。
2011年8月接到这么一个热线问题:客户在编译OS时,总是通不过,如下图所示。

看这个提示,首先想到的是block type 的block folder offline和chart folder功能块不一致,需要更新一下功能块。建议用户做一下功能块的更新。自己也觉得做完更新可能就没问题了。然而,不久客户又来电话,还是同样的问题。咦?那是什么问题?于是指导用户分别进行了CFC和OS的完整编译,结果还是CFC编译正常、OS编译有问题。也了解了用户确实是修改过相关自定义的功能块,但一般情况下做完block type update之后 ,就不会有问题的。
怎么办呢?根据代码:302:3070并没有查找到有实质性的线索。在尝试中,打开编译日志,看到在日志的最后面有如下描述:

仔细查看之后发现List parameters for process variables: POWERRATING而List of operator-controlled connections: Powerrating,大小写是不一致的。是不是这个原因呢?于是在得到这个发现后,我进行了一个测试实验,发现在blocks中把功能块的管脚大小写改过后,在做block type update时,管脚的大小写是不会更新到chart folder的,CFC编译正常;但是在OS做编译时,会检查List parameters for process variables和List of operator-controlled connections的。看来问题原因找到了。知道了原因后,我建议客户修改相应管脚的属性,以便能进行block type update,然后再把相应管脚的属性改回去,再进行更新。客户照做之后,问题随即解决了。
总结:功能块管脚的大小写对CFC编译没什么影响,会影响OS的编译,所以用户在自定义功能块时一定注意这个细小的问题。
好了!故事先写到这里。欢迎您关注更多的西门子热线故事!