PLC與MC9S08PT60PB的PPI協(xié)議分析
3. 2.2 報文格式
報文數(shù)據(jù)長度和重復(fù)數(shù)據(jù)長度為自上位機自己的地址至數(shù)據(jù)單元的數(shù)據(jù)長度,校驗碼為上位機自己的地址至數(shù)據(jù)單元數(shù)據(jù)的和校驗,只取其中的末字節(jié)值。在讀寫PLC的變量數(shù)據(jù)中,讀數(shù)據(jù)的功能碼為6CH,寫數(shù)據(jù)的功能碼為7CH。
對于一次讀取一個數(shù)據(jù),讀命令都是33個字節(jié)。前面的0~21字節(jié)是相同的,0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21開始符長度長度開始符站號源地址功能碼協(xié)議識別遠程控制冗余識別冗余識別協(xié)議數(shù)據(jù)單元參考參數(shù)長度參數(shù)長度數(shù)據(jù)長度數(shù)據(jù)長度04讀05寫變量地址數(shù)。
字節(jié)22 23 24 25 26 27 28 29 30 31 32功能讀取長度數(shù)據(jù)個數(shù)存儲器類型偏移量校驗碼結(jié)束符。
字節(jié)22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40寫入位置及值長度個數(shù)類型偏移量位數(shù)值校驗碼結(jié)束符。
PPI協(xié)議上位機向PLC發(fā)送讀寫請求時的報文格式,每次讀一個數(shù)據(jù):
length為讀取數(shù)據(jù)長度,01:one bit,02:one byte,04:one word(two bytos),06:one doub word(fourbytes);mem_flag為存儲器類型。01:V存儲器,00:其它;mem_type為存儲器類型,04:S,05:SM,06:AI,07:AQ,IE:C,81:I,82:Q,83:M,84:V,lF:Taddr為要讀取或?qū)懭氲牡刂分怠H绻麨閎it、Byte[32]=0x03 Byte[34]=0x01;byte數(shù)據(jù),Byte[32]=0x0Byte[34]=0x08 Byte[35]為要寫入的值,Byte[36]為0x00,如果為word數(shù)據(jù),Byte[35]和Byte[36]為要寫入的值Byte[32]=0x04;Byte[34]=0x10;Byte[35-38]就是寫入的值,Byte[39]=檢驗碼,Byte40=16H,結(jié)束。X0為校驗和。X1為寫入的值。
4 軟件流程設(shè)計
PPI通信流程圖如圖2所示。本文引用地址:http://www.ex-cimer.com/article/153568.htm
程序首先執(zhí)行初始化串口程序,完成串口輸入輸出狀態(tài)的設(shè)定、寄存器初始化等。然后開始PLC發(fā)送讀寫請求,MC9S08PT60PB接收到指令后,回復(fù)指令,然后讀寫數(shù)據(jù),完成通信。
5 結(jié)論
PLC與MC9S08PT60PB利用了PPI串行通信很好的發(fā)揮PLC穩(wěn)定可靠的性能、抗干擾能力強的優(yōu)勢省略了PLC的通訊程序編寫,而且還發(fā)揮了
MC9S08PT60PB使用靈活、適應(yīng)性強的優(yōu)點,兩者相互結(jié)合取長補短。同時使用西門子公司的PPI協(xié)議解決了MC9S08PT60PB與PLC之間的數(shù)據(jù)交換問題。實踐證明該方法比自由口通信協(xié)議簡潔,使用方便,用途廣泛。
評論