你做了什么,当你为一个项目的工作范围是在较新的软件版本中重写旧的PLC代码时,但有一个主要的障碍阻止你的障碍?这是我最近发现自己的职位。我给出的代码没有例行名称,没有标签标签,没有rsg评论!
不幸的是,这是一些老式plc的常见问题。如果程序从处理器上传,而工程师还没有打开程序的注释副本,那么所有的例程名称、标签标签和横档注释都会在翻译中丢失。如果客户没有程序的另一个备份,情况会更糟,留给工程师的是空白代码和数百个逻辑梯级。
最近,这发生在我身上。他们用CompactLogix升级了他们的旧PLC 5,只有空白代码可用。通常,升级旧程序并非如此困难,感谢Allen Bradley的良好转换工具,该工具完全针对此目的设计。但是,如果你和我一样,并且没有原始程序的备份/副本,只有一个空白代码,你会开始解读这个大规模的拼图吗?
好吧,有很多不同的方法可以做到这一点,但我想分享一些我遵循的技巧,使我的项目成功。我希望它能让你的编程生活变得更容易——以防你也像我一样落入同样的陷阱。
1.系统的功能是什么,你关心哪些设备?
这是关键。幸运的话,有一个功能规范文档详细说明了系统的工作方式。但是,如果不存在这样的文档,请与您的现场联系人、工艺工程师、操作人员或任何可以向您提供关于该系统应该做什么的信息的人交谈。这可能包括系统和各种设备运行的不同模式,涉及的不同阶段,系统中的所有设备,以及系统具有的任何奇怪的异常。在这个场景中,每一点信息都是有用的,所以要做详细的笔记,以便在整个编码过程中指导您。
2.你有现有IO的列表吗?
希望客户有一个绘图集供您查看,或者更好的是,已经有系统中所有IO的列表/excel文档。考虑到图纸上的所有内容都是准确和最新的,这是代码开发的完美起点。在代码中执行其他操作之前,检查并标记所有IO。如果您发现您仍然缺少实际使用的IO的名称,这可能是,图纸不是最新的。一定要尽快与客户解决问题。
3.系统是否涉及HMI?
PLC是否与人机对话?如果您可以访问开发环境,那么可以直接访问标记名。开始浏览每个模板、对象或图形,并列出您找到的所有标签名称(如果能够直接将所有标签导出到开发环境中,那就更有好处了)。将其用作代码的构建块。这对我计算最后40%的代码有很大帮助。我会看代码的功能,认为“哦,这看起来控制压缩机”之间的交换,那么我将与我的同事是谁在HMI升级伊恩(喊),看看标签交换压缩机相关的现有的人机界面。我需要匹配的标签就在我们眼前。
4.现场是否有类似的系统?
如果你像我一样幸运,现场还有另一个类似的系统,它已经有了一个升级的PLC和新的代码。这使我能够遍历每个例程,并使用与代码相同的结构排列例程名称、标记名称和横杠注释。不幸的是,我只能将我的代码的大约60%与另一个版本匹配(主要是因为我的代码是系统的旧版本,并且在新版本中引入了新的标记和例程),所以我仍然需要做一些调查。
5.弄清常规结构
好了,现在所有的IO都已就绪,您要么已经从HMI编译了一个标签列表,将您的代码与类似系统的另一个版本进行了比较(这意味着您可能可以跳过这一步),要么仍然一无所知。无论哪种方式,现在您可以开始破译例程是如何布局的了。在编写PLC代码时,有一些常见的做法,我看到的主要做法是根据设备名称分离出所有的例程。从第一个例程开始,看看是否涉及IO。例如,如果你发现一个打开阀门的输出,两个阀门反馈的输入,并且没有很多其他逻辑,这个例程很可能是基于设备的。继续命名这个例程不管这个瓣膜是怎么标记的然后继续下一个例程。也许您将看到多个输出被控制,以及某种排序逻辑。这很可能是一个阶段性的例行程序。根据您对系统功能的了解,对例程进行相应的命名,并重复此过程,直到您的例程具有可靠的命名结构。
6.找到共同性
此时,您应该对代码足够熟悉,以便开始在不同的层级中选择类似的模式。例如,如果代码中有多个阀门,那么它们可能都使用相同的编码结构。使用你的IO和你的控制经验来帮助你开始回溯你的神秘逻辑。你很可能会有自动和手动模式,不匹配/警报状态,从HMI的手动模式命令,其他条件打开和关闭阀门时,自动等。开始标记有意义的逻辑,剩下的代码就会慢慢地开始就位。
通过遵循这些有用的提示,您的代码有望获得一些新的生命!
Nick Bozzelli是该公司的项目工程师Avanceon.的注册会员控制系统集成商协会(CSIA)。有关Avanceon的更多信息,请访问其配置文件CSIA工业自动化交流。