浔之漫智控技术-西门子PLC代理商
西门子PLC模块 , 变频器 , 触摸屏 , 交换机
6ES7211-0AA23-0XB0产品型号

6ES7211-0AA23-0XB0产品型号

一般数控机床标配有主轴,伺服轴,PLC轴也即是辅助轴。而与之相应的控制系统是CNC,PLC,变频器,伺服和电机。所以讲到PLC在数控机床上的应用就不得不联系到CNC,变频器,伺服和电机。他们是一个系统工程,一个有机的整体。

一.随着工业控制的需要及技术的发展传统的PLC(可编程可编程逻辑控制器)正在发生质的变化,有将PLC与CNC合二为一的PAC(programmable automuton cotrollor)的方向发展。使PLC不仅具有逻辑运算,算术运算,定时,计数及顺序控制,还可以提供数据传送,矩阵处理,PID调节、SSAII码操作、远程I/O、运动控制、网络通信等功能,还可以使用语言(C语言、BASIC语言)编写子程序嵌入PLC程序中运行。实质上是一种控制计算机。通过PLC提供的宏参数和CNC系统参数可在PLC和零件加工程序之间传递信息,???以完成某些特定功能。即PLC已经渗透到零件加工程序的编辑中去。
单独的PLC已经可以完成全部的CNC功能,这已经成为现实。但就目前而言,PLC主要还是在数控系统配置机床上时起一个“接口”作用,包括MST功能,诊断功能等,这种功能正在不断扩大。
PLC在数控系统的实现目前也有好几种方案:
方案一:通用PLC带数控功能
这对于需要逻辑控制又需要相对简单的位置控制的用户来说是一个很好的选择,无论是成本和开发都有很多优势,不过通用型的PLC大多没有联动和插补指令(部分产品有),并且不支持G代码,无法与CAD软件进行接口。

方案二:专用的数控系统
这种系统有很多使用PLC的平台加DSP加FPGA实现,的这种系统可以与CAD软件无缝联接,从CAD导出来的G代码在经过编缉或者不需要编缉下载到控制器内就可以做出各种对应的动作出来。该种系统对于多轴联动控制和插补G代码均有很强的支撑能力,同时一般带有显示,可以在运行时同步在显示屏上显示运动的轨迹。

方案三:IPC+数控板卡
这是国内数控厂商的主要形态,有灵活性高的优点,但很多系统不支持标准的G代码,而是要用户使用C、C++语言或者VC去编写对应的控制程序,由板卡厂商提供函数库。当然目前大多数情况下是由数控厂商代用户完成这一部分的编程。

这种开发方式的优点是显而易见的,厂商的开发成本低,灵活度高,但是需要厂商提供相当多的技术支持,如果客户数量大后很难有足够的支持能力,所以这类厂商大多都在开发通用的数控平台,并仍然使用IPC平台在上面开发通用型的数控系统。
  在中、数控机床中,PLC是CNC装置的重要组成部分。其作用是:接收来看零件加工程序的开关功能信息(辅助功能M、主轴转速功能S、刀具功能T)、机床操作面板上的开关量信号及机床侧的开关量信号,进行逻辑处理,完成输出控制功能,实现各功能及操作方式的联锁。
  PLC有两种类型,即内装型和独立型。
  PLC除了在CNC中使用外,还广泛用于治金、机械、石油化工、能源交通乃至娱乐等各行业。
  1.PLC的应用类型
  (1)顺序控制和开关逻辑控制类型。这是基本控制方式,已取代了传统的继电器逻辑控制,用于单机、多机qunkong和生产自动线。它首先对输入的开关量或模拟量进行采样,然后按用户编制的顺序控制程序进行运算,再通过输出电路去驱动执行机构实现顺序控制。
  (2)一个具有PID(比例、微分、积分)控制能力的PLC可用于过程控制,把变量保持在设定值上。
  (3)组合数字控制类型。在机械加工中,将具有数据处理功能的PLC和CNC组成一体,实现数字控制。
  (4)组成多级控制系统类型。在分层分布式控制的全自动化系统,如PMC、FMS、CIMS中,基层由中小型PLC和CNC等控制设备组成,中层由大型PLC进行单元控制与监督,上层由上位计算机做总体管理。PLC之间、PLC与上级计算机之间采用快速光纤数字通信。为适应多任务、多微处理器并进处理,实现实时控制,协调梯形图和BASIC程序之间的相互关系,以及位、字处理和I/O中断处理,还增设有联机文件管理和对执行出错的恢复等功能。
  (5)控制机器人的类型。选用PLC可对具有3-6个自由度的机器人进行控制。
  2.PLC在位置控制中的应用。PLC制造厂商提供驱动步进电动机或伺服电动机的单轴或多轴位置控制模块。用户只需通过PLC向位置控制模块设置参数及发出某种命令,位置控制模块即可根据来自现场的监测信号和PLC的命令来调整控制输出,移动一轴或数轴到达目标位置,实现准确定位。当每个轴移动时,位置控制模块能使其保持适当的速度和加速度,确保运动平滑。
  位置运动的编程可用PLC语言完成,通过编程器输入。用程序设定速度和加速度参数,控制系统可自动实现阶梯式加减速。可多点定位,并有原点补偿和间隙补偿功能,提高定位精度。可进行手动操作,实现高速点动、低速点动或微动。
  PLC的位置控制,特别适用于机床的点位直线伺服控制,常称为辅助坐标运动控制



