|
|
|
@ -8,6 +8,7 @@ using VOL.Data.Services.modbus;
|
|
|
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
|
|
|
using VOL.WebApi.Utils;
|
|
|
|
|
using VOL.Entity.DomainModels;
|
|
|
|
|
using OfficeOpenXml.FormulaParsing.Excel.Functions.Math;
|
|
|
|
|
|
|
|
|
|
namespace VOL.WebApi.Controllers.Data
|
|
|
|
|
{
|
|
|
|
@ -42,7 +43,8 @@ namespace VOL.WebApi.Controllers.Data
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
_service = new ModbusTcpService("127.0.0.1", 502);
|
|
|
|
|
//_service = new ModbusTcpService("127.0.0.1", 502);
|
|
|
|
|
_service = new ModbusTcpService("192.168.0.99", 502);
|
|
|
|
|
Console.WriteLine("master modbus tcp created...");
|
|
|
|
|
}
|
|
|
|
|
catch (Exception)
|
|
|
|
@ -62,12 +64,18 @@ namespace VOL.WebApi.Controllers.Data
|
|
|
|
|
{
|
|
|
|
|
//Logger.Info("log info test...");
|
|
|
|
|
//Logger.Error("log info error...");
|
|
|
|
|
Data_Device data_Device = new Data_Device();
|
|
|
|
|
bool result = _dataService.saveDeviceData(data_Device, out string message);
|
|
|
|
|
Console.WriteLine(message);
|
|
|
|
|
Data_Produce data_Produce = new Data_Produce();
|
|
|
|
|
bool result2 = _dataService.saveProduceData(data_Produce, out string message1);
|
|
|
|
|
Console.WriteLine(message1);
|
|
|
|
|
//Data_Device data_Device = new Data_Device();
|
|
|
|
|
//bool result = _dataService.saveDeviceData(data_Device, out string message);
|
|
|
|
|
//Console.WriteLine(message);
|
|
|
|
|
//Data_Produce data_Produce = new Data_Produce();
|
|
|
|
|
//bool result2 = _dataService.saveProduceData(data_Produce, out string message1);
|
|
|
|
|
//Console.WriteLine(message1);
|
|
|
|
|
_service = new ModbusTcpService("192.168.0.99", 502);
|
|
|
|
|
_service.writeData(1,0,(short)1);
|
|
|
|
|
_service.writeData(1,0,1);
|
|
|
|
|
_service.writeData(1,0,1F);
|
|
|
|
|
_service.writeData(1,0,"1234");
|
|
|
|
|
|
|
|
|
|
return Content(DateTime.Now.ToString("yyyy-MM-dd HH:mm:sss"));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -139,6 +147,7 @@ namespace VOL.WebApi.Controllers.Data
|
|
|
|
|
[HttpGet, HttpPost, Route("readTest")]
|
|
|
|
|
public IActionResult Test01()
|
|
|
|
|
{
|
|
|
|
|
_service = new ModbusTcpService("192.168.0.99", 502);
|
|
|
|
|
if (_service.isConnected)
|
|
|
|
|
{
|
|
|
|
|
//Console.WriteLine("=========read0x=========");
|
|
|
|
@ -151,20 +160,54 @@ namespace VOL.WebApi.Controllers.Data
|
|
|
|
|
//bool[] data1x = _service.ReadInputs(1, 0, 5);
|
|
|
|
|
//Array.ForEach(data1x, Console.WriteLine);
|
|
|
|
|
//Console.WriteLine("=========read1x=========");
|
|
|
|
|
|
|
|
|
|
// 读取从0开始,文档上地址从1开始的,地址需要减1
|
|
|
|
|
Console.WriteLine("=========read4x=========");
|
|
|
|
|
ushort[] data4xs_int16 = _service.ReadHoldingRegisters(1, 8, 2);
|
|
|
|
|
short val = DataConvertUtil.GetShort(data4xs_int16, 1);
|
|
|
|
|
// int16
|
|
|
|
|
ushort[] src0 = new ushort[1];
|
|
|
|
|
DataConvertUtil.SetShort(src0, 0, 2);
|
|
|
|
|
_service.WriteMultipleRegisters(1, 6429, src0);
|
|
|
|
|
|
|
|
|
|
ushort[] data4xs_int16 = _service.ReadHoldingRegisters(1, 6429, 1); // 运行状态
|
|
|
|
|
short val = DataConvertUtil.GetShort(data4xs_int16, 0);
|
|
|
|
|
Console.WriteLine(val);
|
|
|
|
|
|
|
|
|
|
ushort[] data4xs_int32 = _service.ReadHoldingRegisters(1, 1, 2);
|
|
|
|
|
int vval = DataConvertUtil.GetInt(data4xs_int32, 0);
|
|
|
|
|
Console.WriteLine(vval);
|
|
|
|
|
// 写 float
|
|
|
|
|
ushort[] src1 = new ushort[2];
|
|
|
|
|
DataConvertUtil.SetReal(src1, 0, 3.14F);
|
|
|
|
|
_service.WriteMultipleRegisters(1, 1215, src1);
|
|
|
|
|
|
|
|
|
|
// 读 float
|
|
|
|
|
ushort[] data4xs_float = _service.ReadHoldingRegisters(1, 1215, 2); // 加工数
|
|
|
|
|
float fval = DataConvertUtil.GetReal(data4xs_float, 0);
|
|
|
|
|
Console.WriteLine(fval);
|
|
|
|
|
|
|
|
|
|
//// string
|
|
|
|
|
//ushort[] data_strlen = _service.ReadHoldingRegisters(1, 6689, 1);
|
|
|
|
|
//short strlen = DataConvertUtil.GetShort(data_strlen, 0);
|
|
|
|
|
//Console.WriteLine(strlen);
|
|
|
|
|
|
|
|
|
|
//// 6690程序号不可写, 为双引号 asill码为34
|
|
|
|
|
//ushort[] src2 = new ushort[6];
|
|
|
|
|
//DataConvertUtil.SetString(src1, 0, "123456");
|
|
|
|
|
//_service.WriteMultipleRegisters(1, 6691, src2);
|
|
|
|
|
|
|
|
|
|
//ushort[] data4xs_str = _service.ReadHoldingRegisters(1, 6690, 52); // 程序号
|
|
|
|
|
//string str = DataConvertUtil.GetString(data4xs_str, 0, 52);
|
|
|
|
|
//Console.WriteLine(str);
|
|
|
|
|
|
|
|
|
|
ushort[] data4xs_int64 = _service.ReadHoldingRegisters(1, 4, 4);
|
|
|
|
|
long vvval = DataConvertUtil.GetLong(data4xs_int64, 0);
|
|
|
|
|
Console.WriteLine(vvval);
|
|
|
|
|
Console.WriteLine("=========read4x=========");
|
|
|
|
|
//ushort[] data4xs_float = _service.ReadHoldingRegisters(1, 1200, 2); // 刀具长度补偿编号
|
|
|
|
|
//float fval = DataConvertUtil.GetReal(data4xs_float, 0);
|
|
|
|
|
//Console.WriteLine(fval);
|
|
|
|
|
|
|
|
|
|
//ushort[] data4xs_int32 = _service.ReadHoldingRegisters(1, 1, 2); // 电机温度
|
|
|
|
|
//int vval = DataConvertUtil.GetInt(data4xs_int32, 0);
|
|
|
|
|
//Console.WriteLine(vval);
|
|
|
|
|
|
|
|
|
|
//ushort[] data4xs_int64 = _service.ReadHoldingRegisters(1, 4, 4); // 运行模式
|
|
|
|
|
//long vvval = DataConvertUtil.GetLong(data4xs_int64, 0);
|
|
|
|
|
//Console.WriteLine(vvval);
|
|
|
|
|
//Console.WriteLine("=========read4x=========");
|
|
|
|
|
|
|
|
|
|
//Console.WriteLine("=========read3x=========");
|
|
|
|
|
//ushort[] data3xs = _service.ReadInputRegisters(1, 4, 2);
|
|
|
|
@ -186,5 +229,99 @@ namespace VOL.WebApi.Controllers.Data
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[HttpGet, HttpPost, Route("unitTestSem")]
|
|
|
|
|
public IActionResult Test02()
|
|
|
|
|
{
|
|
|
|
|
Console.Write(5 / 2);
|
|
|
|
|
_service = new ModbusTcpService("192.168.0.99", 502);
|
|
|
|
|
if (_service.isConnected)
|
|
|
|
|
{
|
|
|
|
|
// 读取从0开始,文档上地址从1开始的,地址需要减1
|
|
|
|
|
Console.WriteLine("=========read4x=========");
|
|
|
|
|
|
|
|
|
|
// 写数据
|
|
|
|
|
_service.writeData(1, 6429, 1);
|
|
|
|
|
|
|
|
|
|
_service.writeData(1, 1173, 256);
|
|
|
|
|
|
|
|
|
|
_service.writeData(1, 1215, 6.28F);
|
|
|
|
|
|
|
|
|
|
_service.writeData(1, 6691, "Hello World!!");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 读数据
|
|
|
|
|
short s = _service.readData(1, 6429, "int16");
|
|
|
|
|
|
|
|
|
|
int i = _service.readData(1, 1173, "int32");
|
|
|
|
|
|
|
|
|
|
float f = _service.readData(1, 1215, "single");
|
|
|
|
|
|
|
|
|
|
string str = _service.readData(1, 6690, "string", 52);
|
|
|
|
|
|
|
|
|
|
Console.WriteLine(s);
|
|
|
|
|
Console.WriteLine(i);
|
|
|
|
|
Console.WriteLine(f);
|
|
|
|
|
Console.WriteLine(str);
|
|
|
|
|
|
|
|
|
|
Console.WriteLine("=========read4x=========");
|
|
|
|
|
|
|
|
|
|
_service.disConnent();
|
|
|
|
|
|
|
|
|
|
return Content("read ok");
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
return Content("Modbus 从站连接失败!");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[HttpGet, HttpPost, Route("unitTestCnc")]
|
|
|
|
|
public IActionResult Test03()
|
|
|
|
|
{
|
|
|
|
|
_service = new ModbusTcpService("192.168.0.100", 502);
|
|
|
|
|
if (_service.isConnected)
|
|
|
|
|
{
|
|
|
|
|
// 读取从0开始,文档上地址从1开始的,地址需要减1
|
|
|
|
|
Console.WriteLine("=========read4x=========");
|
|
|
|
|
|
|
|
|
|
// 写数据
|
|
|
|
|
_service.writeData(1, 6424, 2);
|
|
|
|
|
|
|
|
|
|
_service.writeData(1, 1309, 65537);
|
|
|
|
|
|
|
|
|
|
_service.writeData(1, 1307, 5.68F);
|
|
|
|
|
|
|
|
|
|
_service.writeData(1, 6640, "hehe");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 读数据
|
|
|
|
|
short s = _service.readData(1, 6424, "int16");
|
|
|
|
|
|
|
|
|
|
int i = _service.readData(1, 1309, "int32");
|
|
|
|
|
|
|
|
|
|
float f = _service.readData(1, 1307, "single");
|
|
|
|
|
|
|
|
|
|
string str = _service.readData(1, 6640, "string", 2); // 一个寄存器地址存放两个字符
|
|
|
|
|
|
|
|
|
|
Console.WriteLine(s);
|
|
|
|
|
Console.WriteLine(i);
|
|
|
|
|
Console.WriteLine(f);
|
|
|
|
|
Console.WriteLine(str);
|
|
|
|
|
|
|
|
|
|
Console.WriteLine("=========read4x=========");
|
|
|
|
|
|
|
|
|
|
_service.disConnent();
|
|
|
|
|
|
|
|
|
|
return Content("read ok");
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
return Content("Modbus 从站连接失败!");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|