23

我需要为 PLC 代码提出一个 CM 流程。

目前,该系统使用 RSLogix 5000 开发。构建产品是一个整体文件,可以加载到 PLC 上执行并在开发环境中直接编辑。对于多个开发人员,这已成为一个问题。他们正在踩着彼此的变化。

打个比方,就好像在进行 Java 开发时,编辑和保存源代码的唯一方法是将 *.jar 文件加载到您的 IDE 中,进行更改,然后将其保存回 jar 文件。这不太理想。

如何协调使用 PLC 的多个开发人员之间的更改?

4

8 回答 8

7

我使用 Unity Pro,所以这可能不适用于其他品牌。

Unity 可以导出一个“归档”文件,它是一个 XML 文件,它完整地描述了 PLC 程序和 IO 设置。调试更改后,我创建了一个导出并将其签入到我的本地 Git 存储库中。这让我得到了一个带注释的变化历史,但没有视觉比较。我总是可以使用 UnityDiff 进行比较。

查看http://www.mdtsoft.com/

于 2011-07-06T20:38:11.513 回答
7

您需要专门的 PLC 版本控制系统,例如VersionDog

来自制造商:

“通过 Smart Compares 为 SIMATIC S5、SIMATIC S7、SIMATIC PCS 7、WinCC、WinCC flexible、InTouch、CoDeSys、TwinCAT、Phoenix PC WORX、RSLogix、Schneider Modsoft、Schneider Concept、Schneider Unity、SINUMERIK 840D、Bosch IndraWorks 等提供特殊支持. versiondog 还完美支持 ABB 和 Kuka 的机器人程序以及 Microsoft Word、Microsoft Excel 和 Adob​​e PDF 等办公相关数据格式。

更新:这是显示阶梯版本比较的屏幕截图。我想这是大多数 PLC 人员感兴趣的。如果 PLC 离线和在线应用程序版本匹配,我们还使用它来安排电子邮件报告,作为 PLC 中的某些内容已更改但未放入版本控制服务器的警报。

于 2015-03-24T13:24:24.297 回答
6

如果我们谈论的是一个大的二进制文件,那么 VCS(集中式或分散式)并不是完成这项工作的最佳工具。
批次将复制和标记当前 PCL 状态的外部参考(例如共享磁盘)更好。
请参阅“跟踪软件历史

为了避免修订历史记录中的不连续性,必须存储旧版本的程序。
“不过,我们更进一步。使用我们的MDT AutoSave,我们实际上出去询问设备。在一夜之间或以任何指定的频率,软件读取 PLC 中的程序,然后将该信息与最后一个已知程序进行比较。版本控制软件将复制新程序并存储它,然后[然后]将其与上一个程序进行比较。

启动版本控制相当简单。需要先安装软件,然后再进行硬件配置。“你需要一台服务器和几周的工程设计,一切顺利,”Perysyn 说。然而,他的公司使用“收缩包装方法”,包括安装软件,然后由用户填写空白进行定制。

话虽如此,当您有来自多个开发人员的多项更改时,您需要一个集成环境,在将其推送到实际服务器之前,可以完成并验证首次交付。

另见这篇文章

于 2010-11-18T16:53:33.183 回答
5

特别是关于 RSLogix5000,我看到开发人员使用仿真 PLC 并在线进行更改。开发完成后的最终产品将与所有评论(因为它们不包含在 PLC 中)放在一起,然后进行调试。存在无法在线完成的更改的问题,例如 AOI。有一些工具可以阻止两个人同时在线编辑相同的逻辑并获得部分的所有权。可以以上传的形式进行备份,但没有任何方法可以跟踪更改。

这是一个混乱的问题,当您需要一个可以上网的 .ACD 来维护系统时,仍然更加混乱,因为除非您以某种方式使用 RSLogix 比较工具进行比较,否则您只会看到无法读取的机器代码,例如“+ |Éû³´¬ÙÆW×晵‚>Ù,"

我见过的最常见的修订控制(遗憾的是)只是保存最新的文件,然后复制一份并将当前日期添加到文件名中,就像推荐的 control.com 帖子描述的那样。

