using Modbus.Device;
using System;
using System.Collections.Generic;
using System.IO.Ports;
using System.Linq;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading.Tasks;
using System.Threading;
namespace ConsoleApp17
{
class Program
{
static void Main(string[] args)
{
//test3();
//main();
//test1();
test5();
Console.ReadKey();
}
static void test5() {
SerialPort serialPort1 = new SerialPort("COM2");//声明串口
IModbusSerialMaster master = ModbusSerialMaster.CreateRtu(serialPort1);
serialPort1.BaudRate = 9600;//波特率
serialPort1.DataBits = 8;//数据位
serialPort1.Parity = Parity.Even;
serialPort1.StopBits = StopBits.One;
serialPort1.Open();
byte slaveId = 1;
//这边的值都是ushort 10 进制的数,一般仪器接收的都是16进制的,所以得自己换算
ushort startAddress = (ushort)Convert.ToInt32("200", 16);
ushort[] data = { (ushort)Convert.ToInt32("0100", 16) };
//master.WriteMultipleRegisters(slaveId, startAddress, data);
master.WriteSingleCoil(1, 1, true);
//master.WriteSingleRegister()
serialPort1.Close();
}
}
}