浔之漫智控技术-西门子PLC代理商
西门子PLC模块 , 变频器 , 触摸屏 , 交换机
6ES7217-1AG40-0XB0详细说明

6ES7217-1AG40-0XB0详细说明

一. 前言 
可编程序控制器(PLC)工业控制领域广泛应用,PLC编程成了电气工程技术人员必须掌握专业技能。可编程序控制器品牌众多,欧、美、日、韩及台湾PLC纷纷抢滩大陆,给使用者提供了多种选择同时,也给使用者带来了小小麻烦。不同品牌PLC编程电缆互不通用,买一根原装电缆往往上千元。以学习为主要目以及经常碰到不同品牌PLC技术人员来说,能够有办法花较低代价自制一根编程电缆,无疑为他们提供了方便。PLC品牌众多,但各种品牌PLC其编程接口不外乎几种型式,PLC随机提供技术手册里一般也都会提供编程口引脚定义,这就为自制编程线提供了可能。下面我就PLC编程口几种串行通信接口标准和物理结构,详细说明如何DIY一根适用编程电缆。 
二. PLC编程口型式 
编程电缆一端与PCCOM口相连,另一端与PLC编程口相连,PC端COM口均为RS232C接口,DB-9针形插头。而PLC编程口按接口标准一般可分为三种,即RS232、RS485、RS422 。按物理结构可分为五种,即八针圆口(DIN-8),九针D形口(DB-9),二十五针D形口(DB-25),RJ11口以及专用接口,其中以前两种居多,各接口引脚排列
做好编程电缆,首先要大概了解一下这三种串行通信接口标准。RS-232、RS-422与RS-485是三种串行数据接口标准,接口标准只对接口电气特性做出规定,而不涉及接插件、电缆或协议,同样一种接口标准可以有不同物理结构,如DB-9 、DB-25等。 
RS-232是PC机与通信工业中应用*广泛一种串行接口, RS-232C总线标准设有25条信号线,包括一个主通道和一个辅助通道。多数情况下只使用主通道,常用九条信号线(九针D形口),各引脚定义如表一所示。一般双工通信,仅需几条信号线就可实现,如发送数据线 TXD 和接收数据线RXD以及逻辑线GND,RS232C只能点对点通讯,传输距离短,共模抑制能力差。 
RS-485采用平衡发送和差分接收,具有抑制共模干扰能力。它使用一对双绞线,将其中一根定义为A(TXD-/RXD-),另一根定义为B(TXD+/RXD+),不需要数字线。速率100kbps及 以下时通信距离达 
1200米以上。RS-485 可以联网构成分布式系统,其允许*多并联32台驱动器和32台接收器。RS-485只能实现半双工通信。 
RS-232接口引脚定义 
25 针 9 针 缩 写 描 述 
2 3 TXD 发送数据 
3 2 RXD 接收数据 
4 7 RTS 请求发送 
5 8 CTS 允许发送 
6 6 DSR 通讯设备准备好 
7 5 GND 信号 
8 1 CD 载波检测 
20 4 DTR 数据终端准备好 
22 9 RI 响铃指示器 
表一 
RS-422接口标准主为克服RS-232接口标准通讯距离短和传输速率慢而建立。RS-422标准是一种以平衡方式传输标准,使用二对双绞线,每个信号以两根信号线来传输,即发送数据TXD+ 、 TXD- ,接收数据RXD+ 、 RXD- ,逻辑电平是由两条传输线之间电位差来决定,采用了双线传输,大大增强了抗共模干扰能力,*大数据速率可达10MbPs(传送15m时)。若传输速率降到90kbPs时,则*大距离可达1200m,可实现全双工通信。 
三. 编程电缆制作 
各厂家编程电缆作用就是将PLC端RS485、RS422格式数据转换为PC端RS232C格式数据,PLC端是RS232则按规则直接连接即可。要自制PLC编程电缆,就必须将PLC端RS485、RS422转换为PC机能够识别RS232C,PC才能与PLC通信,完成下载、上传、监控等工作,这就涉及到一个接口标准转换问题。实现接口转换有几种方法:一是用简易电平转换电路,但一种电路只能针对一种PLC,且功能不全,性能太可靠,可能会损坏PC机串口;二是用专用接口转换IC ,但业余实现起来比较复杂,不适合自制。这里我们使用一种成品通讯接口转换器,可以实现RS232/RS485/RS422转换,是专用通讯接口转换器,使用起来很方便且性能可靠,价格也比较低。 
该类产品市场上比较多,以四川德阳四星电子产品SC-485C接口转换器为例,该转换器用于RS232到RS485/RS422通讯转换,体积小巧,两个DB-9插头大小,采用串口窃电技术,不需外接电源。SC-485C结构及引脚定义如图二所示。RS232端为DB-9孔座,可以直接插PC机COM口上,RS485/RS422端为DB-9针座, RS485时使用3脚和8脚, RS422时用3脚、8脚、1脚和7脚。利用该接口转换器制作编程电缆如图三所示。左侧为SC-485C接口转换器,右侧从上而下分别为DIN-8、RJ11、DB-9和DB25插头编程电缆,电缆靠近接口转换器插头均为DB-9孔型插头,另一头均为针插头,分别对应不同物理结构PLC编程口。
接线时PLC端是RS485RS422选择对应引脚,“发送接接收,接收接发送,正接正,负接负”规律连接,SC-485C接口转换器与PLC RS485、RS422接口接线图和PC与PLC RS232接口接线见图四。
要做好一根编程电缆,要进行RS232/RS485/RS422之间接口转换外,还必须了解PLC编程口各引脚定义,是采用同一种接口标准,不同厂家PLC其引脚分布也是不相同。表二提供了几种主流PLC引脚定义,供自制时参考。未列举PLC可以查找随机技术手册,也可以到网上找一个通用型人机界面(HMI)说明书,HMI与各厂家PLC联机连线说明中可以找到市场上绝大多数PLC引脚定义。 

