使用源码引用(Source Code Reference)
新建一个demo1项目
复制想要引用的文件
删除之后剩余的内容
显示所有文件
右击NModbus4的文件名—》选择包括在项目中
要注意一下命名空间,我们自己创建的命名空间是demo1,引用的NModbus是不一样的,使用时需注意。
下面代码可以打开串口,关闭串口。
using System;
using System.Windows.Forms;
using Modbus.IO;
using Modbus.Device;
using System.IO.Ports;
namespace demo1
{
public partial class Form1 : Form
{
private SerialPort sp = null;//创建串口
private ModbusSerialMaster msm;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
//SerialPort sp = new SerialPort("COM3",9600);//可以直接定义并初始化
sp = new SerialPort("COM3", 9600);
sp.Open();
// ModbusSerialMaster msm = ModbusSerialMaster.CreateRtu(sp);//实例化modbus
msm = ModbusSerialMaster.CreateRtu(sp);//实例化modbus
///
//使用msm去读写modbus设备
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
if (sp.IsOpen)
{
sp.Close();
}
}
}
}
使用项目引用(Project Reference)
新建一个demo2项目
将要复制的文件,复制到demo2的解析文件下面
右击解决方案–》添加现有项目。
添加.csproj后缀的项目
在demo2里面引用一下,右击引用–》添加引用
添加解决方案里的引用
代码是一样的,如果报错:该框架版本高于当前目标框架。可以升级当前的net版本。
右击demo文件,选择属性。在应用程序里选择目标框架,选个更高级别的net即可正常运行。
using System;
using System.Windows.Forms;
using Modbus.IO;
using Modbus.Device;
using System.IO.Ports;
namespace demo1
{
public partial class Form1 : Form
{
private SerialPort sp = null;//创建串口
private ModbusSerialMaster msm;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
//SerialPort sp = new SerialPort("COM3",9600);//可以直接定义并初始化
sp = new SerialPort("COM3", 9600);
sp.Open();
// ModbusSerialMaster msm = ModbusSerialMaster.CreateRtu(sp);//实例化modbus
msm = ModbusSerialMaster.CreateRtu(sp);//实例化modbus
///
//使用msm去读写modbus设备
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
if (sp.IsOpen)
{
sp.Close();
}
}
}
}
使用 DLL 动态库方式(DLL Reference)
新建demo3项目
右击demo3,添加一个文件夹命名为Lib
直接使用demo2运行之后,在bin-》Debug里生成的dll文件,可以直接复制到demo3文件里,也可以直接将dll复制到Lib文件里。
点击显示所有文件之后,右击.dll文件–》选择包括在项目中
右击引用–》添加引用,选择浏览。浏览当前文件下的dll文件。添加进引用。
下面代码和之前一致,如果报错,按上述方法解决即可
using System;
using System.Windows.Forms;
using Modbus.IO;
using Modbus.Device;
using System.IO.Ports;
namespace demo1
{
public partial class Form1 : Form
{
private SerialPort sp = null;//创建串口
private ModbusSerialMaster msm;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
//SerialPort sp = new SerialPort("COM3",9600);//可以直接定义并初始化
sp = new SerialPort("COM3", 9600);
sp.Open();
// ModbusSerialMaster msm = ModbusSerialMaster.CreateRtu(sp);//实例化modbus
msm = ModbusSerialMaster.CreateRtu(sp);//实例化modbus
///
//使用msm去读写modbus设备
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
if (sp.IsOpen)
{
sp.Close();
}
}
}
}