西门子PLC程序指令注意点
- 格式:pdf
- 大小:241.47 KB
- 文档页数:6
西门子PLC编程操作及注意事项一、PLC基本概念可编程控制器(Programmable Controller)是计算机家族中的一员,是为工业控制而设计制造的。
早期的可编程控制器称作可编程逻辑控制器(Programmable Logic Controller),简称 PLC,它主要用来代替继电器实现逻辑控制。
随着技术的发展,这种装置的功能已经大大超过了逻辑控制的范围,因此,今天这种装置称作可编程控制器,简称PC。
但是为了避免与个人计算机(Personal Computer)的简称混淆,所以将可编程控制器简称PLC。
二、PLC的基本结构PLC实质是一种专用于工业控制的计算机,其硬件结构基本上与微型计算机相同。
A、中央处理器(CPU)中央处理器(CPU)是PLC的控制中枢。
它按照PLC系统成程序赋予的功能接收并存储从编程器键入的用户程序和数据;检查电源、存储器、I/O以及报警定时器的状态,并能诊断用户程序中的语法错误。
当PLC投入运行时,首先它以扫描的方式接受现场各输入装置的状态和数据,并分别存入I/O映象区,然后从用户程序存储器中逐条读取用户程序,经过命令解释后,按指令的规定执行逻辑或数字运算的结果送入I/O映象区或数字寄存器内。
等所有的用户程序执行完毕之后,最后将I/O映象区的各输出状态或输出寄存器内的数据传送到相应的输出装置,如此循环运行,直到停止运行。
为了进一步提高PLC的可靠性,近年来对大型PLC还采用双CPU构成冗余系统(如S1501\二期循环水、除盐水等系统),或采用三CPU(TS300等)的表决式系统。
这样即使某个CPU出现故障,整个系统仍能正常运行。
B、存储器存储系统程序的存储器称为系统存储器。
存储应用软件的存储器称为用户存储器。
(一) PLC常用的存储器类型1. RAM (Random Assess Memory)这是一种读/写存储器(随机存储器),其存取速度最快,由锂电池支持。
2. EPROM (Erasable Programmable Read Only Memory)这是一种可擦除的只读存储器。
PLC编程应注意七大基本原则PLC编程应注意以下基本原则。
(1)外部输入/输出继电器、内部继电器、定时器、计数器等软元件的触点可重复使用,没有必要特意采用复杂程序结构来减少触点的使用次数。
(2)梯形图每一行都是从左母线开始,线圈接在最右边。
在继电器控制原理图中,继电器的触点可以放在线圈的右边,但在梯形图中触点不允许放在线圈的右边。
如图1所示。
(3)线圈不能直接与左母线相连,也就是说线圈输出作为逻辑结果必须有条件。
必要时可以使用一个内部继电器的动断触点或内部特殊继电器来实现。
参见图2所示。
(4)同一编号的线圈在一个程序中使用两次以上称为双线圈输出。
双线圈输出容易引起误操作,这时前面的输出无效,只有最后的输出才有效。
但该输出线圈对应触点的动作,要根据该逻辑运算之前的输出状态来判断。
如图3所示,由于M1双线圈输出,所以,M1输出随最后一个M1输出变化,Y1随第一个M1线圈变化,而Y2随第二个M1输出变化。
所以,一般情况下,应尽可能避免双线圈输出。
(5)梯形图程序必须符合顺序执行的原则,即从左到右,从上到下执行,如不符合顺序执行的电路不能直接编程,例如图4所示电路不能直接编程。
(6)梯形图中串、并联的触点次数没有限制,可以无限制的使用,如图5所示。
(7)两个或两个以上的线圈可以并联输出,如图6所示。
CPM1A系列PLC具有比较丰富的指令集,按其功能可分为两大类:基本指令和特殊功能指令。
其指令功能与FX系列PLC大同小异,这里不再详述。
CPM1A系列PLC指令一般由助记符和操作数两部分组成,助记符表示CPU执行此命令所要完成的功能,而操作数则指出CPU的操作对象。
操作数既可以是前面介绍的通道号和继电器编号,也可以是DM区或是立即数。
立即数可以用十进制数表示,也可以用十六进制数表示。
可能影响执行指令的系统标志有:ER(错误标志)、CY(进位标志)、EQ(相等标志)、GR(大于标志)和LE(小于标志)等。
一、基本指令CPM1A系列PLC的基本逻辑指令与FX系列PLC较为相似,梯形图表达方式也大致相同,这里列表表示CPM1A系列PLC的基本逻辑指令(见表4-8)2.电路块串联的编程电路块串联的编程如图4-3所示,当串联的电路块多于两个时,电路块连接的指令语句方法有两种:方法1是电路块的逐块连接,方法2是电路块编写后总连接,两种编写法的指令条数相同。
PLC编程时三个注意事项
初学plc编程应注意这三个方面,少走弯路,双线圈输出丨程序的优化设计丨编程元件的位置。
1.双线圈输出
如果在同一个程序中,同一元件的线圈使用了两次或多次,称为双线圈输出。
对于输出继电器来说,在扫描周期结束时,真正输出的是最后一个Y0的线圈的状态(见图1a)。
Y0的线圈的通断状态除了对外部负载起作用外,通过它的触点,还可能对程序中别的元件的状态产生影响。
图1a中Y0两个线圈所在的电路将梯形图划分为3个区域。
因为PLC是循环执行程序的,最上面和最下面的区域中Y0的状态相同。
如果两个线圈的通断状态相反,不同区域中Y0的触点的状态也是相反的,可能使程序运行异常。
曾遇到因双线圈引起的输出继电器快速振荡的异常现象。
所以一般应避免出现双线圈输出现象,例如可以将图1a改为图2b 。
2.程序的优化设计
在设计并联电路时,应将单个触点的支路放在下面;设计串联电路时,应将单个触点放在右边,否则将多使用一条指令(见图2)。
建议在有线圈的并联电路中将单个线圈放在上面,将图2a的电路改为图2b 的电路,可以避免使用入栈指令MPS和出栈指令MPP。
3.编程元件的位置
输出类元件(例如OUT,MC,SET,RST,PLS,PLF和大多数应用指令)应放在
梯形图的最右边,宦们不能直接与左侧母线相连。
有的指令(如END和MCR 指令)不能用触点驱动,必须直接与左侧母线或临时母线相连。
使用PLC编程需要特别注意的九个问题(缺一不可)你碰到过电源板故障吗?有遇到输出和输入故障吗?程序丢失有过吗?也许你在十多年的维修路上只遇到过一次PLC输出点坏了,暂未有过其他PLC硬件出问题!也许你在电焊后就碰到了电子板的各种问题。
也许西门子200系列的编程口烧毁N多次、输出继电器粘连、晶体管输出短路等等,不一而足。
面对这些问题你是否非常头疼?据说,遵守PLC使用九大原则,能有效避免,而且还能少走弯路哦~PLC使用的九大注意事项:一、PLC自身故障判断一般来说,PLC是极其可靠的设备,出故障率很低。
PLC的CPU 等硬件损坏或软件运行出错的概率几乎为零;PLC输入点如不是强电入侵所致,几乎也不会损坏;PLC输出继电器的常开点,若不是外围负载短路或设计不合理,负载电流超出额定范围,触点的寿命也很长。
因此,我们查找电气故障点,重点要放在PLC的外围电气元件上,不要总是怀疑PLC硬件或程序有问题,这对快速维修好故障设备、快速恢复生产是十分重要的,因此笔者所谈的PLC控制回路的电气故障检修,重点不在PLC本身,而是PLC所控制回路中的外围电气元件。
二、输入输出(I/O)模块的选取输出模块分为晶体管、双向可控硅、接点型。
晶体管型的开关速度最快(一般0.2ms),但负载能力最小,约0.2~0.3A、24VDC,适用于快速开关、信号联系的设备,一般与变频、直流装置等信号连接,应注意晶体管漏电流对负载的影响。
可控硅型优点是无触点、具有交流负载特性,负载能力不大。
继电器输出具有交直流负载特点,负载能力大。
常规控制中一般首先选用继电器触点型输出,缺点是开关速度慢,一般在10ms左右,不适于高频开关应用。
三、接地问题PLC系统接地要求比较严格,最好有独立的专用接地系统,还要注意与PLC有关的其他设备也要可靠接地。
多个电路接地点连接在一起时,会产生意想不到的电流,导致逻辑错误或损坏电路。
而产生不同的接地电势的原因,通常是由于接地点在物理区域上被分隔的太远,当相距很远的设备被通信电缆或传感器连接在一起的时候,电缆线和地之间的电流就会流经整个电路,即使在很短的距离内,大型设备的负载电流也可以在其与地电势之间产生变化,或者通过电磁作用直接产生不可预知的电流。
S7-200系列的基本逻辑指令S7-200系列的基本逻辑指令与FX系列和CPM1A系列基本逻辑指令大体相似,编程和梯形图表达方式也相差不多,这里列表表示S7-200系列的基本逻辑指令(见表)。
表S7-200系列的基本逻辑指令S7-200系列PLC的比较指令在SIEMENS S7-200的编程软件STEP-7中,有专门的比较指令:IN1与IN2比较,比较的数据类型可以是B、I(W)、D、R,即字节、字整数、双字整数和实数;还可以有其他的比较式:>、<、≥、≤、<>等等。
当满足比较等式,则该触点闭合。
与LMODSOFT指令对照:在LMODSOFT中,没有直接的数的比较指令,但SUB 指令可以通过其执行减法功能后的三个输出端的状态实现整数的比较功能。
若与LMODSOFT 中的SUB指令对应,则在STEP-7中应有三个比较指令:>、=、< 来分别对应SUB 指令的三个输出;若还要对应≥、≤、或<>,则根据SUB指令三个输出端的不同组合,均可找到对应的比较指令。
比如:①(30007)>(40030)①+②(30007)≥②(30007)=(40030)②+③(30007)≤(40030)③(30007)<(40030)①+③(30007)<>(40030)S7-200系列PLC的定时器指令类型、编号及分辨率TON——接通延时TONR——有记忆接通延时TOF——断开延时3种分辨率(时基):1ms、10ms、100ms——分别对应不同的定时器号定时器6个要素:指令格式(时基、编号等)预置值——PT使能——IN 复位——3种定时器不同当前值——Txxx 定时器状态(位)——可由触点显示定时值=时基×预置值PT。
由于定时器的计时间隔与程序的扫描周期并不同步,定时器可能在其时基(1ms、10ms、100ms)内任何时间启动,所以,未避免计时时间丢失,一般要求设置PT预置值必须大于最小需要的时间间隔。
西门子S7-200 PLC指令学习S7-200系列的基本逻辑指令S7-200系列的基本逻辑指令与FX系列和CPM1A系列基本逻辑指令大体相似,编程和梯形图表达方式也相差不多,这里列表表示S7-200系列的基本逻辑指令(见表)。
表S7-200系列的基本逻辑指令S7-200系列PLC的比较指令在SIEMENS S7-200的编程软件STEP-7中,有专门的比较指令:IN1与IN2比较,比较的数据类型可以是B、I(W)、D、R,即字节、字整数、双字整数和实数;还可以有其他的比较式:>、<、≥、≤、<>等等。
当满足比较等式,则该触点闭合。
与LMODSOFT指令对照:在LMODSOFT中,没有直接的数的比较指令,但SUB指令可以通过其执行减法功能后的三个输出端的状态实现整数的比较功能。
若与LMODSOFT 中的SUB指令对应,则在STEP-7中应有三个比较指令: >、=、< 来分别对应SUB 指令的三个输出;若还要对应≥、≤、或<>,则根据SUB指令三个输出端的不同组合,均可找到对应的比较指令。
比如:①(30007)>(40030)②(30007)=(40030)③ (30007)<(40030)①+②(30007)≥②+③(30007)≤(40030)①+③(30007)<>(40030)S7-200系列PLC的定时器指令类型、编号及分辨率TON——接通延时TONR——有记忆接通延时TOF——断开延时3种分辨率(时基):1ms、10ms、100ms——分别对应不同的定时器号定时器6个要素:指令格式(时基、编号等)预置值——PT使能——IN 复位——3种定时器不同当前值——Txxx 定时器状态(位)——可由触点显示定时值=时基×预置值PT。
由于定时器的计时间隔与程序的扫描周期并不同步,定时器可能在其时基(1ms、10ms、100ms)内任何时间启动,所以,未避免计时时间丢失,一般要求设置PT预置值必须大于最小需要的时间间隔。
PLC程序详解(图文并貌)
一、时间继电器:
TON 使能=1计数,计数到设定值时(一直计数到32767),定时器位=1。
使能=0复位(定时器位=0)。
TOF 使能=1,定时器位=1,计数器复位(清零)。
使能由1到0负跳变,计数器开始计数,到设定值时(停止计数),定时器位=0。
如下图:
图1:使能=1时,TOF(T38)的触点动作图
图2:使能断开后,计数到设定值后,TOF(T38)的触点动作图(其中T38常开触点是在使能由1到0负跳变后计数器计时到设定值后变为0的)
TONR 使能=1,计数器开始计数,计数到设定值时,计数器位=1。
使能断开,计数器停止计数,计数器位仍为1,使能位再为1时,计数器在原来的计数基础上计数。
以上三种计数器可以通过复位指令复位。
正交计数器 A相超前B相90度,增计数
B相超前A相90度,减计数
当要改变计数方向时(增计数或减计数),只要A相和B相的接线交换一下就可以了。
二、译码指令和编码指令:
译码指令和编码指令执行结果如图所示:
DECO是将VW2000的第十位置零(为十进制的1024),ENCO输入IN最低位为1的是第3位,把3写入VB10(二进制11)。
三、填表指令(ATT)
S7-200填表指令(ATT)的使能端(EN)必须使用一个上升沿或下降沿指令(即在下图的I0.1后加一个上升沿或下降沿),若单纯使用一个常开触点,就会出现以下错误:
这一点在编程手册中也没有说明,需要注意。
其他的表格指令也同样。
四、数据转换指令
使用数据转换指令时,一定要注意数据的范围,数据范围大的转换为数据范围小的发注意不要超过范围。
如下图所示为数据的大小及其范围。
(1)BCD码转化为整数(BCD_I)
关于什么是BCD码,请参看《关于BCD码》。
BCD码转化为整数,我是这样理解的:把BCD码的数值看成为十进制数,然后把BCD到整数的转化看成是十进制数到十六进制数的转化。
如下图所示,BCD码为54,转化为整数后为36。
整数转化为BCD码(I_BCD)则正好相反,看成是十六进制到十进制的转化。
(2)整数转化为双整数(I_DI)
此问题需要注意的是:整数转化为双整数后,符号位被扩展,因为整数的精度小于双整数的精度,转化后,双整数除了表示整数的数值所占的位外,其余空位用符号位填充。
如整数45转化为双整数后,基二进制表示为:
2#0000_0000_0000_0000_0000_0000_0010_1101,而整数-45转化为双整数后则为:
2#1111_1111_1111_1111_1111_1111_1101_0011。
五、不要重复使用PLC输出线圈
基本逻辑指令中常开接点和常闭接点,作为使能的条件,在语法上和实际编程中都可以无限次的重复使用。
PLC输出线圈,作为驱动元件,在语法上是可以无限次的使用。
但在实际编程中是不应该的,应该避免使用的。
因为,在重复使用的输出线圈中只有程序中最后一个是有效的,其它都是无效的。
输出线圈具有最后优先权。
如图1和2所示。
图1:输出线路未重复使用 图2:输出线路未重复使用
图1所示,输出线圈Q0.0是单一使用,表示I0.0和I0.1两个常开接点中任何一个闭合,输出线圈都得电输出。
图2所示,输出线圈Q0.0是重复使用,在网络1和网络2中重复使用两次,目的和图1所示一样,要求I0.0
和I0.1两个常开接点中任何一个闭合,输出线圈得电输出。
首先需要肯定是图2所示的程序在语法上是完全正确的。
但是,Q0.0重复使用的输出线圈中,真正有效的是网络2,网络1是多余的、无效的。
也就是说,I0.0无论是闭合还是断开,都对Q0.0不起作用,Q0.0是否得电是由I0.1决定的。
这是因为PLC在一个扫描周期中,PLC输出点的刷新是在程序执行完毕后执行的,在一个扫描周期中,即使I0.0闭合,I0.1断开,在PLC程序执行网络1时,输出点Q0.0映像存储器为1,在执行网络2时,输出点Q0.0映像存储器又变为0。
程序执行完毕,PLC输出点才执行刷新,最终输出点Q0.0失电不输出。
同理,在一个扫描周期中,I0.0断开,I0.1闭合,输出点Q0.0映像存储器最终为1,在PLC输出点执行刷新时,输出点得电输出。
因此,图2所示的程序中,对Q0.0起作用的只是I0.1。
因此,在PLC编程时,重复使用数出线圈。
尽管在语法上是正确的,但是应该避免使用的。
几种置位、复位的方法和比较
位置位、复位操作方法上,有好几种方法,可以直接采用置位、复位指令,也可以采用数据传送指令、表格填充指令,甚至可以采用移位循环指令。
这几种方法在具体运用时,也要根据情况而定。
下面用一个范例来讲解他们的不同之处。
要求对Q0.0~0.7、Q1.0~1.7十六位输出进行置位、复位。
图 几种置位、复位的方法
在以上几种方法中,除移位循环指令外,其他指令比较好理解。
移位循环指令的方法,置位是对16#FFFF十六位常数左循环16位,送入输出字QW0(由Q0.0~0.7、Q1.0~1.7组成),无论16#FFFF如何循环,还是16#FFFF,16位输出。
复位采用对QW0一次扫描周期一次执行16位左移位指令,将QW0中的数据全部移出(如果是带符号位的字,连符号位也移出),输出复位。
在上面的方法中,直接采用置位、复位的方法不仅可以对字节、字、双字中的位进行置位、复位操作,也可以对不成字节、字、双字的位进行操作。
而数据传送指令、移位循环指令、填充指令只能对字节、字、双字中的位进行置位、复位操作,其中填充指令还只能对字操作。
比如单单对Q0.0~0.6七个位输出进行置位、复位,采用数据传送指令、移位循环指令、填充指令是很难实现的,此时只有采用直接置位、复位指令的方法。