找回密码
 注册会员

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 509|回复: 0

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

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

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

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

×

1、引言 ' _- O$ O% ^0 E* d5 ]

    可编程序控制器(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点数的方法。 

- S3 q7 B. M4 d

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

7 e+ ]* V& U: `5 V

    2.1 分时分组输入

9 p; v9 u) H" l4 a4 N

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

K! i5 v( U4 u

3 [2 i+ [ e4 ?0 D( d2 b- e

图1 分时分组输入接线图

7 e1 E# T$ J; ~" P, C4 p+ U+ p; f

    2.2 共用输出触点

+ `# E' d5 _+ F: G

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

% c5 p2 a1 m% A5 k

, Y, Y$ H, w, D6 H+ z6 y: ^

图2 共用输出点接线图

, E- V( c! h/ {3 ^9 K1 V. P

    2.3 合并输入触点

! k& o$ K1 T1 H, w; i @7 \. R% _

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

- k) }# }2 u/ G! ^7 ?; R

G: i) K8 s ?# n. ^

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

( ~4 A A) d: K( H3 |9 V: j

% m3 N9 C8 \2 o7 f; g& S7 A

图4 电动机PLC控制接线图  

0 J& h1 C& |1 q! s$ d9 v

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

# y3 G- y* _1 J0 I9 H' x* u

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

/ T1 O9 Y) W, G4 i( k( u) }7 S

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

8 N2 I0 g2 W& u0 K& b% y

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

$ i s1 @0 s" u- J1 K5 j& {

    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

" g+ ]) g: A* D& Z9 d: R

    程序说明:当第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的输出,从而实现一点两用。

( z ]- \' r9 W' h$ M

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

- r r. N. X% F- z% c

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

" B0 U# Z3 }; U3 B( N9 v

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

) _0 m: A& b% D3 `1 T+ W. j

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

q/ r9 P e+ J! D! g2 f

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

~/ f2 V% W# y: D' d

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

" T d# p. J6 d

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

: P! k# Z- Q- n) u

    程序说明:当第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 J) p) R) e- ^

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

7 w! f: t G0 I1 G: j

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

& O' t, O4 x0 }1 f

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

# h$ G* ~, C8 C( ~- @

: @6 p" Z- H% d( i& V1 _

图5 硬件编码接线图 

" L6 @2 i6 F8 H% L/ p: L4 O

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

: x# a/ U' V v* V+ C

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

0 \: e. x5 ^; u6 w1 M% ~

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

" V F5 x9 U6 v' Z8 E' F: C$ A

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

( R. Q6 p0 l6 a

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

8 I V. N. \8 b/ H) F7 s+ G

7 m! T( n/ B- A) e( M# Y

图6 PLC接线图 

, B$ {! J4 j8 ?9 s: z5 [1 j

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

" ^& u' k% r6 P7 ?/ Q6 B( C, `

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

8 S+ d& r# i# h+ h7 s7 Q4 _

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

* |( S c( D7 N* ?

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

, ?+ R3 V. j0 r+ k, c& d9 B; j

    若我们将输入信号接成图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的状态。

! [* j5 A# F( J' N* L o, ~; n

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

6 O- X+ g" z% ^: O

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

% e' I& h. ~0 H3 \

' B% r2 ?) B4 Z/ f# B D3 k5 r. v

图7 硬件接线图  

( F, [ h5 v; ]1 W/ w1 h

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

) n" n3 F" m J' D+ g1 H

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

" H+ q8 N! ]3 R. ]- o* L5 q

4 l+ t( L# w& i7 B) N" E- s

图8 3×3键盘结构图 

: O1 a2 G m/ m

    5、结束语

: k( @! N& m2 c9 _6 ~' a

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

' H q; | O" K' ]1 }- |3 k. I
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

中国磨削网

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

GMT+8, 2024-12-22 17:39 , Processed in 0.125487 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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