下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Winsock控件实现欧姆龙PLC网络通信控制设计方法 在工业控制中,用PLC控制的工程在上/下位机通讯上一般采用RS-232/RS-485串口通讯,这种方法对于数据量较大,通讯距离较远,实时性要求高的控制系统,很难满足通讯需要。 近年来随着计算机网络技术的飞速发展,网络化数控已经成为现代制造业发展的必然趋势, 控制系统正向虚拟化、网络化、集成化、分布化和节点智能化的方向发展。1许多大型PLC厂商生产的PLC都配备了相应的以太网通信模块,本
2、文讨论了OMRON PLC的以太网通信体系结构,并以CP1H PLC的ENT2l以太网模块为例实现与计算机的通信。 1、Winsock网络通信控件 Winsock控件是不可视控件,它提供了访问TCP和UDP网络服务非常简便的途径,使编程人员开发客户/服务器应用程序时,不必了解TCP的细节或调用低级的Winsock API函数,只通过设置Winsock控件的属性并调用其方法,就可直接连接到一台远程计算机进行,并可实现双向数据交换。
3、 WinSock主要支持两种类型的套接字:流式套接字(Stream Socket)也称面向连接方式,该方式对应的是TCP协议,其传输特点是通信可靠性高,可以保证数据流的传输是可靠的、有序的、无重复的,可提供双向的数据流,数据被看作字节流,无长度限制。数据报套接字(Datagram Socket)又称无连接方式,对应的是UDP协议,这种方式不提供数据传输的正确性、有序性和无重复性,因为它支持面向记录的数据流。因此,传输的数据可能丢失和重复,并且接收顺序混乱,报文长度是有限的。考虑到本系统对通信可靠性和正确性的要求
4、很高,选用流式套接字方式。基于Client/Server模式的流式套接字通讯过程如图1所示。 图1 流式套接字进程通讯过程时序图 2、Ethernet网络通信单元的设置 在组建网络时,根据网络类型的不同,网络中的每个节点需要安装相应的通信单元,PLC上需安装Ethernet网络通信模块,例如0MR0N公司的CJ1WETN21以太网模块。应用之前必需对网络进行必要的设置,分为开关设置和
5、CPU总线单元系统设置。 开关设置主要包括以下几项内容:确定分配给CJ1WETN21单元的内存工作区(CIO区、DM区),该地址在CPU总线区,由UNIT No.开关确定ETN单元的单元号范围为0F;NODE No.旋转开关设定两组l6进制数作为ETN单元在网络中的节点号,范围为O17E;IP地址设置网络号和主机节点号,由32位二进制数组成,分4段以十进制数表示。 CPU总线单元设置主要通过编程设备如CXProgrammer软件
6、或编程器对网络单元进行模式、本地IP地址、子网掩码、FINS端口号、FTP登录名及口令和IP路由器表等项进行设定。若使用FINS/TCP协议,则还需在以太网单元设置中修改FINS/TCP项的部分参数,如:自动分配的FINS节点号、是否保持激活等项。 3、面向上位计算机的通信协议 如图2所示,以太网的分层模型分为物理层(Physical Layer)、网际层(Internet Layer)、传输层(Transpot Layer)和应用层(Ap
7、plication Layer)。其中:传输层可使用无连接的UDP或需建立连接的TCP协议;应用层为FINS(Factory Interface Network Service)协议,FINS协议是由OMRON公司开发的用于工厂自动化控制网络的指令响应系统。主要规定对PLC存储空间的数据读写等操作方法。应用层使用FINS协议,传输层使用TCP协议的通信实现方法称为FINS/TCP方法。 图2 网络的分层结构 FINS协议包含指令系统和响应系统,其命令帧格是由FINS
8、报头、指令代码、响应代码和正文等几部分组成。从上位计算机发出的指令和响应必须符合下面帧的格式要求,并提供合适的FINS报头信息。3-4FINS通信服务是通过FINS命令帧和它们对应的响应帧交换实现的。 FINS命令/响应帧格式如图3所示。FINS/TCP header中规定了五种命令,用于客户机(host computer)与服务器(PLC)之间通信:发送客户机节点地址(node address);(2)发送服务器节点地址(node address);(3)发送Fins frame;(4)Fins frame发
9、送出错通知;(5)客户机与服务器联机确认。 图3 FINS命令/响应帧格式 4、通信程序的具体实现 在新建VB工程后,需要执行VB工具栏“工程/部件” 命令,将Winsock控件添加到工程中, 并命名为“WskClient”。程序采用TCP/IP协议进行通信,其主要属性设定如下: With WskCl
10、ient .Protocol = sckTCPProtocol 采用TCP/IP协议 .LocalPort = 9600 本地计算机端口号 .RemoteHost = txtIP.Text 取得远程PLC的IP地址 .RemotePort = txtPort.Text 远程PLC端口号 .Bind 9600 指定使用的本地端口 End With &
11、#160; 初始化工作完成后向PLC提出连接请求,待PLC接受请求并发送应答信息后,客户端程序依照各种帧格式建立好要发送的信息帧,就可以与PLC进行双向的数据交流了。在这一过程中,可建立发送失败后的重发机制,以增强通信的可靠性。 首先,建立并发送“握手信息”指令(20字节),指明客户机节点号;当计算机接收到PLC返回帧(24字节)后,检查PLC是否收到命令,并取得服务器和客户机节点号。当计算机接收到PLC返回的数据时,会产生DataArrival事件,参数BytesTotal
12、包含接收到的数据字节数。在DataArrival事件中,可以调用GetData方法接收数据。如果接收到Close事件,则用Close方法关闭连接。另外,可用Winsock的State属性来反映当前TCP/IP的连接状态。这里仅列举主要程序如下: 向服务器请求连接 WskClient.Connect TimeDelay 100 Do DoEvents
13、; Loop Until WskClient.state=sckConnected 建立并发送FINS命令帧 Private Sub SendData_Click() ReDim SendData (19) As Byte SendData (0) = &H46FINS命令帧报头的第1个字节 WskClient.SendData SendData() 发送FI
14、NS命令帧 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, bytesTo
15、tal 接收数据,保存在ArriveData数组中 For i = 0 To bytesTotal - 1 txtArData.Text = txtArData.Text & " " & ArriveData (i) Next i 其它数据处理 If ArriveData(7) <> 16 Then
16、 MsgBox“接收信息丢失“ ElseIf SendData(19)= ArriveData (bytesTotal-5) Then MsgBox“节点地址错误“ End If End If 在接收信息后,当PLC收到传输过去的信息后,会将对应的命令反馈值传回,这个事件程序内的程序将它显示在文本框中,还可作进一步处理。主程序流程图如图4所示。 图4 程序流程图 若采用UDP协议,则通信的基本过程与TCP相同,只是不需要建立连接。此外,UDP应用程序可以是客户机,也可以是服务器,而不必象TCP应用程序那样必须分别建立客户机程序和服务器程序。由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快。因此如果网络中设备不是很多,且发送数据量不大时,可选择耗费计算机“资源”更小的UDP协议进行通信。 &
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年广西贺州市富川瑶族自治县自然资源局招聘2人模拟笔试试题及答案解析
- 2026昆玉职业技术学院引进高层次人才(28人)参考考试试题及答案解析
- 2025漳州城投地产集团有限公司市场化用工人员招聘模拟笔试试题及答案解析
- 深度解析(2026)《GBT 26492.3-2011变形铝及铝合金铸锭及加工产品缺陷 第3部分:板、带缺陷》
- 深度解析(2026)《GBT 26056-2010真空热压铍材》(2026年)深度解析
- 2026年宁波镇海中学嵊州分校招聘事业编制教师2人考试备考题库及答案解析
- 深度解析(2026)《GBT 25749.1-2010机械安全 空气传播的有害物质排放的评估 第1部分:试验方法的选择》(2026年)深度解析
- 2025泰安新泰市泰山电力学校教师招聘参考笔试题库附答案解析
- 2025山东铝业有限公司面向中铝股份内部招聘考试备考题库及答案解析
- 2026福建三明市建宁县公开招聘紧缺急需专业教师19人备考考试试题及答案解析
- 拖拉机运输协议合同范本
- 辽宁省安全生产条例讲解
- 营业执照管理办法公司
- 如何开展护理科研
- 深圳市坪山区高标准农田建设规划(2021-2030年)(草案以及编辑说明)
- 口腔门诊护士沟通技巧
- 新工厂工作汇报
- 生产插单管理办法
- DB64T 2146-2025 工矿企业全员安全生产责任制建设指南
- 山东动物殡葬管理办法
- 汽车电子工程师岗位面试问题及答案
评论
0/150
提交评论