时间:2015-04-16 11:54 文章来源:http://www.lunwenbuluo.com 作者:王青 点击次数:
3.2 MSComm控件特点
MSComm控件是Microsoft提供的扩展控件[4],用于支持 VB程序对串口的访问,该控制“隐藏”了大部分串口通讯的底层运行过程和许多繁琐处理的过程,同时支持查询方法和事件驱动通讯的机制,事件驱动通讯是一种交互方式处理串口事务的非常有效的方法,特别适合Windows程序的编写。在串口通讯过程中,当发送数据、收到数据或产生传输错误时,将触发MSComm控件的OnComm事件,通过判断 CommEvent属性值获得事件类型,再根据事件类型进行相应数据处理。因此,通过其实现微机串口的数据通讯相当简单,使用程序代码就可以轻松实现串口的访问和数据通讯[5]。
3.3 2KW分布式光伏发电系统监控软件设计
在窗体加载时首先对COM1端口参数进行相关参数配置,以使上位机与目标机进行正常通信。具体代码如下:
MSComm1.CommPort = 1 '串口号=com1
MSComm1.Settings = "9600,n,8,1" '设波特率
MSComm1.InputLen = 0
MSComm1.InputMode = comInputModeBinary '二进制数据流
If MSComm1.PortOpen = False Then
MSComm1.PortOpen = True
End If
MSComm1.RThreshold = 1
MSComm1.OutBufferCount = 0
MSComm1.InBufferCount = 0[HT]
在上位机与目标机正常通信后,正确读取目标机返回的数据串,并将数据串转换成十六进制数,在Text12文本框中显示。
Dim Inbyte() As Byte
Dim j as integer
Dim buffer As String'读取逆变器返回数据串
Select Case MSComm1.CommEvent
Case comEvReceive
Inbyte = MSComm1.Input
For j = 0 To UBound(Inbyte)
If Len(Hex(Inbyte(j))) = 1 Then
buffer = buffer & "0" & Hex(Inbyte(j)) + Chr(32)
Else
buffer = buffer & Hex(Inbyte(j)) + Chr(32)
End If
Next j
Text12.Text = Text12.Text + buffer
监控系统通过RS485转RS232接口,获取目标机的数据串后,对报文进行解析,获取光伏发电站总的发电量的实现过程分为两个步骤:
第一步:查找目标机的地址码01H,然后根据功能码04H读取输入寄存器中的内容,按照首地址0003H和需要读取的寄存器地址单元长度0011H,为CRC校验位(可以通过软件计算)。
SendStr(0) = &H1 '从站号是1
SendStr(1) = &H4 '读多个字的命令代码
SendStr(2) = 0 '起始地址高字节
SendStr(3) = 3 '起始地址低字节
SendStr(4) = 0 '数据长度高字节
SendStr(5) = &H11 '数据长度低字节
SendStr(6) = &HC0
SendStr(7) = &H6
第二步:根据目标机返回的数据串进行报文解析,逐个拆分数据并计算,最终将结果送入Text1文本框中
Text1.Text = Val(CLng("&h" & Mid(Text12.Text, 22, 2)) * 16777216 + CLng("&h" & Mid(Text12.Text, 25, 2)) * 65536 + CLng("&h" & Mid(Text12.Text, 28, 2)) * 256 + CLng("&h" & Mid(Text12.Text, 31, 2))) / 10'总发电量
按照上述步骤,从报文中解析出其它所需技术参数,完成2KW分布式光伏发电站监控系统实现。
4 结语
本文针对分布式光伏发电站监控系统需求,设计开发了基于MODBUS协议的2KW分布式光伏发电站监控系统平台的MODBUS协议主站,以实现与MODBUS协议从站设备的通信。经过对MODBUS协议RTU模式的测试,在Windows环境下的MODBUS主站监控程序运行稳定、可靠,符合MODBUS协议标准,监控软件运行良好。
参考文献:
[1] 江林. 分布式光伏发电并网的国内外政策分析与启示[J]. 江苏电机工程,2013(3):66-68.
[2] 王书根,王振松,刘晓云. Modbus协议的RS485总线通讯机的设计及应用[J]. 自动化与仪表,2011(5):25-28.
[3] 张海源,任春梅,张冉. Modbus协议在电力系统中的应用[J].软件导刊,2007(17):55-57.
[4] 张宗飞. VB环境下利用MSComm控件发送和接收数据[J]. 电脑知识与技术,2005(20):76-77.
[5] 封亚斌. 采用串口通信技术实现Modbus数据通信[J]. 自动化仪表,2004(10):58-60.
联系方式
随机阅读
热门排行