38

如何学习PLC编程?不同品牌的PLC会有很大的不同吗?梯形图编程和PLC编程一样吗?

4

11 回答 11

59

我做了很多 PLC 编程,现在做了很多 .NET 编程。无论哪种方式进行转换都是非常危险的,因为许多您认为应该可以转移的技能(模式等)会让您误入歧途。

我告诉人们的最大区别是PC程序代码应该像其他程序员一样被编写,而PLC程序(梯形逻辑)必须像维护人员一样被编写。大多数设施(尤其是制造)的维护经常直接连接到 PLC,并且在在线模式下,他们可以以图形方式查看代码执行以找出问题所在。

例如,如果输出没有打开,他们会在编程软件的查找功能中输入输出电气设备 ID,找到输出线圈,然后从那里开始追溯寻找问题。一些 PLC 程序员经常犯的错误之一是将他们的 I/O “映射”到一个结构中(在 PLC 中,这些被称为用户定义类型),他们使用复制指令将所有输入或输出移动到结构。从 PC 编程的角度来看是有道理的,但它会让维护人员想杀了你。通常,编程软件提供交叉引用功能,他们可以在其中指定输出线圈,它会告诉他们在程序中的任何地方都使用了它。如果使用复制指令将 I/O 的 10 个字移动到 10 个字的数据结构中,他' s 必须坐在那里数位,以​​确定副本源中的哪个位映射到副本目标端的哪个位。确实,注释可以提供帮助,但也存在问题……PLC 存储整个程序,如果您需要排除故障并且没有原始程序的副本,则允许您在紧急情况下从其中上传程序. 问题是由于空间原因,PLC 不存储注释。因此,如果生产线出现故障,每分钟的停机成本为 5000 美元,而一个人带着笔记本电脑跑出去,他可能不得不在没有评论的情况下快速上传并尝试排除故障。将这些复制说明放在那里,浪费了他 10 分钟的时间,仅仅让公司损失了 50,000 美元的停机时间。这些是您在编写 PLC 程序时必须注意的事项。

其他一些提示:一些 PLC 支持 FOR 循环。 永远不要使用它们。出于与上述相同的原因,它们使维护人员很难对代码进行故障排除。这是因为如果您在 PLC 中有一段代码每次扫描多次被扫描(如循环的内容),那么当您进入在线调试模式时,软件无法显示每个代码的值执行此扫描的 10 个循环,所以你真的不知道你在看什么值。然后,您必须编写所有这些棘手的代码,以将特定循环索引的循环值提取到您可以监控的其他一些标签(变量)中。这只是在紧急情况下解决问题的另一个障碍。每次扫描多次使用子程序会遇到同样的问题。

维护人员很难理解间接寻址(我们称之为数组)。当您处理配方管理(存储和检索如何构建零件的值)时,通常可以使用它们,但您应该尽量在程序的控制部分远离它。

在 PC 编程中,我们当然寻求尽可能多地重用代码。然而,在 PLC 和控制系统中,停机时间非常昂贵,硬件也很昂贵。内存很便宜,实际上PLC编程器也很便宜。因此,如果您的机器上有 10 个相同的东西(如传送带驱动器或其他东西),那么您将有 10 个不同的文件(子程序),每个驱动器一个,每个驱动器都有自己的变量与之关联:例如Drive1_Run、Drive2_Run、Drive3_Run 等等。当你来自 PC 编程背景时,你会觉得这很“错误”,但这都是因为我在上面提出的观点。当你处于停机状态,有人说 Drive 3 不工作时,你打开笔记本电脑,转到 Drive 3 的文件,然后查看 Run 输出梯级。在程序执行期间,您从那里开始进行故障排除。没有断点(程序永远不会停止)。

祝你的努力好运。如果您想查看它们,我从我多年的 PLC 编程中写了一些更多的见解。

于 2009-07-22T20:56:41.483 回答
18

您可以从 Internet 上的各种资源中学习 PLC 编程,其中之一是this(wikibooks)this

除非您使用 PLC 特定功能,否则您编写的程序在用于 LLD(梯形逻辑图)的不同品牌的 PLC 中几乎相同。但是如果你使用像 IL(指令列表)这样的语言,会有更多的差异。但是一旦你编写了程序,不同品牌的存储和执行格式会有很大的不同

梯形逻辑是 PLC 的 5 种编程语言之一,其他分别是 FBD(功能框图)、ST(结构化文本,类似于 Pascal 编程语言)、IL(指令列表,类似于汇编语言)和 SFC(顺序函数)图表)。这些只是编程语言的各种表示形式,如果您愿意,可以使用各种风格。但通常,一个给定的品牌只支持其中一个。在美国,LLD 被广泛使用,而在欧洲,IL 更受欢迎。

于 2008-11-21T19:59:27.873 回答
14

梯形图,通常称为 LD,是 ISO 61131 自动化编程标准中定义的几种语言风格之一。其他有SFC(顺序流程图)、FBD(功能框图)、ST(结构化文本)和IL(指令列表)。IL 类似于汇编程序,很少有人使用它。ST 是一种基于文本的编程,很像早期版本的 BASIC。它也不经常使用。LD 的设计类似于电气控制面板上的继电器触点(许多 PLC 已替换)。FBD 看起来更像是电路图。SFC 基本上是一个流程图。

有些PLC支持全部,有些只支持一些,甚至一个。虽然 LD 是最常见的,但 FBD 和 SFC 越来越受欢迎。

