MODBUSSDK用户手册

上传人:汽*** 文档编号:563010298 上传时间:2022-11-09 格式:DOCX 页数:13 大小:27.77KB
返回 下载 相关 举报
MODBUSSDK用户手册_第1页
第1页 / 共13页
MODBUSSDK用户手册_第2页
第2页 / 共13页
MODBUSSDK用户手册_第3页
第3页 / 共13页
MODBUSSDK用户手册_第4页
第4页 / 共13页
MODBUSSDK用户手册_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《MODBUSSDK用户手册》由会员分享,可在线阅读,更多相关《MODBUSSDK用户手册(13页珍藏版)》请在金锄头文库上搜索。

1、ZModbusSdk酉已置函数库使用手册1 函数库说明错误!未定义书签。简介:错误!未定义书签。提供的函数接口错误!未定义书签。以太网链路连接错误!未定义书签。串口链路连接错误!未定义书签。以太网与串口链路断开连接错误!未定义书签。以太网与串口链路的数据采集(读写)错误!未定义书签。2 错误代码错误!未定义书签。1函数库说明1.1 简介:ZModbusSdk函数库为标准的MODBUS住机)协议提供函数接口。开发人员可以使用此函数库方便开发出遵循MODBUS协议的程序。如果需要开发MODBUS从机程序,开发人员需要使用其他的函数库或方法。函数库在连接时使用对不同的链路层提供不同的函数接口如:以太

2、网的为:ZMB_TCPConnectMDBServe曲口的为:ZMB_SerConnectMDBServer。其他的函数接口都相同,不区分连接链路。(本文档中使用的术语服务器对应MODBUS协议里的从机模块,客户机对应MODBUS协议里的主机模块)1.2 提供的函数接口ZModbusSdk提供了连接到从机(服务器)和读写线圈与寄存器的函数接口。1.2.1 以太网链路连接ZMB_TCPConnectMDBServer描述调用此函数连接到从机模块(或服务器)。HANDLEZMB_TCPConnectMDBServer(char*szIp,intnDstPort,intnConnTimeout);参

