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