找回密码
 注册会员

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 534|回复: 0

扩展PLC控制系统I/O点的方法探讨

[复制链接]
发表于 2010-9-13 21:33:07 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转磨削论坛

您需要 登录 才可以下载或查看,没有账号?注册会员

×

1、引言 1 c7 I: Y q( C9 o' x6 i

    可编程序控制器(Programmable Logic Controller)简称为PLC,它具有可靠性高、抗干扰能力强等突出优点,因而广泛应用于工业控制领域,已经成为现代工业自动化的主要支柱之一。在PLC控制系统的设计中,经常会遇到I/O点资源紧张以及性价比矛盾的问题。有些被控设备需要具有手动、自动的工作方式,且手动部分控制按钮较多;有些自动生产线中,进行位置检测的行程开关或者用于系统工作状态指示的输出比较多,都会使占用的I/O点大为增加。一般通过增加扩展模块来解决,但PLC的I/O点价格昂贵,且还有扩展模块数目和I/O点数目的限制,如SIEMENS的CPU 226最大扩展模块数目为7,最大扩展168路数字量I/O点或35路模拟量I/O点。若此时再增加CPU,势必使得系统性价比大为降低,在这种情况下,扩展I/O点数具有较大的实际意义。本文以SIEMENS的S7-200 PLC为例,探讨如何扩展PLC控制系统中I/O点数的方法。 

# Y+ w/ k$ q ^: F! ?% b

    2、硬件电路I/O点扩展方法

0 ?" \3 N6 M* H. h% ?/ s

    2.1 分时分组输入

" S/ t6 L( A- S* {. d

    对于既有手动方式又有自动方式,而二者不可能同时执行的PLC工作方式,不同工作方式的输入可以共用一个PLC的输入点。分时分组输入扩展I/O点数接线图如图l所示。I1.0用来输入自动/手动命令信号,供自动和手动程序切换用;二极管用来切断寄生电路,避免错误信号的产生;SA用来切换自动和手动操作方式。 

' c. T8 a* A3 u/ X

4 u! C% E- i* y1 F: C$ D) G

图1 分时分组输入接线图

8 g# O' z7 ^# }8 h4 U/ m% `9 v1 c, e

    2.2 共用输出触点

7 u8 a5 Y% |: N% d

    对于通断状态完全相同的负载,在输出点功率允许的情况下,可以并联于同一输出点上,即用一个输出点带动多个负载,需特别注意的是不能超出每个输出点的允许负载能力。接线方式如图2所示。 

9 e5 _6 Q) p2 u' ]( i7 K: b/ j

! M# z) G7 p0 L

图2 共用输出点接线图

7 ]7 P9 l# V/ c, } v! ^

    2.3 合并输入触点

4 r8 K$ w9 {+ z4 z8 j) T0 }

    对于一个由如图3所示的按钮和接触器实现的电动机多点起动、停止的控制要求,例如可在三处实现启动和停止,其中,SB1、SB2、SB3为起动按钮,SB11、SB12、SB13为停止按钮。可以将每个按钮接PLC的一个输入点,很容易便可实现。若PLC的输入点较为紧张,则可以用图4所示的方式接线,与每个按钮占用一个输入点的方式相比,该方法的软件编程更为简单。

, {! ^; T5 o2 l" N4 O

7 ]0 \+ r) e! v: S

图3 电动机电气控制原理图 

! x* i! r" h3 _

' a1 D" G) p- m) `5 e4 s. Q1 ~

图4 电动机PLC控制接线图  