不同的品牌确实使用略有不同的编程语言。它们通常足够相似,一旦你了解了一个品牌,你就可以使用它们中的任何一个,但你不能直接从一个 PLC 获取代码并在另一个品牌上使用。

于 2008-11-21T20:09:12.547 回答
13

到目前为止给出的答案非常符合目标。我发现PLC在语言和设置方面具有分裂的个性。他们的核心设计是为电气人员提供一种灵活的方法,为他们的整体设计设置控制逻辑。PLC 基本上是一堆输入和一堆输出,它们的连接方式由您加载到设备中的软件控制。

用于 PLC 的语言的重点之一是具有电气背景的人可以使用它们。因此,对于习惯于高级语言甚至汇编语言的人来说,习语和结构似乎与直觉相悖。例如,对于电气人员来说,梯形逻辑非常容易使用。

然而近年来,PLC 一直支持多种语言以实现最大的灵活性。然而,在我看来,我工作的少数 PLC 在编程环境方面非常缺乏。诸如将变量名称分配给内存位置之类的简单事情通常没有设计到所使用的语言中。那些容易工作的往往不是最经济有效的工作。

尽管存在这些缺陷,但它们非常适合简化复杂的电气系统。如果你和别人一起做一个项目,你会发现你的编程知识将帮助项目解决棘手的程序。我能够获取一个 100 梯级的梯形逻辑程序并将其重写为三分之一的梯级。一旦我能够学习梯形逻辑语言,我就能够实现各种优化,从而降低程序的复杂性。

一个提示是,您将需要了解闩锁。有时您需要存储或保持一些输出,除非您有锁存器,否则结果将在下一个周期消失。一旦你理解了这个问题,它就会变得清晰,但起初这对我来说是一个很大的挫败感。

于 2008-11-21T20:20:18.220 回答
7

PLC 编程应被视为 PLC 软件工程输出的实施活动,除非您将 PLC 纯粹用作机械或电气解决方案的替代组件的一部分。

以此为基础,PLC 编程环境通常是 IEC61131 驱动的,保证循环时间,“抢先式”实时,无需处理实时操作系统相关问题,连续代码扫描,非程序指针,不同于典型计算机任务产生的概念一种多任务处理。代码执行自然是原子的,不需要在任务之间使用监视器。

每种语言都与您的代码与您要实现的逻辑模型的可想象性有密切关系。

  1. 梯形图有其关于电力潮流联锁方式的基本概念。单个网络中的代码解析是水平或垂直扫描(您可以从制造商或其他站点找到有关此主题的资源)。如果您的代码具有单次扫描分辨率性质并且在一个网络内,则某些不可思议的行为可能是由于扫描类型造成的(重要的是要记住梯形图只是电路的仿真,它在执行中仍然是顺序的)。

  2. FBD 或功能块图是电子信号流,但今天可以是数据流,具体取决于 PLC 的类型。FBD 显示更清晰的执行顺序,在扫描顺序上与水平扫描梯形图非常相似。今天,FBD 通常用作对象功能块的容器,尽管依赖实现和与过程模型的视觉相似性取决于 PLC 类型。

  3. Literal 与 BASIC 非常相似,但只是语法;执行仍然是扫描的。文字语言有利于数学计算。对于高级实现,使用 Literal 可以更容易地使用对象内的方法或属性派生。使用类似英语的状态表示或常量的状态机编程使程序非常易读。

  4. 语句列表看起来类似于汇编助记符,但再次执行仍然是扫描而不是程序指针。它在位运算和括号式离散逻辑方面很强大。它可以是一种非常有效的语言,可以与适当的结构和注释一起使用。

  5. SFC 或顺序流程图是顺序实现的补充语言。SFC 对动作块激活、状态转换、并行序列激活和合并具有固有的规则。然而,复杂的异常分支或并发动作管理会使实现变得复杂并且流程图难以阅读。

IO 处理、通信、热备的 PLC 系统管理是硬件配置工作,并且取决于产品。一般来说,可以与软件工程分开处理。然而,与PLC系统管理相关的数据属于“定位”(独立数据寻址区域)类型,软件工程中良好的数据建模方法有助于系统数据的可管理性。

于 2009-09-22T06:58:56.240 回答
5

在线 PLC 模拟器可能很有用。

于 2010-12-02T03:58:24.820 回答
3

您可以使用结构化文本 (ST),它由一系列指令组成,根据高级语言(“IF..THEN..ELSE”)或循环(WHILE..DO)的确定,这些指令可以被执行。

我发现它比梯子更好,因为它接近标准编程语言。

于 2012-10-09T21:16:10.313 回答
1

我在大学里学过一点 PLC 编程。在我看来,它比组装低一级,但我们使用的设备不是最新的。

我相信你需要一个 PLC 驱动程序,但我会先寻找模拟器并在购买之前阅读更多相关信息。

于 2008-11-21T20:03:37.443 回答
1

Allen-Bradley 有一个免费的基于 dos 的软件 PLC,专门用于培训。如果你去他们的网站,你可能会找到它,或者谷歌它。它用于在学校教授 PLC 编程。

于 2009-10-30T20:01:16.800 回答
1

对于尝试学习梯形逻辑的初学者,最好的方法是参加http://plcs.net上的免费在线培训

于 2010-09-15T23:59:44.463 回答
-3

PLC 是用于使用梯形逻辑的设备的术语。以更典型的编程语言编程的设备通常称为微控制器。但是,我们中的一些人有时会将它们全部归为 PLC 名称。:-) 不确定梯形逻辑有多少变化,但微控制器代码可能会有很大差异。

于 2008-11-21T19:57:44.333 回答