如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
基于VB的分布式监控系统通信设计郭爱文(武汉大学动力工程系自动化专业)王静(武汉大学电力工程系通讯专业)武汉430072摘要本文介绍了利用VB的多种通信手段实现分布式监控系统的多种通信功能,对每一种通信手段给出其原理和应用实例。关键词VB通信串行口控件DDEAPITheCommunicationDesignofDistributedControlSystemBasedonVBAbstract:ThisarticleintroducestherealizationofmanycommunicationfunctionsofDistributedControlSystemwiththeapplicationonlotsofcommunicationmethodsofVB.KeyWords:VB,Communication,SerialPort,ControlBox,DDE,API概论分布式监控系统已在工业领域得到广泛应用,许多企业对于中小规模的设备,如中小型热电厂和水电站,出于硬件软件投资利润率和性能价格比的考虑,常常是自行开发或参与开发本企业的监控系统。而许多企业在成套引进大型DCS系统后,也常因实际情况而需要自行开发或改进其监控系统。分布式监控系统以微机为基础,用数据通信将微机连在一起实现数据共享,从而对工业过程进行集中监视管理和分散控制。因此,分布式监控系统中通信的设计与实现是至关重要的环节。VisualBasic开发语言具有简洁明了、编程效率高、开发周期短的特点,利用VB中的多种通信手段,可实现分布式监控系统的多种通信功能。与下位机的通信分布式监控系统的数据采集站可直接与现场带有标准RS—232C接口的智能仪表、PLC和单片机等链接,并可通过扩展控制卡形成一个数据采集子网,以高速准确地获取数据。VB的MSCOMM通信控件具有完善的串口数据发送和接受功能,利用它可以屏蔽对硬件的操作,简易快捷地进行串行通信编程。本文的实例为上位机与OMRON200HG系列PLC的1:N链接通信。带有RS—485接口通信板的PLC直接挂在RS—485总线上,上位机通过RS—232C/RS—485转换器与总线相连,这样即构成数据采集子网,甚至可以是一个独立的小型分布式监控系统。其它仪器仪表设备,只要是标准串口都可以类似方式直接或间接与上位机链接。关于VB的MSCOMM控件可参考相关资料。本例通信程序摘要如下:初始化程序Mscomm1.Commport=2’选择COM2Mscomm1.Settings=”9600,N,8,2”’设置通信参数Mscomm1.Inputlen=0’读入接收缓冲区全部字符Mscomm1.OutbufferSize=256’设置发送缓冲区大小Mscomm1.InbufferSize=512’设置接收缓冲区大小Mscomm1.PortOpen=True’打开COM2发送命令程序比如读取节点号03的PLC中IR000到IR009的内容,并放到tag1字符串变量中,此时有:DimCommand,node,begin,numberasstringDimAnswerlenasintegernode=”03”’节点号Command=”RR”’命令为读IR区begin=”0000”’从IR000开始number=10’读取长度Answerlen=51’计算接收字符串长度进行命令发送和接收应答处理:DimFCS,IasintegerDims,fasstrings=”@”+node+Commad+begin+numberFCS=0Fori=1toLen(s)FCS=FCSxorAsc(Mid$(s,i,1))’帧校验码FCSNextif=Hex$(FCS)IfLen(f)=1Thenf=”0”+fCommfrm.MSComm1.Output=s+f+”*”+CHR$(13)’命令帧发送DoDummy=DoEvents()LoopUntillCommfrm.MSComm1.InbufferCount>=Answerlen’等待应答帧Dotag1=Commfrm.MSComm1.InputLoopUntillCommfrm.MSComm1.InbufferCount=0’读完应答帧上述程序具有相当的通用性,对于其它设备不同的只是各自的数据帧格式,因而只需做相应少量修改即可。节点自身的“通信”节点自身的“通信”是一种形象的说法,严格说来应是VB应用程序利用DDE技术与本节点其它Windows应用程序进行数据交换。DDE(DynamicDataExchange)即动态数据交换,它是Windows支持的三种内部通信机制之一,是应用程序间通过共