PLC的编程语言与一般计算机语言相比具有明显的特点,它既不同于一般**语言,也不同于一般汇编语言,它既要易于编写又要易于调试。目前,还没有一种对各厂家产品都能兼容的编程语言。 
    目前,PLC为用户提供了多种编程语言,以适应编制用户程序的需要,PLC提供的编程语言通常有以下几种:梯形图、指令表、顺序功能图和功能块图 
    1、梯形图 
    梯形图编程语言是从继电器控制系统原理图的基础上演变而来的。PLC的梯形图与继电器控制系统梯形图的基本思想是一致的,但是在使用符号和表达式等方面有一定区别。
    梯形图具有形象、直观、简单明了,易于理解的特点,特别适合开关量逻辑控制,是PLC*基本、*普遍的编程语言。 
    2、语句表(STL) 
   语句表是用助记符来表达PLC的各种功能。它类似计算机的汇编语言,但比汇编语言通俗易懂,也是较为广泛应用的一种编程语言。使用语句表编程时,编程设备简单,逻辑紧凑、系统化,连接范围不受限制,但比较抽象。一般可以与梯形图互相转化,互为补充。目前,大多数PLC都有语句表编程功能。 
    3、顺序功能图(SFC) 
    顺序功能图编程是一种图形化的编程方法,亦称功能图。它的编程方式采用画工艺流程图的方法编程,只要在每个工艺方框的输入和输出端,标上特定的符号即可。采用顺序功能图编程,可以使具有并发、选择等复杂结构的系统控制程序大为简化。许多PLC都提供了用于SFC编程的指令,它是一种效果显著、深受欢迎的编程语言,目前国际电工委员会(IEC)也正在实施并发展这种语言的编程标准。 
    4、 功能块图(FBD) 
逻辑功能图是一种由逻辑功能符号组成的功能块来表达命令的图形语言,这种编程语言基本上沿用了半导体逻辑电路的逻辑方块图。对每一种功能都使用一个运算方块,其运算功能由方块内的符号确定。对于熟悉逻辑电路和具有逻辑代数基础的人员来说,使用非常方便。