CNC装置和机床之间的信号传送处理两个过程:
(一)、CNC装置→机床:
CNC装置®CNC装置的RAM ®PLC的RAM中。
PLC 软件对其RAM中的数据进行逻辑运算处理。
处理后的数据仍在PLC的RAM中,
对内装型PLC,PLC将已处理好的数据通过CNC的输出接口送至机床;
对独立型PLC,其RAM中已处理好的数据通过PLC的输出接口送至机床。
(二)、机床→CNC装置
对于内装型PLC,信号传送处理如下:
从机床输入开关量数据®CNC装置的RAM ® PLC的RAM。
PLC的软件进行逻辑运算处理。
处理后的数据仍在PLC的RAM中,同时传送到CNC装置的RAM中。
CNC装置软件读取RAM中数据。
对于独立型PLC,输入的步,数据通过PLC的输入接口送到PLC的RAM中,然后进行上述的第2步,以下均相同


二.接下来是运动过程控制
伺服或者变频器接受CNC,PLC命令,分别控制电压进而控制转速,控制频率来控制转速。



联系到主轴驱动系统和进给伺服系统及执行元件电机等。
1,比较一下变频主轴和伺服主轴的区别。伺服主轴的起停性能好,低速扭矩大,在进行很好的速度控制还能进行较准确的主轴停止位置的控制(主轴定位),但价格较高。
   而一般的变频主轴只能进行主轴的旋转速度的控制,且它的低速度扭矩小,电机不能在较低的速度下进行工作,如需要进行低速加工则要通过减速箱来实现,起停时间一般都较长。
这是两种不同的控制系统,前者是随动系统,后者是调速系统。
还有一般的数控机床大多会用变频主轴,一是因为相对而言价格较低,二是容易实现高速和大功率.当然,也满足大多数加工要求.
   另变频主轴也可进行对主轴的定位控制,刚性功丝等也可实现.主要是看所选主轴电机及变频器. 主轴电机带编码器,变频器加PG反馈脉冲卡就可实现.当然效果肯定是没有伺服主轴来得好.国内中心机大多这样做。
2.变频技术: 简单的变频器只能调节交流电机的速度,这时可以开环也可以闭环要视控制方式和变频器而定,这就是传统意义上的V/F控制方式。现在很多的变频已经通过数学模型的建立,将交流电机的定子磁场UVW3相转化为可以控制电机转速和转矩的两个电流的分量,现在大多数能进行力矩控制的品牌的变频器都是采用这样方式控制力矩,UVW每相的输出要加摩尔效应的电流检测装置,采样反馈后构成闭环负反馈的电流环的PID调节;这样可以既控制电机的速度也可控制电机的力矩,而且速度的控制精度优于v/f控制,编码器反馈也可加可不加,加的时候控制精度和响应特性要好很多。

