收藏 分销(赏)

基于Modbus协议的OPC服务器在风机监控中的应用.pdf

上传人:自信****多点 文档编号:1986780 上传时间:2024-05-13 格式:PDF 页数:5 大小:3.05MB
下载 相关 举报
基于Modbus协议的OPC服务器在风机监控中的应用.pdf_第1页
第1页 / 共5页
基于Modbus协议的OPC服务器在风机监控中的应用.pdf_第2页
第2页 / 共5页
基于Modbus协议的OPC服务器在风机监控中的应用.pdf_第3页
第3页 / 共5页
亲,该文档总共5页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、2023年12 月计算机应用文摘第39 卷第2 4期基于Modbus协议的OPC服务器在风机监控中的应用李伟(国电南京自动化有限公司2 10 0 0 0)摘要:某风电公司总部的风电场远程监控系统以OPC技术为基础,用于监视各个风电场的风机运行状况。文章重点介绍了利用VC十十6.0 实现的Modbus协议解析以及OPC服务器的开发,探讨了实时数据库在监控系统中的应用,并详细介绍了OPC技术在监控系统中的实现方案。关键词:VC+十ModBus;O PC;Se r v e r 实时数据库;远程监控中图法分类号:TM315Application of OPC server based on Modbu

2、s protocol in(Guodian Nanjing Automation Co.,Ltd.,Nanjing 210000,China)Abstract:The remote monitoring system for wind farms at the headquarters of a certain wind powercompany is based on OPC technology and is used to monitor the operation status of wind turbines invarious wind farms.The article focu

3、ses on the Modbus protocol parsing implemented using VC+6.O and the development of OPC servers.It explores the application of real-time databases inmonitoring systems and provides a detailed implementation plan of OPC technology in monitoringsystems.Key words:VC+Modbus,OPC,Server real time database,

4、remote monitoring1引言随着国家对新能源产业的重视,风力发电这一朝阳产业正逐步发展,风力发电场的数量与日俱增。尽管SCADA系统早已在风电场得到广泛应用,但由于各个风机厂家采用不同的通信协议,有些甚至自行开发通信协议,导致硬件和软件之间存在兼容性差的问题。对于风电公司总部而言,集中监控各风电场的运行情况变得相当困难,形成了一种“信息孤岛”现象。为了实现对各个风电场的统一监控和管理,以及对风场工作人员的合理调度,研发远程监控系统势在必行。为实现这一目标,需要建立一个通信标准,而OPC为风机数据的传输提供了标准的接口,以提高软硬件之间的互操作性,并使得以统一的通信方式传输风机数据成

5、为可能。2基于Modbus协议的风机数据传输在风电场远程监控系统中,由于部分风机厂商未提供OPC接口,只能通过Modbus协议1 或其他通信协议从硬件设备中读取数据。考虑到实时数据库INSQL支持OPC接口,为了实现数据的统一传输和监文献标识码:Awind turbine monitoringLI Wei控,采用串口编程,通过解析Modbus协议获取风机状态数据,并将其封装成OPC格式,然后传输到风电总公司服务器的实时数据库中2 。风电场远程监控系统网络构架如图1所示。风电场一OPCMoetbus协议风机通信柜图1风电场远程监控系统网络构架2.1Modbus 协议介绍在风电场风机数据通信中,M

6、odbus协议被广泛应用。该协议是由Modicon公司最早提出的一种通信规约,其数据通信主要通过主机和从机之间的查询与应答方式实现。标准的Modbus协议采用RS-232C接INSQL服务器(9.0 版本)TCP/IP风电场二OPCModbus协议风机通信柜风电场三OPCModbust协议风机通信柜2023 年第 2 4 期口,定义了连接口的针脚、信号、位电缆、波特率、奇偶校验等参数。Modbus协议有两种传输模式:ASCII(美国标准信息交换代码)和RTU(远程终端单元)。在ASCI模式通信中,消息中的每个8 Bit字节都被发送为2 个 ASCII字符。而在RTU 模式通信中,消息中的每个8

7、 Bit字节包含两个4Bit的十六进制字符。在风电场数据传输中,通常采用RTU模式。Modbus 协议定义了从设备查询格式,包括从站地址、功能代码、起始地址、寄存器个数、校验码。主设备应答的格式包括从站地址(地址范围0 2 47)、功能代码、数据个数、所有要发送的数据以及校验码。具体数据针格式如表1、表2 所列。表1查询帧结构从站地址功能代码起始地址寄存器个数CRC校验码表2 应答顿结构从站地址功能代码数据数量 数据1在RTU模式下,消息中的每个8 位域都由2 个十六进制字符组成。其中,每个字节包含1个起始位、8个数据位,以最小有效位先发送的顺序排列,还有1个奇偶校验位(无校验则无),以及1个