1、编程需要坚强的毅力和足够的耐心 人各有所长。有些人把编程看作一项冗长而枯燥的工作;有些人把编程看作一项趣味的智力游戏。如果你是前者,强烈建议你远离这份工作。毕竟编程工作是对人的毅力和耐心的挑战。我所在实验室中,很多学生看到我编程序就会惊讶于我面对这一堆堆符号所表现出的专注。其实,这是兴趣使然。兴趣使我具备了足够的毅力和耐心。经过无数次失败后,当看到一个个符号按我的思路整齐的排列,PLC按我的要求有条不紊的运行时,兴趣得到了极大的满足,如同打通了一个游戏的关口。所以,我告诉这些学生:你们看到的是一堆枯燥怪异的符号,我看到的却是一群热情奔放的舞者,而我则是她们的导演。 
2、编程需要敢于实践的信心 
我曾经教过一个学生学AutoCAD,我对她的唯一要求就是实践。我告诉她:你随便怎么操作,大不了一张图重画;*坏的结果是系统崩溃,没关系,系统重做,再来;只要电脑没被砸了,怎么都行。两年后,我再看到她做的CAD图纸,也自叹不如。 
同样道理,只有不断地在PLC上运行这些指令,观察运行的结果,才能弄清PLC指令的作用。很多初学者对PLC一脸的迷茫,往往是出于一种畏惧,担心损坏设备。而这些畏惧是没有任何道理的。仔细的阅读手册是非常重要的,但是仅靠读书是成不了一个工程师的。更何况手册上的内容并非面面俱到。我在接触到那些不熟悉的指令时,喜欢单独编一个小程序,让PLC运行。然后逐个修改条件,观察运行的结果(MicroWin为用户提供了非常好的监控手段),反过来再重新理解手册的描述,这样就可以非常直观的理解这些指令的作用和使用方法。不必担心自己写的程序会有什么问题,会影响PLC的正常工作。程序有没有问题,只有让PLC运行了才能发现。而发现问题并解决问题就是对自己能力的提高。撇开硬件操作不谈,单就软件来说,我还真没有遇到过由于软件问题而损坏PLC的事。在这里不必担心继电器电路接错线可能造成的后果。所以,大胆的实践是PLC编程的必由之路。 
当然,大胆实践并不是野蛮操作,而是必须遵循必要的规范。还有一个要注意的,在程序未经可靠性证实之前,千万不要挂接负载,以免造成不必要的损失。数字量的输出有LED显示;而模拟量处理可以采用一些硬件或软件模拟手段来解决。 
3、编程需要有缜密的逻辑思维 
编程本身就是一种逻辑思维过程。在**语言中,使用*多的是ifthenelse、select这些条件判别语句,这就是逻辑中的因果关系。PLC程序就是由这些因果关系组成的:判别条件是否成立,进而决定执行相应的指令。*初的PLC是用来替代继电器逻辑电路的,所以继承了继电器电路以触点作为触发条件的描述方式。在PLC中,以虚拟触点代替了继电器的金属触点,而继电器电路所表达的逻辑关系还是被完整的保留下来。即使引入了继电器电路难以胜任的数值处理过程,PLC从根本上还是在执行一个个因果关系。所以,理顺对象的各个事件之间的逻辑关系,是编程之前必须精心做好的准备工作。我在接到一项任务后,第一件事就是整理出一份逻辑关系图,与用户反复商讨,取得用户的认可,然后才真正进入程序的编写过程。 
4、不可或缺的相关知识 
PLC的程序是直接作用于对象的具体工艺过程,那么对对象具体工艺过程的理解是非常重要的的。我在与用户的交流过程中,会用我所掌握的UnitOperation的知识分析用户的工艺过程,协助用户整理过程控制中的各个逻辑关系,甚至包括各种仪表、硬件的配置。这得益于我原本所学的专业。当然,不能要求所有搞PLC程序的工程师都有我这样的经历。但是有两门知识却是不可或缺的:一是过程仪表的硬件知识,包括传感器、变送器(二次仪表)和PLC本身,这是构建控制系统的基础;二是过程控制理论,包括各种控制模型的原理和应用,其中*重要的是二位调节和PID调节模型。PID调节是目前用得*广泛的过程控制手段,且变化多端。学习PID**的方法就是读书。几乎所有讲解过程控制的书籍都有关于PID的内容,多读基本相关的书籍对理解PID是很有益处的。我发现不少网友在进入PLC领域时,缺乏这些相关知识。这并不可怕;可怕的是当事者不能静下心来弥补知识的缺陷。我们不要怪罪学校没有教授这些内容,而是要注重自己如何去学习这些知识。工作中遇到的许多问题是学校里没讲过的,这不能成为我们拒绝工作的理由,而应该以积极的态度去应对这些问题。我的体会是,为了解决工作中的问题而学习的知识,比课堂上学的东西更容易记住。 
5、养成良好的编程习惯 
每个人编程都会有不同的习惯和特点,不能强求一致。但是一些好的习惯还是应该为大多数人所遵循。一是理顺逻辑关系、时序关系,编制程序框图;二是合理分配主程序、子程序和中断程序;三是合理分配寄存器,编制寄存器符号表。 
PLC编程更接近于单片机,或者说PLC就是模块化的单片机。因此PLC的很多操作都是直接针对寄存器的,如果在程序中出现不合理的寄存器地址重叠,一定会出现不可预想的后果。编制寄存器符号表不仅可以避免上述问题(MicroWin会有问题提示),而且可以使程序具备更好的可读性。这和VB中定义变量有异曲同工之处。 
VB编程中关注的是事件,不强调主程序和子程序的观念,因为VB主程序的工作是由PC的操作系统完成的。PLC则不然。PLC程序是以主程序为主干的,CPU不断的循环执行主程序,只有触发条件成立时才会调用子程序或中断程序。即子程序和中断程序所执行的任务不是全时需要的。如果把这些任务都放在主程序中会无端增加主程序的工作量,降低程序的效率。这点和单片机的编程思路是一致的。子程序的使用可以使整个程序的逻辑更清晰。而且子程序可以分开编写、调试,*后“安装”到主程序上。这样你可以一个一个解决问题。 
PLC编程,无论是LAD,抑或STL,都不如VB那么直观、有趣,更不如CAD那么形象。但比单片机的汇编语言的可视性强多了。对于初学者,LAD(梯形图)的编程相对直观,更容易上手。 
*后,PLC提供了丰富的指令、模块,比单片机方便了很多。但是初学者编程时应尽量先使用简单的指令达到目的。尽管看上去有点土,却不失为一个入门的好途径,且对你理解那些较为复杂的指令会有帮助。具备了一定经验后,应该考虑掌握复杂指令的应用,以及程序的优化。


 PLC是专为工业自动控制而开发的装置,通常PLC采用面向控制过程,面向问题的“自然语言”编程。不同厂家的产品采用的编程语言不同,这些编程语言有梯形图、语句表、控制系统流程图等。为了增强PLC的各种运算功能,有的PLC还配有BASIC语言,并正在探索用其他**语言来编程。

   日本的FANUC公司、立石公司、三菱公司、富士公司等所生产的PLC产品,都采用梯形图编程。在用编程器向PLC输入程序时,一般简易编程器都采用编码表输入,大型编程器也可用梯形图直接输入。在众多的PLC产品中,由于制造厂家不同,其指令系统的表示方法和语句表中的助记符也不尽相同,但原理是完全相同的。在本书中我们以FANUC-PMC-L为例,对适用于数控机床控制的PLC指令作一介绍。在FANUC系列的PLC中,规格型号不同时,只是功能指令的数目有所不同,如北京机床研究所与FANUC公司合作开发的FANUC-BESK PLC-B功能指令23条,除此以外,指令系统是完全一样的。   

    在FANUC-PMC-L中有两种指令:基本指令和功能指令。当设计顺序程序时,使用*多的是基本指令,基本指令共12条。功能指令便于机床特殊运行控制的编程,功能指令有35条。

