基于VC的执行机构以太网控制系统的设计
2014-02-13 来源:21ic
1 引言
在工业控制领域中,随着控制系统规模的不断增大,集中控制系统已经不能满足要求,控制网络已经广泛应用到工业控制中。现场总线就是顺应这一形式发展起来的技术,并在一定程度上解决了这一问题。但是,现场总线的开放性是有条件的,是不彻底的。当现场总线的发展遇到阻碍时,以太网技术却得到了迅猛发展。如果能将以太网技术成功地用于工业控制底层网络,就可以打破传统的工业控制网络体系,实现办公自动化与工业自动化的无缝结合。
本课题正是在这种环境下提出。在设计中,我们选择了传输速率高、实时性好,成本低的工业以太网,在继承上一代产品中成熟技术的基础上,将工业以太网技术融入到电动执行机构的设计中,使它们成为新一代的数字化产品。为了配合这些网络化的电动执行机构的使用,我们需要构建一套适用于过程控制领域的以太网监控系统。它通过工业以太网,将主控计算机和多个电动执行机构连接起来,按照我们的需求通过计算机对底层进行各种不同的控制,形成一个完整的控制网络。
2 控制系统架构
2.1 控制系统以太网架构
整个控制系统的结构如图1所示。在此,以太网转串口模块相当于完成一个执行机构网卡的作用,用于完成执行机构与以太网之间的协议转换和交流。电动执行机构与以太网转串口模块之间通过串行TTL电平进行通讯,然后通过该模块将电平信号以网络数据帧的形式传送到以太网上(此处以太网可以用HUB代替),然后进一步传送给上位机,从而形成一条从上位机到执行机构的可靠的信道。
本系统所采用的以太网转串口模块是国内某公司开发的一款嵌入式网络模块,它内部集成了TCP/IP 协议栈,用户利用它可以实现嵌入式设备的网络功能。该产品用于串口与以太网之间的数据传输,为串口设备增加以太网接口。可用于串口设备与主控计算机机之间,或者多个串口设备之间的远程通信。
图1 控制系统整体结构图
2.2 电动执行机构和以太网转串口模块通讯的实现
串行通讯采用TTL电平,占用两个I/O口,即输入口(RxD)和输出口(TxD),执行机构主控板需要提供+5V电源给以太网转串口模块,硬件连接如图2所示。
图2 底层通讯的实现原理图
本系统中执行机构所采用的主控芯片为Intel 80C196MC。图中P2.0作为80C196MC的串行输出,P2.1作为80C196MC的串行输入。网卡地线应和主控制板的数字地即单片机的地连接。80C196MC与以太网转串口模块之间采用异步通信,一帧长度为10位,包含8位数据,1位奇偶校验位和1位结束位。
3 软件部分的实现
本系统采用基于VC++6.0的WinSock编程。套接字(Socket)已经成为当今最流行的网络通信应用程序接口。套接字最初由加利福利亚大Berkeley分校为Unix操作系统开发的网络通信接口, 后来它又被移植到DOS与Windows 系统,特别是近几年互联网在全世界范围内的广泛普及, 进一步奠定了它在网络通信程序开发领域的主宰地位。
系统采用Client/Server模式。通过以太网转串口模块的配置软件,将该模块设置成服务器模式,而主控计算机上的控制软件部分为客户端,每次启动由主控计算机主动连接执行机构。客户端和服务器采用面向连接的通信协议:控制计算机和模块之间会建立一个虚拟连接,这个连接一旦建立,客户端和服务器之间就可以把数据当作一个双向字节流进行交换;如果连接建立不成功,则不会发送数据。另外,面向连接传输的每一个报文都需要接收端确认,未确认报文被认为是出错的报文。
3.1 通信过程
Socket有同步阻塞方式和异步非阻塞方式两种使用,本系统应用程序中创建了继承于CAsyncSocket类的TestSocket类,它是一个异步非阻塞Socket封装类。
由于已经将以太网转串口模块设置为服务器模式,所以,主控计算机段的程序是作为客户端出现的,该程序的编写大致按照以下步骤进行:
1) 首先调用WSAStartup函数来初始化套接字库。
2) 调用socket函数来创建一个套接字。
3) 调用connect函数连接服务器,发出连接请求
4) 服务器响应连接请求后,与服务器开始进行交互操作(接收、发送数据等),直到请求结束。
5) 调用closesocket关闭套接字,释放套接字资源。
6) 调用WSACleanup函数释放相应资源。
客户端程序与服务器的通信过程如图3所示:
图3:面向连接服务的socket调用模型
在以太网转串口模块中,服务器程序调用listen函数将此socket置于监听状态,让这个socket对进来的连接进行监听并确认连接请求。当服务器端监听到来自客户端的连接请求后,一个正在监听的socket将给将给每个请求发送一个确认信息,然后调用accept函数,接着,面向连接的客户通过调用connect函数启动网络对话。在客户端和服务器端建立连接以后,双方就可以通过send和recv或其它面向连接的Socket API函数进行网络通信了。
3.2 通信协议
计算机和以太网转串口模块之间用SOCKET进行通信,模块和执行机构之间则采用TTL电平通信,采用统一的通信协议。计算机为主动通讯设备,即所有的对话均由控制计算机发起,执行机构只是被动的应答命令。
协议中信息帧主要分为两种:数据帧与命令帧。它实现一般信息通信功能。数据帧包含一般的I/O信息,而命令帧则包含控制、查询及设置等命令。为保证信息传送的准确性,每条命令必须进行校验(校验和1),如果命令后有命令参数的话,要再次校验(校验和2)。执行机构返回的信息也要校验。校验的方法可采用逐字节异或的方式。
控制计算机命令格式如下:
数据头 |
命令码 |
校验和1 |
命令参数 |
校验和2 |
执行机构返回:
数据头 |
命令返回码 |
位置/状态/参数 |
校验和 |
数据头一方面作为一次信息开始的标志,另一方面用作校验命令。命令码和命令返回码应一致,保证控制计算机可以接收到正确的命令返回信息。
3.3 软件初步模型
图4是目前用于系统测试的客户端软件的初步模型,通过调试验证,其功能已经能基本满足当前的测试需求:
(1) 每个执行机构都有一块与其对应的以太网转串口模块,且每个模块都有自己固定的IP地址:输入IP可与指定执行机构进行连接,可以与多台执行机构同时进行连接并操控。
(2) 通过握手指令来确认连接是否已经成功。若连接不正常,则进行握手时系统会收到来自执行机构的错误报告。
(3) 可查询当前执行机构的运行位置、运行状态、以及其参数的设置情况等。
(4) 对执行机构的参数进行远程设置:在执行机构投入使用之前,都必须按照需求对其进行相应的参数设置;在使用过程中亦可通过此功能来改变设置。
(5) 可以通过指定开度百分比让执行机构运行到任意的目的位置。
(6) 可以指定方向让执行机构正反转或者停止,也可进行自主运行。
图4:客户端软件初步模型
4 总结及展望
本文作者创新点:给出了基于VC的执行机构以太网监控系统的设计方案,实现了高效、快捷的远程控制。在下一步的开发中,使本系统的应用软件与市面上通用的工控组态软件相兼容:比如一般的组态软件都会嵌入ModBus/TCP协议,本软件能够在内部完成对该协议的转换。也就是当组态软件发出控制命令后,本软件能够识别命令并能够将其转换成执行机构能够识别的自定义协议,来间接的对执行机构进行控制。这样,系统就能够与组态软件实现控制上的兼容,并达到现场数据的共享。
总之,随着以太网传输速度的不断加快以及在确定性、实时性、可靠性方面性能的不断改善,工业以太网无疑会在未来的控制网络中扮演越来越重要的角色。