如何在Winsock控件实现PLC网络通信控制

发布时间:2015-08-1 阅读量:1369 来源: 我爱方案网 作者:

【导读】我爱方案网小编为大家介绍如何在Winsock控件实现PLC网络通信控制,实现对控制系统进行有效的信息管理与监控,基于以太网的PLC控制系统必将有更为广泛的应用,本文的论述对解决这类问题提供了一定参考价值。

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

近年来随着计算机网络技术的飞速发展,网络化数控已经成为现代制造业发展的必然趋势,控制系统正向虚拟化、网络化、集成化、分布化和节点智能化的方向发展。[1]许多大型PLC厂商生产的PLC都配备了相应的以太网通信模块,本文讨论了OMRONPLC的以太网通信体系结构,并以CP1HPLC的ENT2l以太网模块为例实现与计算机的通信。

1.Winsock网络通信控件


Winsock控件是不可视控件,它提供了访问TCP和UDP网络服务非常简便的途径,使编程人员开发客户/服务器应用程序时,不必了解TCP的细节或调用低级的WinsockAPI函数,只通过设置Winsock控件的属性并调用其方法,就可直接连接到一台远程计算机进行,并可实现双向数据交换。

WinSock主要支持两种类型的套接字:①流式套接字(StreamSocket)也称面向连接方式,该方式对应的是TCP协议,其传输特点是通信可靠性高,可以保证数据流的传输是可靠的、有序的、无重复的,可提供双向的数据流,数据被看作字节流,无长度限制。②数据报套接字(DatagramSocket)又称无连接方式,对应的是UDP协议,这种方式不提供数据传输的正确性、有序性和无重复性,因为它支持面向记录的数据流。因此,传输的数据可能丢失和重复,并且接收顺序混乱,报文长度是有限的。考虑到本系统对通信可靠性和正确性的要求很高,选用流式套接字方式。基于Client/Server模式的流式套接字通讯过程如图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所示,以太网的分层模型分为物理层(PhysicalLayer)、网际层(InternetLayer)、传输层(TranspotLayer)和应用层(ApplicationLayer)。其中:传输层可使用无连接的UDP或需建立连接的TCP协议;应用层为FINS(FactoryInterfaceNetworkService)协议,FINS协议是由OMRON公司开发的用于工厂自动化控制网络的指令响应系统。主要规定对PLC存储空间的数据读写等操作方法。应用层使用FINS协议,传输层使用TCP协议的通信实现方法称为FINS/TCP方法。

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

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

如何在Winsock控件实现PLC网络通信控制

4.通信程序的具体实现


在新建VB工程后,需要执行VB工具栏“工程/部件”命令,将Winsock控件添加到工程中,并命名为“WskClient”。程序采用TCP/IP协议进行通信,其主要属性设定如下:

WithWskClient

Protocol=sckTCPProtocol‘采用TCP/IP协议

LocalPort=9600‘本地计算机端口号

RemoteHost=txtIP.Text‘取得远程PLC的IP地址

RemotePort=txtPort.Text‘远程PLC端口号

Bind9600‘指定使用的本地端口

EndWith


初始化工作完成后向PLC提出连接请求,待PLC接受请求并发送应答信息后,客户端程序依照各种帧格式建立好要发送的信息帧,就可以与PLC进行双向的数据交流了。在这一过程中,可建立发送失败后的重发机制,以增强通信的可靠性。

首先,建立并发送“握手信息”指令(20字节),指明客户机节点号;当计算机接收到PLC返回帧(24字节)后,检查PLC是否收到命令,并取得服务器和客户机节点号。当计算机接收到PLC返回的数据时,会产生DataArrival事件,参数BytesTotal包含接收到的数据字节数。在DataArrival事件中,可以调用GetData方法接收数据。如果接收到Close事件,则用Close方法关闭连接。另外,可用Winsock的State属性来反映当前TCP/IP的连接状态。这里仅列举主要程序如下:

‘向服务器请求连接

WskClient.Connect

TimeDelay100

Do

DoEvents

LoopUntilWskClient.state=sckConnected

‘建立并发送FINS命令帧

PrivateSubSendData_Click()

ReDimSendData(19)AsByte

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

