




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、V1.00ZModbusSdk配置函數庫使用手冊1函數庫說明31.1簡介:31.2提供的函數接口3以太網鏈路連接3串口鏈路連接4以太網與串口鏈路斷開連接5以太網與串口鏈路的數據采集(讀寫)52錯誤代碼111 函數庫說明 1.1 簡介: ZModbusSdk函數庫為標準的MODBUS(主機)協議提供函數接口。開發人員可以使用此函數庫方便開發出遵循MODBUS協議的程序。如果需要開發MODBUS從機程序,開發人員需要使用其他的函數庫或方法。 函數庫在連接時使用對不同的鏈路層提供不同的函數接口如:以太網的為:ZMB_TCPConnectMDBServer,串口的為:ZMB_SerConnectMDB
2、Server。其他的函數接口都相同,不區分連接鏈路。 (本文檔中使用的術語服務器對應MODBUS協議里的從機模塊,客戶機對應MODBUS協議里的主機模塊) 1.2 提供的函數接口 ZModbusSdk提供了連接到從機(服務器)和讀寫線圈與寄存器的函數接口。 1.2.1 以太網鏈路連接 Ø ZMB_TCPConnectMDBServer 描述 調用此函數連接到從機模塊(或服務器)。 HANDLE ZMB_TCPConnectMDBServer( char * szIp, int nDstPort, int nConnTimeout); 參數 szIp 指定要進行連接的從機(服務器)的I
3、P地址。 nDstPort 指定從機的端口號。 nConnTimeout 指定連接超時。 返回值 返回“非NULL”表示成功,否則為錯誤。 1.2.2 串口鏈路連接 Ø ZMB_SerConnectMDBServer(串口主機使用) 描述 調用此函數連接到從機模塊(或服務器)。使用者應該注意對于串口的操作每個串口在同一時間只能打開一次,因此在操作串口時應該控制號程序使它每次只打開一次。 HANDLE ZMB_SerConnectMDBServer (int iRtuAscii, char *szCom, int iBautRate, int iByteSize, int iParit
4、y, int iStopBits, int iDtrCtl, int iRtsCtl, int iCtsCtl, int iDsrCtl, int iResponse); 參數 iRtuAscii 模塊工作方式:RTU:0, ASCII:1 szCom 需要打開的計算機串口?!盋OM1”,”COM2”, iBautRate 模塊工作的波特率。9600,19200, iByteSize 模塊工作的數據位。數據位數(字節表示4-8位) iParity 模塊工作的校驗位,奇偶校驗 0-4:表示:不校驗,奇校驗,偶校驗,標號,空格 iStopBits 模塊工作的停止位,0(ONESTOPBIT)表示1
5、個停止位,1(ONE5STOPBITS)表示1.5個停止位,2(TWOSTOPBITS)表示2個停止位 iDtrCtl 模塊是否需要DTR控制,0 不需要,1 需要 iRtsCtl 模塊是否需要RTS控制,0 不需要,1 需要 iCtsCtl 模塊是否需要CTS控制,0 不需要,1 需要 iDsrCtl 模塊是否需要Dsr控制,0 不需要,1 需要 iResponse 模塊的超時響應,默認 1000 ms 返回值 返回“非NULL”表示成功,否則為失敗。 1.2.3 以太網與串口鏈路斷開連接 Ø ZMB_DisConnectMDBServer 描述 調用此函數斷開和從機的連接。 vo
6、id ZMB_DisConnectMDBServer(HANDLE hHand); 參數 hHand 此handle是ConnectMDBServer操作的返回值。 返回值 無。 1.2.4 以太網與串口鏈路的數據采集(讀寫) Ø ZMB_ReadCoil 描述 調用此函數按參數中的ID號和地址讀取線圈狀態。 long ZMB_ReadCoil( HANDLE hand, BYTE serID, int nStart, int nCount, BYTE * bRet/*arr of coils*/, WORD TranID); 參數hand此handle是ConnectMDBServ
7、er操作的返回值。serID設備ID號。nStart線圈的起始地址。nCount線圈的個數。bRet 返回的線圈狀態,已分配號的數組地址。TranID在TCP的MODBUS協議里需要用到任務ID號,如果為0使用系統自生成的,串口MODBUS此參數無效。返回值返回0表示成功,否則為錯誤碼。Ø ZMB_ReadInput描述調用此函數按參數中的ID號和地址讀取線圈狀態(離散輸入量數據)。long ZMB_ReadInput(HANDLE hand,BYTE serID, int nStart, int nCount, BYTE * bRet /*arr of coils*/, WORD
8、TranID); 參數 hand 此handle是ConnectMDBServer操作的返回值。 serID 設備ID號。 nStart 線圈的起始地址。 nCount 線圈的個數。 bRet 返回的線圈狀態,已分配號的數組地址,此數組的大小應該和nCount指定的大小相同。 TranID 在TCP的MODBUS協議里需要用到任務ID號,如果為0使用系統自生成的,串口MODBUS此參數無效。 返回值 返回0表示成功,否則為錯誤碼。 Ø ZMB_ReadHoldReg 描述 調用此函數按參數中的ID號和地址讀取保持寄存器的數據。 long ZMB_ReadHoldReg (HANDLE
9、 hand, BYTE serID, int nStart, int nCount, WORD * bRet/*arr of reg*/, WORD TranID); 參數 hand 此handle是ConnectMDBServer操作的返回值。 serID 設備ID號。 nStart 寄存器的起始地址。 nCount 寄存器的個數。 bRet 返回的寄存器數據,已分配號的數組地址,此數組的大小應該和nCount 一樣。 TranID 在TCP的MODBUS協議里需要用到任務ID號,如果為0使用系統自生成的,串口MODBUS此參數無效。 返回值 返回0表示成功,否則為錯誤碼。 Ø Z
10、MB_ReadInputReg 描述 調用此函數按參數中的ID號和地址讀取輸入寄存器的數據。 long ZMB_ReadInputReg ( HANDLE hand, BYTE serID, int nStart, int nCount, WORD * Ret/*arr of reg*/, WORD TranID); 參數 hand 此handle是ConnectMDBServer操作的返回值。 serID 設備ID號。 nStart 寄存器的起始地址。 nCount 寄存器的個數。 bRet 返回的輸入寄存器數據,已分配號的數組地址,此數組的大小應該和nCount一樣大。 TranID 在T
11、CP的MODBUS協議里需要用到任務ID號,如果為0使用系統自生成的,串口MODBUS此參數無效。 返回值 返回0表示成功,否則為錯誤碼。 Ø ZMB_WriteCoilSingle 描述 調用此函數按參數中的ID號和地址修改單個線圈狀態。 long ZMB_WriteCoilSingle (HANDLE hand, BYTE serID, int nAddress, WORD wWriteData, WORD TranID); 參數 hand 此handle是ConnectMDBServer操作的返回值。 serID 設備ID號。 nAddress 線圈的起始地址。 wWriteD
12、ata 寫入的線圈數據:“0”,“1”。 TranID 在TCP的MODBUS協議里需要用到任務ID號,如果為0使用系統自生成的,串口MODBUS此參數無效。 返回值 返回0表示成功,否則為錯誤碼。 Ø ZMB_WriteCoilMulitiple 描述 調用此函數按參數中的ID號和地址修改nCount指定的多個線圈狀態。 long ZMB_WriteCoilMulitiple (HANDLE hand, BYTE serID, int nAddress, int nCount, BYTE * bWriteDataArr, WORD TranID); 參數 hand 此handle是
13、ConnectMDBServer操作的返回值。 serID 設備ID號。 nAddress 線圈的起始地址。 nCount 寫入的線圈的個數。 bWriteDataArr 寫入的線圈數據的數組,數組的每個結構保存一個線圈狀態,此數組大小應該和nCount指定的大小相同。 TranID 在TCP的MODBUS協議里需要用到任務ID號,如果為0使用系統自生成的,串口MODBUS此參數無效。 返回值 返回0表示成功,否則為錯誤碼。 Ø ZMB_WriteRegSingle 描述 調用此函數按參數中的ID號和地址修改單個保持寄存器數據。 long ZMB_WriteRegSingle (HA
14、NDLE hand, BYTE serID, int nAddress, WORD wWriteData, WORD TranID); 參數 hand 此handle是ConnectMDBServer操作的返回值。 serID 設備ID號。 nAddress 保持寄存器的地址。 wWriteData 寫入的寄存器數據。 TranID 在TCP的MODBUS協議里需要用到任務ID號,如果為0使用系統自生成的,串口 MODBUS此參數無效。 返回值 返回0表示成功,否則為錯誤碼。 Ø ZMB_WriteRegMulitiple 描述 調用此函數按參數中的ID號和地址修改nCount指定多
15、個保持寄存器。 long ZMB_WriteRegMulitiple (HANDLE hand, BYTE serID, int nAddress, int nCount, WORD * writeDataArr, WORD TranID); 參數 hand 此handle是ConnectMDBServer操作的返回值。 serID 設備ID號。 nAddress 保持寄存器的起始地址。 nCount 寫入的寄存器的個數。 bWriteDataArr 寫入的寄存器數據的數組,數組的每個結構保存一個寄存器的值,此數組個數應該和nCount指定的個數相同,大小應該等于 nCount * 2 個字節
16、。 TranID 在TCP的MODBUS協議里需要用到任務ID號,如果為0使用系統自生成的,串口MODBUS此參數無效。 返回值 返回0表示成功,否則為錯誤碼。Ø ZMB_WriteCmdBuf描述 調用此函數寫命令串,根據nAddCheck參數決定是否添加校驗。其中TCP Modbus協議不會添加必要的頭部,而串口Modbus則可以根據nAddCheck指定是否添加校驗,校驗的格式(CRC或LRC)由打開參數iRtuAscii指定,這里不需要再指定。 long ZMB_WriteCmdBuf (HANDLE hand, BYTE *pBuf, int iLen, int nAddC
17、heck ); 參數 hand 此handle是ConnectMDBServer操作的返回值。 pBuf 寫數據的緩沖區。 iLen 緩沖區長度。 nAddCheck 是否添加校驗,只在串口中有效,如果打開時為RUT,且使用了添加校驗,則添加CRC校驗。如果打開時為ASCII,且使用了添加校驗,則添加LRC校驗。 TranID 在TCP的MODBUS協議里需要用到任務ID號,如果為0使用系統自生成的,串口MODBUS此參數無效。 返回值 返回寫成功的長度。 Ø ZMB_ReadRecBuf 描述 調用此函數讀取設備的響應數據。 long ZMB_ReadRecBuf (HANDLE
18、hand, BYTE *pBuf, int iBufLen, int *iRecedLen ); 參數 hand 此handle是ConnectMDBServer操作的返回值。 pBuf 讀數據的緩沖區。 iBufLens 緩沖區的大小。 iRecedLen 接收到的數據的長度,(輸出參數)。 TranID 在TCP的MODBUS協議里需要用到任務ID號,如果為0使用系統自生成的,串口MODBUS此參數無效。 返回值 返回讀取到的長度。 2 錯誤代碼 ZModbusSdk使用了標準的MODBUS錯誤代碼和自定義錯誤代碼來描述SDK在操作過程中會出現的錯誤。在使用的過程中應該注意錯誤的定義,有些使用0作為成功的標志,而有些使用0作為錯誤的標志。標準MODBUS的讀寫操作都以ERROR_SUCCESS(0)表示正確,Connect卻以NULL(0)表示錯誤,特殊命令的讀寫返回的讀寫的數據長度。 錯誤碼 錯誤含義 自定義錯誤碼 0 成功 100 普通錯誤,未定義 101 不是MODBUS協議 102 TCP連接出錯(可能主機不存在或本地網絡有問題) 103 TCP發送命令出錯(發送不成功,可能為網絡問題) 104 TCP接收響應出錯(可能指示不正確或網絡有問題) 105
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 合同轉讓簡單版的協議書范本3篇
- 共同生活協議書范本3篇
- 大學生畢業就業協議書模板3篇
- 合作經營茶葉店合同協議書3篇
- 廠房買賣合同法律效力3篇
- 北京離婚協議書簽署注意事項3篇
- 牛的飼養疫病監測技術發展考核試卷
- 網絡犯罪防范考核試卷
- 電機在放射性檢測設備中的應用考核試卷
- 種苗培育技術與實踐考核試卷
- 化工公司bluesign認證資料準備清單20201201
- 建設用地報批服務投標方案(技術方案)
- 短引線保護引出線保護以及T區保護
- 完美公司瑪麗艷美的觀念
- 浙攝影版(2020)信息技術三年級上冊第一課認識計算機(課件)
- 校園安全常識測試題卷
- 建筑用玻璃ccc標準
- 第一課中國人民站起來了
- 眼科門診病歷
- 彝文《指路經》課件
- 《神經系統的傳導通路》課件
評論
0/150
提交評論