FANUC(发那科)PMC(PLC)基础介绍27:M代码的实现方法
上一节我们介绍了译码器的使用方法,而译码器在数控机床上最常用的一个功能就是用它来制作M代码,比如冷却液的开启和关闭M08,M09,刚性攻丝M29等等。本节,我们就介绍一下M代码是如何在数控系统上实现的。
实现数控系统上M代码的制作一共只需要3步:代码译码,逻辑编程,代码完成信号输出
1、M代码译码:其实M代码译码很简单,套用固定的译码格式,然后输入我们想要制作的代码数和中间地址就可以了,见下图
M代码译码
我们只需要按照需求编辑红色方框里的内容就可以了,按照上图的内容,在加工程序中执行M03时R0.0接通,执行M4时R0.1接通,执行M5时R0.2接通......,执行M08时R0.6接通,执行M09时R0.7接通。
同样的格式,如果我们想要制作M10~M17,只需要重新指定代码号和译码地址就可以了,见下图
M代码译码
2、逻辑编程:当我们加工程序中执行到M代码时,代码所对应的中间地址就会接通,利用这个接通的中间地址,我们就可以完成PLC的逻辑编程。比如我们准备用M08来控制冷却液的开启,用M09来控制冷却液的关闭,冷却液的输出地址是Y0.0,那么冷却液的M代码控制程序如下:
M代码使用
3、M代码完成信号输出:M代码制作和逻辑编程都做好了之后,我们还要给系统一个M代码的完成信号,如果没有完成信号,那么加工程序就会一直停留在M代码行,而无法继续执行后续程序(如果发现程序光标停留在某个M代码行而不继续向下执行时,那一定是这个M代码的完成信号没有接通)。完成信号的输出,我只需要将G4.3接通即可。
M代码完成信号
将以上三部分的PLC程序组合到一起,就是一个完整的M代码制作程序。
PS:在进行M代码译码时,建议大家一定要按代码数字顺序排列号,避免译码地址重复造成PLC的逻辑错误。
高手总结分享|PLC的编程技巧汇总!拿走不谢
PLC编程是一个容易让工程师们头痛的问题。本文将从梯形图逻辑和PLC扫描、BCD码以及可复用代码3个方面详述PLC编程的小技巧。
梯形图逻辑和可编程逻辑控制器(PLC)的扫描、二进制编码的十进制数(BCD码)、以及代码复用,是CONTROL ENGINEERING编辑咨询委员会成员Frank Lamb建议在PLC编程时需要多加留心的地方。作为一家自动化咨询服务公司的创始人,他认为控制工程师们可以从这3个角度来学习PLC的编程要领。
BCD码是一种十进制数的二进制编码,其中每个数都用特定的位来表示,通常是4位或8位,这与人类计算的方式大不相同。这种割裂会给可编程逻辑控制器(PLC)的用户带来困扰。
梯形图逻辑与PLC扫描
几乎所有的PLC都以同样的方式来处理扫描。 首先,CPU将物理输入读入内存表,通常称为“输入表”。该表经评估后在程序中使用。不同平台,使用不同类型的寄存器;在每个扫描周期,按照从左向右,从上到下的顺序处理逻辑,同时更新寄存器。包括更新输出表,稍后用其驱动连接到PLC的物理设备。
为实现各种功能,程序可能会调用不同的子程序,需要注意的是调用顺序很重要。 根据内存寄存器和输出表的位置,物理输出最多可能会延迟两个周期。在任何情况下,从程序调用处开始执行所调用的子程序,子程序执行完毕,回到最初调用该子程序的主程序,继续完成最初的扫描周期。大多数程序,使用一个初始循环例程,用于调用所有其它例程。
然而,也有一些程序是固定周期运行,并不是连续运行的。 不过,这种情况并不常见。大多数程序的配置,都是以最快速度连续运行。执行完所有代码,评估逻辑,并更新所有表(扫描开始时写入的输入表除外),将生成的输出表或寄存器内容写入物理输出。
需要花费多长时间?这取决于平台(处理器速度)、程序代码量、以及所使用的指令类型。在程序中,程序员有时会使用循环处理,或者重复调用同一个子程序。所有这些都会影响PLC总扫描时间。通常,在帮助文档中都会说明不同指令的执行时间,但是并没有涉及到如何估计执行所有代码所需要的时间。基本上这些说明都太简单,只能作为参考。
有时,扫描时间可能长达80毫秒。如果扫描时间超过50毫秒(对机器控制项目而言),用户就应寻求更强大的处理器或使用更高效的代码。在机器控制项目中,如果扫描时间超过50毫秒,对输出响应的影响非常明显;对于过程控制项目而言,这可能不是特别重要。
二进制编码的十进制数
二进制编码的十进制数(BCD码),是一种二进制编码(通常用4或8位来表示)。 对我们人类来讲,需要在我们的“寄存器”中累加每位,将它们转换为十进制数,这是上帝赋予人类的编程思考方式。
早在使用触摸屏之前,7段显示器和指轮开关就被用作人和PLC之间的数字接口。 甚至更早,在使用PLC之前,这些设备也是与电路之间实现数字接口的唯一图形化设备。用户可以像在ENIAC(第一电子通用计算机)一样,移动短接片,但利用这些设备,更容易查看和调整十进制数。问题是,它们是输入/输出(I/O)密集型的。每个指轮段需要4个输入(+电源),而每个7段显示器则需要4个输出(+2个电源连接)。然而,与使用按钮和指示灯相比,它更容易与十进制数中带符号或无符号整数连接。
最常见的抱怨来自于数学方面;每个数据类型都必须显式声明,如果数据类型不匹配,则必须对其进行转换。 不仅如此,标准计时器和计数器类型还需将BCD纳入到它们的数据结构。这是因为这些数据结构,可以追溯到人们需要处理诸如指轮和7段显示器的时代。事实上,计时器设定值,仍然需要输入“S5T # 3S”来完成3秒钟的设定。定时器使用3位BCD来表征数字(12位),还需要2位BCD来表征时基。对计数器也是如此,这意味着它们的计数范围只能从-999到+999。
每一个4位区段可以代表0000到1001的数值;下一个值,不是从1010(有符号或无符号十进制的“10”或十六进制中的“A”)开始,而是直接跳到下一区段的位。这意味着最后6个位组合(A-F)实际上被浪费了——这在BCD结构中是不可能的。
在许多较新的触摸屏中,仍然使用BCD结构或基础,但大多数程序员更倾向于选择整数基来表示十进制数。BCD有点像DOS;工程学校仍然在利用它,但是人们真的不知道它是从哪里来的。参考旧指轮和7段显示,可能有助于澄清某些神秘事项和选择BCD的原因。
PLC的可复用代码,为用户提供了灵活性,并允许构建可从一个应用程序导出到另一个应用程序的结构。
PLC可复用代码的优势
国际电工委员会(IEC)在1993年时就颁布了可编程控制器的国际标准IEC 61131,其中的第三部分关于编程语言的标准,规范了可编程控制器的编程语言及其基本元素。旧的基于寄存器的系统和最新PLC系统之间的一个重要区别,就是能够构建可复用的代码块。支持平台必须具备3个基本特征:
1.局部变量与全局变量。 可复用代码必须具有可适用于每个代码实例的变量;在理想情况下,只需在原始代码中定义一次数据格式。这意味着,不需要为每个实例或调用重新定义标签或符号。多次调用子例程,并更新程序中的地址,虽然这样可以节省时间,但这实际上并不是真正的可复用代码。
2.用户自定义的数据类型(UDT)。 创建UDT允许构建结构。从一个应用程序导出的结构可以应用到另一个程序中。它们允许使用通用术语来描述组件,如“速度”、“开始”和“拒绝”。UDT不需要使用基于标签的系统,但是它们确实需要更有效的利用符号。
3.受保护的自保持程序块。 非常重要的是:代码必须包含在允许变量输入和输出的程序块中,并受到保护,这样用户就不能修改实例中的程序。如果修改,需要密码或软件密钥。
利用满足IEC标准要求的其它PLC语言来编写程序,也有助于使平台功能更强大,代码开发速度更快。不管平台是否使用具有局部变量或用户定制指令的子例程,可复用代码是快速创建功能强大程序的关键部分。许多平台都允许使用复用代码,并且每个平台都有自己的方法。
本文来自于《控制工程中文版》(CONTROL ENG
相关问答
plc模块化编程的步骤和方法?
方法/步骤1、第一步:打开GXWorks2软件,新建程序,选择你的PLC型号,然后请选择程序语言为SFC,点击确定,跳出块信息设置。标题不填写,块类型选择梯形图块,...
24V,而36接0V那报警信号怎么接到PLC输入端呢,37接X端?
按你的理解方式来说,X端电流的流向,与你COM端接的电压有关,COM端接24V时X端电流是流出,接0V是流入(这里说的电源,可以是外接的,也可以是PLC自带的24V电源...
200的plc运行模式有几种?
常见的PLC运行模式包括以下几种:1.循环扫描模式:PLC按照事先设定的程序循环扫描执行,从输入模块读取输入信号,经过逻辑处理后输出控制信号,然后再次循环执...
同型号plc能直接替换吗?
同型号PLC能直接替换吗?★同型号PLC能直接替换它们。不过新换去的PLC由于没有原来的程序,得将原来的PLC程序写进新更换的PLC中。因为更换新的PLC里面是没有程...
mc3+2如何编程?
MC3+2是一款基于STC12C5A60S2单片机的开发板,可以通过C语言进行编程。下面是一个简单的步骤,介绍如何在MC3+2开发板上进行C语言编程:1.准备必要的工具和软件...
plc配置推荐?
1、可编程控制器选择三菱FX1S系列PLC是一种卡片大小的PLC,适合在小型环境中进行控制。它具有卓越的性能、串行通讯功能以及紧凑的尺寸,这使得它们能用在以...
如何理解PLC编程中变量的概念,变量的由来和意义,以及如何使用?
如何理解PLC编程中变量的概念,变量的由来和意义,以及如何使用。首先PLC中的变量指的是内置的输入输出继电器、辅助继电器、状态、计数器、数据寄存器等各种软...
plc接线端子上写着·的端子是干什么用的?
现在的PLC,模块的大小,包括端子上的接线排也是固定大小。有些16个I/O,有些10个I/O,那么厂家不可能根据每个I/O的数量再去特意定做相应的接线排,所以他们会做...
plc定时器到达扫描周期执行过程?
在PLC编程中,定时器的到达扫描周期执行过程可以通过以下步骤实现:1.配置定时器参数:设置定时器的周期、预置值和使能等参数。这些参数决定了定时器的触发条件...
plc中db11什么意思?
PLC中DB是数据块。数据块是一组按顺序连续排列在一起的几组记录,是主存储器与输入、输出设备或外存储器之间进行传输的一个数据单位。是数据的物理记录,与数...