3、数szIp指定要进行连接的从机(服务器)的IP地址。nDstPort指定从机的端口号。nConnTimeout指定连接超时。返回值返回非NULL表示成功,否则为错误。1.2.2 串口链路连接ZMB_SerConnectMDBServer(串口主机使用)描述调用此函数连接到从机模块(或服务器)。使用者应该注意对于串口的操作每个串口在同一时间只能打开一次,因此在操作串口时应该控制号程序使它每次只打开一次。HANDLEZMB_SerConnectMDBServer(intiRtuAscii,char*szCom,intiBautRate,intiByteSize,intiParity,intiSto

4、pBits,intiDtrCtl,intiRtsCtl,intiCtsCtl,intiDsrCtl,intiResponse);iRtuAscii模块工作方式:RTU:0,ASCII:1szCom需要打开的计算机串口。”COM1,COM2-,-iBautRate模块工作的波特率。9600,19200,iByteSize模块工作的数据位。数据位数(字节表示4-8位)iParity模块工作的校验位,奇偶校验0-4:表示:不校验,奇校验,偶校验,标号,空格iStopBits模块工作的彳止位,0(ONESTOPBI供示1个停止位,1(ONE5STOPBIT蹂示个停止位,2(TWOSTOPBIT诔示2个

5、停止位iDtrCtl模块是否需要DTR控制,0不需要,iRtsCtl模块是否需要RTS控制,0不需要,iCtsCtl模块是否需要CTS控制,0不需要,iDsrCtl模块是否需要Dsr控制,0不需要,iResponse模块的超时响应,默认1000ms返回值返回非NULL表示成功,否则为失败。1.2.3 以太网与串口链路断开连接ZMB_DisConnectMDBServer描述调用此函数断开和从机的连接。voidZMB_DisConnectMDBServer(HANDLEhHand);参数hHand此handle是ConnectMDBServer操作的返回值。返回值无。1.2.4 以太网与串口链路

6、的数据采集(读写)ZMB_ReadCoil描述调用此函数按参数中的ID号和地址读取线圈状态。longZMB_ReadCoil(HANDLEhand,BYTEserID,intnStart,intnCount,BYTE*bRet/*arrofcoils*/,WORDTranlD);参数hand此handle是ConnectMDBServer操作的返回值。serID设备ID号。nStart线圈的起始地址。nCount线圈的个数。bRet返回的线圈状态,已分配号的数组地址。TranID在TCP的MODBUS协议里需要用到任务ID号,如果为0使用系统自生成的,串口MODBUS此参数无效。返回值返回0表

7、示成功,否则为错误码。ZMB_ReadInput描述调用此函数按参数中的ID号和地址读取线圈状态(离散输入量数据)。longZMB_ReadInput(HANDLEhand,BYTEserID,intnStart,intnCount,BYTE*bRet/*arrofcoils*/,WORDTranlD);参数hand此handle是ConnectMDBServer操作的返回值。serID设备ID号。nStart线圈的起始地址。nCount线圈的个数。bRet返回的线圈状态,已分配号的数组地址,此数组的大小应该和nCount指定的大小相同。TranID在TCP的MODBUS协议里需要用到任务ID

8、号,如果为0使用系统自生成的,串口MODBUS此参数无效。返回值返回0表示成功,否则为错误码。ZMB_ReadHoldReg描述调用此函数按参数中的ID号和地址读取保持寄存器的数据。longZMB_ReadHoldReg(HANDLEhand,BYTEserID,intnStart,intnCount,WORD*bRet/*arrofreg*/,WORDTranID);参数hand此handle是ConnectMDBServer操作的返回值。serID设备ID号。nStart寄存器的起始地址。nCount寄存器的个数。bRet返回的寄存器数据,已分配号的数组地址,此数组的大小应该和nCount

9、一样。TranlD在TCP的MODBUS协议里需要用到任务ID号,如果为0使用系统自生成的,串口MODBUS此参数无效。返回值返回0表示成功,否则为错误码。ZMB_ReadInputReg描述调用此函数按参数中的ID号和地址读取输入寄存器的数据。longZMB_ReadInputReg(HANDLEhand,BYTEserID,intnStart,intnCount,WORD*Ret/*arrofreg*/,WORDTranlD);参数hand此handle是ConnectMDBServer操作的返回值。serID设备ID号。nStart寄存器的起始地址。nCount寄存器的个数。bRet返回

10、的输入寄存器数据,已分配号的数组地址,此数组的大小应该和nCount一样大。TranID在TCP的MODBUS协议里需要用到任务ID号,如果为0使用系统自生成的,串口MODBUS此参数无效。返回值返回0表示成功,否则为错误码。ZMB_WriteCoilSingle描述调用此函数按参数中的ID号和地址修改单个线圈状态。longZMB_WriteCoilSingle(HANDLEhand,BYTEserID,intnAddress,WORDwWriteData,WORDTranID);hand此handle是ConnectMDBServer操作的返回值。serlD设备ID号。nAddress线圈的

11、起始地址。wWriteData写入的线圈数据:“0;“1TranlD在TCP的MODBUS协议里需要用到任务ID号,如果为0使用系统自生成的,串口MODBUS此参数无效。返回值返回0表示成功,否则为错误码。ZMB_WriteCoilMulitiple描述调用此函数按参数中的ID号和地址修改nCount指定的多个线圈状态。longZMB_WriteCoilMulitiple(HANDLEhand,BYTEserID,intnAddress,intnCount,BYTE*bWriteDataArr,WORDTranID);参数hand此handle是ConnectMDBServer操作的返回值。s

12、erID设备ID号。nAddress线圈的起始地址。nCount写入的线圈的个数。bWriteDataArr写入的线圈数据的数组,数组的每个结构保存一个线圈状态,此数组大小应该和nCount指定的大小相同。TranID在TCP的MODBUS协议里需要用到任务ID号,如果为0使用系统自生成的,串口MODBUS此参数无效。返回值返回0表示成功,否则为错误码。ZMB_WriteRegSingle描述调用此函数按参数中的ID号和地址修改单个保持寄存器数据。longZMB_WriteRegSingle(HANDLEhand,BYTEserlD,intnAddress,WORDwWriteData,WOR

13、DTranID);参数hand此handle是ConnectMDBServer操作的返回值。serID设备ID号。nAddress保持寄存器的地址。wWriteData写入的寄存器数据。TranID在TCP的MODBUS协议里需要用到任务ID号,如果为0使用系统自生成的,串口MODBUS此参数无效。返回值返回0表示成功,否则为错误码。ZMB_WriteRegMulitiple描述调用此函数按参数中的ID号和地址修改nCount指定多个保持寄存器。longZMB_WriteRegMulitiple(HANDLEhand,BYTEserID,intnAddress,intnCount,WORD*w

14、riteDataArr,WORDTranID);参数hand此handle是ConnectMDBServer操作的返回值。serID设备ID号。nAddress保持寄存器的起始地址。nCount写入的寄存器的个数。bWriteDataArr写入的寄存器数据的数组,数组的每个结构保存一个寄存器的值,此数组个数应该和nCount指定的个数相同,大小应该等于nCount*2个字节。TranID在TCP的MODBUS协议里需要用到任务ID号,如果为0使用系统自生成的,串口MODBUS此参数无效。返回值返回0表示成功,否则为错误码。ZMB_WriteCmdBuf描述调用此函数写命令串,根据nAddCheck参数决定是否添加校验。其中TCPModbus协议不会添加必要的头部,而串口Modbus则可以根据nAddCheck指定是否添加校验,校验的格式(CRC或LR。由打开参数iRtuAscii指定,这里不需要再指定。longZMB_WriteCmdBuf(HANDLEhand,BYTE*pBuf,intiLen,intnAddCheck);参数hand此handle是ConnectMDBServer操作的返回值。pBuf写数据的缓冲区。iLen缓冲区长度。nAddCheck是否添加校验,只在串口中有效,如果打开时为RUT,且使用了添加校验,则添加CRC校验。如果打开时为ASCII且使

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 营销创新

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号