全国服务热线 15221406036

6ES7231-0HF22-0XA0一级代理

更新时间:2024-05-08 07:10:00
价格:请来电询价
联系电话:
联系手机: 15221406036
联系人:聂航
让卖家联系我
详细介绍

6ES7231-0HF22-0XA0一级代理

1 引言
与其它工业控制系统相比,PLC控制系统具有可靠性高、抗干扰能力强等突出优点,因而广泛应用于工业控制领域。对于那些不必采用上位机监控+PLC现场控制的简易控制系统,操作面板的完善与否直接影响到整个系统的智能化程度高低。对小型控制系统而言,在满足功能的前提下,高性价比一直是设计人员追求的目标,若采用触摸屏(如SIEMENS的TP270)+组态软件(如PROTOOL)的方式组成人机界面,势必使整个系统的性价比大为降低,因此,提出基于PLC的矩阵式键盘设计方案具有较大的实际意义。

2 矩阵式键盘工作原理
矩阵式键盘是相对于独立式键盘而言的,也叫行列式键盘,是当键数较多时为节省I/O点而采取的一种结构。在微机系统中,矩阵式键盘的构成方式如图1所示。

图1 矩阵式键盘结构图


首先,判断整个键盘上有无键按下。方法是:将列全输出为0,然后读入行的状态,如果行读入的状态全为1,则无键按下,不全为1则有键按下。
其次,若有键按下则逐列扫描。方法是:依次将列线送低电平0,检查对应行线的状态;若行线全为1,则按键不在此列;若不全为1,则按键必在此列,且是与0电平行线相交的那个键。后,确定键值,并进入键处理程序。

3 矩阵式键盘硬件设计
在PLC系统中设计矩阵式键盘不仅要用到输入口,而且也要用到输出口,因此,了解PLC I/O口内部电路的结构以及工作原理是十分重要的。下面以S7-200的DC输入、输出模块为例,简要说明其工作原理。
3.1 输入模块
如图2所示,为PLC的DC输入模块,其中,K1-输入开关;M-公共端;I0.0-输入点;R1、R2的典型值为5.6K、1K。

图2 直流输入模块电路图


工作原理:若输入开关K1闭合,则输入信号经RC滤波和光电隔离后,转换为PLC的CPU所需的电平(一般为5V),再经过输入选择器与CPU的总线相连,从而将外部输入开关的“ON”状态输入到PLC内部,此时输入指示灯亮,且与该输入点对应的输入映像寄存器为“1”。若输入开关断开,则信号没有形成通路,此时输入指示灯不亮,表示为“OFF”状态。
3.2 输出模块
如图3所示,为PLC的DC输出模块,其中,L+接DC24V;Q0.0-输出点。

图3 直流输出模块电路图


工作原理:若用户程序将输出置为“ON”状态,则在刷新输出阶段CPU将“ON”信号送给输出锁存器,再经过光电耦合送给场效应管,使之饱和导通,此时输出指示灯亮,且通过场效应管将DC24V和负载连通,从而使得负载获得工作电流。反之,若用户程序将输出置为“OFF”状态,则输出指示灯不亮,情况与上述相反。

3.3 键盘的硬件设计
由以上分析可知:PLC的I/O口内部电路与一般的计算机系统(如单片机系统)有较大的不同,这就决定了在PLC系统中设计矩阵式键盘也有其特殊性。首先,由于输入模块中有RC滤波电路,其滤波延迟时间可以通过编程软件设置,即其本身存在硬件消抖动的功能,因此不再需要软件延时消抖动;其次,由于用到了PLC的输出口,它本身可以输出对M端有DC24V的电压,因此不再需要外接电源;后,由于PLC的输入口有6K左右的输入电阻,因此可以将DC24V的电压直接加上,若为了延长I/O口的使用寿命,一般按照输入模块的技术指标来配置限流电阻,经查阅输入电流的典型值为4mA,一般取R1=R2=R3=0.5K即可。如图4所示为3行3列矩阵式键盘的结构图。

图4 3×3键盘结构图


4 矩阵式键盘软件设计
4.1 PLC的扫描工作方式
当PLC处于“RUN”工作模式下时,除上电初始化外,其它程序都采取周而复始的循环扫描方式,称之为“PLC的扫描工作方式”,其执行流程如图5所示:

图5 PLC的扫描工作流程


在设计键盘时可暂不考虑通信和自诊断,则在一个扫描周期内剩下以下三个主要阶段:
(1) 输入采样阶段,CPU将所有物理输入点的状态存入对应的过程映像寄存器中,到下次输入采样前,过程映像寄存器的内容均保持不变;
(2) 程序执行阶段,CPU按照从左到右、从上到下的顺序执行程序,将运算结果写到输出映像寄存器或数据存储区内;
(3) 输出刷新阶段,在程序执行完后,CPU将过程输出映像寄存器的状态几乎同时的更新到物理输出点。
4.2 键盘的软件设计
矩阵式键盘的软件设计相对较为复杂,但无非是实现微机系统中所描述的键盘扫描程序的四个功能:
(1) 判断有无键按下;
(2) 去机械抖动;
(3) 求按下的键号;
(4) 键闭合一次仅进行一次键功能操作。
4.3 键盘设定及程序设计
再结合微机系统中矩阵键盘的原理,设计3×3矩阵式键盘,特做如下设定:
(1) 设定0~8号键分别与M0.0~M1.0对应,键按下,对应的位存储点为“1”,键松开则为“0”;
(2) 设定I0.0、I0.1、I0.2对应键盘的第0列、第1列、第2列,Q0.0、Q0.1、Q0.2对应键盘的第0行、第1行、第2行,M1.1为“有键按下”标志位;
(3) 按图4所示的方式构成3行3列矩阵式键盘,流程图如图6。

