c002c014
級別: *
|
剛買了個傳感器。。。有那個高手指點(diǎn)下三菱PLC怎樣和它通訊讀取壓力? HM29 數(shù)字壓力傳感器通訊協(xié)議 該協(xié)議按照標(biāo)準(zhǔn)的主從格式設(shè)計(jì),主機(jī)發(fā)送給從機(jī)一條含 有從機(jī)地址的指令,從機(jī)得到正確的地址驗(yàn)證后返回信息。(無 奇偶校驗(yàn)、8 位數(shù)據(jù)、1 位停止位) 讀取數(shù)據(jù) $ H X1 E X2 L C D M $ :開始字符; X1: 從機(jī)地址的十位數(shù); X2: 從機(jī)地址的個位數(shù); HELCDM :為容錯符號,為大寫。 如需要讀取01號傳感器的數(shù)據(jù),則發(fā)送:$ H 0 E 1LCDM 如需要讀取12號傳感器的數(shù)據(jù),則發(fā)送:$ H1 E 2LCDM 二、從機(jī)返回?cái)?shù)據(jù):(通訊使用ASCII碼) 共18 位 { UNIT D5 D4 D3 D2 D1 DP }(壓力) [ UNIT D5 D4 D3 D2 D1 DP ] (溫度) { : 返回?cái)?shù)據(jù)的啟示符; UNIT:從機(jī)的單位: 0-KPa; 1-MPa; 2-m; 3-Pa; 4-Kg; 5-bar; 6-°C; D5: 返回?cái)?shù)據(jù)的萬位;(數(shù)據(jù)類型為有符號整形) D4: 返回?cái)?shù)據(jù)的千位; D3: 返回?cái)?shù)據(jù)的百位; D2: 返回?cái)?shù)據(jù)的十位; D1: 返回?cái)?shù)據(jù)的個位; DP : 小數(shù)點(diǎn)位置: 0 代表沒有小數(shù)點(diǎn);1 代表有1 位小數(shù)點(diǎn); 2 代表有2 位小數(shù)點(diǎn);3 代表有3 位小數(shù)點(diǎn); (出廠量程設(shè)置的時候確定的該參數(shù)) } :返回?cái)?shù)據(jù)的結(jié)束符; 注意:D1~D5 的組合問題在從機(jī)中原數(shù)為 int(有符號整形); 從機(jī)程序中如下處理: D5= 原數(shù)/10000+0x30; //分解并組成ASCII碼 D4= 原數(shù)/1000%10+0x30; D3= 原數(shù)/100%10+0x30; D2= 原數(shù)/10%10+0x30; D1= 原數(shù)%10+0x30; “{ }”內(nèi)數(shù)據(jù)為壓力,“ [ ] ”內(nèi)數(shù)據(jù)為溫度值,通過單位也可分別。 例如:返回{5120003} 代表:12.000bar |
---|---|
|
sjm213
有小知識,無大學(xué)問。
級別: 論壇版主
|
使用485BD配合RS指令。 編程之前建議使用串口調(diào)試助手搞清楚需要發(fā)送的字符以及返回的字符,然后在PLC照著這些字符發(fā)送和接收。 |
---|---|
|