MODBUS SDK用户手册

更新时间:2023-12-08 09:25:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

ZModbusSdk配置函数库

使用手册

V1.00

1

2

函数库说明 ............................................................................................................................... 3 1.1 简介: ........................................................................................................................... 3 1.2 提供的函数接口 ........................................................................................................... 3

1.2.1 以太网链路连接 ............................................................................................... 3 1.2.2 串口链路连接 ................................................................................................... 4 1.2.3 以太网与串口链路断开连接 ........................................................................... 5 1.2.4 以太网与串口链路的数据采集(读写) ....................................................... 5 错误代码 ................................................................................................................................. 11

1 函数库说明

1.1 简介:

ZModbusSdk函数库为标准的MODBUS(主机)协议提供函数接口。开发人员可以使用此函数库方便开发出遵循MODBUS协议的程序。如果需要开发MODBUS从机程序,开发人员需要使用其他的函数库或方法。

函数库在连接时使用对不同的链路层提供不同的函数接口如:以太网的为:ZMB_TCPConnectMDBServer,串口的为:ZMB_SerConnectMDBServer。其他的函数接口都相同,不区分连接链路。

(本文档中使用的术语服务器对应MODBUS协议里的从机模块,客户机对应MODBUS协议里的主机模块)

1.2 提供的函数接口

ZModbusSdk提供了连接到从机(服务器)和读写线圈与寄存器的函数接口。

1.2.1 以太网链路连接

? ZMB_TCPConnectMDBServer

描述

调用此函数连接到从机模块(或服务器)。

HANDLE ZMB_TCPConnectMDBServer( char * szIp,

int nDstPort,

int nConnTimeout);

参数 szIp

指定要进行连接的从机(服务器)的IP地址。 nDstPort

指定从机的端口号。 nConnTimeout 指定连接超时。 返回值

返回“非NULL”表示成功,否则为错误。

1.2.2 串口链路连接

? ZMB_SerConnectMDBServer(串口主机使用)

描述

调用此函数连接到从机模块(或服务器)。使用者应该注意对于串口的操作每个串口在同一时间只能打开一次,因此在操作串口时应该控制号程序使它每次只打开一次。 HANDLE ZMB_SerConnectMDBServer ( int iRtuAscii,

char *szCom, int iBautRate, int iByteSize, int iParity, int iStopBits, int iDtrCtl, int iRtsCtl, int iCtsCtl, int iDsrCtl, int iResponse);

参数 iRtuAscii

模块工作方式:RTU:0, ASCII:1 szCom

需要打开的计算机串口。”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

模块的超时响应,默认 1000 ms 返回值

返回“非NULL”表示成功,否则为失败。

1.2.3 以太网与串口链路断开连接

? ZMB_DisConnectMDBServer

描述

调用此函数断开和从机的连接。

void 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是ConnectMDBServer操作的返回值。 serID

设备ID号。 nStart

线圈的起始地址。 nCount

线圈的个数。 bRet

返回的线圈状态,已分配号的数组地址。 TranID

在TCP的MODBUS协议里需要用到任务ID号,如果为0使用系统自生成的,串口MODBUS此参数无效。 返回值

返回0表示成功,否则为错误码。

本文来源:https://www.bwwdw.com/article/jd3t.html

Top