8、停止位(有校验时)、2 个Bit(无校验时)。此外,消息中还包括一个错误检测域,采用 CRC(循环穴长检测)方式。2.2串串口通信方式风电场风机数据传输基于串口,而编制串口通信的软件不胜枚举。VC+拥有MFC(M i c r o s o f tFoundation Classes)的强大支持,这是微软提供的一个基础类库,以 C+类的形式封装了Windows 的 API 函数,有助于显著减少编程人员的工作量。因此,本文选择使用MFC来实现Modbus协议的解析。在采用MFC 编写串口通信程序时,一般有两种主要方法:(1)通过MSComm控件实现;(2)使用串口类实现。比较这两种方法,虽然使用MS

9、Comm控件实现较为简单,但其稳定性和灵活性相对较差。为提高代码的可重用性并缩短开发周期,本文选择采用CSerialPort类来实现串口通信。2.3VC+实现Modbus协议解析本文创建了基于对话框的 MFC程序,并将CSerialPort类添加到工程中。CSerialPort类是由Romon Spekreijse编写的,以下是程序中主要使用的几个成员函数的介绍。初始化函数 InitPort(CWnd*pPortOwner,U INTportnr=1,UINT baud=19200,char parity=N,UINT databits=8,U I NT s t o p b i t s =1,

10、D W O R DdwCommEvents=EV_RXCHAR,UINT writebuffersize计算机应用文摘=1024),该函数主要用于初始化串口参数。其中,pPortOwner指的是调用该类的对象;接下来的7 个参数分别是串口号、波特率、校验方式、数据位数、停止位个数;dwCommEvents定义了串口的事件,默认为EV_RXCHAR(系统定义的串口接收事件),当有字符到达设定的串口接收缓冲区时,该事件将被触发,然后调用ReceiveChar()函数实现数据接收;writebuffersize指定了写缓冲区的大小。发送字节函数WriteToPort(c h a r *s t r i

11、 n g),该函数实现了向串口写人字节的操作,在Modbus协议中,从站查询操作通过该函数实现。接收函数ReceiveChar(CSe r i a l Po r t p o r t,COMSTATcomstat)。当串口的接收缓冲区有字符数据时,系统会产生EV_RXCHAR事件。通过消息映射机制,可以实现字符的接收。在主对话框类中添加命令查询函数SendQerry数据nCRC校验码(int StartRegAddress,int SlaAddress,int FunCode,intLength)。其中,StartRegAddress 定义了查询寄存器的起始地址,SlaAddress指定了从站地

12、址,FunCode 指定了功能码,根据数据要求选择了功能码0 3H,Length指定了要查询的寄存器地址的长度,建议长度不要大于8 0。在该函数中调用WriteToPort()完成字节的发送。为了保证数据传输的实时性和稳定性,采用多线程技术,在线程中将参数赋值并发送。同时,定义布尔型变量m_Comsign,在接收并处理完一批数据后,将m_Comsign 赋值为TRUE,以进行查询命令的再次发送,从而防止了串口堵塞现象,提高系统的稳定性。添加消息映射函数OnCommunication(W PA R A Mch,LPARAM port)。在调用 SendQerry 函数之后,当有字符到达接收缓冲区

13、时,会触发消息响应。根据实际需求,查询寄存器的大小,来处理所需解析的字符数。首先,判断串口号是否正确,若正确,则进行CRC16校验(校验方法见下文),否则返回并重新调用SendQuery 函数。待CRC 校验正确后,将批数据进行解析,若不正确,则重新发送命令查询函数。其次,根据风机点位是单字还是双字,按照高位字节在前、低位字节在后的顺序逐个解析风机点位,并显示在列表控件中。串口程序流程图如图2 所示。在风机数据传输过程中,为了确保数据传输的准确性,可靠的校验算法是不可或缺的。循环穴余码(CRC)检验技术在测控及通信领域得到广泛应用,Modbus协议也采用了CRC 校验算法。CRC16的校验步骤

