物联网技术在运动控制器中的研究和应用.docVIP

  • 27
  • 0
  • 约3.2千字
  • 约 6页
  • 2017-03-29 发布于北京
  • 举报

物联网技术在运动控制器中的研究和应用.doc

物联网技术在运动控制器中的研究和应用.doc

物联网技术在运动控制器中的研究和应用   摘 要:目前工业控制领域硬件成本偏高,对操作者的专业水平要求较为苛刻,协同管理较为困难。文章采用在运动控制器上加入以太网接口,简化控制程序的输入,降低设备硬件成本,实现控制信息的远程显示,从而降低维护成本。   关键词:W5500;以太网;Socket;C++;服务器;客户端   引言   随着自动化控制技术的飞速发展,基于以太网的工业控制总线得到了广泛的使用,给工业生产带来了极大的效益,然而主流的现场控制总线成本较高,对维护和使用人员的技术有着较高的要求,这使得一些中小工厂无力享受技术进步带来的红利,于是基于嵌入式系统的集成以太网芯片W5500应运而生。相关技术行业的发展,让基于以太网的运动控制系统变得多元化,有广泛的应用前景和潜在的经济价值,在此基础上研究使用便捷,适应性强,信号传输稳定,低成本的嵌入式以太网接口是非常有意义的。   基于嵌入式的以太网接口以往都采用软协议栈,因此会占用大量的CPU资源,导致传输延迟较高,可连接客户端较少且容易掉线,在这种情况下就需要一种基于硬件协议栈的以太网通信接口来满足控制信号的稳定高速传输。W5500是一款采用全硬件TCP/IP协议栈的嵌入式以太网控制器,它能使嵌入式系统通过SPI(串行外设接口)接口轻松地连接到网络,通过使用W5500,用户只需通过使用一个简单的socket程序就能实现以太网的应用,而不再需要处理一个复杂的以太网控制器了。   1 系统硬件平台   主控芯片采用意法半导体公司的基于ARM-CortexM3内核的STM32F103VCT6处理器作为系统核心,外围器件有SPI2332,W5500配上一块带电容触摸输入的TFT液晶彩屏。   2 以太网客户机端的搭建   2.1 以太网硬件接口的设计   本控制器通信接口采用W5500方案,将硬件TCP/IP协议栈,MAC层以及PHY层集成到一块芯片里,大大简化了硬件设计,通过SPI通信协议与MCU通信,且对CPU性能要求不高,节省了嵌入式处理器的I/O资源(图1)。   2.2 通信部分软件设计   由于TCP/IP协议栈已经在W5500中实现,MCU只需要配置和读取寄存器的数据即可,程序框图如图2所示。   3 基于socket编程的服务器端功能的实现   服务器是基于Vc++6.0平台开发的,采用的是MFC和Socket套接字编程,Socket的版本为2.0.所采用的通信协议是TCP/IP协议。为了适用于多客户端的连接要求,服务器采取多线程的编程方案,即可以同时响应多客户链接请求事件和数据读取事件[1]。接下来介绍的是服务器的工作流程:   3.1 响应连接请求   启动服务器,首先进行初始化,设置监听端口(监听的端口号为6000)及绑定计算机,无误后开启一个线程等待客户端连接。当一个客户端连接成功后,服务器立即开启一个新线程等待下一个客户端连接,当客户端断开连接后,相应的线程也会随之结束。这样服务器便可以响应多客户端连接了。   3.2 数据区分与转发   不仅仅是PC端要向服务器上传数据,客户机也要向服务器上传设备运行数据,如何来区分和存储这些数据显然是一个头号问题。这里采用的方法是给数据一个“身份证号”ID,每一个设备发的数据具有唯一的ID,这样这些数据到任何一台设备上都能被识别。具体做法在后文中说明。服务器在收到数据后用left()函数取出前两位进行“身份识别”,然后将其存入相对应的数组中,这样便完成了数据的区分存储。数据转发是服务器最重要的功能,服务器收到PC端发来的数据后向下位机转发,服务器收到下位机传上来的收据后下PC端转发。   以上功能的实现还需要用到以下几个函数:   Listen():监听端口;   Accept():用于响应连接请求;   Send():用于发送数据;   Receive():用于接收数据[2]。   还有一些用作数据存储的数组,如csdata[],csRundata[].   3.3 服务器工作流程图(图3)   4 基于socket编程的PC端的实现   (1)PC端是服务器的控制终端,开发平台和技术支持和上面服务器一样,这里不再介绍。PC端的功能是通过连接服务器向下位机传输控制数据。   (2)PC端操作界面(图4):   操作界面一共五个区域。其中三个操作区,操作区一和二都是指令和数据输入区,一共10组。每组的指令都相同,一共有六个,分别是:位移,时间,速度,输入,输出,扫描和跳转;每个指令对应唯一的ID,见表1,默认为空。每个数据为四位,和前面的指令ID组成一个数据块,指令ID在前,数据在后。在发送时,每个数据块依顺序连在一起组成数据链。数据块的个数放在数据链的开

文档评论(0)

1亿VIP精品文档

相关文档