當大家閱讀完前6部分,就已經初步完成了PLC模塊的配置工作,接下來給大家介紹一下如果利用Sniffer軟件查看電力線路上傳輸的PLC數據幀。所以Sniffer軟件就像是一個Spy,來偵測具體電力線上的傳輸的命令和數據幀,可以方便用戶進行網絡情況的評估以及判斷。
首先要下載Sniffer軟件,具體的下載在前幾章節已經提及過。
安裝完成后,在桌面上會看到如下的小紅青蛙圖標:
?
雙擊Sniffer軟件,會出現如下的界面,讓大家來設置使用的PC機串口和利用解析Prime的插件程序。
?
?
可以在Setup中,進行串口信息的設置。
Debug Level是設置Sniffer軟件的顯示信息的詳細程度,Debug Level=10,是非常詳細的顯示出任何一條命令的詳細信息,Debug Level=9,是顯示所有命令,但不進行完整解析。 Debug Level=8,跟9比較只是不顯示Beacon信息,其他信息進行顯示。當設置完成之后,選擇Send,將命令傳輸給DSP,會收到Success的返回。
接下來給大家看一個典型的PLC 模塊的注冊,連接以及發送數據的過程, Debug Level=9.
?
?
其中綠色的語句為Sniffer檢測到的Beacon命令,如果利用Debug Level=8,將不顯示Beacon命令。
下面我將其中的白色語句進行單獨提煉:
1. REG注冊過程:
1)其中第13行和第14行的命令幀為:
Sniffer GPDU Level=0,Downlink=0,ppduLen=21,Len=14,mcs=4,pLv=15
REG CTRL SID=0,LNID=16383,LEN=8,nFlag=0,spc=0,time=0,PayLoad[0x03280000,0x00001234]
此語句為UpLink語句,也就是從Meter端傳輸到DC端的PLC傳輸命令幀。
DownLink=0, 即為UpLink
SID為Switch ID,因為DC和Meter是直連的,中間沒有Switch存在。
LNID為 DC給表分配的Short Address,默認情況下首先使用16383,0x3FFF為LNID
MCS=4, 即調試模式為BPSK+FEC
此語句的含義為 REG,即Meter端向DC端進行注冊請求。
2)第16行和第17行的命令幀為
Sniffer GPDU Level=0,Downlink=1,ppduLen=21,Len=14,mcs=4,pLv=18
REG CTRL SID=0,LNID=5,LEN=8,nFlag=0,spc=0,time=7,PayLoad[0x022f0000,0x00001234]
此語句為DownLink語句,也就是從DC端傳輸到Meter端的PLC傳輸命令幀。
DownLink=1, 即為DownLink
LNID=5,此時DC已經將表的Short Address設置成5.
3)第18行和第19行的命令幀為:
Sniffer GPDU Level=0,Downlink=0,ppduLen=21,Len=14,mcs=4,pLv=14
REG CTRL SID=0,LNID=5,LEN=8,nFlag=0,spc=0,time=0,PayLoad[0x02280000,0x00001234]
此語句為UpLink語句,也就是從DC給Meter端的REG注冊確認。
LNID=5,EUI-48=1234
通過以上三條語句,就完成了注冊的流程。
2. CON連接過程:
從第20行到第23行為整個連接過程:
Sniffer GPDU Level=0,Downlink=0,ppduLen=23,Len=16,mcs=4,pLv=16
CON CTRL SID=0,LNID=5,LEN=10,nFlag=0,arqFlag=0,lcid=256,type=3,dLen=6
Sniffer GPDU Level=0,Downlink=1,ppduLen=21,Len=14,mcs=4,pLv=19
CON CTRL SID=0,LNID=5,LEN=8,nFlag=0,arqFlag=0,lcid=256,type=3,dLen=4
首先DownLink=0,為UpLink,由Meter向表發送連接請求。
然后收到DownLink=1,由集中器給表回復的CON確認幀。
以上兩條命令,完成了連接過程。
3.Keep ALV:
但表已經注冊到集中器上時,集中器會不斷發送Keep alive命令來確保所注冊連接的結點是存活的。例如下面第50到底53行:
Sniffer GPDU Level=0,Downlink=1,ppduLen=16,Len=9,mcs=4,pLv=20
ALV CTRL SID=0,LNID=5,LEN=3,rxCnt=0,txCnt=0,time=0,ssid=0xff,PayLoad[0x0000ff00]
Sniffer GPDU Level=0,Downlink=0,ppduLen=16,Len=9,mcs=4,pLv=12
ALV CTRL SID=0,LNID=5,LEN=3,rxCnt=1,txCnt=1,time=0,ssid=0xff,PayLoad[0x2400ff00]
首先由DC發起的ALV命令,當表接收到時,會回復一個UpLink的ALV確認幀。
4. PNPDU
如果一個新上電的表端,聽不到周圍的Beacon,則此表就會發送PNPDU尋求幫助命令,具體格式如下:
Sniffer PNPDU from PNA=0x0000:0000:3412
即為EUI-48=1234的表發送的求救信號,周圍聽到的SN會幫助其將其請求通過已經存在的鏈路發送給DC。
5. PRO
DC會根據情況進行一個節點的Promote,將其Promote成Switch。
1)Sniffer PNPDU from PNA=0x0000:0000:1500
2)Sniffer GPDU Level=0,Downlink=0,ppduLen=24,Len=17,mcs=4,pLv=19
Sniffer MAC PRO CTRL Level=0,Downlink=0,SID=0,LNID=28,LEN=11,PayLoad[0x18ff0000,0x00000015,0x04040600]
3)Sniffer GPDU Level=0,Downlink=1,ppduLen=15,Len=8,mcs=4,pLv=23
Sniffer MAC PRO CTRL Level=0,Downlink=1,SID=0,LNID=28,LEN=2,PayLoad[0x07030000,0x00000000,0x00000000]
4)Sniffer GPDU Level=0,Downlink=0,ppduLen=15,Len=8,mcs=4,pLv=14
Sniffer MAC PRO CTRL Level=0,Downlink=0,SID=0,LNID=28,LEN=2,PayLoad[0x07030000,0x00000000,0x00000000]
5)Sniffer GPDU Level=0,Downlink=1,ppduLen=15,Len=8,mcs=4,pLv=19
Sniffer MAC BSI CTRL Level=0,Downlink=1,SID=0,LNID=28,LEN=2,PayLoad[0x04500000,0x00000000,0x00000000]
6)Sniffer GPDU Level=0,Downlink=0,ppduLen=15,Len=8,mcs=4,pLv=18
Sniffer MAC BSI CTRL Level=0,Downlink=0,SID=0,LNID=28,LEN=2,PayLoad[0x04500000,0x00000000,0x00000000]
6. Data Transfer
數據傳輸首先要由DC發起,例如下面這個命令幀
Sniffer GPDU Level=0,Downlink=1,ppduLen=20,Len=13,mcs=4,pLv=17
Sniffer MAC DATA Level=0,Downlink=1,SID=0,LNID=1,LEN=7,LCID=256,PayLoad[0x00900101,0x32333210]
其中后面的0x32333210為DC發送給Meter端是數據。
我想通過以上的描述,大家應該大概對Prime的整個注冊和組網流程有了一個了解,我們可以在集中器端將連接上的模塊的信息打印出來,利用get-node-info這個命令在Linux平臺。
---------------------------------------------------------------------
EUI-48?????????????SID???LNID??LEVEL??LSID???432-ADDR????SERIAL-NR
---------------------------------------------------------------------
66:66:66:66:66:66??000???0001???00?????--????01???? 66 66 66 66 66 66
11:11:11:11:11:11??000???0002???00?????--????02???? 11 11 11 11 11 11
?
?
附件:
評論
查看更多