, V; L. U( R( \6 c1 D" s

   3、软件编程I/O点扩展方法

e2 G0 s" j2 l% i& @

    软件扩展的基本思想是一点两用或轮序复用。即当按钮初次按下时,输出要求为高;当按钮再次按下时,输出要求为低;再按下时又为高,依此类推。这样就可以节省一个输入点,当系统有较多开关量控制时可节省较多输入点,如主机ON和主机OFF,纸料座上和纸料座下,都可以只用一个输入点来控制。实现“一点两用”的编程方法较多,如利用内部辅助继电器、定时器、计数器、移位指令等,本文仅介绍几种简便方法。

k. d, A. l8 i2 ?& Y; e5 R

    3.1 利用边沿检测、输出指令

) t' {1 P3 D- @ u$ f

    若按钮SB连到I0.0上,输出控制Q0.0,利用边沿检测和输出指令实现“一点两用”,用STEP7 V5.3编制的STL程序如下。

' q" U+ Y+ T# N6 {

    A     I0.0
    FP    M0.0
    =     M0.1
    A     M0.1
    A     Q0.0
    =     M0.2
    A(
    O     M0.1
    O     Q0.0
    )
    AN   M0.2
    =     Q0.0

0 v" p, {9 h& _% k% Z$ y: W

    程序说明:当第1次按下按钮SB时,I0.0的常开触点闭合,在RLO边沿检测指令FP的作用下,辅助继电器M0.1接通一个扫描周期,从而输出继电器Q0.0的线圈得电,且Q0.0构成自锁(保持)电路,同时Q0.0另一对常开触点闭合,为M0.2接通做准备;当第2次按下按钮SB时,在FP指令的作用下,M0.1的常开触点接通M0.2的线圈回路,M0.2的常闭触点切断了PLC的输出,从而实现一点两用。

8 Y/ J3 W% ^3 @! S! e

    3.2 利用边沿检测、跳转指令

9 V0 c, X5 O; R9 [+ h

    若利用边沿检测和跳转指令,实现起来较为简便,其STL程序如下。

4 [: K* I( U4 b* o7 ]

    A  I0.0
    FP M0.0
    JNB OUT
    AN Q0.0
    =  Q0.0
    OUT:  NOP0

( _4 \9 k( B& F o X1 C

    程序说明:第4、5个语句的功能是实现Q0.0的自取反,但若没有前面的跳转指令,则程序每个扫描周期都会将Q0.0的状态取反一次;第1、2句的作用是限定只有当I0.0的上升沿到时取反一次,否则跳出取反程序段,从而实现一点两用。

' [. B J7 J/ c. e

    3.3 利用边沿检测、异或指令

/ H% g6 Y! P o; R4 u$ t* R3 u

    若利用边沿检测和异或指令实现起来更为简便,程序如下。

. w0 [9 a4 ?4 o; t

    A     I 0.0
    FP    M0.0
    X     Q0.0
    =     Q0.0

. U; t8 d, }; I& m$ j

    程序说明:当第1次检测到I0.0的上升沿,此时Q0.0为0,所以异或后输出Q0.0为1,第2个扫描周期来时,已经不是I0.0的上升沿了,因此为0,然而此时Q0.0确为1,所以异或后保持结果仍为1;第2次检测到上升沿时,Q0.0为1,异或后输出Q0.0的结果为0,等到下一个扫描周期到时,已经不是上升沿了,而此时Q0.0还是为0,因此异或保持输出仍为0。

4 \+ R& G# S! y* x, p$ u

  4、硬件和软件结合I/O点扩展方法

: ?; W! G! p7 x( ?* _ v

    4.1 硬件编码和软件译码,扩展输入点

4 H$ [$ ^5 c1 V: o

    在控制系统输入信号较多的情况下,可以利用编码器对输入信号编码,然后引到PLC的输入端,再通过PLC内部程序配合进行译码,对各个输入信号加以识别,可以大大减少对输入点的占用。PLC的外部接线如图5所示。由于普通编码器在有多个信号同时输入时会出现乱码,故可采用8线-3线优先编码器74LS148,设定好信号的优先权,有时还要将编码器的选通输出端和扩展端也接入PLC中,配合程序减少误判断。另外,还要注意的是电平的匹配问题(信号电路的+5V和PLC的+24V之间)以及PLC的输入口对信号识别所要求的技术规范(驱动电流和电压能识别的范围),有时还需增加适当的信号放大和隔离电路。 

9 _' e$ w( {% Q5 ]# {6 S; i

* i |2 {' W m f

图5 硬件编码接线图 

6 M- b* j9 D" w5 Y

    下面以按钮SB2按下为例,说明PLC内部软件译码的程序识别方法。由74LS148的功能表可知,该芯片低电平有效,因此图5中用3个非门将输出电平转换成正逻辑。若SB2按下,无论SB0和SB1是否按下,但SB3~SB7均未按下;此时,ABC的输出为101,经过非门后I0.0,I0.1,I0.2的状态分别为0,1,0;对应的STL译码程序如下。

0 D* J% [1 L) ~% y" A$ ^% ^

    LDN I0.0
    A  I0.1
    AN I0.2
    =  M0.2

8 c) Q- m d/ Z3 k0 G

    这样,笔者在程序里用M0.2的常开触点代替了按钮SB2。即当按钮SB2按下,M0.2为1;SB2弹起,M0.2又为0,从而实现了软件译码的功能。另外需要指出,该方法在PLC的每一个扫描周期只能读入8个输入中的一个输入状态,若有2个以上开关闭合,PLC只能检测出优先权高的那个信号。

& J, {8 ^, q9 Z0 g3 j

  4.2 软件编码和硬件译码,扩展输出点

+ H9 s7 p5 d% O5 \. V# o# k- v

    在控制系统输出信号较多的情况下,可以通过PLC的内部程序对输出信号进行编码,然后通过硬件译码器进行译码,驱动负载工作,这可以大大的减少对输出点的占用。PLC的外部接线如图6所示,采用3线-8线译码器74LS138。此时,同样存在电平匹配的问题,即PLC的直流模块典型输出为+24V,而信号电路的工作电压一般为+5V,因此,有时同样需要增加信号电路以及功率放大电路以驱动负载工作。 

h" ?9 V# z) m& N& W) a! M

% m( O8 t9 h6 o m9 _* R9 N

图6 PLC接线图 

! g0 b5 m* B" f* R, ~& i

    下面以如何让Q2为1为例,说明PLC内部软件的编码方法。由74LS138的功能表可知,若要使输出Q2为1,应该使Y2输出为0;即对应的ABC应该为010,从而得到只要让PLC的Q0.0,Q0.1,Q0.2分别为0,1,0即可;对应的STL编码程序如下,其中M1.2为置位输出Q2的条件。

4 y& t& J7 [2 o! j8 }8 L

    LD     M1.2
    S      Q0.0, 1
    R      Q0.1, 1
    S      Q0.2, 1

& W3 y9 W* n6 o- e4 p

    这样,只需对Q0.0,Q0.1,Q0.2进行组合就可以实现对输出Q0~Q7分别置为1。本方法存在一个明显的缺点,即每一个扫描周期只能输出八种状态中的一种,若要同时置位输出Q0和Q1是不能实现的。

+ O! p( @6 l: s/ V' E

    4.3 用N个输入点识别N×(N+1)/2个输入信号

1 G9 c# A* e9 g) c

    若我们将输入信号接成图7的形式,再配合以软件编程便可以实现用3个输入点识别3×(3+1)/2=6个输入信号。其基本思想是:当SB1按下时,PLC只检测到了I0.0为“1”,此时I0.1和I0.2的状态均为“0”,那么在程序里就将I0.0的常开触点和I0.1、I0.2的常闭触点相与来识别SB1的状态;若SB2按下时,I0.0和I0.1均为“1”,I0.2为“0”,此时识别程序应该为I0.0和I0.1的常开触点与上I0.2的常闭触点;其它点的情况类似,输入信号SB1和SB2的STL识别程序如下,其中,M2.1、M2.2的状态就代表了信号SB1、SB2的状态。

0 O& u; X; E- y% J. j1 h8 N& `1 e; x; C

    LD     I0.0
    AN     I0.1
    AN     I0.2
    =      M2.1    //信号SB1的识别
    LDN    I0.0
    A      I0.1
    A      I0.2
    =      M2.2    //信号SB2的识别

' E, \5 u+ f* d: ^9 l- i

    需要指出:这种方法不能识别2个及2个以上的信号同时为1的情况,如SB1和SB3同时接通,程序会把它当成SB2接通的情况识别。图7中二极管的作用是为了隔断寄生电流形成通路。其实,用3个输入点最多可以7个信号的识别,如果在图7中再加一个SB7,用3个二极管连到I0.0、I0.1、I0.2上,则可以通过将3个点的常开触点相与来识别SB7,但这样过于繁琐,因此一般不采用。

* b" U3 ~% o, }

, @% A" Q: N+ f4 h. ~% {

图7 硬件接线图  

, Z0 ^: C! N* a

    4.4 用输入/输出口组成矩阵式键盘

7 w4 } _7 g3 z6 m( o3 C

    若控制系统需要设计键盘,常规的思路是每个按键接一个输入口。然而,当键数增加时,极为浪费输入点,因此仿照微机系统中制作矩阵式键盘的思路,在PLC系统中利用I/O点组成矩阵式键盘,如图8所示为3×3键盘结构图。编程思路:首先,判断整个键盘上有无键按下,方法是将行全输出为1,然后读入列的状态,如果列读入的状态全为0,则无键按下,不全为0则有键按下;其次,逐列扫描,方法是依次将行线送1,检查对应列线的状态,若列线全为0,则按键不在此行;若不全为0,则按键必在此行,且是与1电平列线相交的那个键。由此可见,对应的软件编程比较复杂,但是在有些小型的控制系统中可以避免增加操作屏或触摸屏,从而提高系统性价比。若需要详细的硬件设计图和软件程序可与作者联系。 

$ ^- Q- U1 S M! C0 G5 J$ f

6 H- I6 _/ N- E# Q8 m* h

图8 3×3键盘结构图 

4 B6 N& d* W1 _+ F) Y& `8 f. x

    5、结束语

( }# `3 a8 m5 s3 S

    本文从硬件设计、软件编程以及硬件软件结合三个方面探讨了扩展PLC I/O点的方法。在具体应用时,还需考虑每种扩展方法的一些优缺点以及抗干扰能力等问题。若能合理的利用这些方法,必能有效的节省PLC的I/O点数,降低系统成本,提供性价比,更为充分的发挥PLC的优势。

( q$ G3 N7 q' S$ r: K) b& d
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

中国磨床技术论坛
论 坛 声 明 郑重声明:本论坛属技术交流,非盈利性论坛。本论坛言论纯属发表者个人意见,与“中国磨削技术论坛”立场无关。 涉及政治言论一律删除,请所有会员注意.论坛资源由会员从网上收集整理所得,版权属于原作者. 论坛所有资源是进行学习和科研测试之用,请在下载后24小时删除, 本站出于学习和科研的目的进行交流和讨论,如有侵犯原作者的版权, 请来信告知,我们将立即做出整改,并给予相应的答复,谢谢合作!

中国磨削网

QQ|Archiver|手机版|小黑屋|磨削技术网 ( 苏ICP备12056899号-1 )

GMT+8, 2025-3-1 08:34 , Processed in 0.165366 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表