14、如下:(1)装入一个16 位寄存器,所有数位均为1;(2)将该16 位寄存器的低位字节与开始的8 位字节数进行“异或”运算;6566(3)将这个16 位寄存器向右移一位,高位补零;(4)若向右移出的数位为1,则与多项式1010000000000001(A 0 0 1H)进行“异或 运算,若向右移出的数位为0,则返回;(5)重复步骤(3)和(4),直至移出8 位,处理整个数据;(6)对余下的8 位字节数,依次重复步骤(2)(5),进行下一个字节的处理;(7)最后得到的CRC寄存器即为 CRC 码。在介绍了CRC的基本原理后,现将CRC 校验函数给出:MBCRC16(UCHAR*Str,USHOR

15、T Len)UCHAR ucCRCH=OxFF;UCHAR ucCRCL=OxFF;int ilndex;while(Len-)ilndex=ucCRCL*(St r +);ucCRCL=(U C H A R )(u c C R C H i aucCRCH ilndex);ucCRCH=aucCRCL ilndex;计算机应用文摘打开串口return(U SH O R T )(u c C R C H IucCRCL);串口初始化建立消息响应发送查询命令寄存器地时间是否超时址不变香是否收到数据是CRC校验是否正确是数据解析并显示寄存器地址增加寄存器地址是、否否过限是寄存器地址复位图2 串口程序流

16、程图2023年第2 4期为了简化程序,本文将使用查表法来实现CRC校验。其中,aucCRCH 和 aucCRCL分别代表 CRC 高字节值表和低字节值表。3OPC技术在远程监控中的应用3.1 OPC 技术介绍OPC(OLE for Process Control)是专为过程控制而设计的OLE技术,由一些世界知名的自动化系统、硬件、软件公司与微软公司合作共同建立,它们成立了专门的OPC基金会来管理和监督OPC规范的制定与发布。OPC采用典型的C/S模式,硬件设备的驱动程序由硬件厂商或专门的公司完成,提供了符合统一OPC接口标准的服务器程序,软件厂商按照OPC标准编写客户端程序即可通过访问(读/写

17、)服务器程序实现与硬件设备的通信。OPC技术本质上是COM/DCOM(组件对象模型/分布式组件对象模型)技术,其中COM主要用于实现软件复用和互操作性,为基于Windows 的程序提供了统一、可扩展、面向对象的通信协议。DCOM技术是COM技术的扩展,使COM可以支持在局域网、广域网甚至Internet上不同计算机的对象之间的通信。典型的OPC体系结构如图3所示。对于OPC 而言,一个OPC客户端可以同时连接多个OPC服务器,同样地,多个OPC客户端也可以同时连接一个OPC 服务器。VBOPC.AutomarionApplicationIinterfaceApplication图3典型的OPC

18、体系OPC服务器由三个对象组成:服务器(Server)、组(G r o u p)项(Item)。O PC 服务器对象提供关于自身的信息,并作为OPC 组对象的容器,而 OPC 组对象提供组对象自身的信息,并提供组织和管理项的机制。OPC规范定义了两种组对象,即全局组和私有组。全局组可以被多个客户共享,对所有连接服务器的应用程序都有效;而私有组只对创建它的客户有效。OPC组对象为OPC客户程序提供了组织数据的一种方式,在一个服务器中可以包含多个组。OPC项代表了OPC服务器到数据源的一个物理OPC.AutomationWrapperOpcCustomInterfaceLocalorRemoteO

19、PCServer(Shared bymany clients)ServerData CachePhysicalDeviceData2023 年第 2 4期连接,是读写数据的最小逻辑单位。需要注意的是,OPC项并不是数据源,而是一个物理连接。OPC客户程序不能直接访问OPC项,而是通过包含项的OPC组对象来实现对项的访问。一个组对象可以包含多个OPC数据项,而每个数据项都包含值(Value)、品质(Quality)和时间戳(Time Stamp)3个变量。数据值由变体类型VARIANT表示,引人变体类型主要是为了支持OLE自动化,它既可以作为运行时刻动态数据类型,也可以作为编译时刻的静态数据类型

20、,从而实现编译器对变体类型的识别。OPC服务器对象提供了一些方法用于读取或连接数据源。OPC客户程序连接到OPC服务器对象,并通过标准接口与OPC服务器进行通信。OPC服务器对象提供接口(如AddGroup),供OPC客户程序创建组对象并将需要操作的项添加到组对象中,其中组对象可以被激活或赋予未激活状态。对于OPC客户程序而言,所有OPC服务器和OPC组对象只能通过COM接口访问。图4定义了服务器和组对象及其接口,其中任选的接口以形式表示。IUnknownOIOFCComumn.omIOFCServerIOFcServePubliGroupsIOPCBrowseServerAddresSpac

21、eIPersistFileICommectionPointContainer图4标准OPC服务器以及组对象和接口3.2OPC服务器的实现为了创建OPC服务器,本文引人了OPCServer.dll,并将 OPCServer.lib 添加到 MFC 工程中3 4。通过运行Visual C+Ibin目录下的GUIDGen.exe,为OPC服务器获取一个CLSID(产生全局唯一标识符)。CLSID是一个12 8 位的随机数,为确保唯一性,其算法一部分数字来自系统网卡的序列号,另一部分来自系统时间。将生成的 CLSID定义在对话框源文件中。由于OPCserver的本质是COM,必须首先调用Colniti

