6ES7317-2EK14-0AB0现货供应
什么是状态字?状态字的作用 ——西门子S7系列PLC
状态字用于表示CPU执行指令时所具有的状态。一些指令是否执行或以何方式执行可能取决于状态字中的某些位;执行指令时也可能改变状态字中的某些位,也能在位逻辑指令或字逻辑指令中访问并检测他们。状态字的结构如下:
(1) 检测位()
状态字的位0称为检测位。若位的状态为0,则表明一个梯形逻辑网络的开始,或指令为逻辑串的*条指令。CPU对逻辑串*条指令的检测(称为检测)产生的结果直接保存在状态字的RLO位中,经过*检测存放在RLO中的0或1被称为检测结果。位在逻辑串的开始时总是0,在逻辑串指令执行过程中位为1,输出指令或与逻辑运算有关的转移指令(表示一个逻辑串结束的指令)将清0。
(2) 逻辑操作结果(RLO)
状态字的位1称为逻辑操作结果RLO(Result of Logic Operation)。该位存储逻辑指令或算术比较指令的结果。在逻辑串中,RLO位的状态能够表示有关信号流的信息。RLO的状态为1,表示有信号流(通);为0,表示无信号流(断)。可用RLO触发跳转指令。
(3) 状态位(STA)
状态字的位2称为状态位。状态位不能用指令检测,它只是在程序测试中被CPU解释并使用。如果一条指令是对存储区操作的位逻辑指令,则无论是对该位的读或写操作,STA总是与该位的值取得*;对不访问存储区的位逻辑指令来说,STA位没有意义,此时它总被置为1。
(4) 或位(OR)
状态字的位3称为或位(OR)。在先逻辑“与"后逻辑“或"的逻辑串中,OR位暂存逻辑“与"的操作结果,以便进行后面的逻辑“或"运算。其它指令将OR位清0。
(5) 溢出位(OV)
状态字的位4称为溢出位。溢出位被置1,表明一个算术运算或浮点数比较指令执行时出现错误(错误:溢出、非法操作、不规范格式)。后面的算术运算或浮点数比较指令执行结果正常的话OV位就被清0。
(6) 溢出状态保持位(OS)
状态字的位5称为溢出状态保持位(或称为存储溢出位)。OV被置1时OS也被置1;OV被清0时OS仍保持。所以它保存了OV位,可用于指明在先前的一些指令执行中是否产生过错误。只有下面的指令才能复位OS位:JOS(OS=1时跳转);块调用指令和块结束指令。
(7) 条件码1(CC1)和条件码0(CC0)
状态字的位7和位6称为条件码1和条件码0。这两位结合起来用于表示在累加器1中产生的算术运算或逻辑运算结果与0的大小关系;比较指令的执行结果或移位指令的移出位状态
PLC输入信号采集示意图
,输入设备选用的是按钮SB0的常闭触点,输入继电器X0的线圈状态取决于SB0的状态。该按钮未按下时,输入继电器X0线圈状态为"1"通电状态,程序中所有X0触点均动作,即常开触点接通,常闭触点断开;若按下该按钮,则输入继电器X0线圈状态为"0"断电状态,程序中所有X0触点均恢复常态。如果输入继电器连接的输入设备是按钮SB0的常开触点,则情况恰好相反:在该按钮未按下时,输入继电器X0线圈状态为"0"断电状态,程序中所有X0触点均不动作;若按下该按钮,输入继电器X0线圈状态为"1"通电状态,程序中所有X0触点均动作。
2. 停车按钮使用常闭型
由于PLC在运行程序判别触点通断状态时,只取决于其内存中输入继电器线圈的状态,并不直接识别外部设备,因此编程时,外部设备的选用与程序中的触点类型密切相关。这是一个在对照电气控制原理图进行PLC编程时易出现的问题。典型的例子是基本控制--"起保停控制"中的停车控制。
图2 "起保停控制"电气原理图
图2为"起保停控制"电气原理图,在该系统中,按钮SB0用于停车控制,因此使用其常闭触点串联于控制线路。SBl为起动按钮,使用其常开触点。若使用相同的设备(即停车SB0用常闭触点,起动SBl用常开触点),利用PLC进行该控制,则需编程梯形图程序(图3):
图3 "起保停控制"梯形图程序(停车按钮使用常闭触点)
I/O分配:SB0--X0,SBl--Xl,输出Y0
该梯形图中停车信号X0使用的是常开触点串联在控制线路中,这是因为外部停车设备选取按钮常闭触点所致,不操作该按钮,则输出Y0正常接通,若按下该按钮,输出Y0断电。
3. 停车按钮使用常开型
若希望编制出符合我们平时阅读习惯的梯形图程序(图4),则在选用外部停车设备时需使用按钮SB0的常开触点与X0相连。
图4 "起保停控制"梯形图程序(停车按钮使用常开触点)
I/O分配:SB0--X0,SBl--Xl,输出Y0
图3、4梯形图完成相同的控制功能,程序中停车信号X0使用的触点类型却不相同,其原因就是连接在输入继电器X0上的外部停车按钮触点类型选用不同。图4所示梯形图程序更加符合我们的阅读习惯,也更易分析其逻辑控制功能,因此在PLC构成控制系统中,外部开关、按钮无论用于起动还是停车,一般都选用常开型,这是一个在使用PLC时需要格外注意的问题。
二、PLC的"串行"运行方式与控制程序的编制
PLC与继电接触器控制的重要区别之一就是工作方式不同。继电接触器控制系统是按"并行"方式工作的,也就是说是按同时执行的方式工作的,只要形成电流通路,就可能有几个电器同时动作。而PLC是以"串行"方式工作的,PLC在循环执行程序时,是按照语句的书写顺序自上而下进行逻辑运算,而前面逻辑运算的结果会影响后面语句的逻辑运算结果。因此梯形图编程时,各语句的位置也会对控制功能产生关键影响。例如:
5 程序1
程序1调试结果:X0接通3次,Y3接通,X0再接通1次,Y3断开。
6 程序2
程序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等。字元件没有触点,通常以整体内容参与控制。
可编程控制器(PLC)以其运行可靠、易学易用、抗干扰性强等特点,在工业控制中得到广泛应用。然而较多的应用只是根据工艺编制相应的梯形图,用以代替传统的继电器电器控制线路,功能非常有限。近年来各种型号的PLC 在功能上已经有了极大的提高,允许用户做许多底层操作,几乎可以象单片机一样灵活,加上有众多的外围设备可以选用,这就给软件、硬件设计带来了很大的灵活性和先进性。本文通过三菱FX2N-PLC 在一条电镀自动线上的应用,说明如何充分开发PLC 的先进功能,达到行车动作的灵活设定、动态修改的功能,以及断电恢复、通讯、新型人机界面的应用。
2 系统简介
系统采用集散控制,参见图1,上位机使用工控微机,负责工艺调度、质量管理等宏观控制;下位机使用三菱FX2N-PLC,控制行车的动作。行车吊勾(提升电镀工件用)的垂直定位采用接近开关,水平定位采用旋转编码器,垂直和水平的运动都使用变频控制普通交流异步电机来驱动,控制面板使用三菱的F940GOT 触摸屏人机界面。
3 PLC 的应用
3.1 动作表
行车动作无非就是上下左右受控移动,按照指定的顺序(即动作表)完成一系列的动作。要求有几套动作表可以选择,动作可以静态修改,也可以在运行时由上位机动态修改。这种要求若是仅用简单的梯形图是无法实现的,因为动作都是由梯形图中的触点指令实现,而梯形图指令在运行时是不能修改的。现在的FX2N-PLC 增加了许多应用指令(底层操作,相当于微机的汇编指令),以及提供了许多可供用户使用的数据存储单元,并且有间接寻址功能,这就使表结构操作成为可能。在这里,我们把行车的一个动作定义为:“到几号工位上升,再到几号工位下降”,或者是“延时几秒”,每个动作由一个字(16 位)组成,每个动作表由若干个动作字组成,放在PLC 的数据寄存器里,动作表由PLC 程序初始化,也可以在运行时通过串行通讯由上位机读取和修改,PLC 程序在运行时只是不断地解释和执行动作表。
3.2 动作的解释和执行
动作字有3 种:行车动作字、延时动作字、结束标志。
(1) 行车动作字:
动作字的高字节表示“上升所到的工位号”, 低字节表示“下降所到的工位号”,例如:“0205”表示让行车开到02 号工位,上升,再开到05 号工位,下降。
由于一个行车动作字表示的是宏动作,由:“前进或后退,水平到位,上升,上到位,再前进或后退,水平到位,下降,下到位,完成”几个微动作组成,通过FX2N-PLC 的步进阶梯指令STL 实现非常合适。我们可以把行车的宏动作分解为几个状态,在到位时进行状态转移。参见图2 的STL 状态转移图。垂直到位比较简单,用上下到位接近开关直接控制即可。
水平到位稍微复杂一些。在程序初始化时将每个工位的准确位置送到数据寄存器里,称做工位位置表,每个工位的实际位置数据通过实测得到。动作表、工位位置表、行车水平运动的关系请参见图3。运行时通过旋转编码器得到行车的当前位置,每毫米大约发3 个脉冲。在做水平动作时,先取出动作字,分离高低字节,得到目标工位号,将此工位号作为工位位置表的偏移量,用间接寻址方法得到目标工位位置,若当前位置大于目标位置则令行车后退,反之则前进,直到行车到目标位置前一个提前量时,令行车转为慢速;当行车到目标位置前另一个提前量时,令行车制动。这二个提前量都根据实际情况加以调整,慢速提前量通常为半个工位间隔,制动提前量根据实际的行车速度、惯性而定。经过调整,*终定位精度可以达到±1mm 左右。
图4 是行车水平处理子程序,在二个水平进退STL 状态中先设置好目标工位,再调用该子程序,行车就会前进或后退,直到目标位置停下来,发出完成标志M86,即可转入下一STL状态。
图4 水平处理子程序
(2) 延时动作字:
延时动作字的高字节用7EH 作为标识,低字节为延时值,如“7E30”。延时动作比较简单,取出动作字,分析一下若是延时动作,将延时值送延时定时器就可以了。以前的PLC 定时器常数在梯形图中设定,运行时不能改变,FX2N-PLC 定时器允许将数据存储器的内容作为定时值,才使在运行时改变定时常数成为可能。
(3) 结束标志:
每个动作表用7FFFH 作为结束标志,执行到结束标志表示一圈做完。若是单圈模式的话就进入停止状态,若是连续模式的话就让动作表指针重新指向表首,继续运行。
3.3 自动校正
由于旋转编码器指示的是行车的相对位置,因此在运行前应该校正一下行车的**位置。我们采取在水平方向上安装一个校正用接近开关的方法,让行车在开始运行前先朝某方向去找校正接近开关,若在3 秒钟内未碰到校正接近开关,或碰到了极限开关,就让行车朝另一方向去找。只要碰到校正接近开关,就把旋转编码器计数器置为某一个确切值,行车的位置就校正了。在以后的运行中,行车每次经过该校正接近开关,行车位置都会被再次校正,这样可以消除积累误差。
3.4 断电恢复
以前一般的电镀自动线控制系统往往没有断电恢复功能,在电镀生产线工作中如果遇到突然断电,往往结果很尴尬。即使很快又来电了,但由于看不出是在哪一步停下来的,只能从头来过,造成已经在镀的工件报废。利用PLC 的失电保存功能,我们这个系统具有断电记忆,来电恢复的功能。为实现该功能,应该整理一下所用到的寄存单元,分为要记忆和不要记忆的二部分。象STL 状态、运行模式、运行状态等都是要记忆的,而用作动作表指针的变址寄存器V、Z 无失电保存,需要用其他有失电保存的寄存器作为映象后备。一般的临时单元都不需要失电保存,每次RUN 的时候都初始化这些单元。此外还应注意的是,尽管来电后可以继续刚才的工作,但来电后自动运行起来也是有危险的。本系统是这样处理的:当RUN的时候检查一下,若原先是在运行状态下断电,则令系统处于暂停状态,等待操作者通过操作面板按下“运行”键后才继续工作。如果断电时正在做水平运动,则因PLC 已经失电,而行车的由于惯性仍有运动,造成PLC 记忆的行车位置和实际位置不符,在重新运行时应该自动校正。
3.5 通讯
FX2N-PLC 提供了比较良好的通讯机制,只要在主机上扩展一块RS232 通讯模块(FX2N-232BD)即可。FX2N-PLC 的应用指令中有完善的串行通讯指令,可以方便地使用。
在本系统中,上位机主动发送通讯串,PLC 接收到通讯串,根据通讯串中的命令号,作出相应的动作,参见图5。上位机可以让PLC 返回或修改当前的工作状态、返回或修改动作表中的动作字等,只要编制相应的软件,上位机就可以监视、控制自动线的运行。
4 控制面板
常规的控制面板由按钮、拨盘、开关、指示灯、数码管组成,我们这次使用了三菱公司的F940GOT 人机界面,它是一个带触摸屏的彩色液晶显示器,可以自由布置各种显示、控制器件,如按钮、键盘、开关、指示灯、文字、数码管、图片、进度条等,取代了所有的常规面板元件。这不仅大大节省了PLC 可贵的输入输出点,而且具有外观新颖、信息量大、使用方便、修改灵活等特点。在应用中还可以使用多屏画面,把各种显示、控制要求按功能分成多个画面,相当于多个小控制面板,再用一个封面画面负责切换。
图6 是本系统控制面板中的主控画面,具有运行模式(单步、单圈、连续)的设定和显示;运行状态(运行、暂停、停止)的设定和显示;工艺(动作表)选择;行车动作的显示;手动控制;当前行车位置的数字和图形显示;定位误差的显示;动作步的显示和修改;当前动作字的显示;动作表的查询显示等。
5 结束语
由于该电镀自动线充分开发了FX2N-PLC 的多种先进功能,并采用了较多的先进控制手段及新型的控制器件,使整个系统具有较优良的性能。经过一年多的实际运行,证明该系统是成功的。由此我们看到,由于PLC 具有许多优异的性能,并且功能也日益强大,只要深入理解这些PLC 的原理,加强二次开发,就可以在更多的领域发挥PLC 的作用。