77范文网 - 专业文章范例文档资料分享平台

NModbus类库使用

来源:网络收集 时间:2019-01-04 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

通过串口进行通信:

1、将NMobus类库导入工程中,添加引用、命名空间。工程属性必须配置为.NET 4.0。

2、创建SerialPort类的一个实例,配置参数,打开串口,如: 组

bool[] ReadCoils(byte slaveAddress, ushort startAddress, ushort numberOfPoints);

public SerialPort port = new SerialPort(“COM1”)//创建串口 port.BaudRate = 9600;//配置 port.DataBits = 8; port.Parity = Parity.None; port.StopBits = StopBits.One; port.Open();//打开串口

IModbusSerialMaster master = ModbusSerialMaster.CreateRtu(port);

//创建Rtu传输模式、通过串口port通信的主站master //ASCII传输模式

IModbusSerialMaster master = ModbusSerialMaster.CreateAscii(port);

3、调用相应方法创建Modbus主站,如:

4、配置参数,如:

master.Transport.ReadTimeout = 1000;//读取串口数据超时为1000ms master.Transport.WriteTimeout = 1000;//写入串口数据超时 master.Transport.Retries = 3;//重试次数

master.Transport.WaitToRetryMilliSeconds = 250;//重试间隔 try { }

master.WriteMultipleRegisters(slaveId, startAddress, registers);

5、调用相应方法执行功能,如:

有以下几种功能:

//读线圈,参数:从站地址(8位)、起始地址(16位)、数量(16位);返回布尔型数

//读输入离散量,参数:从站地址(8位)、起始地址(16位)、数量(16位);返回布尔型数组

bool[] ReadInputs(byte slaveAddress, ushort startAddress, ushort numberOfPoints);

//读保持寄存器,参数:从站地址(8位)、起始地址(16位)、数量(16位);返回16位整型数组

ushort[] ReadHoldingRegisters(byte slaveAddress, ushort startAddress, ushort

numberOfPoints);

//读输入寄存器,参数:从站地址(8位)、起始地址(16位)、数量(16位);返回16位整型数组

ushort[] ReadInputRegisters(byte slaveAddress, ushort startAddress, ushort numberOfPoints);

//写单个线圈,参数:从站地址(8位),线圈地址(16位),线圈值(布尔型) void WriteSingleCoil(byte slaveAddress, ushort coilAddress, bool value);

//写单个寄存器,参数:从站地址(8位),寄存器地址(16位),寄存器值(16位) void WriteSingleRegister(byte slaveAddress, ushort registerAddress, ushort value);

//写多个寄存器,参数:从站地址(8位),起始地址(16位),寄存器值(16位整型数组)

void WriteMultipleRegisters(byte slaveAddress, ushort startAddress, ushort[] data);

//写多个线圈,参数:从站地址(8位),起始地址(16位),线圈值(布尔型数组) void WriteMultipleCoils(byte slaveAddress, ushort startAddress, bool[] data);

//读写多个寄存器,参数:从站地址(8位),读起始地址(16位),数量(16位),写起始地址(16位),写入值(16位整型数组);返回16位整型数组

ushort[] ReadWriteMultipleRegisters(byte slaveAddress, ushort startReadAddress, ushort numberOfPointsToRead, ushort startWriteAddress, ushort[] writeData);

6、使用catch语句捕捉异常:

如果执行没有出错,则不抛出异常,如果是执行读操作则能得到相应的响应超时会抛出TimeoutException类型的异常;

接收到从站的异常响应时会抛出SlaveException类型的异常,这一类异常

返回值。

包含SlaveExceptionCode属性,即异常码,通过判断异常码能得知出错的原因。

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库NModbus类库使用在线全文阅读。

NModbus类库使用.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/403833.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: