freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

modbus協議及modbusrtu的c51程序-在線瀏覽

2024-09-20 08:47本頁面
  

【正文】 在命令的開頭加上起始標記“:”,它的ASCII碼為0x3A。所以以下我們僅介紹RTU協議即可,對應的ASCII協議可以使用以上的步驟來生成。如果某項事務處理完成,記錄會給出有關錯誤13編程(184/384 484 584)可使主機模擬編程器功能修改PC從機邏輯14探詢(184/384 484 584)可使主機與正在執(zhí)行任務的從機通信,定期控詢該從機是否已完成其程序操作,僅在含有功能13的報文發(fā)送后,本功能碼才得發(fā)送15強置多線圈強置一串連續(xù)邏輯線圈的通斷16預置多寄存器把具體的二進制值裝入一串連續(xù)的保持寄存器17報告從機標識可使主機判斷編址從機的類型及該從機運行指示燈的狀態(tài)18(884和MICRO 84)可使主機模擬編程功能,修改PC狀態(tài)邏輯19重置通信鏈路發(fā)生非可修改錯誤后,是從機復位于已知狀態(tài),可重置順序字節(jié)20讀取通用參數(584L)顯示擴展存儲器文件中的數據信息21寫入通用參數(584L)把通用參數寫入擴展存儲文件,或修改之22~64保留作擴展功能備用65~72保留以備用戶功能所用留作用戶功能的擴展編碼73~119非法功能120~127保留留作內部作用128~255保留用于異常應答在這些功能碼中較長使用的是6號功能碼,使用它們即可實現對下位機的數字量和模擬量的讀寫操作。例子中為想和17號(十進制的17是十六進制的11)通訊。3起始地址高8位、低8位:表示想讀取的開關量的起始地址(起始地址為0)。4寄存器數高8位、低8位:表示從起始地址開始讀多少個開關量。5CRC校驗:是從開頭一直校驗到此之前。此處需要注意,CRC校驗在命令中的高低字節(jié)的順序和其他的相反。2返回的字節(jié)個數:表示數據的字節(jié)個數,也就是數據1,2...n中的n的值。比如例子中,表示20號(索引號為19)開關閉合,21號斷開,22閉合,23閉合,24斷開,25斷開,26閉合,27閉合...如果詢問的開關量不是8的整倍數,那么最后一個字節(jié)的高位部分無意義,置為0。讀只可讀數字量寄存器(輸入狀態(tài)):和讀取線圈狀態(tài)類似,只是第二個字節(jié)的命令號不再是1而是2。2命令號:寫數字量的命令號固定為05。4下置的數據高8位,低8位:表明需要下置的開關量的狀態(tài)。注意,此處只可以是[FF][00]表示閉合[00][00]表示斷開,其他數值非法。設備響應:如果成功把計算機發(fā)送的命令原樣返回,否則不響應。2命令號:讀模擬量的命令號固定為03。比如例子中的起始地址為107。例子中為3個模擬量。設備響應:[設備地址] [命令號03] [返回的字節(jié)個數][數據1][數據2]...[數據n][CRC校驗的低8位] [CRC校驗的高8位]例:[11][03][06][02][2B][00][00][00][64][CRC低][CRC高]意義如下:1設備地址和命令號和上面的相同。例子中返回了3個模擬量的數據,因為一個模擬量需要2個字節(jié)所以共6個字節(jié)。例子中返回的值分別是555,0,100。讀只可讀模擬量寄存器(輸入寄存器):和讀取保存寄存器類似,只是第二個字節(jié)的命令號不再是2而是4。2命令號:寫模擬量的命令號固定為06。4下置的數據高8位,低8位:表明需要下置的模擬量數據。5注意此命令一條只能下置一個模擬量的狀態(tài)。 include //字地址 0 255 (只取低8位)//位地址 0 255 (只取低8位)/* CRC 高位字節(jié)值表 */ const uint8 code auchCRCHi[] = { 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40 } 。uint8 testRegister。 //單片機控制板的地址uint8 sendCount。 //發(fā)送字節(jié)個數uint8 receCount。 //發(fā)送位置uint16 crc16(uint8 *puchMsg, uint16 usDataLen) { uint8 uchCRCHi = 0xFF 。 /* 低CRC 字節(jié)初始化 */ uint32 uIndex 。 uIndex = uchCRCHi ^ *puchMsg++ 。 uchCRCHi = uchCRCLo ^ auchCRCHi[uIndex] 。 uchCRCLo = auchCRCLo[uIndex] 。 }//uint16 crc16(uint8 *puchMsg, uint16 usDataLen)//開始發(fā)送void beginSend(void){ b485Send = 1。if(sendCount 1)ACC =
點擊復制文檔內容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1