伺服系统:(1)伺服驱动器 在发展了变频技术的前提下,在驱动器内部的电流环,速度环和位置环(变频器没有该环)都进行了比一般变频更jingque的控制技术和算法运算,在功能上也比传统的伺服强大很多,主要的一点可以进行jingque的位置控制。通过上位控制器发送的脉冲序列来控制速度和位置(当然也有些伺服内部集成了控制单元或通过总线通讯的方式直接将位置和速度等参数设定在驱动器里),驱动器内部的算法和更快更jingque的计算以及性能更优良的电子器件使之更优越于变频器。(2)电机方面 伺服电机的材料、结构和加工工艺要远远高于变频器驱动的交流电机(一般交流电机或恒力矩、恒功率等各类变频电机),也就是说当驱动器输出电流、电压、频率变化很快的电源时,伺服电机就能根据电源变化产生响应的动作变化,响应特性和抗过载能力远远高于变频器驱动的交流电机,电机方面的严重差异也是两者性能不同的根本。就是说不是变频器输出不了变化那么快的电源信号,而是电机本身就反应不了,所以在变频的内部算法设定时为了保护电机做了相应的过载设定。当然即使不设定变频器的输出能力还是有限的,有些性能优良的变频器就可以直接驱动伺服电机!

3.还有交流伺服和交流变频的区别其实只在于控制指标,包括稳态精度和动态性能。
先说稳态精度:交流伺服的执行单元是永磁同步电机(也有人把无刷直流系统叫做交流伺服,其原理如图:




但电机大体上与同步电机差不多,只是控制方法不同),它的特点是同步,就是说,当控制电机定子磁场的强度和矢量方向后,外力是难以改变转子(动子)的相对位置的,在额定力矩以内,无论外力怎样变化,转子都会自动产生一个回归力,一旦扰动撤消,转子矢量即回归原位。变频器不然,电机转子对定子的相对位置没有记忆,扰动后不能回位。即使加装位置传感器做位置闭环,变频器仍不能和伺服相比。原因是,在位置-速度-力矩三闭环中,变频器实现速度闭环指标比伺服差多了。不过,现在新出来的普通异步电机的伺服控制方案中,采用磁场行波控制,异步电机伺服控制也不是难事,指标也很高。不过驱动

面向对象编程是计算机语言的一种先进的编程模式,在工业控制系统的PLC程序中也可以采用这种设计思想,虽然我们无法实现面向对象的很多特点如“继承”,甚至于它根本就不具备面向对象编程语言的特点,但面向对象编程的基本概念就是类和类的实例(即对象),我们只需要使用这种概念就可以了。在计算机编程中我们需要把一些事物抽象和归纳,才能编写类,而在工业控制系统中,控制对象如:电机,阀等等是很明显的控制类别,不需要抽象就可以很明显的针对它们编写类,以下将会用到西门子的Step7编程语言和施奈德的Unity 编程语言来讲解PLC的面向对象编程。

一、 实现方式
在Step7中使用功能块(即FB)编程,一谈到此大家就会想到西门子提出的模块化编程,不错,就是这个模块化编程,但西门子提出的模块化、背景数据块、多重背景等名词并不能让大家很明白的理解和使用这种的设计理念。如果大家从面向对象编程的角度去理解,则可以很好的理解这种设计模式。“FB块”被看成“类”,它可以被看成是对相似的控制对象的代码归纳,如对MM440的变频器可以编写FB块:MtrMM440,这在面向对象编程中称为“类”,当需要编程控制具体的电机时,可以给它分配一个背景DB块,在面向对象编程中称为类的实现(即创建类的实例:对象),当需要控制多个电机时,可以分配不同的背景DB到这个FB块,即创建类的多个实例。Step7中有另外一种程序块,即FC块,以FC块为主的编程在西门子中称为结构化编程,这也可以类比于计算机编程中的面向过程编程,即纯粹以函数为主体的编程。
施奈德的Unity软件编程可以更好的理解面向对象编程。它的DFB定义中包含输入/输出参数,私有/共有变量,以及代码实现,而这正是计算机的面向对象编程中“类”的基本元素,而创建类的实例(对象)就像创建普通的“布尔”变量一样,只需在“Function Blocks”中定义这种“类”的变量即可。
Step7和Unity都可以采用面向过程和面向对象编程方式,这两种编程方式的区别类似于计算机语言中的C语言和C++语言编程的区别。
以下的讲解将会把Step7中的FB和Unity中的DFB称为“类”,Step7中的FB+背景DB以及Unity中DFB的实例称为“对象”。

