
程序比较是编程软件一个很重要的功能,当我们不知道哪个备份是最新的时候、当我们的程序修改发生问题,需要判断是哪部分修改造成的时候,都需要进行代码对比。对于PLC来说,有在线和离线两种程序,对应的程序比较......
程序比较是编程软件一个很重要的功能,当我们不知道哪个备份是最新的时候、当我们的程序修改发生问题,需要判断是哪部分修改造成的时候,都需要进行代码对比。对于PLC来说,有在线和离线两种程序,对应的程序比较也有两种:离线-在线、离线-离线。不同的厂家和编程软件提供的比较功能也是不同的,下面就我熟悉的几个产品进行一下简单对比:
一、西门子STEP7STEP7可以进行在线-离线,离线-离线对比,当代码不同时,可以打开代码进行逐行比较,能快速跳转到不同的地方。
离线对比时,可以进行不同项目的对比,也可以进行本项目内不同程序目录、设备的对比。
二、西门子TIA博图TIA博图软件功能非常强大,其比较功能也很强大和漂亮。
如需进行离线-离线比较,在打开主项目后,再打开参考项目,选择对应的欲比较的块,也可以完成比较(首先选择在左侧窗口的块,然后再到另外一个项目里选择欲对比的块即可)。
三、罗克韦尔(AB)的RSLogix最近处理一起ABPLC5软件故障时,需要知道离线和在线程序的异同,对于20年前的RSLogix5Pro软件是否有对比功能,很担心,翻了一下菜单,竟然找到了,操作非常简单,结果界面非常漂亮、清晰。同样,可以快速定位到不同点。
遗憾的是,PLC5只能进行离线-离线比较,如果需要在线-离线比较,需要先上传程序,离线保存,再进行比较。
对于RSLogix5000,默认是不带比较功能的(这有点奇葩),需要自己安装RSLogix5000CompareTool(可以集成在RSLogix5000内),也只能进行离线-离线比较(咋几十年没有啥大变化呢?)。
四、ABB的APB软件ABB的APB编程软件是AC450、AC110、AC80等进行编程的工具。对于小控制器,如果在线与离线不一致,根本就不允许在线,因此,不存在在线-离线比较的可能。对于AC450这种大型控制器,在线与离线是分离的,同样没有在线-离线比较的功能。
同时,APB也不提供离线-离线比较的功能。如果需要进行比较,怎么办?将离线程序转成源文件(source),在线程序进行源程序上载,再转变成源文件,用第三方的比较软件进行文本比较即可(比如ultraCompare)。
曾经发生过最新源程序丢失的事故,我上载后,与老版本进行对比,修改,才逐步恢复了完整的源程序。
小结当我们拿到一个程序,不知道是否最新版本时,对于西门子软件,可以进行在线,然后自动或者手动对比即可。对于罗克韦尔,如果与在线不一致,则会直接告知用户,并且不允许在线。对于AC450,在线时,也会自动进行用户存储信息(包括注释等)的比对,但是不能说明程序是否一致,要小心对待。总之,程序比较是一个比较重要的功能,可以为工作带来比较大的便利。
2019年12月10日
说明:
1、本文是实践经验,非严格论文,与相关产品和理论可能不完全相符。
2、原创不易,欢迎转发,让更多朋友看到(引用请注明出处!)