于 2011-06-10T04:18:59.267 回答
4

RSLogix5000 一直禁止多个用户同时打开和编辑同一个 .ACD。但是,如果多个用户拥有相同的 .ACD 文件,打开它们,并且都连接到同一个目标控制器,他们每个人都可以同时在控制器上进行编辑,但前提是他们正在处理不同的例程。如果他们要查看其他程序员的例程,其他人的编辑会自动出现。

请注意,像这样的在线工作通常是在 PLC 运行的情况下完成的,有时甚至是在目标系统(某种机器)运行的情况下。这种安排的目的是为了更快地完成工作,或者在某些情况下是因为系统庞大。没有人像这样开发,因为它实际上是一种调试工具,对于重大更改是不切实际的。

如果一个程序员完成,而另一个程序员没有完成,另一个程序员未完成的工作将在他们保存时保存到第一个程序员的.ACD。谁最后保存谁将拥有每个人的工作。

就像其他人在这个线程中提到的那样,使用文件日期是相当合理的。一些公司使用通常显示在连接的 HMI 上的版本控制变量。其他公司使用单独的文档来记录更改的人员和内容。有时版本注释会放在主程序的冗长梯级注释中。

我的公司使用单独的更改日志,并维护有日期的存档副本。多个程序员只在最极端的情况下使用。始终指定某人来维护脱机文件的完整性,通常是工作时间最长的人或项目经理。

需要注意的是,在 RSLogix5000 v21 之前,梯级注释不会从一个用户传送到另一个用户,因为以前的版本没有在控制器上存储注释。

综上所述,您可能正在尝试管理离线开发。我还没有看到任何复杂的方法。通常程序员单独编写所需的例程,项目经理会将它们组装成一个项目。我见过的最简洁的方法是项目经理将创建一个具有全局功能的架构,并将日常工作分配给其他人,给他们一份 .ACD 的副本以供使用。他们返回带有更改的 .ACD,项目经理将他们的例程复制并粘贴到“主”项目中。

于 2015-03-24T00:22:16.243 回答
4

一个简单的做法是对 .l5k 文件进行文本比较,这样您就可以轻松查看开发人员是否在处理超出其范围的文件部分。

于 2011-02-01T15:20:30.360 回答
4

这是一个非常好的问题,它真的取决于你想要它做什么。如果您只使用 Rockwell 设备,查看他们的解决方案可能会有所帮助,我认为它称为 FactoryTalk AssetCentre。目前我正在考虑使用 Canonical 的 Bazaar。VonC 指出的一件事是,一个可以询问 PLC 的软件是一个明确的优势,在我看来不是必须的,但它确实有帮助。

我是否正确阅读了您的问题,并且您有多个开发人员同时处理相同的 PLC 代码?这是一个可怕的想法,但我知道它有时需要发生,Siemens PLC 与多个开发人员一起编程更容易一些,但我会指派一个人在提交到 PLC 之前整合和测试所有更改。任何 CVS 系统都可以让您为每个开发人员创建分支,但您如何让他们整合他们的更改是百万美元的问题。

巴特。

于 2010-12-01T11:56:11.560 回答
3

我刚刚从堆栈交换的链接中看到了这个问题: 梯形逻辑程序的源代码控制是否有现实/有用的解决方案。而不是只有一个链接的答案,我会在这里欺骗我的答案:

实际上有一个罐头解决方案 - 来自所有地方的 GE-IP。查看 Proficy 变更管理。该产品从 PLC 控制系统的角度进行版本控制,而不是从文件的角度进行纯粹的版本控制 - 它作为位于 VCS 之上的层工作(可怕的部分是这个 VCS 最初是 Visual SourceSafe)并处理权限管理、报告和签出/签入。

虽然该产品来自 GE-IP,但它旨在支持开箱即用的各种 PLC 和 HMI 系统。

完全披露,我曾在一家销售和安装 PCM 的公司工作(但那是 7 年前)。因此,如果您问我当时的情况如何,那么我很可能会告诉您哪里出了问题!

于 2015-01-23T22:07:10.407 回答