二、 面向对象编程架构
以上讲解的是实现细节,而编程思想是建立在程序架构上的,不是某个局部使用了面向对象方式,则可以称之为这种编程就是面向对象编程。这种编程需要从以下方面着手:
1、 电路设计的结构化。
这里主要以自动线为主介绍,对于单机机床可以是它的简化结构,



面向对象编程并不一定要求使用以上的结构,但好的电气结构更利于面向对象编程。
2、 任何控制对象逻辑都在“类”中实现。
为了做到这点,必须分析与控制对象相关的信息,譬如,对于一个电机,有以下相关的信息需要考虑:
输入信息:





输出信息:



。。。
状态储存信息:
用于代码实现的中间变量以及可以被人机界面读出的状态变量等
把以上信息都整合到一个类中,并尽量使类的参数标准化。不过,同编程语言还是曾在一些差别,针对Step7,应该遵循的标准是:程序结构由FC实现,对象控制由FB实现,如下的一种结构体系(其电气结构来自上面的介绍):







这只不过是一个粗略的PLC程序架构体系,好的架构应该更完善和科学。

3、 规划好数据结构
数据结构的定义相当重要,并尽量统一这些结构,不要顾虑存储空间,当今的PLC内存足以容纳大量的数据。说明一点的是在Step7中尽量不要在类的外部定义数据结构(UDT),而是在类里面定义,虽然会造成不同类中同一结构的重复性定义,但却提高了类的独立性。

