找回密码
 注册会员

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 547|回复: 0

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

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

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

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

×

1、引言 " l9 B% y, v4 ?

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

. F) j. H0 K* T& h- W4 N9 }

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

3 A4 n4 ]2 f2 n) o3 \0 i

    2.1 分时分组输入

# S, A5 \; x, r( g- T$ {) ^

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

0 y2 s8 U3 ]1 z. M9 f3 ?" x

5 Q9 q7 {% s9 u/ b9 g! m

图1 分时分组输入接线图

1 }2 P& F' `2 f7 ^; b4 m7 y

    2.2 共用输出触点

) K8 n% r$ _" U# O! f

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

: e% O, K) q9 I: B. b

# i" u% y2 u* T2 w2 l

图2 共用输出点接线图

9 B6 n+ a8 d1 \+ U- ^/ o7 `8 N

    2.3 合并输入触点

, j& p% d4 X7 v

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

( y3 K& h1 ^0 \( a* p( G

% z8 r9 |; m2 v$ l% N. r- [

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

- I6 I- v! ^0 J" Q1 o4 c9 W: h

3 `) j$ V' N" N9 A/ z: s& Z# w

图4 电动机PLC控制接线图  

, g; w9 v1 s5 l0 l% {

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

2 }4 M/ U# V8 @% ?

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

! P. Z# C0 P+ o8 o0 l' K

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

: p& G5 V4 x1 q3 c S W9 M0 @

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

: Z( x6 _8 N9 B% ?- a/ s- f& 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

2 D! N, [! C0 c; |3 S

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

* S4 ~3 r. g6 P- a. p* V6 w9 _

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

9 |" p) j0 \% k# F+ |. k3 @- @

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

' C+ H k3 W) `

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

3 p. u9 m+ k) F, t! U, ^0 E- {; {

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

; T+ J9 y" E- c# m3 ~

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

0 M9 p& }* m- r& Z' w5 [) F! D

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

0 Z* p9 ?( Y, r2 f& j1 n% w: z

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

( Q: v3 f! U9 o. O6 P% O

    程序说明:当第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。

9 B- j. h) U7 I' D& ~

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

; }) h; g; f# A2 `9 N/ M

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

1 x0 ]2 `7 o" ]# F5 J8 ?: Q

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

9 S3 M7 L5 |: I

3 s0 F1 ?% F7 n+ `# F4 G

图5 硬件编码接线图 

/ d" T# z& g+ ^! a) M

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

" A! s/ u* L2 i6 p V% t3 j

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

/ M9 ^5 I# `3 M7 U

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

, D, |; `) k# L2 u: N; ?" L2 T

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

1 }) {7 {+ F) x: h3 M! ^ p6 z

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

" R+ c. I8 G+ n) q7 ~4 w" a% y" I% d

, G1 M0 j: S: n: Q. v8 a

图6 PLC接线图 

: Q! _, @: f/ ^ ]6 ^2 s( 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的条件。

) h8 v9 H' @$ u( U( d. R% k

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

$ \- X' v1 t* e$ m) ~7 A: |

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

3 T5 N7 t) `+ e% [/ Q3 x

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

# `$ P# j/ u0 B; q$ ^; q3 F1 {

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

! ^( B$ A! v5 |+ z0 D9 X

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

y) ]6 M5 X8 d( \% e$ k0 i

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

- z+ B- ]; i8 ~! X! t

' z5 y7 z" p$ |5 w( c) [ d! N

图7 硬件接线图  

9 {/ e% j Z. r* {, x1 J5 C- D x$ M

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

+ A$ R5 R* [# @( _

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

) P( N$ l" J7 E

' o8 a) q, W6 q

图8 3×3键盘结构图 

/ [9 H9 B$ e) E2 I

    5、结束语

; v: \. l5 k; A6 {

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

8 }3 R! z# H$ j3 {5 b! N( q
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

中国磨削网

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

GMT+8, 2025-4-18 22:27 , Processed in 0.122448 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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