西门子6ES7221-1EF22-0XA0现货库存
PLC控制系统由于具有功能强、程序设计简单、扩展性好、维护方便、可靠性高、能适应比较恶劣的工业环境的特点,在工业企业广泛应用。由于工业环境条件恶劣,以及各种工业电磁,辐射干扰等,影响PLC控制系统的正常工作,必须重视PLC控制系统的抗干扰设计。为防止干扰,可以采用硬件和软件相结合的抗干扰方法。防止硬件干扰的方法有:1、采用性能优良的电源来抑制电网引入的干扰;2、电缆的选择与铺设来降低电磁干扰;3、完善接地系统;4、采用光电隔离来抑制输入输出电路引入的干扰等。而利用PLC软件来减少干扰是PLC控制系统正常、稳定工作的重要环节。下面主要分析在生产实践中应用的利用PLC组态软件来减少干扰的方法:
一、减少数字量输入扰动的方法
1、计数器法
图1
CON——计数器
NOT——非门
RS——复位优先触发器
IN——输入
OUT——输出
N——脉冲采样个数
注释:当外部有信号输入时,控制系统采集连续的N个脉冲使RS触发器输出为“1”,只有当外部输入信号由“1”变成“0”时,RS触发器的复位端为“1”,将RS触发器的输出复位成“0”。而当有瞬间干扰脉冲时,CON计数器将采集不到连续的N个脉冲,CON计数器无法输出,这就起到了减少干扰的作用。(N一般情况下取2)
优点:响应速度快,对周期性的瞬时干扰起到了一定的抑制作用。
缺点:不能消除超过CON计数器采样时间的干扰。
2、延迟输入法
图2
IN——输入
OUT——输出
TIME(ET)——延时时间
TON——延时输出(其曲线如下图)
图3
注释:当输入IN=1时,启动计数器直到计时时间(PT)=延时时间,OUT=1。当计数器计时时间〈延时时间,OUT=0。延时时间好取1S以内。
优点:消除了短时的周期干扰。
缺点:响应速度慢,不利于信号的快速传输。
二、减少模拟量输入扰动的方法
1、限幅法
图4
MOVE——移动保持指令(使能端EN=1,OUT=IN。EN=0,OUT保持前次值)
GE——大于等于指令(OUT=1,IF IN1≥IN2)
LE——小于等于指令(OUT=1,IF IN1≤IN2)
HL——上限设定值
LL——下限设定值
注释:当模拟量输入信号在HL和LL之间时,OUT=IN。当IN-AI信号超出或等于HL或LL时,GE或LE判断IN-AI信号,使OUT1或OUT2输出“1”去封锁MOVE,从而保持MOVE的输出为HL或LL的设定值。也就起到了限幅的作用。
优点:能有效克服因偶然因素引起的脉冲干扰。
缺点:平滑度差。
SLC500有RS232通信口,可以通过专用电缆与PC机相连。通过Rsview32软件的组态,PC机可以动态显示PLC传送的温度采集数据,还可以通过联网对多台PLC进行网络监控。
4 PLC与PC通信设计
4.1 PLC数据包的信息格式
SLC500与上位机进行数据交换是以二进制字节数据进行,它包含四种主要命:读命令,代码:01H;响应读命令,代码:41H;写命令,代码:08H;响应写命令,代码:48H。故PLC数据包的信息格式如图6所示:
图6 PLC数据包的信息格式
DST:一个字节,信息接收方的节点号或文件号;
SRC:一个字节,信息发出方的节点号;
CMD:一个字节,命令类型如01H,41H,08H或48H;
STS:一个字节,通信状态,表示通信有无错误或错误类型,0为无错误;
TNS:二个字节,信息包的业务批号,可作为本信息的识别编号;
Addata:地址/字节数/数据,具体内容由不同的命令类型决定。
PLC与PC机的数据通信采用自由端口通信模式,参数设置成为波特率9600bps,每个字符8位数据,无奇偶校验。采用主从式通信协议,PC机为主机,只有PC机有权主动发送报文,PLC则采用报文接受数据。用RSLogix500软件对SLC500的串口进行如下设置:
1)set the module for full duplex BSC(DF1 full duplex)
2)set the module for bbbbbded response
3)set detect for automatic
4)disable duplicate packet detect
5)set the baud rate for 9600.
4.2 PC机程序
PC机采用VB编程,主要有监控界面、当前温度显示、动态温度曲线显示、温度数据库管理、参数设置以及与PLC通信等方面的设计。通信参数设置程序如下:
With MSComm 1 // 通信参数设置
CommPort=1 // 通信口COM1
Settings=“9600,年n,8,1”// 波特率9600 bps,无奇偶校验,8位数据,1位停止
bbbbbLen=2 //一次读取2个字节
bbbbbMode=comLnputModeBinary // 二进制数据格式
PortOpen=Ture // 打开通信端口
End With
PC机采用中断方式接受SLC500传来的实时温度。即串口收到数据,VB通信控件会触发OnComm事件,在OnComm事件程序中接受数据并处理。一个温度数据为16位两个字节,SLC500传送温度数据时,按报文传送格式高低字节正好VB程序要对接收的数据进行处理,并按照SLC500温度采集的精度(1/8度)转换成温度值用于显示。
5 结束语
本系统设计使用了PLC的热电阻温度采集模块,在上位机的控制下,对工业现场的温度进行实时的采集和监控。本文作者的创新点是,采用了罗克韦尔的SLC500控制器来实现整个系统的设计,并编程实现了SLC500控制器与计算机串口的实时通信。由于PLC可以适应环境恶劣的工业现场,故其使用范围十分的广泛。
1、引言
可编程序控制器(Programmable LogicController)简称为PLC,它具有可靠性高、抗干扰能力强等突出优点,广泛应用于工业控制领域,已经成为现代工业自动化的主要支柱之一。在PLC控制系统的设计中,经常会遇到I/O点资源紧张以及性价比矛盾的问题。有些被控设备需要具有手动、自动的工作方式,且手动部分控制按钮较多;有些自动生产线中,进行位置检测的行程开关或者用于系统工作状态指示的输出比较多,都会使占用的I/O点大为增加。一般通过增加扩展模块来解决,但PLC的I/O点价格昂贵,且还有扩展模块数目和I/O点数目的限制,如SIEMENS的CPU226大扩展模块数目为7,大扩展168路数字量I/O点或35路模拟量I/O点。若此时再增加CPU,势必使得系统性价比大为降低,在这种情况下,扩展I/O点数具有较大的实际意义。本文以SIEMENS的S7-200PLC为例,探讨如何扩展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,利用边沿检测和输出指令实现“一点两用”,用STEP7V5.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接线图