几年前做过一次WinCC5.0的项目到WinCC6.2项目的移植。起因是因为这个项目运行了近十年,计算机配置有点落后,公司计划更换硬件,顺便把软件也进行升级,因为那一段除了一些软件上的问题,原来的供应商表示软件版本太低,建议升级。所以就觉得软硬件一起升级。
其实当时WinCC7.0已经有所应用,当时论坛上的WinCC跟我学视频都是7.0的。但是公司后来的一个项目用的是WinCC6.2+STEP75.4,所以领导还是决定使用6.2。
下位程序的移植,还是比较顺利的,无非就是安装上新软件,打开旧的程序,替换掉出错的一些文件,整理好项目文件。就可以了。不过最好之前对原来的程序和软件做个备份。防止出了问题旧版本软件又打不开曾被新版本
软件打开编辑过的项目了。你问我怎么知道的?这是我的经验教训。因为是更换硬件,所以我们当时特意留了几台状态比较好的旧电脑,做一个“硬备份”,防止移植失败还能回溯回来。不过后来这些“备份”没有派上用场。
上位程序的移植就比较麻烦了。第一是5.0的WinCC数据库和6.2的不一样,移植的时候,需要用移植工具进行转换;第二就是旧项目的一些函数已经不再使用或是有新的函数替代,所以用到这些函数的部分需要重做或者修改。
刚开始的时候因为硬件配置低,一运行移植工具电脑就死机,半天不动弹。试了几次不行之后就拆了几台电脑,加大了内存。移植工具运行过程中,报了几次错,一开始没在意,直接跳过了,移植工具转换完成之后用6.2打开一直报错,不知道怎么回事。只能重新再去移植,把之前的数据库文件都清空再进行操作。(可怜那时候我不知道有一个项目另存工具,也是这次移植之后才知道了)。
这是老平台上的情况。再说说新平台吧。当时虽然Win7已经开始普及,但是XP还是主流,我们为新平台安装了XPSP3,于是在安装WinCC的时候,就遇到了经典的“SP2补丁”问题,一开始搞不懂怎么回事,后来专门查看了另一个项目的系统信息,才发现那个项目的确用的是SP2,当时强迫症发作,觉得就应该用SP3,最后上网查看发现很多人遇到过这样的问题,解决方法也是多种多样,最后采用了一种修改注册表的方法解决了问题。话说后来又有一次那个用SP2的系统,需要安装一个软件,软件提示系统版本低,当时还不信,查看了系统属性才想起来这个系统是SP2,无奈软件并没有支持SP2的版本呢就放弃了。
系统,软件的问题都解决之后,项目终于运行起来了。但是随着操作员开始用新的电脑,隐藏在后边的问题才逐渐露了出来。先是原来一个很好用的模拟量变红报警不起作用了,原来的变红是靠的比较设定的报警值和当前值相等时触发一个内部变量为1。从而在画面上改变颜色的。结果这里边用到的一个函数在6.2里边已经没有了,所以当然不起作用。一开始不知道,问了几个人,以为是函数头文件需要重新编译,也没有注意看看C动作里的函数的名字。重新编译了若干次以失败告终。后来发现是这个原因就用了最笨的办法。把原来的C动作改成变量动作。不小的工作量啊。
后来就是软件经常运行一段时间就会死机,无法操作,操作系统没有问题,就是WinCC卡死在那里不能动。一开始以为是硬件不兼容或者系统不兼容,因为毕竟6.2的推荐系统是SP2,没有找到原因之前就只能把画面重新启动或者重新启动电脑,为了这个事没有少来回跑。这个问题其实最后没有找到原因,只是简单粗暴的把没有发生死机现象的其中一台电脑全盘备份了一下,恢复到有问题的电脑上,解决了死机的问题。
后来还有一些小问题处理的也很快。完全正常的使用已经是一个月以后了。当时想着这次最少再用个五六年的,结果还没到五年因为整个厂子更新换代,这套系统就不再用了,电脑也被更新更快的新产品取代了。
这次更新换代,那套用XPSP2 的系统没有换平台。但是也做了软件升级,STEP7升级到了SP4,6.2也升级到了7.3,这次项目移植就比较顺利了,搭好平台直接打开原来的项目就可以了,并没有提示别的操作,只是把画面的尺寸做了点小的修改就搞定了。
很多时候项目移植只是一种迫不得已才做的,要么是硬件平台老了,要么是旧有的系统或者软件对新的设备控制来说不太够用了,要么是生产工艺调整。这也从侧面说明了一个问题,我们工控人的工作成果,都是经得起时间考验的,工控产品,也是经得起长久的运行的。希望每一个有项目移植需求的朋友都能顺利完成。