22、alize函数对COM库进行初始化,接着调用函数CreateNewOPCServerObject获取函数指针,然后调用setServerProgID为OPC 服务器指定一个易记的名字,OPC客户端可以通过该名称获取接口指针。函数setServerCLSID 用于设定 OPC 服务器的 CLSID,之后调用RegisterServer注册该OPC服务器。其余的任务包括根据客户端的要求添加组对象接口以及创建项对象。函数 StartServer用于启动OPC服务器的工作。在OPC服务器工作过程中,根据OPC客户端的请求,将OPC项对象与数据源(即解析的风机数据)相连接,为OPC客户端提供实时数据。当

23、需要停止OPC服务器计算机应用文摘时,调用函数UnregisterServer将取消服务器的注册信息,并调用CoUninitialize函数释放COM库资源通过上述程序,基本上实现了OPC服务器的功能,为风机数据的统一传输奠定了基础。将该软件安装在风电场的接口机上,以接收风机的实时数据。OPC服务器的界面如图5所示。EModbus风机营点数:2 7 7 2风机总数:6 6序号位号2427YXFJJK2_025ZPDST2428YXFJJK2_025ZTJSJ2429YXFJJK2_025ZPHSJ2430YXFJJK2_025RFDL2431YXFJJK2_025YFDL2432YXFJJK2

24、_025KFDL2433YXFJJK2_025RKLYL2434YXFJJK2_025YKLYL2435YXFJJK2_025NKLYL2436YXFJJK2_026YGGL2437YXFJJK2_026WGGL2438YXFJJK2_026DWDL2439YXFJJK2_026FS2440YXFJK2_026FX2441YXFJJK2_026FDJZS2442YXFJJK2_026SCCX2443YXFJJK2_026ZTM2444YXFJJK2_026L1XDY2445YXFJJK2_026L2XDY2446YXFJJK2_026L3XDY2447YXFJJK2_026L1XDL2448Y

25、XFJJK2_026L2XDL2449YXFJJK2_026L3XDL2450YXFJJK2_026GLYS2451YXFJJK2_026PHTD2452YXFJJK2_026BJJD2453YXFJJK2_026DSZZS7454YXFTTK2026TWWnIUrdknowmIOPCItenMgIOFCGropStaeMe准OPC1OPCPublicCGroupsiteMe解务器IOPCSymdOIOPCASymclO2对象ICormectionPaincCortainer1OPCASymdO2adDatsotjea dd67串口号:2 波特率:9 6 0 0 串口当前状态:打开类型当前值R

26、EAL1543.879REAL10411.223REAL790.143REAL20.251REAL338.204REAL1875.149REAL99.000REAL95.500REAL97.000REAL1351.500REAL59.695REAL1122.000REAL9.500REAL238.000REAL1744.000REAL10.000REAL1166.000REAL402.000REAL400.000REAL401.000REAL1130.000REAL1144.000REAL1094.000REAL1.000REAL229.000REAL0.410REAL16.000RF&Tnn

27、n图5OPC服务器界面4实时数据库应用标准。OPC组对象实时数据库系统是开发实时控制系统、数据采集系统、CIMS系统等的关键系统。在社会生产中,实时数据库系统被广泛用于控制系统监控、系统先进控制和优化控制,为企业的生产管理、调度、数据分析、决策支持以及远程在线浏览提供实时数据服务和多种数据管理功能。实时数据库已经成为企业信息化的基础数据平台,其中 Insql 是世界上第一种面向工厂的高性能实时关系型数据库。因此,本文采用 Insql实时数据库,将风机数据封装成OPC格式后,通过OPCLink与公司总部的实时数据库连接。通过对实时数据库进行点位配置,可以实时存取大量风机数据。通过将实时数据库的数

28、据提取并发布到Web,实现了风电场风机监控系统。风机的整体监控画面如图6 所示,风速的历史数据曲线如图7 所示。849.24kW761.16kW00110.44m/s00297.46%0kW0080m/s0090.00%1059.34kW01512.80 m/s100.00%700.43kW02210.41 m/s023100.00%756.42kW0299.43 m/s99.97%1214.18kW10.61m/s0003100.00%1080.57kW12.07m/s010100.00%1086.47kW01612.79m/s017100.00%1528.59kW12.93m/s02410

