找回密码
 注册会员

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 508|回复: 0

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

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

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

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

×

1、引言 # E; q8 F* N7 ^8 w. W& p' s

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

: R& p" p8 M( R- A4 }

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

: v. e) u/ ?+ O' m; g( `

    2.1 分时分组输入

0 e" W6 I- K3 I0 W7 K

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

; J, s3 K* M, e& D) O0 _

1 i- X* i" R \6 P0 R* N

图1 分时分组输入接线图

0 g) X- S8 Z! A9 ?

    2.2 共用输出触点

) _) u" ?: y/ E' G# M

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

9 U. r; P- f* i4 T+ M! S9 S! W" e

) I# E6 t3 q; H7 U U8 [# u1 T

图2 共用输出点接线图

4 m/ x3 B8 a. @1 V1 ~. H2 F) \8 e

    2.3 合并输入触点

' g9 ^2 q3 I& x( B" i0 L: |; B9 i

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

% V6 B; l4 b3 _5 d. w3 w) `

$ ~3 F7 o/ N9 z. u

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

2 D* s5 Y+ V1 w2 i# w: f$ O

$ a; C/ c/ g: y t! H

图4 电动机PLC控制接线图  

0 A: u# O6 y; {! u. J

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

+ I \* z1 }+ \# B9 C4 P

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

- y: E- ?' l( c% G

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

& P1 }& B) [# W4 Z

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

/ S, T* X* F& z

    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

* i; ^+ c0 R, p& e! u2 j5 N" D' P& d

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

4 w: v% Y& ?/ n, I8 w0 ~/ g6 C) y( c w

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

" _* D8 f( J n. r

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

" e, E2 B7 e8 G3 U- r, O

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

( G$ B! N8 x6 _

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

% g/ w" l5 \( y# s% T0 D2 g

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

/ {- e/ Y7 \4 O7 X; Q# j" @

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

; l; E: P5 t/ i8 Z

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

$ x* i: ~( f6 \) ^# t, 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。

8 O+ Y Z% H; }% Z' X2 v( Y

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

2 V0 B- A- M2 [) O1 B

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

1 T! ^5 x0 l3 @

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

/ f. V+ P& ]2 N1 ^4 U

! F7 @7 X% N5 c3 Z- G7 z! n6 ^" R

图5 硬件编码接线图 

6 ~) _0 r& o x# \! ~

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

1 E% e0 ^3 `8 J) n* M" n

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

: Z- C4 I* ?- m5 j5 `4 S

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

5 M2 w3 s4 Y, Q. \* S5 q9 b

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

7 v% u; Q7 b/ ]& F) F

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

+ ~$ `/ B, G5 y- Z2 X) n, Z

* F8 s. C, Z- X# k* t

图6 PLC接线图 

4 ~: e9 o" A# {/ I% h$ h3 E9 p7 J6 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的条件。

/ d* ?1 N2 G0 a' \

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

5 Y' M C% y0 c# F

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

% M1 G: F3 W+ q7 p+ P2 O. H

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

% Z& Z. @5 j# O; C1 X1 u

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

( e; q- ^0 P ?7 G8 ?+ k0 |

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

- p E6 R8 m8 j: L9 Q* N' D

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

% F5 C: `2 j4 W: j- s. ^

" L1 A( C" c( r9 C$ X; {# o

图7 硬件接线图  

" R& Y3 ]0 ]# b( s

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

8 {3 T+ R- S; U9 B% u

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

' W- L& V7 p' }2 V& |$ D, z8 P. a- ~

9 p3 E2 F4 \& J+ c7 O; O! d) W/ }

图8 3×3键盘结构图 

7 W8 F( s" o6 }

    5、结束语

3 k6 p/ {7 U/ I! A" l% |

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

# G4 E1 c8 C6 m1 ]( U) o! I- Q3 E# ^
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

中国磨削网

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

GMT+8, 2024-12-22 10:08 , Processed in 0.188375 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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