浔之漫智控技术-西门子PLC代理商
西门子PLC模块 , 变频器 , 触摸屏 , 交换机
西门子6ES7231-0HF22-0XA0技术支持

西门子6ES7231-0HF22-0XA0技术支持

数控机床控制系统中并非单纯的轨迹及定位控制,往往还有一些机床的逻辑动作需要相应的控制,这就要求在机床的电气控制中既有数字控制系统NC又有逻辑控制系统PLC,两者之间实现信息交换有多种方法。本文介绍了在实际设计、研制半自动提速铁路轴承内、外滚道超精机项目中,数控系统在机床伺服电机进给数控程序和机床其他动作的PLC程序控制两者之间的通信联络方法,此方法能有效地将上述两者的控制结合起来。该机床目前已制造完成用于轴承生产加工中,实践证明,该方法简单、实用,效果良好。


1 数控系统简介

  数控系统中,执行数控NC功能的NCK软件程序和执行逻辑功能的PLC程序,需由用户根据机床的实际情况加以编制。软件设计中,主控程序是NcK软件程序;机床逻辑动作由NCK软件程序输出给PLc的辅助功能来完成。

  
1.1 输出给PLC的辅助功能

  辅助功能又称M功能或M指令,是控制机床加工操作时作一些辅助动作的开/关功能,其主要用于机床加工时的工艺性指令,靠继电器的通断来实现其控制过程。辅助功能M代码是以地址M为首后跟2位数字组成,共100种(M00一M99)。机床上的各种开关操作可以通过零件程序中的M功能指令激活。M功能在使用时,每个程序段可以有5个M指令。M指令的值从O到99,为整数。其中少数几个M指令已经由系统生产厂商设置了一些固定功能,具体参见表1,其余部分可供机床生产厂商使用。
 

                                  表1M功能表

M功能表

  
1.2 PLC向NCK传送的信号

  PLC用户程序和NcK(数控核心)之间通过不同的数据区可进行信号和数据的交换,PLC用户程序与交换无关,对使用者来说这是自动进行的。PLC/NCK的控制信号和状态信号会循环刷新。信号分为普通信号、运行方式信号、通道信号和进给轴/主轴信号。其中,在PLC-NcK的通道控制信号中,3200的PLC变量中的V32000006.1是读入使能禁止信号,其含义及使用方法如表2所示。
   V32000006.1含义及使用方法 



  从表2可以看到,当对V32000006.1置“1”,禁止下一个程序段的数据传送到插补器,这时NC程序处于停止等待状态;当对v32000006.1复位清“0”,下一个程序段的数据传输给插补器,这时NC程序开始继续执行该下一程序段,因此,通过对v32000006.1的置“1”和复位清“0”就可以实现对NC程序段的运行控制。在机床设计中,某些情况下只有结束辅助功能才可以执行下一个NC程序段,因此,这时可以通过禁止读入信号阻止程序段的自动转换执行。


2 应用实例

  半自动提速铁路轴承内、外滚道超精机的自动控制中,具有一个往复进给轴,由数控系统的进给轴输出接口控制伺服驱动系统,再由驱动系统控制交流伺服电动机,从而控制机床的进给轴往复进给运动,其余的电动机或动作由PLC输出,通过控制继电器或电磁阀来控制,其动作流程图如图1所示。

含义及使用方法

                                图1滚道超精机动作流程图

  超精机动作流程(图1)中,所有的机床动作除了往复进给运动和工作轴电动机的粗、精超启动及停止由数控程序控制外,其余所有的机床动作皆以M功能的形式由数控程序输出到PLC。从动作流程图可以看出,芯轴插人、油石跳进等动作的命令输出后,不能马上执行下一个NC程序段,需等动作到位后才能继续NC程序,这时可在PLC程序中加入传送给NCK的读入禁止命令,停止NC程序的继续向下执行,直到该动作完成后,再由PLC向NCK发出读入使能命令,NC才能继续控制程序的执行。

  这里,以油石跳进动作为例来加以说明。辅助功能M16是油石跳进命令,数控程序命令为在N20语句的程序命令中,油石跳迸命令以辅助功能M16形式给出,N30和N35语句的程序命令是进行超精加工的伺服电动机往复进给控制命令,从滚道超精机动作流程图可知,数控系统在发出油石跳进命令后,不能马上执行超精加工的伺服电动机往复进给数控动作,必须等到油石跳进到位开关动作后才能执行下面的N30和N35动作。正常情况下,NCK是一条接一条连续地读人数控程序命令并往下执行的,执行速度很快,在发出M功能指令后,NC紧接着就执行下一句程序段,这时PLC接受到的M功能指令可能还未来得及执行,数控程序已继续向下执行了。而机床要求NcK在执行完N20语句后,不能马上执行N30语句,因此,在PLC接收到NcK发来的M16命令后,可以通过PIJC梯形图(图2),首先将PLC-NcK的通道控制信号中的v32000006.1设置为读人使能禁止,禁止下一个程序段的数据传送到插补器,这样,NcK不再执行下面的N30语句,当油石跳进动作完成,油石跳进到位开关动作后,取消读人使能禁止,允许NcK读入程序即v32000006.1设置为读入使能,NcK再继续执行N30语句。