图6 键盘程序流程图

为增强程序的可读性,利用STEP7-Micro/WIN V4.0编程软件,用符号地址替代地址,编制3×3键盘的STL程序如下所示。
Network 1 判断有无键按下
LDN 有键按下
S 第0行, 3 //全行扫描
LD 第0列
O 第1列
O 第2列 //全列读入
AN 有键按下
S 有键按下, 1 //有键按下,置标志位
JMP 0
LDN 有键按下
MOVW 0, MW0 //无键按下,清零跳出
JMP 9
Network 2 散转程序
LD 有键按下
A 第0行
JMP 10 //跳至第0行
LD 有键按下
A 第1行
JMP 11 //跳至第1行
LD 有键按下
A 第2行
JMP 12 //跳至第2行
Network 3 逐行扫描
LBL 0 //第0行处理
LD 有键按下
RI 第0行, 3
SI 第0行, 1 //立即置位Q0.0
JMP 9
LBL 10
LD 第0列
= KEY_0 //0键
JMP 9
LD 第1列
= KEY_1 //1键
JMP 9
LD 第2列
= KEY_2 //2键
JMP 9
LBL 1 //第1行处理
LD 有键按下
RI 第0行, 3
SI 第1行, 1 //立即置位Q0.1
JMP 9
LBL 11
LD 第0列
= KEY_3 //3键
JMP 9
LD 第1列
= KEY_4 //4键
JMP 9
LD 第2列
= KEY_5 //5键
JMP 9
LBL 2 //第2行处理
LD 有键按下
RI 第0行, 3
SI 第2行, 1 //立即置位Q0.2
JMP 9
LBL 12
LD 第0列
= KEY_6 //6键
JMP 9
LD 第1列
= KEY_7 //7键
JMP 9
LD 第2列
= KEY_8 //8键
JMP 9
LD 有键按下
R 有键按下, 1
//无键按下,清标志位
Network 4 软件延时
LBL 9
LD 有键按下 //有键按下才延时
FOR VW0, 1, 500
NOP 0
NEXT
4.4 程序的说明
(1) 程序采用了立即置位、复位指令SI和RI,是为了更及时的置位复位输出点,使程序的执行不受扫描周期的影响,也可用字节立即写指令MOV_BIW来实现,但应该考虑对其它未用点的影响。
(2) 程序的后采用了软件延时,是为了解决程序指令执行时间与输入输出滞后时间的不匹配。利用编程软件STEP7-Micro/WIN V4.0中的System Block下的bbbbb Filters选项可以设置输入滤波时间,默认为6.4ms,减少滤波时间可以相应的减少软件延时次数,但若滤波时间太小又达不到消抖动的目的。
(3) 程序中没有考虑多键同时按下的问题,在现有的程序中,若不同行有多个键按下,均以先按下的那个键为准进行响应,但若同一行上有多个键按下,则又分要几种情况,因此在应用时,应加强对按键的限制条件,避免由于误操作而造成生产设备的损坏。
(4) 程序中对每个按钮的响应均是按下该键,则对应的存储位为“1”,放开该键,则为“0”,没有其它较为智能的功能。若键盘中有“加速”、“减速”等类似键时,往往希望有连续加减的功能,即按下“加速”一定时间后(如500ms),按照每规定时间(如100ms)增加一个单位的速度值,此时可以利用两个定时器实现,其STL程序如下。
LD 加速
TON T37, 5
LD 加速
EU
= 加速上升沿
LD T37
AN 每100MS通电一次
TON T38, 1
LD T38
= 每100MS通电一次
LD 每100MS通电一次
O 加速上升沿
EU
+I 1, 速度存储值

5 结束语
本文提出了在PLC系统中设计矩阵式键盘的一般方法并给出了3×3键盘的硬件连线图和STL程序。在键数较多时,矩阵式键盘可以大大节省PLC的I/O点数,但程序设计的复杂度也随之增加,因此使用时应在系统的硬件成本和实时性之间加以均衡考虑。此外,本文的设计思路具有通用性,只需稍加变动,就可移植到其它品牌的PLC中。文中的STL程序均已通过S7-200的编程软件STEP7-Micro/WIN V4.0在CPU226 DC/DC/DC上调试通过,说明了本文设计方法的可行性。

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

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

图1 分时分组输入接线图

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

图2 共用输出点接线图

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

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

图4 电动机PLC控制接线图

