为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

基于客户/服务器模式的远程控制系统

2012-04-08 4页 pdf 152KB 25阅读

用户头像

is_649465

暂无简介

举报
基于客户/服务器模式的远程控制系统 第25卷 VO1.25 第5期 NO.5 计算机工程与设计 COMPUTER ENGINEERING AND DESIGN 2004年5月 May.2004 文章编号:1000.7024(2004)05.0796.04 中圈分类号:TP31 基于客户 艮务器模式的远程控制系统 朱晓蕾, 余达太, (北京科技大学, 副、昌国, 颜 静 北京 100083) 文献标识码:A 摘 要:随着计算机和远程通讯为代表的信息技术的飞速发展和广泛应用,使远程监控、远程教育、远程贸易 和服务成为...
基于客户/服务器模式的远程控制系统
第25卷 VO1.25 第5期 NO.5 计算机工程与 COMPUTER ENGINEERING AND DESIGN 2004年5月 May.2004 文章编号:1000.7024(2004)05.0796.04 中圈分类号:TP31 基于客户 艮务器模式的远程控制系统 朱晓蕾, 余达太, (北京科技大学, 副、昌国, 颜 静 北京 100083) 文献标识码:A 摘 要:随着计算机和远程通讯为代表的信息技术的飞速发展和广泛应用,使远程监控、远程教育、远程贸易 和服务成为可能。提出了一种基于客户/服务器模式的交流伺服控制器的远程监控系统,阐述了其体系结构及各 部分功能,并开发了基于TCP/IP协议的远程通信实用程序。 关键词:远程控制;TCP/IP;客户/服务器 Remote control system based on client/server and development of software ZHU Xiao-lei, YU Da—tai, SUN Chang-guo, YAN Jing (University of Science and Technology Beijing,Beijing 100083,China) Abstract:With the quick development and extensive application ofmodern information techn ology ,remote monitoring and con- trol, remote education,remote trades and services become realizable. In order to meet the developments and requiremeDts, a remote monitoring and control system of alternating servo controller based on client/server architecture was confirmed and deve- loped,whose architecture and its functions were well clarified.Also,all application program was developed with the foundation ofTCP/IP protoco1. It is proved by experiments that this system can work real time on the remote monitoring and control over al- ternating servo controller reliably and accurately. Key words:remote control;TCP/IP protocol;client/server winsock 1 引 言 在互连网上,人们可以利用网络来交换邮件,讨论问 题,阅读,协作,甚至游戏。今天,人们也希望通过网络从 异地甚至遥远的地方来掌握家中工控产品的状态或对其 进行某种操作,即实现远程控制。因此,开发一套能够实 现在远端 PC机上对本地电机进行监视和控制的系统即 应用交流伺服控制器的远程控制系统无论是在经济上还 是在技术上,都有积极的现实意义。针对这一情况,本文 提出了一种如何建立交流伺服控制器的远程控制系统的 设想,即生产加工的操作者与被操作对象在物理上进行 分离,而在信息、逻辑上进行集成。这一技术的实现扩大 了操作者对操作对象的控制范围,提高了管理者对异地 电机运行情况掌控的程度,实现了远程的技术咨询和远 程设备的故障诊断。 2 交流伺服控iti0器的远程控制系统 交流伺服控制器的远程控制系统是通过网络技术实 现异地计算机监控本地电机的运行状态,并能及时地调 整电机的动作。它以常用的TCP/IP协议为网络基础,采 用Client/Server的工作模式。系统框图如图 l所示。 图 1 系统框 图 远端技术服务中心作为客户端,它主要是用于和监 控用户的交互,从网络中得到电机的状态信息并将其传 递给监控用户进行分析和处理,其分析结果、控制信息和 数据信息,通过网络传递到本地监控用户 (即服务器)进 行执行。 本地监控机作为服务器,一方面,它通过本身的串口 与交流伺服控制器进行通信,来获取电机的运行状态信 息和控制器的控制信息;另一方面,它能够通过网络传送 电机数据信息(如电机设置的参数)和控制信息(如控制 收稿日期:2003.01.10。 作者简介:朱晓蕾,女,硕士研究生,研究方向为交流伺服控制器的远程控制。 -— — 796-—— 维普资讯 http://www.cqvip.com 电机以何种方式运转)。当开启远程控制时,服务器能够 根据客户端的要求来采集 电机的状态信息并通过网络向 其发送。 在本系统中所使用交流伺服控制器,是一个可编程 控制器,它是由控制回路、电源部分和主回路部分等3部 分组成。在系统中,它一方面接受本地监控机发送的电 机控制信息,另一方面,它实时地反馈给本地监控机要读 取的控制信息和电机运转状态信息。 对于本文设计的远程监控系统来说,其传输信息有自 己独特的含义。在客户端和服务器间传递的信息,主要有 客户端的控制信息、数据信息和服务器端的状态信息。服 务器提供网络状态监控,并通过伺服控制器来提供电机运 行状况监控报告服务。其网络结构如图2所示。 远端 本地 控 ~ , 息 ~ \ /, 一、\\ 控制信息一 监控 技术 机 珊 胛 服 务 (服 中心 务器 ’\\、 (客户 端) 端)。 图 2 网络 结构 3 程序主要设计构想 远程控制系统程序设计从以下6方面着手: (1)程序主要采用面向服务器/客户的模式,以事件 驱动方式运行,该模式的流程图如图3所示。 服务器 罕 TCP,服务 器准备好 客户 端 + 建立流式Socket 接收数据,得到另 J 一 Sockets2 』.—一 Sockets与远端 I 连接主机 在 Sockets2读写 在 Sockets写/读 数 据到传 送完 H●—- 数据到完 t l l 关闭Sockets2 T 关闭 Sockets 关闭最初的 结束TCP Sockets 图3 服务器/客户模式流程图 (2)服务器和客户端的连接基于TCP佃 协议。 (3)服务器端程序响应客户端的连接请求并打开与交 伺服控制器通信的端口。 (4)在服务器上设置定时器定时读取交流伺服控制器 的电机的状态信息,当接收到客户端的请求,按客户的要 求发送,并在客户端的终端上显示。 (5)数据传递采用文件传送方式进行,基于数据格式 为文本文件类型,当一个文件进行传送时,一次传送一个 包,发送计算机在串行链路上将数据报文打包,接收时系 统 自动解包并将其写入文件中。在协议传送期间,涉及 到的计算机系统要交换有关传送操作的信息,由双方认 可的控制信号来完成,控制信号由设备和通信控制字符 组成,并且这些控制字符来源于美国国家协会(AN— SII)的ASCII字符集。借助于这些控制信号,就可以表示 出接收到数据或数据有错或传送已结束。 (6)包含普通终端的常用功能 (如输入指令缓存区、 历史记录的存档、日志等)。 4 系统程序具体实现 编写TCP/IP通讯程序需要采用Winsock编程,在Win. dows95/98,WindowsNT进行Winsock开发使用的编程语言 有很多,如vC++、JAVA、DELPHI、VB等。其中vC++使用 最为普遍 ,和Winsock结合最为紧密。并且 VC++对原来 的WindowsSockets库进行了一系列封装,继而产生了 CAsynSocket、CSocket、CSocketFile等类 ,它们封装着有关 Socket的各种功能,使编程变得更加简单。之所以选择 TCP是因为它是一种基于连接的协议,在文件传输时会 先行建立连接,通过连接可确保文件传输的正确性:UDP 则是一种无连接的协议,它在传输文件时不会确保传输 端的文件能够正确无误地传送到接收端,所以我们没有 采用UDP协议。 本文设计的远程控制系统程序利用vC++6.0作为开 发平台,使用MFC应用程序中的单文档模板作为整个系 统程序的框架。它主要由3部分成组成:客户端程序 、服 务器端程序和服务器与伺服控制器通信程序。以下分别 列出在各部分程序中重要类和结构的定义。 4.1 服务器端程序设计 (1)CServerView不仅显示发送信息和接收到的信息. 而且设制定时器查询伺服控制器的状态: class CServerView:public CeditView { public: \\显示接受信息 void Message(LPCTSTR lpszMessage'); void OnTimer(UINT nlDEvent);\\设制定时器 } (2)CListenSocket这个类代表 了监听 Socket: class CListenSocket:public CSocket { public: ·— — 797·—— 维普资讯 http://www.cqvip.com CServerDoc m _ pDoc\\建立一个文档类指针变量 public: \\处理客户的请求 virtual void OnAccept(int nErrorCode) } (3)CClientSocket管理网络通信: class CClientSocket:public CSocket { public: CSocketFile m pFile;\\以下4个变量为实现 CArchive m pArchieveln;\\信息的序列化而设 CArchive m pArchieveln; CServerDoc m pDoc; public: void Init0; void Abort(); void SendMsg(CMsg pMsg);~发送信息 void ReceiveMsg(CMsg pMsg);~接受信息 } (4)CMsg用于封装发送和接受的信息,以便于程序 更好地处理信息在网络中交互。 class CMsg:public:Cobject { public: CString m _ strText;~发送的字符信息 BOOL m _ bClose;~是否关闭了客户端程序 CStringList m _ sgList;\\表示信息列表 public: void Init0; \\串行化存储 virtual void Serialize(CArchive&ar1 } (5)CserverDoc这个类在服务器端程序中是最复杂的, 它负责管理一个监听的Socket和一个客户Socket的列表; 另外,它还负责管理一个接受信息的列表。 class CServerDoc:public CDocument { public: CListenSocket m pSocket; CStringList m _ msgList; CPtrList m _ connection.List; public: void UpdateClient0; \\收集信息 CMsg AssembleMsg(CclientSocket pSocket); CMsg ReadMsg(CclientSocket pSocket);\\读信息 \\发送信息 ·— — 798·—— void SendMsg(CclientSocket pSocket.CMsg pMsg); \\关闭Socket void CloseSocket(CclientSocket pSocket); virtual void Serialize(CArchive& : } 4.2 客户端程序设计 (1)CClientView(1)显示发送信息和接收到的信息: class CClientView:public CeditView { public: \\显示接受信息 void Message(LPCTSTR lpszMessage); } (2)CClientSocket管理网络通信: class CClientSocket:public CSocket { public: CClientDoc m pDoc; public: \\接受信息 virtual void OnReceive(int nErrorCode); } (3)CMsg也是用于封装发送和接受的信息,与服务器 端结构相同不再重复。 (4)CserverDoc这个类在服务器端程序中是最复杂的, 它负责管理一个监听的Socket和一个客户Socket的列表; 另外,它还负责管理一个接受信息的列表。 class CClientDoc:public CDocument { public: CSocketFile m pFile,\\以下4个变量为实现 CArchive m pArchieveln;\\信息的序列化而设 CArchive m pArchieveln; CClientSocket m pSocket; public: BOOL ConnectSocket(LPCTSTR lpszHandle,LPCTSTR\ lpszAddress,UINT nPort);\\连接服务器 void ReceiveMsg0;\\接受信息 void SendMsg(CString&strText);\\发送信息 \\串行化存储 virtual void Serialize(CArchive&ar): } 4.3 服务器与伺服控制器的通讯程序的设计 (1)PCOMM表示在Windows通信中,串口的所有属 性。 typedef struct tagCOMM f 维普资讯 http://www.cqvip.com HWND hWnd;//窗 口句柄 HANDLE idCommDev;//串口句柄 HANDLE idCommDevPrev;//初始串口句柄 INT port;//串口号 CHAR PortName[10];//串口名 BOOL fConnected;//串口是否连接 HANDLE hPostEvent;//主事件句柄 //用户针对窗口自定义事件句柄 HW ND hPostToW nd; OVERLAPPED os;//I/O重叠 COMMCONFIG cc;//串口初始设置 COMMTIMEOUTS timeouts;//I/O重叠延 时 INT mode;//通信方式 }PCOMM, (2)cEvwincoI砌 实现服务器与伺服控制器之间的 通信: class CEVW inCOIIlII1 { public: PCOMM COMM ; CW inThread pWatchThread; CEVWinComm0; -43EVWinComm(); BOOL OpenComm0;\\打开串口 void CloseComm0;\\关闭串口 void OnSend0;\\发送信息 void OnRecv0;\\接受信息 BOOL SetupCommResO;\\初始化串口设置 void SaveToFile(const char fname,\ \\以文件形式存储 const char data,int nCount); \\获得串口 void GetPort(int port,char strPort); \\将十六进制转化为十进制 long HexCharToNum(const char str); \\设置缓冲区大小 char SendBytes[256],RecvBytes[4096]; }; 4.4 程序的具体实现注意的问题 (1)服务器端和客户端应用程序都要进行初始化处 理,如port(端 口)缺省值的设定等。由于“交流伺服控制 器的远程控制系统”是服务器和客户的综合体,因此初始 化处理更加重要。 (2)应独立编写通讯模块 ,把网络通信作为应用程序 中的一个模块,有利于移植到其它应用程序。 (3)尽量避免通讯双方 同时发送数据,这样可能造成 数据的暂时阻塞。在服务器端,如果是无人职守的机房, 要考虑程序的关闭保护 ,确保程序始终处于正常的侦听 状态。 (4)编写终端程序时,要考虑终端窗口所能显示文本 内容的最长限度,避免出现不必要的程序运行错误。 5 结 论 本文将客户/服务器模式应用在伺服控制器 的远程 监控系统中,在实际开发中表明,该系统可以实时、快捷、 可靠地对交流伺服控制器进行远程监控。 参 考 文 献: [1】 王征.数控DrlI.远程监控系统网络结构的研究[J】.计算机 工程,1998。(9). [2】 黄长青.基于TCP/IP协议的交换机远程控制的软件实现 和应用[J].湖北邮电技术,2001,(1). [3】 顾洪军.控制系统的网络化发展 [J】_工业仪表与自动化装 置,2000,(1). (上接第749页) 况下建立起 3个LDP会话 S1、S2、S3。拔除链路 L3,则S1 关闭,此时LDP会话重建功能生效,最终在LSR1与LSR2 间重新建立起新的LDP会话 S1’。 本与文献 [5】所含机制的区别在于,本方案对 LDP会话提供了链路层的保护,而文献[5】中的FTLDP会 话机制提供的是会话层的保护。 5 结 论 本文从MPLS网络的结构出发,研究了MPLS光网络 与非光网络的故障管理,并且设计与实现了一个MPLS非 光网络的LDP会话重建方案。 参 考 文 献: [1】 RFC3031.Multiprotocolq label switching architecture[S】. [2】 Guangzhi Li,Yates,J Dongmei Wang,et a1.Control plane design for reliable optical networks [J】_Communications Magazine,IF_,EE,2002,40(2):90—96. [3】 Old E,Matsuura N,Shiomoto K,et a1.A disjoint path selec— tion scheme with shared risk link oups in GMPLS net- works[J].Comm unications Letters,IEEE,2002,6(9):406—408. [4】 RFC3036.LDP specification[S】. [5】 RFC3479.Fault tolerance for the label distribution protocol (LDP)[S】. · — — 799·—— 维普资讯 http://www.cqvip.com
/
本文档为【基于客户/服务器模式的远程控制系统】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索