油石跣进动作相关梯形图

图2油石跣进动作相关梯形图


3 结束语

  在设计制造的半自动提速铁路轴承滚道超精机中,使用上述方法,利用PLC_NCK的通道控制信号中的PLC变量V32000006.1,即读人使能禁止信号,实现了数控系统的数控程序NC和逻辑控制程序PLc的联络,方法简单、可靠、实用。

为了扩展数控系统逻辑功能的可编程能力,通常在数控系统中配置PLC功能。并采用独立PLC或内置式PLC两种方式。但目前内置式PLC一般使用软件实现。有一套特有的编程与配置方法,这对使用者熟悉新功能提出了额外的要求。现场可编程逻辑器件FPGA具有很强的在线逻辑编程能力。常被应用于实现某些逻辑控制中。比如交通信号灯控制:近来也有用FPGA实现PLC的尝试。即将与需要实现的控制功能对应的梯形图直接做成FPGA硬连线逻辑。但这些应用都没有脱离FPGA本身的现场可编程特性。用户如需修改控制逻辑。就需要掌握VHDL语言及FPGA的EDA设计方法。否则不能提供更加友好、通用的PLC编程界面。
 

 本文介绍了一种新的数控系统中内置式PLC的FPGA实现方法。它能较好地解决上述技术难题,也便于实际应用。


1 基于ARM和FPGA的数控系统

  机床数控系统由控制系统、伺服驱动系统和伺服电机组成。控制系统生成的坐标轴运动指令,被发送到伺服驱动系统。然后由伺服驱动系统形成伺服电机的运转控制令。从而使伺服电机完成相应的动作。

 

  图1是基于ARM+FPGA的数控系统的FPGA部分结构框图,下载接口、配置器件及FPGA 3个部分组成了FPGA自身的开发调试环境。可以方便地与PC组成开发调试平台。机床控制单元MCU使用32位的ARM嵌入式处理器。运行uC/0S实时操作系统,实现控制系统的大量分析和计算工作。比如G代码解析,根据加工要求形成坐标轴的运动指令以及数控系统的人机界面等。FPGA除了完成对运动指令进行细插补之外。同时还实现了数控系统键盘电路的扫描模块、编码计数器模块和驱动器控制模块的功能。本文要介绍的数控系统内置式PLC也是在FPGA内部实现的。

数控系统中的FPGA结构框图

                              图1 数控系统中的FPGA结构框图
 

2 用FPGA实现PLC的软硬件架构

  为了有更好的人机界面。更符合工程习惯。采用与主流商业PLC兼容的编程语言进行编程。内置式PLC可以接受终用户输入的PLC指令表(一个特定的子集)。并终实现相应的逻辑控制功能。FPGA内部是硬件逻辑。显然无法识别PLC指令,因此,为了实现这种构想。必须设计一套指令集。该指令集定义了FPGA可以执行的小操作的集合。然后根据指令集来设计编译器和FPGA内部的PLC逻辑。其软硬件架构如图2所示。PLC指令被编译后,生成FPGA可执行的指令代码。然后将指令代码下载到FPGA内部,由执行逻辑对代码进行逐条执行。终实现PLC的逻辑控制功能。

基于FPGA的PLC软硬件架构

                                    图2 基于FPGA的PLC软硬件架构

  PLC核心逻辑是一个状态机。可以根据不同的输入指令执行不同的操作。在设计中。首先应确定需要执行的指令集合,即状态机的指令集设计。然后根据指令集来设计编译器和PLC逻辑功能。PLC指令编译器源程序使用C语言编写。这样。此编译器可以方便地移植到PC、ARM或别的任何支持C编程的平台上。基于图2中的软硬件架构的PLC不能独立运行。需要MCU对其进行相应的设置和辅助。如图3所示。在MCU端。需要一个专门处理与PLC接口的任务(对于多任务操作系统)或程序。