29、0.00%0.00kW03011.26m/s03179.70%图6 风电场风机监控系统界面1005.25kW11.93m/s004100.00%826.13kW10.07m/s011100.00%1525.99kW12.78m/s01893.66%999.56kW11.03m/s025100.00%1091.91kW12.32 m/s032100.00%1072.21kW10.90m/s005100.00%1435.07kW12.55m/s012100.00%1086.23kW12.77m/s01999.92%956.33kW11.23m/s02699.97%1067.45kW11.63m/s

30、03399.82%(下转第7 0 页)11.72m/s100.00%938.29kW10.84m/s100.00%0.00kW0.63 m/0.00%1036.17kW12.90m/s86.95%855.56kW9.90m/s100.00%70功则解锁,直到关机均不重复检测,一直保持解锁状态,除非服务端软件发送控制指令;若安全管理服务器不在位,则客户端设备开机后无法注册成功,系统一直处于锁定状态,既无法使用,也无法起到数据保护的作用;若设备被盗或失控,其敏感数据处于加密状态,其他非授权者无法使用。3.2.2授权申请客户端安全软件的安装和卸载需要获得安全管理服务器系统的授权,防止私自卸载软件、窃

31、取数据等操作。3.2.3信息上报客户端部署了客户端安全软件,能够向安全授权管理服务器系统报告自身工作状态,支持主动和定时上报等两种方式。3.2.4紧急解锁若服务端的安全软件出现故障(包括服务器故障、网络故障),则所有客户端无法正常工作,可能造成严重的后果。为了防止上述现象的发生,本文通过以下方式提高设备的可靠性、稳定性。一是提供紧急解锁方式,如通过手工的方式在客户端配置密钥,实现本地解锁;二是采用穴余的方式,在两台服务器中分别部署服务端管理软件,当主服务器出现故障时,备服务器将开始运行并提供相应的服务。4系统应用结果目前,安全授权管理服务系统已在部分局域网内(上接第6 7 页)3:8113.7

32、411.941.931.110.065结束语由于OPC统一了数据访问的接口,对于那些未提供OPC接口的风机厂商,无论其通信协议如何,都可以通过编程实现协议解析,将数据封装成OPC格式,并通过TCP/IP协议与公司总部的实时数据库连接。这使得风电场远程监控系统得以实现,为公司总部分析风机数据提供了宝贵资源,同时增强了风电场计算机应用文摘部署,可满足某些特定用户的需求,若非授权人员人侵系统终端并盗取数据,系统将及时自动销毁敏感数据或存储硬盘,从而有力保障该局域网内各类数据终端的安全。参考文献:1】崔兴全,陈红波.计算机网络信息安全管理与防护策略J.科技风,2 0 11(13):2 46.2施超.计

33、算机网络信息管理及其安全防护策略J.信息安全与技术,2 0 12,3(3):8-10.3都明基,徐建民.计算机网络信息安全及防护策略分析J.电脑知识与技术,2 0 16,12(12):2 3-2 4.4】陈卓.计算机网络信息安全及其防护对策J.中国卫生信息管理杂志,2 0 11,8(3):44-47.5王红梅,宗慧娟,王爱民.计算机网络信息安全及防护策略研究J.价值工程,2 0 15(1):2 0 9-2 0 9+2 10.6】彭南兵.计算机网络信息安全及防护策略研究J.电子技术与软件工程,2 0 13(2 2):2 36.7邹永利,冯静娴,郑荟.学术文献的文体特征及其检索意义一一计算机科学文

34、献与相关新闻报道文体的比较研究J.中国图书馆学报,2 0 14,40(2):33-40.8何钦铭,陆汉权,冯博琴.计算机基础教学的核心任务是计算思维能力的培养九校联盟(C9)计算机基础教学发展战略联合声明解读J.中国大学教学,2 0 10(9):5-9.作者简介:朱文(19 8 6 一),本科,工程师,研究方向:光通信技术。运行的稳定性和安全性。随着风电事业的发展,将有更多的风电场投入运行。通过本文介绍的方案,风电12.2711.3111.429:54图7 风速历史曲线图2023年第2 4期场的集中管理得以实现,并将在未来发挥更大的作用。参考文献:1潘洪跃.基于Modbus 协议通信的设计与实现J.计量技术,2 0 0 2(4):35-36.2潘爱民.ODM原理与应用M.北京:清华大学出版社,2003.3李京.0 PC规范的产生与发展J.自动化仪表,2 0 0 2,2 6(4):68-70.4】杜效伟.基于OPC 的实时数据集成系统设计J许昌学院学报,2 0 10(2):42-43.作者简介:李伟(19 8 7 一),硕士,工程师,研究方向:电气工程及其自动化。

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 论文指导/设计

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服