西门子模块6ES7340-1AH02-0AE0性能参数
1 DCS系统概述
集散控制系统DCS指的是控制与现场分散、地域安装分散、管理和显示集中。在自动化领域,越来越多的企业建立了包含从工厂现场设备层到控制层、管理层等各个层次的综合自动化管控平台,建立了以工业控制网络技术为基础的企业信息化平台。
2 PLC系统
PLC是由早期继电器逻辑控制系统与微型计算机技术相结合而发展起来的,它是以微处理器为主的一种工业控制仪表,它融计算机技术、控制技术和通信技术于一体,集顺序控制、过程控制和数据处理于一身,可靠性高、功能强大、控制灵活、操作维护简单。
3 网络通信技术
工业以太网在技术上与商用以太网兼容,但在环境适应性、可靠性、安全性和安装使用方面满足工业现场的需要。它具有一系列的优点,具体表现在:以太网技术应用广泛,为所有的编程语言所支持;软硬件资源丰富;易于与Internet连接,实现办公自动化网络与工业控制网络的无缝连接;可持续发展的空间大等。它提供了控制网络的数据传输的以太网标准。主要有:
(1)10Base—T以太网一同轴电缆,10Mbit/s;
(2)快速以太网一光缆或双绞线,100Mbit/s;
(3)Gigabit以太网一光缆或双绞线,1Gbit/s;
(4)10Gigabit/kGigabit以太网一支持广域网WAN和城域网MAN。它以通信网络作为纽带,网络结构可分为总线型、环型和星型式,采用总线式网络的DCS如I/AS等。它采用网络通信技术。这是DCS的关键技术,它使得控制与管理都具实时性,并解决系统的扩充与升级问题。DCS与PLC之间的数据通讯和控制的实现就是通过网络通信技术来完成的。
4 Modbus协议
Modbus协议是典型的工业以太网,原为美国Modbus公司PLC产品通信协议,由于其使用十分广泛,后来由Modbus组织,于2002年发展为ModbusTCP/IP规范。
Modbus协议在工业控制中有着极其广泛的应用。DCS与PLC之间的通信技术就是在此协议基础上实现的。Modbus协议主要内容有以下几个方面。
(1)接口标准RS485是计算机或终端与Modem之间的一种接口标准,是在RS232C标准的基础上发展而来的。在许多工业环境中,要求用少的信号线来完成通讯任务。目前广泛使用的RS485串行接口总线正是适应这种需要而出现的。采用RS485互连的网络信号传输线为双绞线,某一时刻两个站只有一个站可以发送数据,而另一个站只能接收数据,只能支持半双工通讯。RS485用于多站互连十分方便,除了节省昂贵的信号线,它还可以高速远距离传送。
(2)功能码在支持Modbus的系统之间交换数据的类型由功能码FC控制。可用于实现位一位数据交换的功能码有:FCO1读线圈(输出)状态、FC02读输入状态、FC05强制单线圈、FC15强制多线圈。可用于寄存器间数据交换的功能码有:FC03读保持寄存器、FC04读输入寄存器、FC06预设单寄存器、FC16预设多寄存器。每种功能码对应特定的起始地址范围,数据传输量因类别不同而异。
(3)传输参数传输参数包括传输率、数据位、停止位和校验位。在串行通讯中,每个字节被逐位按一定的顺序发出。对于异步串行通讯,为保证收发双方同步,不仅应使收发双方传输速率相同,还要在每个数据位的基础上附加辅助位。
a)传输率(波特率):指数据传输的速度,单位是位/秒(bps)。
b)数据位:描述多少位代表一个传输的字符。
c)停止位:定义传输两个字符可能的小时间间隔。
d)校验位:用于判断字符传输错误,保护数据。
它定义完成传输数据位的总量是奇数或者偶数。当选择“NO校验”时,不传输校验位,这会降低数据传输的安全。
(4)协议参数协议参数主要有:从站地址、操作方式、多字符延迟时间。
a)从站地址:指定Modbus从站地址,哪个CP将响应。1个主站多可向247个从站发出通讯请求,Modbus报文形式为请求/响应帧方式,仅当主站请求指令字符串以“00”开头时,会被所有从站接收。
b)操作方式:有正常方式和冲突禁止两种。冲突禁止方式下忽略收到的错误信息继续传输。
c)多字符延迟时间:正常情况下,字符和字符的发送时间间隔很小。对于接受方,如果发现字符间隔超出允许值,可认为信息帧结束或传输异常。
在工业控制中,用PLC控制的工程在上/下位机通讯上一般采用RS-232/RS-485串口通讯,这种方法对于数据量较大,通讯距离较远,实时性要求高的控制系统,很难满足通讯需要。
近年来随着计算机网络技术的飞速发展,网络化数控已经成为现代制造业发展的必然趋势,控制系统正向虚拟化、网络化、集成化、分布化和节点智能化的方向发展。[1]许多大型PLC厂商生产的PLC都配备了相应的以太网通信模块,本文讨论了OMRONPLC的以太网通信体系结构,并以CP1H PLC的ENT2l以太网模块为例实现与计算机的通信。
1. Winsock网络通信控件
Winsock控件是不可视控件,它提供了访问TCP和UDP网络服务非常简便的途径,使编程人员开发客户/服务器应用程序时,不必了解TCP的细节或调用低级的WinsockAPI函数,只通过设置Winsock控件的属性并调用其方法,就可直接连接到一台远程计算机进行,并可实现双向数据交换。
WinSock主要支持两种类型的套接字:①流式套接字(StreamSocket)也称面向连接方式,该方式对应的是TCP协议,其传输特点是通信可靠性高,可以保证数据流的传输是可靠的、有序的、无重复的,可提供双向的数据流,数据被看作字节流,无长度限制。②数据报套接字(DatagramSocket)又称无连接方式,对应的是UDP协议,这种方式不提供数据传输的正确性、有序性和无重复性,因为它支持面向记录的数据流。传输的数据可能丢失和重复,并且接收顺序混乱,报文长度是有限的。考虑到本系统对通信可靠性和正确性的要求很高,选用流式套接字方式。基于Client/Server模式的流式套接字通讯过程如图1所示。
图1 流式套接字进程通讯过程时序图
2.Ethernet网络通信单元的设置
在组建网络时,根据网络类型的不同,网络中的每个节点需要安装相应的通信单元,PLC上需安装Ethernet网络通信模块,例如0MR0N公司的CJ1W—ETN21以太网模块。应用之前必需对网络进行必要的设置,分为开关设置和CPU总线单元系统设置。
开关设置主要包括以下几项内容:确定分配给CJ1W—ETN21单元的内存工作区(CIO区、DM区),该地址在CPU总线区,由UNITNo.开关确定ETN单元的单元号范围为0~F;NODENo.旋转开关设定两组l6进制数作为ETN单元在网络中的节点号,范围为O1~7E;IP地址设置网络号和主机节点号,由32位二进制数组成,分4段以十进制数表示。
CPU总线单元设置主要通过编程设备如CX—Programmer软件或编程器对网络单元进行模式、本地IP地址、子网掩码、FINS端口号、FTP登录名及口令和IP路由器表等项进行设定。若使用FINS/TCP协议,则还需在以太网单元设置中修改FINS/TCP项的部分参数,如:自动分配的FINS节点号、是否保持激活等项。
3.面向上位计算机的通信协议
如图2所示,以太网的分层模型分为物理层(Physical Layer)、网际层(InternetLayer)、传输层(Transpot Layer)和应用层(ApplicationLayer)。其中:传输层可使用无连接的UDP或需建立连接的TCP协议;应用层为FINS(Factory InterfaceNetwork Service)协议,FINS协议是由OMRON公司开发的用于工厂自动化控制网络的指令响应系统。主要规定对PLC存储空间的数据读写等操作方法。应用层使用FINS协议,传输层使用TCP协议的通信实现方法称为FINS/TCP方法。
图2 网络的分层结构
FINS协议包含指令系统和响应系统,其命令帧格是由FINS报头、指令代码、响应代码和正文等几部分组成。从上位计算机发出的指令和响应必须符合下面帧的格式要求,并提供合适的FINS报头信息。[3-4]FINS通信服务是通过FINS命令帧和它们对应的响应帧交换实现的。
FINS命令/响应帧格式如图3所示。FINS/TCP header中规定了五种命令,用于客户机(hostcomputer)与服务器(PLC)之间通信:发送客户机节点地址(node address);(2)发送服务器节点地址(nodeaddress);(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控制系统必将有更为广泛的应用,本文的论述对解决这类问题提供了一定参考价值。
模拟量输入模块可以通过拨码开关设置为不同的测量方法。开关的设置应用于整个模块,一个模块只能设置为一种测量范围。(注:开关设置只有在重新上电后才能生效)
输入阻抗与连接有关:电压测量时,输入是高阻抗为10 MOhm ;电流测量时,需要将Rx 和 x 短接,阻抗降到250Ohm 。
注意:
为避免共模电压,须将M端与所有信号负端连接, 未连接传感器的通道要短接,如下列各图。
下列各图是各种传感器连接到S7-200 模拟量输入模块的示例
图1: 4线制-外供电-测量
图2: 2线制-测量
为了防止模拟量模块短路,可以串入传感器一个750 Ohm电阻 。它将串接在内部250 Ohm电阻上并保证电流在 32 mA以下。
图 3: 电压测量
注意:
如果你使用一个4-20mA 传感器, 测量值必须通过编程进行相应的转换.
输入转换: X=32000 *(AIWx – 6400) /(32000 – 6400)
输出转换: Y=计算值*(32000 – 6400)/32000 + 6400