三、 优越性
1、 标准化
使用这种设计模式,可以将程序设计分为两个阶段,即标准库、基本架构开发,以及实际应用层面设计。其中标准库、基本架构是制定程序标准化的基础,而应用层设计是针对具体的控制工程编程,这样可以把程序设计人员分成两类,一类是标准开发,由程序员负责,一类是应用设计(其中程序调试规划到应用设计),由经过标准化培训的一般程序员完成,通过这种分配就可以解决中国工业自动化中面临的尴尬局面。传统的中国控制工业,一个程序设计由一个人完成,这样他还必须负责现场调试,而拥有丰富经验的程序员一般是三十岁后,这时他已经成家,而显然长期出差对家庭不利,很多的程序员为了家庭考虑不得不改行,要么转到管理岗位,要么去制造工厂搞设备维护,这是资源的严重流失。毫无疑问,使用以上的设计流程,我么可以让经验丰富的程序员搞标准库和架构的设计,而让刚踏入这个行业的年轻人搞应用设计和调试,这不仅可以让老程序员继续他自己的工作,而不影响家庭,也可以让年轻的程序员参入现场调试,培养自己的经验,提高自己的收入。
这可能让某些人士担心,认为年轻的程序员可以参加现场的调试吗?可以肯定的是没有标准化支撑的程序不仅年轻的程序员编不出来,而且现场调试会问题多多。但有了好的标准化后,一年半以上工作经验的程序员就应该能够独立面对自动线。
PLC中的面向对象编程的核心就是黑匣子编程,针对Step7,我们使用FB去实现每一个对象的控制,控制逻辑、报警处理、信号交换全在FB中,对于应用设计人员,不需要明白里面的代码实现,只需要了解该FB的功能以及如何使用好它就行,这样对于应用程序人员的编程能力要求大大降低,对于编程只不过是遵循架构,拷贝代码,改变输入输出条件而已。
那么调试呢?很多人认为使用FB编程的dama烦就是FB的多次调用后,根本无法诊断这些代码,从技术层面上讲确实如此,我们除了从背景DB上查看信息外,是无法在它多次被调用后监控代码的,但我已说过,这是黑匣子编程,我们不需要诊断这些代码,只需要知道什么样的输入、什么样的参数设定导致什么样的输出就行,代码的逻辑与功能好坏是由标准库开发人员负责的,这就要求标准开发人员需要对他设计的功能块在不同条件下进行不同的测试,保证无误,还需要编写完整、详尽的功能说明文档,以便于应用设计人员了解这些块,标准架构并不是制定出来就一劳永逸的,针对千变万化的工程,它是需要不断完善和修订的,这也是一个工程公司可以实实在在进行知识积累的地方。
程序不仅需要给调试人员使用,而且用户(设备维护人员)也需要了解,如果把完整的标准库文档给用户,可能曾在技术外泄的可能,若不给,对他们诊断设备可能曾在困难,这就需要标准制定人员制作另外一分文档,即设备维护文档,其知识的透漏以用户能够使用程序进行诊断为限。
2、 重用性和易管理型
计算机面向对象编程的优点也有重用性和易管理型,在PLC中也曾在,以Step7为例,需要讨论FC和FB的差异。观察数据类型,FB比FC只不过多一个“STAT”类型,在使用上FB需要背景DB,FC不需要,但就这个差别导致FB拥有自己独立的数据储存空间,而FC的数据储存却必须借助公有变量(如中间变量M或者共享DB),有这样一种准则,程序块的独立性越强,其重用性也越好,产生数据访问冲突的可能性也更少,则更易于管理。有些公司生产的PLC,其程序语言没有类似FB 的这种特性,这时可以采用类似“FC+共享DB”的替代方案解决,但它的独立性已经大大降低。
同样的代码的独立性是标准制定的一个重要环节,很难想象一个与其他功能块之间有着千丝万缕联系的功能块能够被作为标准块在不同工程中有效的重复使用。
纵观计算机语言的发展,开始的编程都是令人恐怖的,而当今的编程让人们得到很大的解脱,有很多现成的标准类库实用,人们可以把更多的编程精力放在实现功能本身上,PLC编程也应该朝这种方向发展,应该让更多的人从事应用层面的设计,那些标准功能块不应该重复的被不同人员开发,虽然各大PLC厂开发了大量的程序库,但工业控制对象各式各样,不同行业都应该拥有自己的程序库,而代码的可重用性是评价这些功能块好坏的关键。
3、 设计思想的先进性
在电路图设计中我们早已经在使用针对控制对象的绘图方式,即把基本的主配送电路和PLC配置完成后,我们会针对每一个现场控制对象如:电机、阀、气缸等控制对象绘制电路图,他们的电源来自主配送电路,控制和反馈与PLC建立连接,硬件连锁根据实际情况调整,一个个控制对象就象搭建积木一样有组织的堆积起来,同样的,编程也是针对一个个控制对象使用相应的标准控制块实现就可以,把程序控制细节实现了有效的封装,使程序看起来简洁和易于维护,而好的设计可以把原理图和程序进行很好的关联,甚至于做到一对一的关系,如原理图中的一个控制对象可以在程序中找到相应的FB调用与之对应,真正做到面向控制对象编程。

可能有人疑虑,PLC编程大部分是步进编程,这一个个标准块都是针对控制对象的,那控制顺序如何实现呢?这就要求编写专门的顺序控制FB块,或者使用Siemens现成的Graph7来实现,这点与一般编程没什么差别。

结束语:现在的工业控制领域有很多程序高手,他们很精通算法,也有着自己的编程理念,当我和一些人探讨标准化时,他们认识到标准化的高效性,但认为这样无法体现自己的编程水准,是的,如上所述作为应用层面的程序设计是不要很高的编程水平,但要想想,一个人难道能一辈子去搞现场调试吗?若想体现自己的价值,可以从事标准编程。我更希望他们能花一点时间研究程序架构,各行各业,真正的大师是系统架构设计者,编程小技巧只不过是为好的架构锦上添花。


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