基于VC++光伏逆變器監(jiān)控系統(tǒng)的設計和實現(xiàn)
3 監(jiān)控系統(tǒng)的軟件設計
3.1 軟件通信協(xié)議
監(jiān)控軟件顯示的數(shù)據(jù)是由下位機按照一定的數(shù)據(jù)格式發(fā)送到PC上位機,為了保證數(shù)據(jù)的正確性和安全性,我們這里采用的是Modbus協(xié)議。Modbus協(xié)議是應用于電子控制器上的一種通用的語言??刂破髦g、控制器與網(wǎng)絡以及和其他的設備之間都可以通過它進行相互通信,Modbus協(xié)議已經(jīng)成為一種工業(yè)標準。在Modbus通信網(wǎng)絡中設備都必須選擇相同的傳輸模式和串口參數(shù)。
本系統(tǒng)采用RTU模式:
當控制器設為在Modbus網(wǎng)絡上以RTU(遠程終端單元)模式通信,在消息中的每8Bit字節(jié)包含兩個4Bit的十六進制字符。這種方式的主要特點是:在同樣的波特率下,可比ASCII方式傳送更多的數(shù)據(jù)。
代碼系統(tǒng)
·8位二進制,十六進制數(shù)0、、、、9,A、、、、F
·消息中的每個8位域都是一個兩個十六進制的字符組成每個字節(jié)的位
·一個起始位
·8個數(shù)據(jù)位,最小的有效位先發(fā)送
·1個奇偶校驗位,無校驗則無
·1個停止位(有校驗時),2個Bit(無校驗時)錯誤檢測域
·CRC(循環(huán)冗長檢測)
CRC產(chǎn)生過程中,每個8位字符都單獨和寄存器內(nèi)容相或(OR),結(jié)果向最低有效位方向移動,最高有效位以0填充。LSB被提取出來檢測,如果LSB為1,寄存器單獨和預置的值或一下,如果LSB為0,則不進行。整個過程要重復8次。在最后一位(第8位)完成后,下一個8位字節(jié)又單獨和寄存器的當前值相或。最終寄存器中的值,是消息中所有的字節(jié)都執(zhí)行之后的CRC的值。CRC添加到一幀數(shù)據(jù)中時,低字節(jié)先加入,然后高字節(jié)。
3.2 上位機的界面
3.2.1 主界面
監(jiān)控系統(tǒng)啟動后,顯示主界面。利用VC環(huán)境下的菜單控件在主界面添加監(jiān)控系統(tǒng)的功能菜單,有主運行界面、串口設置、逆變器數(shù)據(jù)、歷史數(shù)據(jù)、參數(shù)設置等菜單項。主運行界面在下面詳細介紹。串口設置主要是負責設置PC上位機串口參數(shù)設置,串口的參數(shù)設置一定要和下位機的串口參數(shù)設置一致,才能保證通信成功。逆變器數(shù)據(jù)界面主要顯示的是當前逆變器運行的狀態(tài)數(shù)據(jù),包括直流電壓、直流電流、分別三相電壓、三相電流、功率因數(shù)、并網(wǎng)頻率等實時參數(shù)。歷史數(shù)據(jù)是下來菜單,主要有日志查詢、歷史工作狀態(tài)數(shù)據(jù)、故障報表等??梢酝瓿蓺v史數(shù)據(jù)、故障報表、日志和曲線的保存和打印。參數(shù)設置時有一個用戶登錄窗口,只有輸入正確的用戶名和密碼,才可以成功登錄設置窗口。選擇不同的子菜單能很方便地在不同的功能窗口進行切換。
評論