热门搜索:人民论坛、 山东社会科学、 新闻爱好者、 制造业自动化

基于Winsock 控件实现PLC 网络通信控制

浏览40次 时间:2013年12月05日 14:00

王 进 榆林职业技术学院 719300

【文章摘要】

介绍了一个使用Visual Basic Socket 控件与OMRON PLC 之间的通信程序,并成功地应用在自动控制系统中,主要实现上位机与OMRON PLC 之间的以太网通信,并对它们之间的通信协议作了描述,本文所介绍的通信程序的设计方法具有一定参考价值。

【关键词】

可编程逻辑控制器;以太网;FINS Winsock 控件

在工业控制中,用PLC 控制的工程在上/下位机通讯上一般采用RS-232 RS-485 串口通讯,这种方法对于数据量较大,通讯距离较远,实时性要求高的控制系统,很难满足通讯需要。

近年来随着计算机网络技术的飞速发展, 网络化数控已经成为现代制造业发展的必然趋势, 控制系统正向虚拟化、网络化、集成化、分布化和节点智能化的方向发展。许多大型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 所示。

2 Ethernet 网络通信单元的设置

在组建网络时,根据网络类型的不同,网络中的每个节点需要安装相应的通信单元,PLC 上需安装Ethernet 网络通信模块,例如0MR0N 公司的CJ1W ETN21 以太网模块。应用之前必需对网络进行必要的设置,分为开关设置和CPU 总线单元系统设置。

开关设置主要包括以下几项内容:确定分配给CJ1WETN21 单元的内存工作区(CIO 区、DM 区),该地址在CPU 总线区,由UNIT No. 开关确定ETN 单元的单元号范围为0 F NODE No.旋转开关设定两组l6 进制数作为ETN 单元在网络中的节点号,范围为O1 7E IP 地址设置网络号和主机节点号,由32 位二进制数组成,分4 段以十进制数表示。

CPU 总线单元设置主要通过编程设备如CXProgrammer 软件或编程器对网络单元进行模式、本地IP 地址、子网掩码、FINS 端口号、FTP 登录名及口令和IP 路由器表等项进行设定。若使用FINS TCP 协议,则还需在以太网单元设置中修改FINS TCP 项的部分参数,如: 自动分配的FINS 节点号、是否保持激活等项。

3 面向上位计算机的通信协议

如图2 所示,以太网的分层模型分为物理层(Physical Layer)、网际层(InternetLayer)、传输层(Transpot Layer) 和应用层(Application Layer)。其中:传输层可使用无连接的UDP 或需建立连接的TCP 协议;应用层为FINS(Factory Interface Network Service) 协议,FINS 协议是由OMRON 公司开发的用于工厂自动化控制网络的指令响应系统。主要规定对PLC 存储空间的数据读写等操作方法。应用层使用FINS 协议,传输层使用TCP 协议的通信实现方法称为FINS TCP 方法。

FINS 协议包含指令系统和响应系统,其命令帧格是由FINS 报头、指令代码、响应代码和正文等几部分组成。从上位计算机发出的指令和响应必须符合下面帧的格式要求,并提供合适的FINS 报头信息。FINS 通信服务是通过FINS 命令帧和它们对应的响应帧交换实现的。

FINS 命令/ 响应帧格式如图3 所示。FINS/TCP header 中规定了五种命令,用于客户机(host computer)与服务器(PLC) 之间通信:发送客户机节点地址(node address);(2)发送服务器节点地址(node address);(3)发送Fins frame ;(4Fins frame 发送出错通知;(5)客户机与服务器联机确认。

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 的连接状态。这里仅列举主要程序如下:

向服务器请求连接

WskClientConnect

TimeDelay 100

Do

DoEvents

L o o p U n t i l W s k C l i e n t . state=sckConnected

建立并发送FINS 命令帧

Private Sub SendData_Click()

ReDim SendData (19) As Byte

SendData (0) = &H46FINS 命令帧报头的第1 个字节

……

WskClient.SendData SendData() 发送FINS 命令帧

End Sub

接收PLC 响应帧,并分析数据

P r i v a t e S u b W s k C l i e n t _ 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 所示。

若采用UDP 协议,则通信的基本过程与TCP 相同,只是不需要建立连接。此外,UDP 应用程序可以是客户机, 也可以是服务器, 而不必象TCP 应用程序那样必须分别建立客户机程序和服务器程序。由于UDP 在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快。因此如果网络中设备不是很多,且发送数据量不大时,可选择耗费计算机资源 更小的UDP 协议进行通信。

5 结束语

采用Winsock 控件实现的上位机以太网通信程序,已成功应用于数字小样并条机监控系统中,该法简单实用, 在不追加投资的情况下, 实现车间设备的网络数据实时监控的功能,达到了理想的效果。而且以VB 作为监控软件的开发平台,软件的二次开发不受限制,节约成本,并可根据需要随时对程序进行升级。为实现对控制系统进行有效的信息管理与监控,基于以太网的PLC 控制系统必将有更为广泛的应用,本文的论述对解决这类问题提供了一定参考价值。

【参考文献】

[1] 李炳宇. 萧蕴诗. 以太网在网络控制系统中的应用与发展趋势 微型机与应用 2002 年第11 35- 3756

[2]CJ1WETN21(100BaseTX)Ethemet Units Construction of Applications OPERATION MANUALOMRON2003

[3]SYSMAC cs cJ Series Communications C o m m a n d s R E F E R E N C E M A N U L OMRON2003

【作者简介】

王进(1983-)男,陕西榆林人,助教职称,所在单位:榆林职业技术学院,研究方向:数字化方向

TAG: 通信 网络
上一篇 下一篇

论文发表与咨询

论文发表 写作指导 职称论文 毕业论文 客服联系方式:
投稿信箱:qwlw888@163.com
在线咨询客服QQ:站点合作85610631
联系电话:18262951856
点击进入支付宝支付(支付宝认可网络诚信商家)
点击进入财付通支付(财付通认可网络诚信商家)
点击进入支付方式---->>>>

论文发表 诚信说明