在基本指令和功能指令执行中,用一个堆栈寄存器暂存逻辑操作的中间结果,堆栈寄存器有9位(如图1所示),按先进后出、后进先出的原理工作。当前操作结果压入时,堆栈各原状态全部左移一位;相反地取出操作结果时堆栈全部右移一位,*后压入的信号首先恢复读出。

IEC1131-3为PLC制定了5种标准的编程语言,包括图形化编程语言和文本化编程语言。图形化编程语言包括:梯形图(LD-Ladder Diagram)、功能块图(FBD - Function Block Diagram)、顺序功能图(SFC - Sequential Function Chart)。文本化编程语言包括:指令表(IL-Instruction List)和结构化文本 (ST-Strutured Text)。IEC 1131-3的编程语言是IEC工作组对世界范围的PLC厂家的编程语言合理地吸收、借鉴的基础上形成的一套针对工业控制系统的国际编程语言标准,它不但适用于PLC系统,而且还适用于更广泛的工业控制领域,为PLC编程语言的全球规范化做出了重要的贡献。
   
    继电器梯形图(LD-Ladder Diagram)语言是PLC首先采用的编程语言,也是PLC*普遍采用的编程语言。梯形图编程语言是从继电器控制系统原理图的基础上演变而来的,与继电器控制系统梯形图的基本思想是一致的,只是在使用符号和表达方式上有一定区别。PLC的设计初衷是为工厂车间电气技术人员而使用的,为了符合继电器控制电路的思维习惯,作为首先在PLC中使用的编程语言,梯形图保留了继电器电路图的风格和习惯,成为广大电气技术人员*容易接受和使用的语言。梯形图程序设计语言的特点是:
   
    (1)与电气操作原理图相对应,具有直观性和对应性;
   
    (2)与原有继电器逻辑控制技术相一致,对电气技术人员来说,易于撑握和学习;
   
    (3)与原有的继电器逻辑控制技术的不同点是,梯形图中的能流(Power Flow)不是实际意义的电流,内部的继电器也不是实际存在的继电器,因此,应用时,需与原有继电器逻辑控制技术的有关概念区别对待;
   
    (4)与指令表程序设计语言有一一对应关系,便于相互的转换和程序的检查。
   
    功能块图(FBD - Function Block Diagram)采用类似于数字逻辑门电路的图形符号,逻辑直观,使用方便,它有梯形图编程中的触电和线圈等价的指令,可以解决范围广泛的逻辑问题。功能块图程序设计语言有如下特点:
   
    (1)以功能模块为单位,从控制功能入手,使控制方案的分析和理解变得容易;
   
    (2)功能模块是用图形化的方法描述功能,它的直观性大大方便了设计人员的编程和组态,有较好的易操作性;
   
    (3)对控制规模较大、控制关系较复录的系统,由于控制功能的关系可以较清楚地表达出来,因此,编程和组态时间可以缩短,调试时间也能减少;
   
    顺序功能图(SFC - Sequential Function Chart)亦称流程图或状态转移图,是一种图形化的功能性说明语言,专用于描述工业顺序控制程序,使用它可以对具有并发、选择等复杂结构的系统进行编程。顺序功能图程序设计语言有如下特点:
   
    (1)以功能为主线,条理清楚,便于对程序操作的理解和沟通;
   
    (2)对大型的程序,可分工设计,采用较为灵活的程序结构,可节省程序设计时间和调试时间;
   
    (3)常用于系统的规模校大,程序关系较复杂的场合;
   
    (4)只有在活动步的命令和操作被执行,对活动步后的转换进行扫描,因此,整个程序的扫描时间较其他程序编制的程序扫描时间要大大缩短。
   
    指令表(IL-Instruction List)编程语言类似于计算机中的助记符汇编语言,它是可编程控制器*基础的编程语言,所谓指令表编程,是用一个或几个容易记忆的字符来代表可编程控制器的某种操作功能。 指令表程序设计语言有如下特点:
   
    (1)采用助记符来表示操作功能,具有容易记忆,便于撑握的特点;
   
    (2)在编程器的键盘上采用助记符表示,具有便于操作的特点,可在无计算机的场合进行编程设计;
   
    (3)与梯形图有一一对应关系,其特点与梯形图语言基本类同。
   
    结构化文本(ST-Strutured Text)是一种**的文本语言,可以用来描述功能,功能块和程序的行为,还可以在顺序功能流程图中描述步、动作和转变的行为。结构化文本语言表面上与PASCAL语言很相似,但它是一个专门为工业控制应用开发的编程语言,具有很强的编程能力用于对变量赋值、回调功能和功能块、创建表达式、编写条件语句和迭代程序等。结构化文本程序设计语言有如下特点:
   
    (1)采用**语言进行编程,可以完成较复杂的控制运算;
   
    (2)需要有一定的计算机**程序设计语言的知识和编程技巧,对编程人员的技能要求较高,普通电气人员无法完成。
   
    (3)直观性和易操作性等性能较差;
   
    (4)常被用于采用功能模块等其他语言较难实现的一些控制功能的实施。
   
    不是所有的PLC都支持所有的编程语言(如功能块图、顺序功能图就有很多低档PLC不支持),而大型的PLC控制系统一般都支持这5种标准编程语言或类似的编程语言。还有一些标准以外的编程语言,它们虽然没有被选择进标准语言中,但是它们是为了适合某些特殊场合的应用而开发的,在某些情况下,它们也许是较好的编程语言。比如D7-SYS的连续功能图CFC就是专为大型连续工艺控制而开发,只要调用程序中的CFC功能块就可以轻易实现象PID控制器、计数器、定位器、斜坡函数发生器等一系列特殊功能,而且不需要专门的编程知识,只需要懂得图形化处理和标准程序块的使用,进行简单的设置即可。

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