PLC逻辑的工作过程

                                         图3 PLC逻辑的工作过程

  
在MCU端,可以提供相应的PLC人机界面,提供PLC梯形图或指令表的编辑、编译甚至排错界面,当编译完成后。生成可供FPGA内部的PLC逻辑执行的“PLC中间操作码”。当要执行PLC功能时,首先MCU配置FPGA处于“代码下载状态”。并由MCU将编译后的代码下载到FPGA的RAM中:下载完成后。MCU将FPGA设置为“PLC运行状态”。开始依次读入输入和输出端口的状态。并根据所要执行的指令更新状态。后输出刷新状态。FPGA还有一个“监控状态”。此时。ARM处理器可以直接设置PLC的输入输出10寄存器的值。并可以单步运行PLC中间操作码。ARM结合返回信息。并配合相应的界面,即实现了对PLC的调试。
 

3 PLC逻辑的EDA设计方法

  新型FPGA器件及新的EDA设计软件和工具是这种数控系统内置式PLC实现方式的前提。没有EDA设计流程和方法的支撑。是很难完成相应设计工作的。

  图4是典型的EDA设计流程。主要包括设计输入、功能仿真、综合与优化、映射和布局布线以及后的下载验证等环节。EDA设计流程中。重要的环节便是仿真。因为所设计的对象在FPGA内部很难在硬件上进行测试。必须利用诸如Active—HDL。ModelSim等仿真工具进行功能仿真、综合后仿真以及布局布线后仿真。设计过程和仿真过程是交叉同步进行的。而且好设计一个模块。即对一个模块的功能进行仿真,确保其正确后,才可以集成到更高层面的设计中去。仿真的主要任务就是检验HDL是否能满足设计所提的要求。检验的方式是编写测试平台。在测试平台上给模块输入条件。观察或检验其输出。从而验证是否满足设计要求。Active—HDL的Generate TestBench功能还可以生成测试向量的模板。大大加速了设计过程。

EDA设计流程

图4 EDA设计流程
 

PLC原型机逻辑仿真结果

图5 PLC原型机逻辑仿真结果

  
掌握并正确使用EDA设计方法。是使用FPGA进行逻辑设计成功的关键。
 

4 在数控系统中的实现与分析

  基于FPGA的PLC实现方法在我们自主研发的基于ARM+FPGA的数控系统中得到了应用。形成了PLC原型机,实现了基本的PLC逻辑控制功能。能够与数控系统集成在一起。结合相应的控制界面。可以对机床的各逻辑开关量进行PLC编程控制。更重要的是。这种框架下的PLC具有开放式结构。可根据需要不断完善。实现更复杂的功能。如图5所示,PLC有2个主要状态。即输入输出刷新(pc status=0)和运行状态(pc status=1)。在pc status=0时,输入被采样,输出映像被置位:当pc status=1时,PLC开始运行,pc pointer为PLC内部指令的指针,在每个时钟周期,PLC执行一条指令,并将指令指针后移,当执行完所有指令后,outputfresh置高,允许输出映像寄存器的结果输出到端口plc io out中去。以上过程反复进行,便实现了PLC的基本逻辑功能。

  