3 软件编程I/O点扩展方法
软件扩展的基本思想是一点两用或轮序复用。即当按钮初次按下时,输出要求为高;当按钮再次按下时,输出要求为低;再按下时又为高,依此类推。这样就可以节省一个输入点,当系统有较多开关量控制时可节省较多输入点,如主机ON和主机OFF,纸料座上和纸料座下,都可以只用一个输入点来控制。实现“一点两用”的编程方法较多,如利用内部辅助继电器、定时器、计数器、移位指令等,本文仅介绍几种简便方法。
3.1 利用边沿检测、输出指令
若按钮SB连到I0.0上,输出控制Q0.0,利用边沿检测和输出指令实现“一点两用”,用STEP7 V5.3编制的STL程序如下。
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
程序说明:当第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的输出,从而实现一点两用。
3.2 利用边沿检测、跳转指令
若利用边沿检测和跳转指令,实现起来较为简便,其STL程序如下。
A I0.0
FP M0.0
JNB OUT
AN Q0.0
= Q0.0
OUT: NOP0
程序说明:第4、5个语句的功能是实现Q0.0的自取反,但若没有前面的跳转指令,则程序每个扫描周期都会将Q0.0的状态取反一次;第1、2句的作用是限定只有当I0.0的上升沿到时取反一次,否则跳出取反程序段,从而实现一点两用。
3.3 利用边沿检测、异或指令
若利用边沿检测和异或指令实现起来更为简便,程序如下。
A I 0.0
FP M0.0
X Q0.0
= Q0.0
程序说明:当第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 硬件和软件结合I/O点扩展方法
4.1 硬件编码和软件译码,扩展输入点
在控制系统输入信号较多的情况下,可以利用编码器对输入信号编码,然后引到PLC的输入端,再通过PLC内部程序配合进行译码,对各个输入信号加以识别,可以大大减少对输入点的占用。PLC的外部接线如图5所示。由于普通编码器在有多个信号同时输入时会出现乱码,故可采用8线-3线优先编码器74LS148,设定好信号的优先权,有时还要将编码器的选通输出端和扩展端也接入PLC中,配合程序减少误判断。另外,还要注意的是电平的匹配问题(信号电路的+5V和PLC的+24V之间)以及PLC的输入口对信号识别所要求的技术规范(驱动电流和电压能识别的范围),有时还需增加适当的信号放大和隔离电路。

图5 硬件编码接线图

下面以按钮SB2按下为例,说明PLC内部软件译码的程序识别方法。由74LS148的功能表可知,该芯片低电平有效,因此图5中用3个非门将输出电平转换成正逻辑。若SB2按下,无论SB0和SB1是否按下,但SB3~SB7均未按下;此时,ABC的输出为101,经过非门后I0.0,I0.1,I0.2的状态分别为0,1,0;对应的STL译码程序如下。
LDN I0.0
A I0.1
AN I0.2
= M0.2
这样,笔者在程序里用M0.2的常开触点代替了按钮SB2。即当按钮SB2按下,M0.2为1;SB2弹起,M0.2又为0,从而实现了软件译码的功能。另外需要指出,该方法在PLC的每一个扫描周期只能读入8个输入中的一个输入状态,若有2个以上开关闭合,PLC只能检测出优先权高的那个信号。

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

图6 PLC接线图

下面以如何让Q2为1为例,说明PLC内部软件的编码方法。由74LS138的功能表可知,若要使输出Q2为1,应该使Y2输出为0;即对应的ABC应该为010,从而得到只要让PLC的Q0.0,Q0.1,Q0.2分别为0,1,0即可;对应的STL编码程序如下,其中M1.2为置位输出Q2的条件。
LD M1.2
S Q0.0, 1
R Q0.1, 1
S Q0.2, 1
这样,只需对Q0.0,Q0.1,Q0.2进行组合就可以实现对输出Q0~Q7分别置为1。本方法存在一个明显的缺点,即每一个扫描周期只能输出八种状态中的一种,若要同时置位输出Q0和Q1是不能实现的。
4.3 用N个输入点识别N×(N+1)/2个输入信号
若我们将输入信号接成图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的状态。
LD I0.0
AN I0.1
AN I0.2
= M2.1
//信号SB1的识别
LDN I0.0
A I0.1
A I0.2
= M2.2
//信号SB2的识别
需要指出:这种方法不能识别2个及2个以上的信号同时为1的情况,如SB1和SB3同时接通,程序会把它当成SB2接通的情况识别。图7中二极管的作用是为了隔断寄生电流形成通路。其实,用3个输入点多可以7个信号的识别,如果在图7中再加一个SB7,用3个二极管连到I0.0、I0.1、I0.2上,则可以通过将3个点的常开触点相与来识别SB7,但这样过于繁琐,因此一般不采用。

图7 硬件接线图


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

图8 3×3键盘结构图


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


没有

联系方式

  • 地址:上海松江 上海市松江区石湖荡镇塔汇路755弄29号1幢一层A区213室
  • 邮编:201600
  • 联系电话:未提供
  • 经理:聂航
  • 手机:15221406036
  • 微信:15221406036
  • QQ:3064686604
  • Email:3064686604@qq.com