Q1:编译报错:“The called block FB1030 does not correspond to the called FC1103.”
根本原因:由于使用的是Cemat库,在该库中,SYSPLC00系统Chart中有3个FC的编号发生变化:V7版本中FC1102(OB1_SYS1)、FC1103(C_OB1SY1)、FC1088(C_PUSHBT),在V8版本中已变更为FC1031(OB1_SYS1)、FC1032(C_OB1SY1)、FC1028(C_PUSHBT)。
A1:根本解决方法:修改符号表中对应的FC号,删除SYSPLCxx并编译后,使用Block types中的Clear up,清除未用的块,从Cemat库中复制FC1031、FC1032、FC1028到项目的Blocks中,同时复制SYSPLC00到项目中并更名,重新编译,即可正常调用。
Q2:FB号重叠:FB1075(C_INTERL)和FB1076(C_INTER5)在V8中已变更为FB1057(C_INTERL)和1058(C_INTER5)。
A2:符号表中对应修改FB号,删除旧CFC中包含的此块,在Block Types中“Clear Up”掉旧版本,复制FB1057和FB1058到项目的blocks中,重新使用FB1057和FB1058,同时将符号中的块编号修改为新的编号。
Q3:将Cemat库中的块复制到项目库中时,提示有块不能被复制。
A3:V8.2中FB编号有变化:V7.1中的FB1060(C_ODA)在V8.2中已变更为 FB1160(C_INTLK8);V8.2中FB1060(C_ODA)已变更为FB1046(C_ODA);在Block types中先Clean Up掉FB1060,再复制Cemat库中的块到项目中,更新Blocks即可。
注意:V9.0的Cemat库中,FB1062(C_ODA_R)已变更为FB1047(C_ODA_R),FB1062已变更 为C_INTLK2这个块。
Q4:更新后原程序中不能删除SFB3、SFB4、SFB4,提示”key not found”(在blocks types中发现,重复出现2次,一个带符号名,一个不带符号名,Clean Up 掉不带符号名的SFB3、SFB4、SFB5。)。
A4:在符号表中,将SFB3、SFB4、SFB5添加进去,增加符号名为TP、TON、TOF,在”Block Types”时不要将SFB3、SFB4、SFB5从“Block folder offline”移动到“Chart folder”,Cemat更新完成后,在主库中拖用上述块,如果提示更新,选择“NO”,这样用户库中不会出现重复2次,也可正常使用。
Q5:FB128(DPDIAG)与 FB128(CPU_RT)冲突。
A5:Clean Up掉DPDIAG,重新更新CPU_RT。
总结:在V90中更新块前,需要提前Clean Up的块:FB128、FB1060、FB1062、FC1102、FC1103、FC1088,最好是Clean Up掉所有不使用的块,在Block Types中左侧“Block folder offline”中的块没有符号的,一定要先配置符号再更新块到Chart folder。
Q6:编译报错:“E: Local data requirements (1202 byte, inclusive OB121 and OB122) for organization block OB1 is larger than the local data stack configured in the connected online CPU for the corresponding priority class 1.”
A6:这个是警告CPU提供的本地数据不足,是可以手动调整的, 方法是在硬件组态里, 双击CPU, 在它的属性里,找到”Memory”这个标签页, 将1优先级的本地数据大小从1024调大至2048即可,如果提示超过了总数,下边有一个总和的大小,也可以调节.
感谢分享
我有升级需求,联系一下?