针对数控系统中各种内置式PLC的实现方式。基于FPGA的解决方案在以下一些方面做了特别的处理:

  (1)复位问题。当FPGA一上电时,其内部的PLC逻辑即令其自身进入了一个自复位状态。此时如果没有外部MCU给予正确的操作指令。FPGA将不会进入其他任何状态。从而确保PLC不会产生任何的误动作。

  (2)响应时间。PLC程序会得到周而复始的执行,当输入状态(in image)改变时,输出状态会在下一个允许输出信号有效时(outputfresh=1)得到更新。PLC的大响应周期取决于所执行的指令条数。对于绝大多数指令而言。PLC可在每个时钟周期执行一条语句。在后一条语句执行完成后的下一个时钟上升沿输出得到刷新,同时在此刷新时钟周期内。PLC进行循环复位的初始化工作。差的情况时。输入信号在上次采集刚刚结束后发生变化。需要在下一次采样并执行完成后才能反映到输出上。即响应时间为Tresponse=(PLC指令条数+1)×2×时钟周期,本文使用的时钟周期为50ns,因此有:Tresponse=(PLC指令条数+1)×2×50ns:受FPGA内部的EAB(bbbbbded Arrav B10ck。一种专门用来综合成RAM的内部资源)数量的限制。只能综合出约2k bvte RAM(除非设置必要的控制寄存器)。当执行约有2 000条PLC指令时。大响应时间为0。2ms量级。

  对于一般以软件方式实现的PLC。多使用一个特定的任务来实现PLC逻辑控制功能。在嵌入式操作系统中。任务的上下文切换时间一般在斗s量级;而且随着系统中其他任务的就绪。PLC任务将面临被暂时挂起。在这种情形下。其响应时间将进一步变长。当然。如果使用高频率运行下的嵌入式处理器(60MHz以上),在指令条数较多时,其响应时间也可接受。但数控系统中的PLC功能一般都只实现对机床的简单逻辑控制。控制环境比较简单。指令条数有限。因此使用FPGA方式实现还是有其特有的优势的。

  (3)PLC运行阶段的可靠性。PLC是将编译后的可执行指令放到FPGA内部的RAM中运行。只要完成必要的配置。PLC便完全独立运行,不再需要外部MCU的干预。换言之,此时。即使MCU死机或程序跑飞,也不会影响正在执行中的PLC功能。因此。使用FPGA来实现PLC功能。对于tigao数控系统的整体可靠性是有优势的。

  (4)PLC指令长度的支持。由于FPGA内部的EAB资源有限,因此能够容纳的PLC指令长度有限。同时。每次PLC运行前都必须由MCU将代码下载到FPGA中。然后才可控制PLC开始运行。即FPGA不能独自实现PLC功能。为了解决这一问题,可考虑为FPGA专门配置非易失性的存储器。比如Flash。这样不但可以扩大PLC指令长度。而且还可实现上电自动运行PLC程序。甚至不需要MCU的辅助和干预,但这将需=要诸如编程器之类的部件的支持。

5 结论与展望

  本文叙述了一种新的方法——用FPGA实现数控系统内置式的PLC。并提供对标准PLC编程语言的支持,这是一个在体系结构上的大胆尝试。用FPGA实现的PLC模块相当于一个专用处理器。只不过根据PLC的特定应用场合,结合编译器的设计。可对其指令系统进行灵活的配置和架构的调整。这种实现方法还需要经过长期的应用。才能对其特性进行更广泛的检验:除了应用于数控系统中之外。这种设计方法稍加移植。便可应用于所有需要PLC功能的嵌入式控制环境中。

  在现代EDA设计方法下。使用FPGA实现PLC功能是在特定场合下行之有效的方法。随着EDA技术和EDA工具的发展。可能会出现许多新的思路和方法。比如。如果出现可以直接将PLC程序翻译成可综合的VHDL代码的工具。那就可以既便于一般用户使用。又能极大地发挥出FPGA的优势

电动机的应用几乎涵盖了工农业生产和人类生活的各个领域,在这些应用领域中,电动机常常运行在恶劣的环境下,导致产生过流、短路、断相、绝缘老化等事故。对于应用于大型工业设备重要场合的高压电动机、大功率电动机来说,一旦发生故障所造成的损失无法估量。
电动机常见的故障可分为对称故障和不对称故障两大类。对称故障包括:过载、堵转和三相短路等,这类故障对电动机的损害主要是热效应,使绕组发热甚至损坏,其主要特征是电流幅值发生显著变化;不对称故障包括:断相、逆相、相间短路、匝间短路等,这类故障是电动机运行中常见的一类故障。不对称故障对电动机的损害不仅仅是引发发热,更重要的是不对称引起的负序效应能造成电动机的严重损坏。因而,对大型电动机进行综合保护非常重要。
2 基于PLC的电动机综合保护
对电动机的保护可以分为以下几类:
在电动机发生故障时,为了保护电动机,减轻故障的损坏程度,继电保护装置的快速性和可靠性十分重要。在单机容量日益增大的情况下,电机的额定电流可达数千甚至几万安,这就给电动机的继电保护提出了更高的要求。传统的继电保护装置已经无法满足要求,因此微机保护应运而生。

PLC是用来取代传统的继电器控制的,与之相比,PLC在性能上比继电器控制逻辑优异,特别是可靠性高、设计施工周期短、调试修改方便、而且体积小、功耗低、使用维护方便。因此,本文研究了基于可编程控制器(PLC)的电动机综合监控和保护系统的方法。
3 系统硬件设计
3.1 系统的总体结构
基于可编程控制器(PLC)的电动机综合监控和保护系统的总体结构如图1所示。

基于可编程控制器(PLC)的电动机综合监控和保护系统的总体结构
3.2 PLC机型选择及扩展 选择PLC机型应考虑两个问题:
(1) PLC的容量应为多大?
(2) 选择什么公司的PLC及外设。在本系统中,包含以下输入输出点,见附表,本系统共包括12路开关量,7路模拟量。

