离散制造业

PLC编程提示,工程师的益处

获取可编程逻辑控制器(PLC)的帮助,从控制工程编辑咨询板成员弗兰克羊肉,覆盖梯形逻辑和扫描,二进制编码的小数和可重复使用的代码。

由弗兰克•兰姆 2017年7月17日,

梯形图逻辑和可编程逻辑控制器(PLC)扫描,二进制编码的小数和可重用代码是由提供的PLC编程提示之间提供控制工程编辑咨询委员会成员Frank Lamb,自动化咨询服务公司自动化咨询服务公司的创始人,控制工程内容合作伙伴。下面的特色是来自三个不同观点的PLC编程的提示。

梯形逻辑,PLC扫描

几乎所有可编程逻辑控制器(PLC)全球手柄以相同的方式扫描。首先,CPU将物理输入读入存储器表,通常称为“输入表”。然后使用此表作为评估程序。不同平台中使用的不同类型的寄存器;这些寄存器被更新,因为逻辑在每个例程中的每个校准和顶部到底部左右处理。这包括更新输出表,稍后将用于驱动连接到PLC的物理设备。

程序可能为不同的目的调用不同的子例程,调用例程的顺序可能很重要。根据内存寄存器和输出表更新的位置,物理输出最多可以延迟两次扫描。

在任何一种情况下,程序均衡通过不同的例程,因为在返回到从其调用的任何地方调用之前调用并最终在原始循环例程结束时。大多数程序使用初始循环例程,用于调用所有其他例程。但是,某些程序在定期运行而不是连续程序。但是,这很罕见。大多数程序使用连续的程序配置,它可以像它一样快地运行。在执行所有代码之后,评估逻辑并更新所有表(除了在扫描开始时写入的输入表),所产生的输出表或寄存器内容被写入物理输出。

这要花多长时间?这取决于平台(处理器的速度),程序中有多少代码,以及使用的指令类型。有时程序员会在程序中使用循环或重复调用相同的例程。所有这些都对总扫描时间有影响。通常有文档表明不同指令的执行时间,但是试图将所有代码相加以估算长度是没有意义的。它只是供参考。

扫描时间可长达80毫秒。如果扫描时间超过50毫秒(对于机器控制项目),那么用户应该寻找更强大的处理器或使代码更有效的方法。超过50毫秒后,对机器控制项目输出反应的影响开始明显;对于过程控制项目来说,这可能并不重要。

二进制编码的小数和PLC

二进制编码小数(bcd)是一类二进制编码,通常用4位或8位表示。只有人类才需要把寄存器里所有的比特加起来以10为基数,因为这就是我们的思维方式。

在触摸屏前的日子里,七段显示器和拇指向量交换机被用作人类和PLC之间的数值接口。甚至在PLC之前,这些设备也是数字地与电路接口的唯一图形方式。用户可以在ENIAC(第一电子通用计算机)的日子里移动插头,但是要使用这些设备查看和调整十进制数量更容易。问题是,它们非常输入/输出(I / O)密集。每个拇指段都需要四个输入(+电源),而每个7段显示器需要四个输出(+2电源连接)。尽管如此,直接与小数的签名或无符号整数相比比使用按钮和飞行员指示灯更容易。

普通投诉是数学;必须在平台上明确声明每个数据类型,并且如果数据类型不等同,则转换已转换。不仅如此,而且标准定时器和计数器数据类型将BCD合并到其数据结构中。这是因为在人们不得不处理这样的东西和七段显示器时,这一切都会回到何时恢复到七段。实际上,定时器设定值仍然输入3秒设定值的“S5T#3S”。定时器使用三位BCD数字(12位)和两个额外的时间基座。对于计数器来说,这也是如此,这意味着它们只能从-999到+999计算。

每个四位数段只能携带从0000到1001的位值;对于下一个值,而不是索引到1010(有符号或无符号十进制的是“10″”,十六进制的是“A”),下一位将被转移到下一段位。这意味着最后六个位的组合(A-F)被有效地浪费了——在BCD结构中是不可能的。

BCD结构或基数在许多较新的触摸屏中仍然可用,但大多数程序员倾向于选择整数基数来表示十进制数。BCD有点像DOS;工程学校仍然接触到它,但人们真的不知道它是从哪里来的。希望回顾那些旧的拇指转轮和七段显示将有助于澄清一些关于BCD的谜团和“为什么”。

PLC的可重复使用代码的优点

许多程序员基于罗文 - 布拉德利产品的知识和能力,因为罗克韦尔自动化的产品,因为在制造中的大部分安装的基座包括A-B PLC。Rockwell Automation的Controllogix系列是PLC功能的巨大跳跃,增强功能,例如基于标签,允许使用用户定义的数据类型(UDT)和附加指令(AOIS)。标签也可以在每个程序中进行本地,允许将它们重复以重复使用。

除了基于标签的功能之外,所有这些功能在其他平台上已经存在多年了。用于编程语言的IEC 61131大约从1993年就存在了,其他plc在早期就利用了它。旧的、仅基于寄存器的系统与更现代的系统之间最重要的区别之一是构建可重用代码块的能力。支持此功能的平台必须具备以下三个特性:

1.本地与全局变量。可重复使用的代码必须具有适用于代码的每个实例的变量;理想地仅为原始代码格式化一次数据。这意味着不必为每个实例或呼叫重新命名标签或符号列表。例如,多次复制子程序并迭代它内部的地址,但它节省了时间,并不是真正可重复使用的代码。

2.用户定义的数据类型(UDT)。创建udt允许构建可以从一个应用程序导出到另一个应用程序的结构。它们允许使用“速度”、“启动”和“拒绝”等通用术语来描述组件。udt不需要基于标签的系统,但它们确实需要符号的高级使用。

3.保护的独立的块。重要的是,代码包含在允许进出和输出的变量中的块中,并且还保护用户,以便用户无法更改其特定实例。这需要密码或软件密钥。

这些只是其中的一些要求。其他特性,如能够用其他iec兼容的PLC语言(如结构化文本)编写代码,也有助于使平台更加强大和“快速代码开发”友好。

无论平台是否使用具有本地变量的子例序或可自定义的指令,可重用代码是快速创建强大程序的关键部分。许多平台允许可重用​​的代码,每个平台都有自己的独特方法。

弗兰克羊肉他是自动化咨询服务公司的创始人。本文最初发表在Automation Primer博客上。Automation Primer是CFE Media的内容合作伙伴。由制作编辑克里斯·瓦夫拉编辑,控制工程,CFE媒体,cvavra@cfemedia.com.

更多的建议

关键概念

有不同的PLC扫描的寄存器类型被更新为输出表,该输出表将用于驱动连接到PLC的物理设备。

二进制编码小数(bcd)是一类由4位或8位表示的二进制编码。

许多平台允许可重复使用的代码快速创建强大的程序,但每个都有自己的方法。

考虑一下这个

还有什么其他编程方法可用于PLC,它们为工程师提供了哪些好处?