您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > MODBUSSDK用户基础手册专业资料
V1.00ZModbusSdk配备函数库使用手册1函数库阐明..................................................................................................错误!未定义书签。1.1简介:..............................................................................................错误!未定义书签。1.2提供函数接口..................................................................................错误!未定义书签。1.2.1以太网链路连接.................................................................错误!未定义书签。1.2.2串口链路连接.....................................................................错误!未定义书签。1.2.3以太网与串口链路断开连接.............................................错误!未定义书签。1.2.4以太网与串口链路数据采集(读写).............................错误!未定义书签。2错误代码......................................................................................................错误!未定义书签。1函数库阐明1.1简介:ZModbusSdk函数库为原则MODBUS(主机)合同提供函数接口。开发人员可以使用此函数库以便开发出遵循MODBUS合同程序。如果需要开发MODBUS从机程序,开发人员需要使用其她函数库或办法。函数库在连接时使用对不同链路层提供不同函数接口如:以太网为:ZMB_TCPConnectMDBServer,串口为:ZMB_SerConnectMDBServer。其她函数接口都相似,不区别连接链路。(本文档中使用术语服务器相应MODBUS合同里从机模块,客户机相应MODBUS合同里主机模块)1.2提供函数接口ZModbusSdk提供了连接到从机(服务器)和读写线圈与寄存器函数接口。1.2.1以太网链路连接ZMB_TCPConnectMDBServer描述调用此函数连接到从机模块(或服务器)。HANDLEZMB_TCPConnectMDBServer(char*szIp,intnDstPort,intnConnTimeout);参数szIp指定要进行连接从机(服务器)IP地址。nDstPort指定从机端标语。nConnTimeout指定连接超时。返回值返回“非NULL”表达到功,否则为错误。1.2.2串口链路连接ZMB_SerConnectMDBServer(串口主机使用)描述调用此函数连接到从机模块(或服务器)。使用者应当注意对于串口操作每个串口在同一时间只能打开一次,因而在操作串口时应当控制号程序使它每次只打开一次。HANDLEZMB_SerConnectMDBServer(intiRtuAscii,char*szCom,intiBautRate,intiByteSize,intiParity,intiStopBits,intiDtrCtl,intiRtsCtl,intiCtsCtl,intiDsrCtl,intiResponse);参数iRtuAscii模块工作方式:RTU:0,ASCII:1szCom需要打开计算机串口。”COM1”,”COM2”…,…iBautRate模块工作波特率。9600,19200,……iByteSize模块工作数据位。数据位数(字节表达4-8位)iParity模块工作校验位,奇偶校验0-4:表达:不校验,奇校验,偶校验,标号,空格iStopBits模块工作停止位,0(ONESTOPBIT)表达1个停止位,1(ONE5STOPBITS)表达1.5个停止位,2(TWOSTOPBITS)表达2个停止位iDtrCtl模块与否需要DTR控制,0不需要,1需要iRtsCtl模块与否需要RTS控制,0不需要,1需要iCtsCtl模块与否需要CTS控制,0不需要,1需要iDsrCtl模块与否需要Dsr控制,0不需要,1需要iResponse模块超时响应,默认1000ms参数返回值返回“非NULL”表达到功,否则为失败。1.2.3以太网与串口链路断开连接ZMB_DisConnectMDBServer描述调用此函数断开和从机连接。voidZMB_DisConnectMDBServer(HANDLEhHand);参数hHand此handle是ConnectMDBServer操作返回值。返回值无。1.2.4以太网与串口链路数据采集(读写)ZMB_ReadCoil描述调用此函数按参数中ID号和地址读取线圈状态。longZMB_ReadCoil(HANDLEhand,BYTEserID,intnStart,intnCount,BYTE*bRet/*arrofcoils*/,WORDTranID);hand参数此handle是ConnectMDBServer操作返回值。serID设备ID号。nStart线圈起始地址。nCount线圈个数。bRet返回线圈状态,已分派号数组地址。TranID在TCPMODBUS合同里需要用到任务ID号,如果为0使用系统自生成,串口MODBUS此参数无效。返回值返回0表达到功,否则为错误码。ZMB_ReadInput描述调用此函数按参数中ID号和地址读取线圈状态(离散输入量数据)。longZMB_ReadInput(HANDLEhand,BYTEserID,intnStart,intnCount,BYTE*bRet/*arrofcoils*/,WORDTranID);hand参数此handle是ConnectMDBServer操作返回值。serID设备ID号。nStart线圈起始地址。nCount线圈个数。bRet返回线圈状态,已分派号数组地址,此数组大小应当和nCount指定大小相似。TranID在TCPMODBUS合同里需要用到任务ID号,如果为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同样。TranID在TCPMODBUS合同里需要用到任务ID号,如果为0使用系统自生成,串口MODBUS此参数无效。返回值返回0表达到功,否则为错误码。ZMB_ReadInputReg描述调用此函数按参数中ID号和地址读取输入寄存器数据。longZMB_ReadInputReg(HANDLEhand,BYTEserID,intnStart,intnCount,WORD*Ret/*arrofreg*/,WORDTranID);hand此handle是ConnectMDBServer操作返回值。serID设备ID号。nStart寄存器起始地址。nCount寄存器个数。bRet返回输入寄存器数据,已分派号数组地址,此数组大小应当和nCount同样大。TranID在TCPMODBUS合同里需要用到任务ID号,如果为0使用系统自生成,串口MODBUS此参数无效。返回值返回0表达到功,否则为错误码。ZMB_WriteCoilSingle描述调用此函数按参数中ID号和地址修改单个线圈状态。longZMB_WriteCoilSingle(HANDLEhand,BYTEserID,intnAddress,WORDwWriteData,WORDTranID);参数handserID此handle是ConnectMDBServer操作返回值。serID设备ID号。nAddress线圈起始地址。wWriteData写入线圈数据:“0”,“1”。TranID在TCPMODBUS合同里需要用到任务ID号,如果为0使用系统自生成,串口MODBUS此参数无效。返回值返回0表达到功,否则为错误码。ZMB_WriteCoilMulitiple描述调用此函数按参数中ID号和地址修改nCount指定各种线圈状态。longZMB_WriteCoilMulitiple(HANDLEhand,BYTEserID,intnAddress,intnCount,BYTE*bWriteDataArr,WORDTranID);参数hand此handle是ConnectMDBServer操作返回值。设备ID号。serIDnAddress线圈起始地址。nCount写入线圈个数。bWriteDataArr写入线圈数据数组,数组每个构造保存一种线圈状态,此数组大小应当和nCount指定大小相似。TranID在TCPMODBUS合同里需要用到任务ID号,如果为0使用系统自生成,串口MODBUS此参数无效。返回值返回0表达到功,否则为错误码。ZMB_WriteRegSingle描述调用此函数按参数中ID号和地址修改单个保持寄存器数据。longZMB_WriteRegSingle(HANDLEhand,BYTEserID,intnAddress,WORDwWriteData,WORDTranID);参数hand此handle是ConnectMDBServer操作返回值。设备ID号。nAddress保持寄存器地址。wWriteData写入寄存器数据。TranID在TCPMODBUS合同里需要用到任务ID号,如果为0使用系统自生成,串口MODBUS此参数无效。返回值返回0表达到功,否则为错误码。ZMB_WriteRegMulitiple描述调用此函数按参数中ID号和地址修改nCount指定各种保持寄存器。longZMB_WriteRegMulitiple(HANDLEhand,BYTEserID,intnAddress,intnCount,WORD*writeDataArr,WORDTranID);参数hand此handle是ConnectMDBServer操作返回值。serID设备ID号。nAddress保持寄存器起始地址。nCount写入寄存器个数。bWriteDataArr写入寄存器数据数组,数组每个构造保存一种寄存器值,此数组个数应当和nCount指定个数相似,大小应当等于nCount*2个字节。TranID在TCPMODBUS合同里需要用到任务ID号,如果为0使用系统自生成,串口MODBUS此参数无效。返回值返回0表达到功,否则为错误码。ZMB_WriteCmdBuf描述调用此函数写命令串,依照nAddCheck参数决定与否添加校验。其中TCPModbus合同不会添加必要头部,而串口Modbus则可以依照nAddCheck指定与否添加校验,校验格式(CRC或LRC)由打开参数iRtuAscii指定,这里不需要再指定。longZMB_WriteCmdBuf(HANDLEhand,BYTE*pBuf,intiLen,intnAddCheck);参数hand此handle是ConnectMDBServer操作返回值。pBuf写数据缓冲区。iLen缓冲区长度。nAddCheck与否添加校验,只在串口中有效,如果打开
本文标题:MODBUSSDK用户基础手册专业资料
链接地址:https://www.777doc.com/doc-8761737 .html