SIMATIC S7-200系列PLC是由西门子公司生产的小型PLC,其特点是:SIMATIC S7-200系列PLC适用于各行各业,各种场合中的检测,监测及控制的自动化,S7-200系列的强大功能使得其无论在独立运行中,或相连成网络皆能实现复杂控制功能,因此S7-200系列具有极高的性能/价格比。
PLC
S7-200 CPU 224集成14输入/10输出共24个数字量I/O点,可连接7个扩展模块,大扩展至168路数字量I/O点或35路模拟量I/O点;13K字节程序和数据存储空间;6个独立的30KHz高速计数器,2路独立的20KHz高速脉冲输出,具有PID控制器;1个RS485通讯/编程口,具有PPI通讯协议、MPI通讯协议和自由方式通讯能力;I/O端子排可以很容易地整体拆卸,是具有较强控制能力的控制器。根据系统的实际情况,结合以上特点,SIMATIC S7-200 CPU 224完全可以作为本系统的主机。
CPU224可扩展7个模块,而其本身具有14输入/10输出共24点数字量,因此已无须数字量扩展模块。但由于有7路模拟量输入,故需选择模拟量输入模块。S7-200系列提供了EM231,EM232,EM235等模拟量扩展模块。根据以上技术数据,选择两个EM231作为模拟量输入模块,这样共可以扩展4×2=8路模拟量输入。
4 系统软件设计
4.1 主程序
程序开始,从输入单元检测输入量,首先判断KM是否闭合,如果闭合,说明电动机已经处于运行状态,此时应无法按下启动按钮,若KM未曾闭合,则说明电动机处于停机状态,可以按启动按钮。接着判断启动按钮是否按下,若是,则继续下面的程序,若否,则重新检测。如果按钮已经按下,则检测电动机是否启动,若是,则继续下面的程序,若否,则转入欠压保护子程序,若是电动机已经启动,则判断起动是否成功,若是,则继续下面的程序,若否,则转入起动保护。如果电动机已经正常起动,则绿灯亮。接着判断停止按钮是否按下,若否,则继续下面的程序,若是,则程序直接结束,开始下一次扫描。
如果停止按钮并未按下,即电动机仍然在运行中,则进行运行过程中的故障判断,首先检测是否发生短路故障,方法是:检测三相电流,再判断Imax是否大于整定值,若是则跳转至保护动作子程序段,电动机起动短路保护,警报响,并且短路故障指示灯亮。若否,则继续下面的程序。接着判断是否发生断相故障,方法是:检测三相电流,判断是否有某相电流为零,或者检测Umn,判断是否不为零,如果其中之一满足,则跳转至保护动作子程序段,电动机起动断相保护,警报响,并且断相故障指示灯亮。若否,则继续下面的程序。接着判断是否发生欠压故障,方法参见欠压保护子程序说明。接着判断是否发生接地故障,方法是:检测I0,若大于整定值则跳转至保护动作子程序段,电动机起动接地保护,警报响,并且接地故障指示灯亮。接着判断是否发生过负荷故障,方法是:检测三相电流,若到达整定时限后,电流仍大于整定值,则跳转至保护动作子程序段,电动机起动过负荷保护,警报响,并且过负荷故障指示灯亮。若判断未发生过负荷故障,则程序完成一次扫描,再次从条开始,进行第二次扫描,所以结束是指一个循环的结束,并不是整个程序的结束。
4.2 欠压保护子程序
在该程序段中,采集A相和C相的电压量,求出其平均值,再与整定值相比较,若小于整定值,则跳转至保护动作子程序段,电动机起动欠压保护,警报响,并且欠压故障指示灯亮。若未发生欠压故障,则直接结束本次循环。 PLC资料网
4.3 起动时间过长保护子程序
在该程序段中,采集三相电liuliang,若发现在起动过程中,电流大于整定值,或在整定时间到达后,电流仍大于另一整定值,则跳转至保护动作子程序段,起动时间过长保护动作,警报响,并且起动故障指示灯亮。
5 结束语
通过本系统设计、试验与运行,得到如下结论:
(1) 利用PLC进行电动机综合保护硬件简单可靠。
(2) 可以采用梯形图语言进行编程,简单易行。
(3) 系统运行可靠,便于检修维护。
(4) 由于采用集成综合设计,系统体积小、功耗低、使用操作方便。


展开全文
优质商家推荐 拨打电话