西门子模块6ES7231-7PB22-0XA8大量供应
西门子模块6ES7231-7PB22-0XA8大量供应
可编程控制器(PLC)是专为工业控制设计的,具有可靠性高、功能全、价格便宜的优点;但在实际应用中,因工业现场情况复杂,PLC常常受到恶劣的电磁干扰。为了有效地tigaoPLC控制系统的抗干扰性能力,对常见的干扰提出以下解决措施和方法。
1 空间辐射干扰
主要指雷电、雷达、周围的高频感应加热设备等产生的空间辐射电干扰。对此类干扰,一般无法对于扰源进行抑制,只能切断或减弱电磁干扰的传播途径。在室外应用PLC或有传输线经过室外时,由雷击引起的浪涌使PLC或其他自动化设备损坏的情况比较常见。在实践中,可以采用等电位联结、屏蔽、保护隔离、合理布线和装设防雷装置等措施,进行全方位的防雷保护。其中简便、经济的措施是装设防雷装置。防雷装置能处理雷电浪涌电流的承受和泄放能力,同时限制被保护设备雷电过电压幅值,有效地对PLC及其相关设备起到保护作用。防雷装置应依据分级保护原则,根据不同的电源制式及现场情况进行选型,使过电压降低到对设备无害的量值。其工作电压以安装在此电路中所有部件的额定电压为准,剩余电压则根据此电路中所有部件的耐压强度确定。
2 电源的干扰
由电源引入的干扰在工业现场较为常见。控制系统一般由电网电源供电,电网的波动、大功率用电设备启停、交直流传动装置引起的谐波等,都通过输电线路传到电源原边。电源干扰主要来自两个方面:一是通过PLC系统的供电电源直接串入,如CPU电源、I/O模块电源等;二是通过变送器供电电源和与PLC系统具有直接电气连接的仪表供电电源等耦合进入的。
抑制电源干扰一般可采取如下措施:
①PLC电源通常采用隔离电源。但因其结构及制造工艺等因素使其隔离效果并不理想,故在PLC电源输入端使用隔离变压器,其初级绕组和次级绕组分别加屏蔽层,并将屏蔽层可靠接地,对抑制电网干扰信号有较好效果。同时,二次侧接线使用双绞线,能有效减少电源线问干扰。
②使用滤波器。滤波器具有较强的抗干扰能力,同时可防止将设备本身的干扰传导给电源,有些还兼有尖峰电压吸收功能。在干扰严重场合,常常同时使用隔离变压器和滤波器。需要注意的是,应先把滤波器接入电源,然后再使用隔离变压器。
③采用分离供电方式。将PLC、I/O设备及其他装置分别由各自的具有隔离功能的变压器供电,并与主回路电源分开。需要注意的是,如果系统中含有扩展单元,则其通电与断电必须与基本单元同时进行;如做不到,应确保MOS电源先通电后断电。
④对于变送器和与PLC系统具有直接电气连接的仪表供电,应选择分布电容小、隔离效果好的配电器,以减小对PLC系统的干扰。
⑤有条件的情况下或重要的PLC控制系统中,应配置在线UPS供电,UPS供电既可tigao电源的供电可靠性,还具有较强的隔离性能。
3 信号线引入的干扰
由信号线引入的干扰会引起I/O信号工作异常和测量精度大大降低,严重时会将I/O模块损坏,造成系统故障。抑制信号线引入的干扰可采取如下措施:
(1)抑制输入信号干扰。
输入信号的线间干扰(差模干扰)通过输入模块的滤波可以使其衰减,而输入信号线与大地间的共模干扰在PLC内部回路产生较大的电位差,是引起PLC误动作的主要原因,可通过良好的接地加以抑制。在输入端有感性负载时,为了防止电路信号突变而产生感应电动势损坏模块,对交流输入,可在负载两端并联电容C和电阻R,对直流输入,可并联续流二极管V。见图1。
图1 感性负载时输入端抗干扰措施
其中R、C的选择,负载容量小于10 VA时,R可选120 Ω,C可选0.1 μF;负载容量在10 VA以上时,R宜选47 Ω,C宜选0.47 μF。
(2)抑制输入感应电动势。
由于输入信号线间、输入信号线和其他线之间存在寄生电容,通过电耦合会产生感应电动势。为抑制感应电动势,一般尽量采用直流输入。对于交流输入,可在输入端并联浪涌吸收器。如果配线距离长、电流大,也可用继电器加以转换。
(3)抑制输出信号干扰。
PLC系统的开关量输出有继电器、晶体管、晶闸管3种输出形式。具体选择要根据负载要求来决定。如对于交流负载,在开关时产生干扰较大的场合,可使用双向晶闸管输出。对于直流负载,通常是在线圈两端并联二极管V,二极管应尽可能靠近负载,其反向耐压应是负载电压的4倍以上。二极管的动作有一定的延时,如果需要快速断开,则采用建议并联稳压管。对于交流负载,应在线圈两端并联RC浪涌吸收电路,且RC愈靠近负载,抗干扰效果愈好。见图2。
图2 感性负载时输出端抗干扰措施
(4)线缆选型与敷设的抗干扰。
开关量信号一般对电缆无特殊要求,可选用一般的电缆;当数字脉冲信号频率较高时,应选用屏蔽电缆传输;模拟量信号是连续变化的信号,容易受干扰,要选用屏蔽线或带防护的双绞线。当模拟量信号离PLC距离较远时,应尽量采用电流传输方式;通信电缆的信号频率很高,应选择PLC生产厂家提供的专用电缆。交流输入、输出信号与直流输入、输出应分别使用各自的电缆;PLC的输入、输出线要与动力线分开,距离在200 mm以上,应减小动力线与信号线平行敷设的长度,特别是变频器到电动机的电缆一定要远离信号电缆。在变频器到电动机之间应增加交流电抗器,电抗器应装在距离变频器近的地方。
4 接地系统引入的干扰
良好的接地可抑制内部噪声耦合,防止外部干扰侵入,是PLC控制系统抗干扰的有效手段之一。
(1)“一点接地”可以有效地避开地环路电流的干扰。
如图3所示,以屏蔽线的接地为例加以分析。其中ES为信号源,RS为信号源内阻,RL为负载电阻。
图3 屏蔽线的接地方法
单端接地时,假设信号电流i1从芯线流入屏蔽线,流过负载电阻RL之后,再通过屏蔽层返回信号源。因i1与i2大小相等方向相反,故产生的磁场干扰相互抵消,抑制磁场干扰同时抵制磁场耦合干扰。两端接地时,由于屏蔽层上流过的电流是i2与地环电流iG的叠加,抑制磁场耦合干扰的能力也比单端接地差。
(2)并联接地可有效地克服公共地线阻抗的耦合干扰。
并联接地中各个电路的地电位只与其自身的地线阻抗和地电流有关,互相之间不会造成耦合干扰。
(3)正确处理不同信号的接地。
当PLC、DCS、仪表等设备需要建立统一的基准电位时,应进行信号回路接地;当PLC、DCS等控制系统与模拟仪表联用时,应对模拟系统与数字系统两者提供一个公共的信号回路接地点。如果系统直流地悬浮运行,那么它的模拟地、数字地仍然要用低阻抗导线短接,不接大地,用户简单的应用就是浮地运行。
5 软件抗干扰
硬件抗干扰措施是尽可能阻止干扰进入控制系统,但在很难将各种干扰完全拒之门外,这时,可以采用软件与硬件相结合的抗干扰措施来tigao系统的抗干扰能力。
①用内部计时器对运动状态进行监控。如,PLC控制某运动部件动作时,在发出该部件动作指令的同时启动一计时器,该计时器的设定值,为运动部件执行该动作所需的大可能时间;若运动部件在规定时间内完成了此动作,反馈一个信号,使计时器清零,则说明监控对象工作正常;否则,说明工作不正常,应停止控制。对按钮或行程开关的输入信号,可通过内部计时器延时,消除因脉冲干扰或因抖动而产生的误动作信号。
②用软件数字滤波可tigao输入信号的信噪比。在信号的采集过程中,可采用软件数字滤波方法减少随机干扰而可能使被测信号的随机误差。常用方法是平均值算法。对有大幅度随机干扰的系统,采用防脉冲干扰平均滤波法;对liuliang、液面等频繁波动的参数,用算术平均滤波法。
6 结束语
工业现场环境恶劣,PLC在工业应用中的抗干扰设计是一个复杂的系统工程,应综合考虑各方面的因素,合理有效地抑制干扰,使PIE控制系统可靠工作
在工业控制中,用PLC控制的工程在上/下位机通讯上一般采用RS-232/RS-485串口通讯,这种方法对于数据量较大,通讯距离较远,实时性要求高的控制系统,很难满足通讯需要。
近年来随着计算机网络技术的飞速发展,网络化数控已经成为现代制造业发展的必然趋势, 控制系统正向虚拟化、网络化、集成化、分布化和节点智能化的方向发展。[1]许多大型PLC厂商生产的PLC都配备了相应的以太网通信模块,本文讨论了OMRON PLC的以太网通信体系结构,并以CP1H PLC的ENT2l以太网模块为例实现与计算机的通信。
1. Winsock网络通信控件
Winsock控件是不可视控件,它提供了访问TCP和UDP网络服务非常简便的途径,使编程人员开发客户/服务器应用程序时,不必了解TCP的细节或调用低级的Winsock API函数,只通过设置Winsock控件的属性并调用其方法,就可直接连接到一台远程计算机进行,并可实现双向数据交换。
WinSock主要支持两种类型的套接字:①流式套接字(Stream Socket)也称面向连接方式,该方式对应的是TCP协议,其传输特点是通信可靠性高,可以保证数据流的传输是可靠的、有序的、无重复的,可提供双向的数据流,数据被看作字节流,无长度限制。②数据报套接字(Datagram Socket)又称无连接方式,对应的是UDP协议,这种方式不提供数据传输的正确性、有序性和无重复性,因为它支持面向记录的数据流。因此,传输的数据可能丢失和重复,并且接收顺序混乱,报文长度是有限的。考虑到本系统对通信可靠性和正确性的要求很高,选用流式套接字方式。基于Client/Server模式的流式套接字通讯过程如图1所示。
图1 流式套接字进程通讯过程时序图
2.Ethernet网络通信单元的设置
在组建网络时,根据网络类型的不同,网络中的每个节点需要安装相应的通信单元,PLC上需安装Ethernet网络通信模块,例如0MR0N公司的CJ1W—ETN21以太网模块。应用之前必需对网络进行必要的设置,分为开关设置和CPU总线单元系统设置。
开关设置主要包括以下几项内容:确定分配给CJ1W—ETN21单元的内存工作区(CIO区、DM区),该地址在CPU总线区,由UNIT No.开关确定ETN单元的单元号范围为0~F;NODE No.旋转开关设定两组l6进制数作为ETN单元在网络中的节点号,范围为O1~7E;IP地址设置网络号和主机节点号,由32位二进制数组成,分4段以十进制数表示。
CPU总线单元设置主要通过编程设备如CX—Programmer软件或编程器对网络单元进行模式、本地IP地址、子网掩码、FINS端口号、FTP登录名及口令和IP路由器表等项进行设定。若使用FINS/TCP协议,则还需在以太网单元设置中修改FINS/TCP项的部分参数,如:自动分配的FINS节点号、是否保持激活等项。
3.面向上位计算机的通信协议
如图2所示,以太网的分层模型分为物理层(Physical Layer)、网际层(Internet Layer)、传输层(Transpot Layer)和应用层(Application Layer)。其中:传输层可使用无连接的UDP或需建立连接的TCP协议;应用层为FINS(Factory Interface Network Service)协议,FINS协议是由OMRON公司开发的用于工厂自动化控制网络的指令响应系统。主要规定对PLC存储空间的数据读写等操作方法。应用层使用FINS协议,传输层使用TCP协议的通信实现方法称为FINS/TCP方法。
图2 网络的分层结构
FINS协议包含指令系统和响应系统,其命令帧格是由FINS报头、指令代码、响应代码和正文等几部分组成。从上位计算机发出的指令和响应必须符合下面帧的格式要求,并提供合适的FINS报头信息。[3-4]FINS通信服务是通过FINS命令帧和它们对应的响应帧交换实现的。
FINS命令/响应帧格式如图3所示。FINS/TCP header中规定了五种命令,用于客户机(host computer)与服务器(PLC)之间通信:发送客户机节点地址(node address);(2)发送服务器节点地址(node address);(3)发送Fins frame;(4)Fins frame发送出错通知;(5)客户机与服务器联机确认。
图3 FINS命令/响应帧格式
4.通信程序的具体实现
在新建VB工程后,需要执行VB工具栏“工程/部件” 命令,将Winsock控件添加到工程中, 并命名为“WskClient”。程序采用TCP/IP协议进行通信,其主要属性设定如下:
With WskClient
.Protocol = sckTCPProtocol ‘采用TCP/IP协议
.LocalPort = 9600 ‘本地计算机端口号
.RemoteHost = txtIP.Text ‘取得远程PLC的IP地址
.RemotePort = txtPort.Text ‘远程PLC端口号
.Bind 9600 ‘指定使用的本地端口
End With
初始化工作完成后向PLC提出连接请求,待PLC接受请求并发送应答信息后,客户端程序依照各种帧格式建立好要发送的信息帧,就可以与PLC进行双向的数据交流了。在这一过程中,可建立发送失败后的重发机制,以增强通信的可靠性。
首先,建立并发送“握手信息”指令(20字节),指明客户机节点号;当计算机接收到PLC返回帧(24字节)后,检查PLC是否收到命令,并取得服务器和客户机节点号。当计算机接收到PLC返回的数据时,会产生DataArrival事件,参数BytesTotal包含接收到的数据字节数。在DataArrival事件中,可以调用GetData方法接收数据。如果接收到Close事件,则用Close方法关闭连接。另外,可用Winsock的State属性来反映当前TCP/IP的连接状态。这里仅列举主要程序如下:
‘向服务器请求连接
WskClient.Connect
TimeDelay 100
Do
DoEvents
Loop Until WskClient.state=sckConnected
‘建立并发送FINS命令帧
Private Sub SendData_Click()
ReDim SendData (19) As Byte
SendData (0) = &H46‘FINS命令帧报头的第1个字节
……
WskClient.SendData SendData() ‘发送FINS命令帧
End Sub
‘接收PLC响应帧,并分析数据
Private Sub WskClient_DataArrival(ByVal bytesTotal As Long)
Dim i As Integer
ReDim ArriveData(bytesTotal) As Byte
wsk.GetData ArriveData, vbArray + vbByte, bytesTotal
‘接收数据,保存在ArriveData数组中
For i = 0 To bytesTotal - 1
txtArData.Text = txtArData.Text & " " & ArriveData (i)
Next i
……‘其它数据处理
If ArriveData(7) <> 16 Then
MsgBox“接收信息丢失“
ElseIf SendData(19)= ArriveData (bytesTotal-5) Then
MsgBox“节点地址错误“
End If
End If
在接收信息后,当PLC收到传输过去的信息后,会将对应的命令反馈值传回,这个事件程序内的程序将它显示在文本框中,还可作进一步处理。主程序流程图如图4所示。
图4 程序流程图
若采用UDP协议,则通信的基本过程与TCP相同,只是不需要建立连接。此外,UDP应用程序可以是客户机,也可以是服务器,而不必象TCP应用程序那样必须分别建立客户机程序和服务器程序。由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快。因此如果网络中设备不是很多,且发送数据量不大时,可选择耗费计算机“资源”更小的UDP协议进行通信。
5.结束语
采用Winsock控件实现的上位机以太网通信程序,已成功应用于数字小样并条机监控系统中,该法简单实用,在不追加投资的情况下,实现车间设备的网络数据实时监控的功能,达到了理想的效果。而且以VB作为监控软件的开发平台,软件的二次开发不受限制,节约成本,并可根据需要随时对程序进行升级。为实现对控制系统进行有效的信息管理与监控,基于以太网的PLC控制系统必将有更为广泛的应用,本文的论述对解决这类问题提供了一定参考价值。