产品描述
西门子6ES7223-1BM22-0XA8物优**
1、设置有关密码和保护级别
系统程序要设置有关密码或保护级别,防止因误操作或被人为改动而被破坏。
2、建立维护和定期保养的规章制度,完善岗位责任制巡回检查制度
包括建立系统设备档案(如设备一览表、系统资料、程序清单和竣工图等)采用统一的记录格式来记录系统的运行状况、故障现象和维修情况等。
3、定期清洁措施
应根据不同的应用地点、场所,制定定期清洁措施。如定期清洁和更换机柜的空气过滤网,确保机柜空气洁净和通畅,防止大量粉尘物积在处理器和I/O模块上。清洁时要注意安全,不要证污物掉入系统模块内造成模块损坏和引起系统停机。
4、定期检查
定期检查较好结合生产开停装置进行。
(1)PLC系统的检查。检查PLC的工作环境,包括供电、环境,检查系统所有模块的运行状态、锂电池的使用状态等。
(2)连接电缆的检查。检查是否连接牢固,连接处是否氧化严重,对有问题的地方进行处理。
(3)中间继电器是否有振动松脱。一次元件根据其技术参数进行定期校验和检查,确保输入准确和输出信号执行顺畅。
(4)接地和接地电阻检查。
(5)对系统的用户程序进行备份。
(6)长期处于运行状态(或长周期运行)的系统,必须在一定的时间间隔(如1年)进行全面的检查,有条件的可以做点检处理1.分析原有系统的工作原理
了解被控设备的工艺过程和机械的动作情况,根据继电器电路图分析和掌握控制系统的工作原理。
2.PLC的I/O分配
确定系统的输入设备和输出设备,进行PLC的I/O分配,画出PLC外部接线图。
3.建立其它元器件的对应关系
确定继电器电路图中的中间继电器、时间继电器等各器件与PLC中的辅助继电器和定时器的对应关系。
以上(2)和(3)两步建立了继电器电路图中所有的元器件与PLC内部编程元件的对应关系,对于移植设计法而言,这非常重要。在这过程中应该处理好以几个问题:
1)继电器电路中的执行元件应与PLC的输出继电器对应,如交直流接触器、电磁阀、电磁铁、指示灯等;
2)继电器电路中的主令电器应与PLC的输入继电器对应,如按钮、位置开关、选择开关等。热继电器的触点可作为PLC的输入,也可接在PLC外部电路中,主要是看PLC的输入点是否富裕。注意处理好PLC内、外触点的常开和常闭的关系。
3)继电器电路中的中间继电器与PLC的辅助继电器对应;
4)继电器电路中的时间继电器与PLC的定时器或计数器对应,但要注意:时间继电器有通电延时型和断电延时型两种,而定时器只有“通电延时型”一种。
4.设计梯形图程序
根据上述的对应关系,将继电器电路图“翻译”成对应的“准梯形图”,再根据梯形图的编程规则将“准梯形图”转换成结构合理的梯形图。对于复杂的控制电路可划整为零,先进行局部的转换,最后再综合起来。
5.仔细校对、认真调试
对转换后的梯形图一定要仔细校对、认真调试,以保证其控制功能与原图相符 PLC的控制方式属于存储程序控制,其控制功能是通过存放在存储器内的程序来实现的,若要对控制功能作必要修改,只需改变控制程序即可,这就实现了控制的软件化。可编程控制器的优点在于"可"字,从软件来讲,其控制程序可编辑、可修改;从硬件上讲,其外部设备配置可变。构建一个PLC控制系统的重心就在于控制程序的编制,但外部设备的选用也将对程序的编制产生影响。因此在进行程序设计时应结合实际需要,硬、软件综合考虑。本文就硬、软两方面,选取梯形图为编程语言,以松下电工FPO-C32型PLC为例,对PLC使用过程中易出现的几个问题及解决方法进行了分析。
一、外部输入设备的选用与PLC输入继电器的使用
1. 外部输入信号的采
集 PLC的外部设备主要是指控制系统中的输入输出设备,其中输人设备是对系统发出各种控制信号的主令电器,在编写控制程序时必须注意外部输入设备使用的是常开还是常闭触点,并以此为基础进行程序编制。否则易出现控制错误。
在PLC内部存储器中有**于输入状态存储的输入继电器区,各输入设备(开关、按钮、行程开关或传感器信号)的状态经由输入接口电路存储在该区域内,每个输入继电器可存储一个输入设备状态。PLC中使用的"继电器"并非实体继电器,而是"软继电器",可提供无数个常开、常闭触点用于编程。每个"软继电器"仅对应PLC存储单元中的一位(bit),该位状态为"1",表示该"软继电器线圈"通电,则程序中所有该继电器的触点都动作。输入继电器作为PLC接收外部主令信号的器件,通过接线与外部输入设备相联系,其"线圈"状态只能由外部输入信号驱动。 输入设备选用的是按钮SB0的常闭触点,输入继电器X0的线圈状态取决于SB0的状态。该按钮未按下时,输入继电器X0线圈状态为"1"通电状态,程序中所有X0触点均动作,即常开触点接通,常闭触点断开;若按下该按钮,则输入继电器X0线圈状态为"0"断电状态,程序中所有X0触点均恢复常态。如果输入继电器连接的输入设备是按钮SB0的常开触点,则情况恰好相反:在该按钮未按下时,输入继电器X0线圈状态为"0"断电状态,程序中所有X0触点均不动作;若按下该按钮,输入继电器X0线圈状态为"1"通电状态,程序中所有X0触点均动作。
2. 停车按钮使用常闭型 由于PLC在运行程序判别触点通断状态时,只取决于其内存中输入继电器线圈的状态,并不直接识别外部设备,因此编程时,外部设备的选用与程序中的触点类型密切相关。这是一个在对照电气控制原理图进行PLC编程时易出现的问题。较典型的例子是基本控制--"起保停控制"中的停车控制。 为"起保停控制"电气原理图,在该系统中,按钮SB0用于停车控制,因此使用其常闭触点串联于控制线路。SBl为起动按钮,使用其常开触点。若使用相同的设备(即停车SB0用常闭触点,起动SBl用常开触点),利用PLC进行该控制,则需编程梯形图程序
I/O分配:SB0--X0,SBl--Xl,输出Y0 该梯形图中停车信号X0使用的是常开触点串联在控制线路中,这是因为外部停车设备选取按钮常闭触点所致,不操作该按钮,则输出Y0正常接通,若按下该按钮,输出Y0断电。
3. 停车按钮使用常开型 若希望编制出符合我们平时阅读习惯的梯形图程序,则在选用外部停车设备时需使用按钮SB0的常开触点与X0相连。
I/O分配:SB0--X0,SBl--Xl,输出Y0 图3、4梯形图完成相同的控制功能,程序中停车信号X0使用的触点类型却不相同,其原因就是连接在输入继电器X0上的外部停车按钮触点类型选用不同。图4所示梯形图程序更加符合我们的阅读习惯,也更易分析其逻辑控制功能,因此在PLC构成控制系统中,外部开关、按钮无论用于起动还是停车,一般都选用常开型,这是一个在使用PLC时需要格外注意的问题。
二、PLC的"串行"运行方式与控制程序的编制
PLC与继电接触器控制的重要区别之一就是工作方式不同。继电接触器控制系统是按"并行"方式工作的,也就是说是按同时执行的方式工作的,只要形成电流通路,就可能有几个电器同时动作。而PLC是以"串行"方式工作的,PLC在循环执行程序时,是按照语句的书写顺序自上而下进行逻辑运算,而逻辑运算的结果会影响后面语句的逻辑运算结果。因此梯形图编程时,各语句的位置也会对控制功能产生关键影响。例如: 程序1调试结果:X0接通3次,Y3接通,X0再接通1次,Y3断开。 程序2程序调试结果.X0接通3次,Y3接通瞬间即断开。 上面两个程序中,输出Y3、计数器CTl02及内部通用继电器R0的逻辑条件均相同,仅仅是计数器CTl02所在语句位置发生了变化,而两段程序的运行结果就截然不同。这是因为CTl02对输出Y3的影响方式发生了变化。执行**段程序时,将首先判断输出Y3的状态,再判断CTl02的状态,CTl02的状态变化只能在下一个扫描周期对Y3产生影响;而执行*二段程序时,将首先判断CTl02的状态,再判断输出Y3的状态,CTl02的状态变化将在该扫描周期直接影响Y3的状态。从以上讨论可以得出,由于PLC采用"串行"工作方式,所以即使是同一元件,在梯形图中所处的位置不同,其工作状态也会有所不同,因此在利用梯形图进行控制程序编制时,应对控制任务进行充分分析,合理安排各编程元件的位置,才能够更为准确地实现控制。
三、PLC的编程元件
PLC的各种功能主要是通过运行控制程序来实现。编制程序时,需要合理使用PLC提供的编程元件(即软元件)。FPO型PLC中常用的编程元件有两种:位元件(bit)和字元件(word)。位元件实际上是PLC内存区域所提供的一个二进制位单元,又被称为软继电器,主要用作基本顺序指令的编程元件,如输入继电器Xn、输出继电器Yn、内部通用继电器Rn、定时(计数)器等,其参与控制的方式主要是通过对应触点的通断状态改变影响逻辑运算即输出。 字元件则为PLC内存区域内的一个字单元(16bit),主要用作功能指令和高级指令的编程元件,通常用以存放数据,如数据寄存器DTn,定时(计数)器的设定值SVn、经过值EVn等。字元件没有触点,通常以整体内容参与控制。 值得注意的是内存中的输入(X)区、输出(Y)区和内部通用(R)区,该区中的每个bit均可用作位元件,而且每16bit可构成一个字元件,如WRIO即是由16个位元件R100~R10F构成的字元件,该字元件中的内容一旦发生变化,这16个位的状态也随之发生改变。 图7所示程序中,WR0即为字元件,是左移位指令SR的编程元件,而Y0为输出软继电器的线圈,X0、X1、X2、X3则为输人软继电器的触点,其中第4步的R4触点为位元件R4的常开触点,而位元件R4又是字元件WR0中的一位,因此其状态受限于WR0的移位结果。
四、顺序控制多步同输出的编程方法
顺序控制是生产现场常见的一类控制任务,步进指令是PLC指令库中**于顺序控制的。步进指令编程时,根据工艺流程将程序划分为一个个独立的程序段,执行时,CPU严格按梯形图编程顺序,只有执行完**段程序后才能下一段程序,并在下一段程序执行之前,将程序段复位。并且在语法上要求各程序段所使用的输出不允许重复。这在解决顺序控制任务中有多步同输出的情况时,就带来了一定的困难。借助于内部通用继电器可方便解决这一难题。如某一顺序控制任务如以下流程图 从机械手动作流程图可以看出,这个控制任务每个循环的工作可以划分为八步,其中第1步与第5步动作相同,均为上升;第3步和第7步动作相同,均为下降。在利用步进指令进行编程时,这两个工步所对应的程序段的输出不能直接设置为Y3、Y4,同一个输出使用两次则会出现语法错误。这时应考虑使用用于存储中间状态的内部通用继电器Rn来解决这个问题。如图7所示梯形图程序,其中R1、R5分别被定义为第1步与第5步的输出,R3、R7分别被定义为第3步与第7步的输出,在步进结束后再将R1、R5的状态输出到上升Y3,将R3、R7的状态输出到下降Y4,通过这样的方法可方便解决顺序控制任务中若干工步输出相同的问题。
五、结束语 初学者对于PLC的基本应用易于掌握,但要做到灵活使用仍需对一些技术难点和使用技巧深刻理解。在编程之前,要对控制任务进行认真分析,合理选择外部设备和编程元件,并以此为基础进行编程;在编程过程中,如能灵话巧妙地使用编程元件,合理地进行程序编排,可使程序逻辑清楚,可读性增强。
PLC除了用于开关量控制、定时、计数的基本指令外,还有大量的应用指令,有的plc的应用指令多达数百条。
对于应用指令,初学者非常困惑,不知道哪些指令重要、哪些指令常用,应该怎样学习它们。这些指令可以分为下面几种类型:
1.属于几乎所有计算机语言都有的指令,例如数据的传送、比较、移位、循环、数学运算、字逻辑运算、数据类型转换等指令。
这类指令非常重要,它们与计算机的基础知识(例如数制、数据类型、寻址方式等)有关,应通过例子和实验了解这些指令的基本功能。学好一种型号的plc的这类指令,再学别的plc的同类指令就很容易了。
2.与顺序控制程序有关的指令。这类指令中,fx的stl指令设计得较好,用stl指令设计的梯形图与顺序功能图之间有明确的对应关系,因此易于理解和使用,设计的程序比其他方法设计的短,可以节约大量的设计时间。
s7-200的scr(顺序控制继电器)指令和欧姆龙的步指令(step/snxt)也用于编写顺序控制程序。
建议在学习这类指令之前,首先学习顺序功能图(见作者编写的plc教材)。
3.与plc的高级应用有关的指令,例如与pid控制、运动控制、高速输入/高速输出、通信有关的指令,这些指令也很重要。某些指令需要学习有关的专门知识,才能正确的理解和使用它们。
4.与plc特定的硬件、软件有关的指令,例如读写特殊模块和模拟电位器的指令,s7-300/400读取数据块长度和编号的指令等。
5.与某些特定的工程应用有关的指令。例如fx的凸轮顺控指令和旋转工作台控制指令。
学习应用指令时,可以首先按指令的分类浏览所学的plc有哪些应用指令,它们用来干什么,便于在需要的时候能找到手册或帮助中的指令说明。初学时没有必要花大量的时间去了解应用指令的详细使用方法,更没有必要记硬背它们。重点是了解指令的基本功能。
可以采用需要什么学什么的方法,重点学习读程序、编程序时遇到的和需要使用的指令,没有用到的指令暂时不管它。在阅读或编写程序时如果遇到不常用的指令,可以通过编程手册了解它们的详细使用方法。
如果编程软件有指令的在线帮助,选中指令列表或程序中的某条指令,按一下f1键,就可以看到该指令的大量细节,例如指令各参数的数据类型、可用的存储区、参数的意义,指令的功能和应用实例、指令的执行对状态字或有关标志位的影响等。
与学外语不能只靠背单词,应主要通过阅读和会话来学习一样,要学好plc的应用指令,也离不开实践。一定要在读程序和编程序的过程中学习应用指令。
有的指令实际上较少使用,它们属于“休眠”的指令,学习的时候可以不管它们。万一在读程序时遇到它们,可以通过指令的在线帮助或查手册来了解它们。
在程序初始化时将VW0清零(如果是不需要记忆的变量,直接将dVarName清零也可)或者在数据块中将VW0设置为零。
则以后需要以字类型访问变量时就用wVarName,需要以双字类型访问变量时就用dVarName。完全不需要类型转换。
本方法可以较大的减少程序语句数,使程序更简洁、可读性更好,由于不需要做耗时的类型转换,程序运行效率也得到提高。且数学运算量越大,效率提高越明显。
缺点是要多占用两字节的内存,以后程序中不能使用VW0。但S7-200的RAM空间很大,一般是用不完的,以226为例,有多达10K的RAM,偶从来没有**过1K。这些RAM都是花钱买来的,不用白不用,不用也是浪费了。
同理,如果有字节型变量经常需要与字类型变量相互转换,让字节变量占用一个字的内存宽度浪费一个字节,避免类型转换。
关于*3点"使用SET指令只执行一次即可,不必每次扫描都执行这个指令,有些工程人员忽视了这个问题,使用了常规的方法来驱动SET指令,无意中增加了PLC程序扫描运行时间"不是很理解,能不能说得细一点。
1:如果在ob里编写子程序段,是扫描的,但是如果您编写为FC调用,那么在FC的调用条件没有满足时,FC中的程序暂时不执行。这也是我所说节省时间的意思。
2:PLC的执行步数根据程序长短会不同,扫描时间会根据执行步数的不同而不同,如果用一个mov指令完成8个数字量输出的控制,当然比用8个mov指令完成8个数字量输出的控制所需要的程序步数少。
4:避免了类型转换,方法如下:
以S7-200为例,它的内存格式与我们常用的PC机正好相反,它是高字在前,低字在后的。所以我们可以将字变量放在后两个字节,在程序初始化时将前两个字节清零(程序的其它地方不得使用这两个字节)。
如我们定义符号时将字变量定义在VW2,同时保持VW0的值为零。则程序中可以用VW2以字型访问该变量,同时也可以VD0以双字型访问,避免了类型转换。
为了避免使用时混淆,较好以明确的符号定义来区分字类型和双字类型。在此强烈推荐类匈牙利命名法:以前缀指示变量类型,用首字母大写的有意义的英文单词的组合作变量名。本人习惯用以下缀:b----字节型变量(byte)
w----字型变量(word)
d----双字变量(double)
r----实型变量(real)
f----位变量(flag)
btn---自复位按钮式输入(button)
sw----切换开关或自锁按钮输入(switch)
sig---传感器、编码等电平信号输入(**)
rly---输出继电器位(relay)
……
当然,这个根据个人习惯来,没有定则,主要是利于自己区分。
如有一个字类型变量名为VarName,为使用的转换技巧,我们可以这样定义:
wVarName----VW2
dVarName----VD0
在程序初始化时将VW0清零(如果是不需要记忆的变量,直接将dVarName清零也可)或者在数据块中将VW0设置为零。则以后需要以字类型访问变量时就用wVarName,需要以双字类型访问变量时就用dVarName。完全不需要类型转换。
本方法可以较大的减少程序语句数,使程序更简洁、可读性更好,由于不需要做耗时的类型转换,程序运行效率也得到提高。且数学运算量越大,效率提高越明显。
缺点是要多占用两字节的内存,以后程序中不能使用VW0。但S7-200的RAM空间很大,一般是用不完的,以226为例,有多达10K的RAM,偶从来没有**过1K。这些RAM都是花钱买来的,不用白不用,不用也是浪费了。
同理,如果有字节型变量经常需要与字类型变量相互转换,让字节变量占用一个字的内存宽度浪费一个字节,避免类型转换
产品推荐