




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、ZModbusSdk酉已置函數(shù)庫使用手冊(cè)1 函數(shù)庫說明錯(cuò)誤!未定義書簽。簡(jiǎn)介:錯(cuò)誤!未定義書簽。提供的函數(shù)接口錯(cuò)誤!未定義書簽。以太網(wǎng)鏈路連接錯(cuò)誤!未定義書簽。串口鏈路連接錯(cuò)誤!未定義書簽。以太網(wǎng)與串口鏈路斷開連接錯(cuò)誤!未定義書簽。以太網(wǎng)與串口鏈路的數(shù)據(jù)采集(讀寫)錯(cuò)誤!未定義書簽。2 錯(cuò)誤代碼錯(cuò)誤!未定義書簽。1函數(shù)庫說明1.1 簡(jiǎn)介:ZModbusSdk函數(shù)庫為標(biāo)準(zhǔn)的MODBUS住機(jī))協(xié)議提供函數(shù)接口。開發(fā)人員可以使用此函數(shù)庫方便開發(fā)出遵循MODBUS協(xié)議的程序。如果需要開發(fā)MODBUS從機(jī)程序,開發(fā)人員需要使用其他的函數(shù)庫或方法。函數(shù)庫在連接時(shí)使用對(duì)不同的鏈路層提供不同的函數(shù)接口如:以太
2、網(wǎng)的為:ZMB_TCPConnectMDBServe曲口的為:ZMB_SerConnectMDBServer。其他的函數(shù)接口都相同,不區(qū)分連接鏈路。(本文檔中使用的術(shù)語服務(wù)器對(duì)應(yīng)MODBUS協(xié)議里的從機(jī)模塊,客戶機(jī)對(duì)應(yīng)MODBUS協(xié)議里的主機(jī)模塊)1.2 提供的函數(shù)接口ZModbusSdk提供了連接到從機(jī)(服務(wù)器)和讀寫線圈與寄存器的函數(shù)接口。1.2.1 以太網(wǎng)鏈路連接ZMB_TCPConnectMDBServer描述調(diào)用此函數(shù)連接到從機(jī)模塊(或服務(wù)器)。HANDLEZMB_TCPConnectMDBServer(char*szIp,intnDstPort,intnConnTimeout);參
3、數(shù)szIp指定要進(jìn)行連接的從機(jī)(服務(wù)器)的IP地址。nDstPort指定從機(jī)的端口號(hào)。nConnTimeout指定連接超時(shí)。返回值返回非NULL表示成功,否則為錯(cuò)誤。1.2.2 串口鏈路連接ZMB_SerConnectMDBServer(串口主機(jī)使用)描述調(diào)用此函數(shù)連接到從機(jī)模塊(或服務(wù)器)。使用者應(yīng)該注意對(duì)于串口的操作每個(gè)串口在同一時(shí)間只能打開一次,因此在操作串口時(shí)應(yīng)該控制號(hào)程序使它每次只打開一次。HANDLEZMB_SerConnectMDBServer(intiRtuAscii,char*szCom,intiBautRate,intiByteSize,intiParity,intiSto
4、pBits,intiDtrCtl,intiRtsCtl,intiCtsCtl,intiDsrCtl,intiResponse);iRtuAscii模塊工作方式:RTU:0,ASCII:1szCom需要打開的計(jì)算機(jī)串口?!盋OM1,"COM2-,-iBautRate模塊工作的波特率。9600,19200,iByteSize模塊工作的數(shù)據(jù)位。數(shù)據(jù)位數(shù)(字節(jié)表示4-8位)iParity模塊工作的校驗(yàn)位,奇偶校驗(yàn)0-4:表示:不校驗(yàn),奇校驗(yàn),偶校驗(yàn),標(biāo)號(hào),空格iStopBits模塊工作的彳止位,0(ONESTOPBI供示1個(gè)停止位,1(ONE5STOPBIT蹂示個(gè)停止位,2(TWOSTOPB
5、IT誄示2個(gè)停止位iDtrCtl模塊是否需要DTR控制,0不需要,iRtsCtl模塊是否需要RTS控制,0不需要,iCtsCtl模塊是否需要CTS控制,0不需要,iDsrCtl模塊是否需要Dsr控制,0不需要,iResponse模塊的超時(shí)響應(yīng),默認(rèn)1000ms返回值返回非NULL表示成功,否則為失敗。1.2.3 以太網(wǎng)與串口鏈路斷開連接ZMB_DisConnectMDBServer描述調(diào)用此函數(shù)斷開和從機(jī)的連接。voidZMB_DisConnectMDBServer(HANDLEhHand);參數(shù)hHand此handle是ConnectMDBServer操作的返回值。返回值無。1.2.4 以太
6、網(wǎng)與串口鏈路的數(shù)據(jù)采集(讀寫)ZMB_ReadCoil描述調(diào)用此函數(shù)按參數(shù)中的ID號(hào)和地址讀取線圈狀態(tài)。longZMB_ReadCoil(HANDLEhand,BYTEserID,intnStart,intnCount,BYTE*bRet/*arrofcoils*/,WORDTranlD);參數(shù)hand此handle是ConnectMDBServer操作的返回值。serID設(shè)備ID號(hào)。nStart線圈的起始地址。nCount線圈的個(gè)數(shù)。bRet返回的線圈狀態(tài),已分配號(hào)的數(shù)組地址。TranID在TCP的MODBUS協(xié)議里需要用到任務(wù)ID號(hào),如果為0使用系統(tǒng)自生成的,串口MODBUS此參數(shù)無效。返
7、回值返回0表示成功,否則為錯(cuò)誤碼。ZMB_ReadInput描述調(diào)用此函數(shù)按參數(shù)中的ID號(hào)和地址讀取線圈狀態(tài)(離散輸入量數(shù)據(jù))。longZMB_ReadInput(HANDLEhand,BYTEserID,intnStart,intnCount,BYTE*bRet/*arrofcoils*/,WORDTranlD);參數(shù)hand此handle是ConnectMDBServer操作的返回值。serID設(shè)備ID號(hào)。nStart線圈的起始地址。nCount線圈的個(gè)數(shù)。bRet返回的線圈狀態(tài),已分配號(hào)的數(shù)組地址,此數(shù)組的大小應(yīng)該和nCount指定的大小相同。TranID在TCP的MODBUS協(xié)議里需要
8、用到任務(wù)ID號(hào),如果為0使用系統(tǒng)自生成的,串口MODBUS此參數(shù)無效。返回值返回0表示成功,否則為錯(cuò)誤碼。ZMB_ReadHoldReg描述調(diào)用此函數(shù)按參數(shù)中的ID號(hào)和地址讀取保持寄存器的數(shù)據(jù)。longZMB_ReadHoldReg(HANDLEhand,BYTEserID,intnStart,intnCount,WORD*bRet/*arrofreg*/,WORDTranID);參數(shù)hand此handle是ConnectMDBServer操作的返回值。serID設(shè)備ID號(hào)。nStart寄存器的起始地址。nCount寄存器的個(gè)數(shù)。bRet返回的寄存器數(shù)據(jù),已分配號(hào)的數(shù)組地址,此數(shù)組的大小應(yīng)該和
9、nCount一樣。TranlD在TCP的MODBUS協(xié)議里需要用到任務(wù)ID號(hào),如果為0使用系統(tǒng)自生成的,串口MODBUS此參數(shù)無效。返回值返回0表示成功,否則為錯(cuò)誤碼。ZMB_ReadInputReg描述調(diào)用此函數(shù)按參數(shù)中的ID號(hào)和地址讀取輸入寄存器的數(shù)據(jù)。longZMB_ReadInputReg(HANDLEhand,BYTEserID,intnStart,intnCount,WORD*Ret/*arrofreg*/,WORDTranlD);參數(shù)hand此handle是ConnectMDBServer操作的返回值。serID設(shè)備ID號(hào)。nStart寄存器的起始地址。nCount寄存器的個(gè)數(shù)。
10、bRet返回的輸入寄存器數(shù)據(jù),已分配號(hào)的數(shù)組地址,此數(shù)組的大小應(yīng)該和nCount一樣大。TranID在TCP的MODBUS協(xié)議里需要用到任務(wù)ID號(hào),如果為0使用系統(tǒng)自生成的,串口MODBUS此參數(shù)無效。返回值返回0表示成功,否則為錯(cuò)誤碼。ZMB_WriteCoilSingle描述調(diào)用此函數(shù)按參數(shù)中的ID號(hào)和地址修改單個(gè)線圈狀態(tài)。longZMB_WriteCoilSingle(HANDLEhand,BYTEserID,intnAddress,WORDwWriteData,WORDTranID);hand此handle是ConnectMDBServer操作的返回值。serlD設(shè)備ID號(hào)。nAddr
11、ess線圈的起始地址。wWriteData寫入的線圈數(shù)據(jù):“0;“1TranlD在TCP的MODBUS協(xié)議里需要用到任務(wù)ID號(hào),如果為0使用系統(tǒng)自生成的,串口MODBUS此參數(shù)無效。返回值返回0表示成功,否則為錯(cuò)誤碼。ZMB_WriteCoilMulitiple描述調(diào)用此函數(shù)按參數(shù)中的ID號(hào)和地址修改nCount指定的多個(gè)線圈狀態(tài)。longZMB_WriteCoilMulitiple(HANDLEhand,BYTEserID,intnAddress,intnCount,BYTE*bWriteDataArr,WORDTranID);參數(shù)hand此handle是ConnectMDBServer操作
12、的返回值。serID設(shè)備ID號(hào)。nAddress線圈的起始地址。nCount寫入的線圈的個(gè)數(shù)。bWriteDataArr寫入的線圈數(shù)據(jù)的數(shù)組,數(shù)組的每個(gè)結(jié)構(gòu)保存一個(gè)線圈狀態(tài),此數(shù)組大小應(yīng)該和nCount指定的大小相同。TranID在TCP的MODBUS協(xié)議里需要用到任務(wù)ID號(hào),如果為0使用系統(tǒng)自生成的,串口MODBUS此參數(shù)無效。返回值返回0表示成功,否則為錯(cuò)誤碼。ZMB_WriteRegSingle描述調(diào)用此函數(shù)按參數(shù)中的ID號(hào)和地址修改單個(gè)保持寄存器數(shù)據(jù)。longZMB_WriteRegSingle(HANDLEhand,BYTEserlD,intnAddress,WORDwWriteDa
13、ta,WORDTranID);參數(shù)hand此handle是ConnectMDBServer操作的返回值。serID設(shè)備ID號(hào)。nAddress保持寄存器的地址。wWriteData寫入的寄存器數(shù)據(jù)。TranID在TCP的MODBUS協(xié)議里需要用到任務(wù)ID號(hào),如果為0使用系統(tǒng)自生成的,串口MODBUS此參數(shù)無效。返回值返回0表示成功,否則為錯(cuò)誤碼。ZMB_WriteRegMulitiple描述調(diào)用此函數(shù)按參數(shù)中的ID號(hào)和地址修改nCount指定多個(gè)保持寄存器。longZMB_WriteRegMulitiple(HANDLEhand,BYTEserID,intnAddress,intnCount,
14、WORD*writeDataArr,WORDTranID);參數(shù)hand此handle是ConnectMDBServer操作的返回值。serID設(shè)備ID號(hào)。nAddress保持寄存器的起始地址。nCount寫入的寄存器的個(gè)數(shù)。bWriteDataArr寫入的寄存器數(shù)據(jù)的數(shù)組,數(shù)組的每個(gè)結(jié)構(gòu)保存一個(gè)寄存器的值,此數(shù)組個(gè)數(shù)應(yīng)該和nCount指定的個(gè)數(shù)相同,大小應(yīng)該等于nCount*2個(gè)字節(jié)。TranID在TCP的MODBUS協(xié)議里需要用到任務(wù)ID號(hào),如果為0使用系統(tǒng)自生成的,串口MODBUS此參數(shù)無效。返回值返回0表示成功,否則為錯(cuò)誤碼。ZMB_WriteCmdBuf描述調(diào)用此函數(shù)寫命令串,根據(jù)n
15、AddCheck參數(shù)決定是否添加校驗(yàn)。其中TCPModbus協(xié)議不會(huì)添加必要的頭部,而串口Modbus則可以根據(jù)nAddCheck指定是否添加校驗(yàn),校驗(yàn)的格式(CRC或LR。由打開參數(shù)iRtuAscii指定,這里不需要再指定。longZMB_WriteCmdBuf(HANDLEhand,BYTE*pBuf,intiLen,intnAddCheck);參數(shù)hand此handle是ConnectMDBServer操作的返回值。pBuf寫數(shù)據(jù)的緩沖區(qū)。iLen緩沖區(qū)長(zhǎng)度。nAddCheck是否添加校驗(yàn),只在串口中有效,如果打開時(shí)為RUT,且使用了添加校驗(yàn),則添加CRC校驗(yàn)。如果打開時(shí)為ASCII且使
16、用了添加校驗(yàn),則添加LRC交驗(yàn)。TranID在TCP的MODBUS協(xié)議里需要用到任務(wù)ID號(hào),如果為0使用系統(tǒng)自生成的,串口MODBUS此參數(shù)無效。返回值返回寫成功的長(zhǎng)度。ZMB_ReadRecBuf描述調(diào)用此函數(shù)讀取設(shè)備的響應(yīng)數(shù)據(jù)。longZMB_ReadRecBuf(HANDLEhand,BYTE*pBuf,intiBufLen,int*iRecedLen);參數(shù)hand此handle是ConnectMDBServer操作的返回值。pBuf讀數(shù)據(jù)的緩沖區(qū)。iBufLens緩沖區(qū)的大小。iRecedLen接收到的數(shù)據(jù)的長(zhǎng)度,(輸出參數(shù))。TranlD在TCP的MODBUS協(xié)議里需要用到任務(wù)ID
17、號(hào),如果為0使用系統(tǒng)自生成的,串口MODBUS此參數(shù)無效。返回值返回讀取到的長(zhǎng)度。2錯(cuò)誤代碼ZModbusSdk使用了標(biāo)準(zhǔn)的MODBUS錯(cuò)誤代碼和自定義錯(cuò)誤代碼來描述SDK&操作過程中會(huì)出現(xiàn)的錯(cuò)誤。在使用的過程中應(yīng)該注意錯(cuò)誤的定義,有些使用0作為成功的標(biāo)志,而有些使用0作為錯(cuò)誤的標(biāo)志。標(biāo)準(zhǔn)MODBUS的讀寫操作都以ERROR_SUCCESSD)表示正確,Connect卻以NULL.(0)表示錯(cuò)誤,特殊命令的讀寫返回的讀寫的數(shù)據(jù)長(zhǎng)度。錯(cuò)誤碼錯(cuò)誤含義自定義錯(cuò)誤碼0成功100普通錯(cuò)誤,未定義101不是MODBUS協(xié)議102TCP連接出錯(cuò)(可能主機(jī)不存在或本地網(wǎng)絡(luò)有問題)103TCP發(fā)送命令出錯(cuò)(發(fā)送不成功,可能為網(wǎng)絡(luò)問題)104TCP接收響應(yīng)出錯(cuò)(可能指本不
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- T-ZTSS 0002-2024 同山燒酒評(píng)價(jià)規(guī)范
- T-ZJSEIA 007-2024 產(chǎn)品碳足跡評(píng)價(jià)技術(shù)規(guī)范光伏組件
- 二零二五年度健康產(chǎn)業(yè)商家入駐戰(zhàn)略合作協(xié)議
- 2025年度離婚財(cái)產(chǎn)分割與子女財(cái)產(chǎn)繼承協(xié)議
- 二零二五年度個(gè)人之間房產(chǎn)交易保密協(xié)議
- 二零二五年度按揭房屋借款協(xié)議書(公積金貸款)
- 2025年度籃球運(yùn)動(dòng)員轉(zhuǎn)會(huì)合同解除條件
- 二零二五年度超市租賃合同書:超市租賃及綠色環(huán)保產(chǎn)品合作協(xié)議
- 二零二五年度智能交通投資暗股協(xié)議
- 2025年度職業(yè)電競(jìng)選手私教訓(xùn)練協(xié)議
- 五年級(jí)英語下冊(cè)素材-Unit1 Cinderella課文翻譯 譯林版(三起)
- 2022年南京信息職業(yè)技術(shù)學(xué)院職業(yè)適應(yīng)性測(cè)試模擬試題及答案解析
- 英語演講素材OfMiceandMen課件
- 歐洲鼻竇炎共識(shí)解讀 EPOS 2020
- 第5章 海洋資源開發(fā)與管理
- 工業(yè)氣體企業(yè)公司組織架構(gòu)圖職能部門及工作職責(zé)
- 稅收基礎(chǔ)知識(shí)考試題庫
- 1t燃?xì)庹羝仩t用戶需求(URS)(共13頁)
- 廣發(fā)證券分支機(jī)構(gòu)人員招聘登記表
- 電工每日巡查簽到表
- 機(jī)電一體化系統(tǒng)設(shè)計(jì)課件姜培剛[1]
評(píng)論
0/150
提交評(píng)論