……

WskClient.SendDataSendData()‘发送FINS命令帧

EndSub

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

PrivateSubWskClient_DataArrival(ByValbytesTotalAsLong)

DimiAsInteger

ReDimArriveData(bytesTotal)AsByte

wsk.GetDataArriveData,vbArray+vbByte,bytesTotal

‘接收数据,保存在ArriveData数组中

Fori=0TobytesTotal-1

txtArData.Text=txtArData.Text&""&ArriveData(i)

Nexti

……‘其它数据处理

IfArriveData(7)<>16Then

MsgBox“接收信息丢失“

ElseIfSendData(19)=ArriveData(bytesTotal-5)Then

MsgBox“节点地址错误“

EndIf

EndIf

在接收信息后,当PLC收到传输过去的信息后,会将对应的命令反馈值传回,这个事件程序内的程序将它显示在文本框中,还可作进一步处理。主程序流程图如图4所示。

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

采用Winsock控件实现的上位机以太网通信程序,已成功应用于数字小样并条机监控系统中,该法简单实用,在不追加投资的情况下,实现车间设备的网络数据实时监控的功能,达到了理想的效果。而且以VB作为监控软件的开发平台,软件的二次开发不受限制,节约成本,并可根据需要随时对程序进行升级。

相关文章

智能电网的网络通信架构及关键技术解析

家庭网络通信协议技术研究

一款光模块在网络安全中的应用
相关资讯
西部电子信息博览会启幕,聚力成渝打造世界级产业集群​​

7月9日,成都迎来第十三届中国(西部)电子信息博览会的盛大启幕。本届博览会紧扣“新动能、新生态、新西部”主题,在国家战略引领下,聚焦培育新质生产力,深化成渝双城产业协同,通过展示前沿成果、分享发展理念、促进生态合作,加速推动成渝地区电子信息先进制造集群向世界级跃升,倾力打造中国电子信息产业高质量发展的关键引擎。

解密伍尔特电子高温LED:PLCC封装实现100℃全彩照明方案

在工业4.0和智能制造的浪潮下,高温环境中的电子照明技术面临严峻挑战。传统LED在温度超过85°C时容易出现性能衰减、颜色漂移及寿命缩短等问题,限制了其在自动化设备、医疗仪器等关键领域的大规模应用。针对这一痛点,伍尔特电子(Würth Elektronik)通过创新研发,升级了其WL-SFTW SMT全彩高透明LED系列,引入全新RGB LED产品。这些器件将工作温度范围扩展至前所未有的-40°C至+100°C,显著提升了高温工况下的可靠性和色彩稳定性,不仅克服了行业瓶颈,还为工业、户外及特种场景开辟了创新空间。本系列产品的推出,标志着高温LED技术向高端应用迈进的里程碑,满足了对耐热、节能且可变色照明的迫切需求。

华硕高管谈关税不确定性对PC市场的冲击策略

华硕联席CEO许先越近期发表了关于美国对中国台湾地区关税政策影响的评论。他强调,当前美国对台湾关税的税率尚未正式公布,华硕已探讨了多种应对预案,但最终策略调整将取决于税率的具体确定。因此,公司目前采取“观望”态度,暂不进行重大行动。许先越指出,这一不确定性结合汇率波动,使得2023年下半年全球PC市场的走势难以准确预测,公司将密切监控外部环境变化。

重塑格局受阻?中芯收购Imagination GPU部门传闻遭多方否认

近日,一则关于“中芯国际以5.6亿美元收购英国Imagination Technologies GPU IP部门”的消息在部分自媒体平台流传。传闻称交易已于7月6日公告并获中欧监管部门批准,引发广泛关注。然而,经多方核实与权威信息查证,该传闻纯属虚假。

六九冗余架构问世!IBM Power11重新定义企业服务器可靠性标准

2025年7月,IBM正式发布Power11服务器系列,这是该产品线五年来首次架构级革新。据IDC研究显示,全球企业面临AI转型与混合云部署的双重压力,到2028年将新增10亿个逻辑应用。在此背景下,Power11通过颠覆性设计解决了高可用性、AI集成和网络安全的协同难题,为金融、医疗等关键领域提供新一代数字基座。