添加测试写plc

master
lch 7 months ago
parent bffb2cbdfc
commit a1e377ddef

Binary file not shown.

@ -1,18 +1,18 @@
{ {
"Version": 1, "Version": 1,
"WorkspaceRootPath": "D:\\Desktop\\MyFrame\\Frame\\hybirdMyFrame\\", "WorkspaceRootPath": "D:\\Desktop\\TestFrame2\\",
"Documents": [ "Documents": [
{ {
"AbsoluteMoniker": "D:0:0:{A6757DAD-EF5A-41FD-9323-F3FCF05ED777}|WinFormStarter\\WinFormStarter.csproj|d:\\desktop\\myframe\\frame\\hybirdmyframe\\winformstarter\\form1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", "AbsoluteMoniker": "D:0:0:{6ACFA707-E72E-4BA1-8262-9F2E5B758D46}|HybirdFrameworkDriver\\HybirdFrameworkDriver.csproj|d:\\desktop\\testframe2\\hybirdframeworkdriver\\modbustcpmaster\\modbustcpmaster.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{A6757DAD-EF5A-41FD-9323-F3FCF05ED777}|WinFormStarter\\WinFormStarter.csproj|solutionrelative:winformstarter\\form1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" "RelativeMoniker": "D:0:0:{6ACFA707-E72E-4BA1-8262-9F2E5B758D46}|HybirdFrameworkDriver\\HybirdFrameworkDriver.csproj|solutionrelative:hybirdframeworkdriver\\modbustcpmaster\\modbustcpmaster.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
}, },
{ {
"AbsoluteMoniker": "D:0:0:{A6757DAD-EF5A-41FD-9323-F3FCF05ED777}|WinFormStarter\\WinFormStarter.csproj|d:\\desktop\\myframe\\frame\\hybirdmyframe\\winformstarter\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", "AbsoluteMoniker": "D:0:0:{8EAFC092-1C8A-4CF7-B283-FFCB02D58ED8}|ConsoleStarter\\ConsoleStarter.csproj|d:\\desktop\\testframe2\\consolestarter\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{A6757DAD-EF5A-41FD-9323-F3FCF05ED777}|WinFormStarter\\WinFormStarter.csproj|solutionrelative:winformstarter\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" "RelativeMoniker": "D:0:0:{8EAFC092-1C8A-4CF7-B283-FFCB02D58ED8}|ConsoleStarter\\ConsoleStarter.csproj|solutionrelative:consolestarter\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
}, },
{ {
"AbsoluteMoniker": "D:0:0:{A6757DAD-EF5A-41FD-9323-F3FCF05ED777}|WinFormStarter\\WinFormStarter.csproj|d:\\desktop\\myframe\\frame\\hybirdmyframe\\winformstarter\\form1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form", "AbsoluteMoniker": "D:0:0:{6ACFA707-E72E-4BA1-8262-9F2E5B758D46}|HybirdFrameworkDriver\\HybirdFrameworkDriver.csproj|d:\\desktop\\testframe2\\hybirdframeworkdriver\\modbustcpmaster\\watercooldata.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{A6757DAD-EF5A-41FD-9323-F3FCF05ED777}|WinFormStarter\\WinFormStarter.csproj|solutionrelative:winformstarter\\form1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form" "RelativeMoniker": "D:0:0:{6ACFA707-E72E-4BA1-8262-9F2E5B758D46}|HybirdFrameworkDriver\\HybirdFrameworkDriver.csproj|solutionrelative:hybirdframeworkdriver\\modbustcpmaster\\watercooldata.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
} }
], ],
"DocumentGroupContainers": [ "DocumentGroupContainers": [
@ -22,56 +22,61 @@
"DocumentGroups": [ "DocumentGroups": [
{ {
"DockedHeight": 200, "DockedHeight": 200,
"SelectedChildIndex": 3, "SelectedChildIndex": 1,
"Children": [ "Children": [
{
"$type": "Bookmark",
"Name": "ST:0:0:{1c4feeaa-4718-4aa9-859d-94ce25d182ba}"
},
{
"$type": "Bookmark",
"Name": "ST:129:0:{116d2292-e37d-41cd-a077-ebacac4c8cc4}"
},
{
"$type": "Bookmark",
"Name": "ST:128:0:{116d2292-e37d-41cd-a077-ebacac4c8cc4}"
},
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 0, "DocumentIndex": 1,
"Title": "Form1.cs", "Title": "Program.cs",
"DocumentMoniker": "D:\\Desktop\\MyFrame\\Frame\\hybirdMyFrame\\WinFormStarter\\Form1.cs", "DocumentMoniker": "D:\\Desktop\\TestFrame2\\ConsoleStarter\\Program.cs",
"RelativeDocumentMoniker": "WinFormStarter\\Form1.cs", "RelativeDocumentMoniker": "ConsoleStarter\\Program.cs",
"ToolTip": "D:\\Desktop\\MyFrame\\Frame\\hybirdMyFrame\\WinFormStarter\\Form1.cs", "ToolTip": "D:\\Desktop\\TestFrame2\\ConsoleStarter\\Program.cs",
"RelativeToolTip": "WinFormStarter\\Form1.cs", "RelativeToolTip": "ConsoleStarter\\Program.cs",
"ViewState": "AQIAAAAAAAAAAAAAAAAAAAgAAAA8AAAA", "ViewState": "AQIAAA4AAAAAAAAAAAAqwBgAAAAbAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-04-02T05:25:54.384Z", "WhenOpened": "2024-04-22T08:22:49.429Z",
"IsPinned": true,
"EditorCaption": "" "EditorCaption": ""
}, },
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 1, "DocumentIndex": 0,
"Title": "Program.cs", "Title": "ModbusTcpMaster.cs",
"DocumentMoniker": "D:\\Desktop\\MyFrame\\Frame\\hybirdMyFrame\\WinFormStarter\\Program.cs", "DocumentMoniker": "D:\\Desktop\\TestFrame2\\HybirdFrameworkDriver\\ModbusTcpMaster\\ModbusTcpMaster.cs",
"RelativeDocumentMoniker": "WinFormStarter\\Program.cs", "RelativeDocumentMoniker": "HybirdFrameworkDriver\\ModbusTcpMaster\\ModbusTcpMaster.cs",
"ToolTip": "D:\\Desktop\\MyFrame\\Frame\\hybirdMyFrame\\WinFormStarter\\Program.cs", "ToolTip": "D:\\Desktop\\TestFrame2\\HybirdFrameworkDriver\\ModbusTcpMaster\\ModbusTcpMaster.cs",
"RelativeToolTip": "WinFormStarter\\Program.cs", "RelativeToolTip": "HybirdFrameworkDriver\\ModbusTcpMaster\\ModbusTcpMaster.cs",
"ViewState": "AQIAAB4AAAAAAAAAAAAhwDAAAAA8AAAA", "ViewState": "AQIAAH8AAAAAAAAAAAApwIoAAABVAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-04-02T05:24:49.188Z" "WhenOpened": "2024-04-22T08:22:52.863Z",
"IsPinned": true,
"EditorCaption": ""
}, },
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 2, "DocumentIndex": 2,
"Title": "Form1.cs [\u8BBE\u8BA1]", "Title": "WaterCoolData.cs",
"DocumentMoniker": "D:\\Desktop\\MyFrame\\Frame\\hybirdMyFrame\\WinFormStarter\\Form1.cs", "DocumentMoniker": "D:\\Desktop\\TestFrame2\\HybirdFrameworkDriver\\ModbusTcpMaster\\WaterCoolData.cs",
"RelativeDocumentMoniker": "WinFormStarter\\Form1.cs", "RelativeDocumentMoniker": "HybirdFrameworkDriver\\ModbusTcpMaster\\WaterCoolData.cs",
"ToolTip": "D:\\Desktop\\MyFrame\\Frame\\hybirdMyFrame\\WinFormStarter\\Form1.cs [\u8BBE\u8BA1]", "ToolTip": "D:\\Desktop\\TestFrame2\\HybirdFrameworkDriver\\ModbusTcpMaster\\WaterCoolData.cs",
"RelativeToolTip": "WinFormStarter\\Form1.cs [\u8BBE\u8BA1]", "RelativeToolTip": "HybirdFrameworkDriver\\ModbusTcpMaster\\WaterCoolData.cs",
"ViewState": "AQIAABYAAAAAAAAAAIA6wB8AAAAsAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-04-02T05:25:07.994Z", "WhenOpened": "2024-04-22T08:31:49.675Z",
"EditorCaption": " [\u8BBE\u8BA1]" "IsPinned": true,
"EditorCaption": ""
},
{
"$type": "Bookmark",
"Name": "ST:0:0:{1c4feeaa-4718-4aa9-859d-94ce25d182ba}"
},
{
"$type": "Bookmark",
"Name": "ST:129:0:{116d2292-e37d-41cd-a077-ebacac4c8cc4}"
},
{
"$type": "Bookmark",
"Name": "ST:128:0:{116d2292-e37d-41cd-a077-ebacac4c8cc4}"
} }
] ]
} }

@ -11,18 +11,29 @@ internal class Program
{ {
ModbusTcpMaster master = new ModbusTcpMaster() ModbusTcpMaster master = new ModbusTcpMaster()
{ {
Ip = "", Ip = "192.168.1.5",
ReadAction = ReadFunc ReadAction = ReadFunc
}; };
bool connected = master.Connect(); bool connected = master.Connect();
Debug.Assert(connected, "连接modbus server 失败"); Debug.Assert(connected, "连接modbus server 失败");
#region 测试写
WaterCoolData coolData = new WaterCoolData(); WaterCoolData coolData = new WaterCoolData();
//写入ushort
coolData.ushortType.Value = 17;
bool writeResult4 = master.WriteValue(coolData.ushortType);
Debug.Assert(writeResult4, "写入失败");
//写入byte 0-8 byte[1]
coolData.Status.Value = 12;
bool writeResult1 = master.WriteValue(coolData.Status);
Debug.Assert(writeResult1, "写入失败");
//写入bit
coolData.DraughtFan2.Value = true; coolData.DraughtFan2.Value = true;
bool writeResult = master.WriteValue(coolData.DraughtFan2); bool writeResult3 = master.WriteValue(coolData.DraughtFan2);
Debug.Assert(writeResult, "写入失败"); Debug.Assert(writeResult3, "写入失败");
#endregion 测试写
} }
private static void ReadFunc(ModbusTcpMaster master) private static void ReadFunc(ModbusTcpMaster master)

@ -10,8 +10,8 @@ public class ModbusTcpMaster
{ {
private static readonly ILog Log = LogManager.GetLogger(typeof(ModbusTcpMaster)); private static readonly ILog Log = LogManager.GetLogger(typeof(ModbusTcpMaster));
public string Ip { get; set; } = "127.0.0.1"; // public string Ip { get; set; } = "127.0.0.1";
public string Ip { get; set; } = "192.168.1.5";
public int Port { get; set; } = 502; public int Port { get; set; } = 502;
public int Duration { get; set; } = 1000; public int Duration { get; set; } = 1000;
@ -81,18 +81,19 @@ public class ModbusTcpMaster
private void ReadFunc() private void ReadFunc()
{ {
while (!StopFlag) // ReadAction(this);
{ //while (!StopFlag)
try //{
{ // try
ReadAction(this); // {
Thread.Sleep(Duration); // ReadAction(this);
} // Thread.Sleep(Duration);
catch (Exception e) // }
{ // catch (Exception e)
Log.Error(e); // {
} // Log.Error(e);
} // }
//}
GetLog().Info("stop listen"); GetLog().Info("stop listen");
} }
@ -141,17 +142,16 @@ public class ModbusTcpMaster
case ModbusDataType.Byte: case ModbusDataType.Byte:
start = start % 2 == 0 ? start / 2 : start / 2 + 1; start = start % 2 == 0 ? start / 2 : start / 2 + 1;
ModbusTcpNet.Write("x=6;" + start, setValue); OperateResult operateResult1 = ModbusTcpNet.Write("x=6;" + start, setValue);
break; break;
case ModbusDataType.Register: case ModbusDataType.Register:
ModbusTcpNet.Write("x=10;" + start, setValue); OperateResult operateResult2 = ModbusTcpNet.Write("x=16;" + start, setValue);
break; break;
case ModbusDataType.Bit: case ModbusDataType.Bit:
start = start % 16 == 0 ? start / 16 : start / 16 + 1; start = start % 16 == 0 ? start / 16 : start / 16 + 1;
length = length % 8 == 0 ? length / 8 : length / 8 + 1; length = length % 8 == 0 ? length / 8 : length / 8 + 1;
OperateResult<byte[]> readResult = OperateResult<byte[]> readResult = ModbusTcpNet.Read("x=3;" + (property.RegisterNo + start), (ushort)length);
ModbusTcpNet.Read("x=3;" + (property.RegisterNo + start), (ushort)length);
if (readResult.IsSuccess) if (readResult.IsSuccess)
{ {

@ -28,6 +28,8 @@ public class WaterCoolData
public ModbusProperty<float> CompressorTemperature2 { get; set; } = new(40012, scale: 0.1, round: 1); public ModbusProperty<float> CompressorTemperature2 { get; set; } = new(40012, scale: 0.1, round: 1);
public ModbusProperty<float> CompressorTemperature3 { get; set; } = new(40013, scale: 0.1, round: 1); public ModbusProperty<float> CompressorTemperature3 { get; set; } = new(40013, scale: 0.1, round: 1);
public ModbusProperty<float> CompressorTemperature4 { get; set; } = new(40014, scale: 0.1, round: 1); public ModbusProperty<float> CompressorTemperature4 { get; set; } = new(40014, scale: 0.1, round: 1);
public ModbusProperty<ushort> ushortType { get; set; } = new(40015);
public ModbusProperty<byte> ElectromagneticStatus1 { get; set; } = new(40023, scale: 0.1, round: 1); public ModbusProperty<byte> ElectromagneticStatus1 { get; set; } = new(40023, scale: 0.1, round: 1);
public ModbusProperty<byte> ElectromagneticStatus2 { get; set; } = new(40024, scale: 0.1, round: 1); public ModbusProperty<byte> ElectromagneticStatus2 { get; set; } = new(40024, scale: 0.1, round: 1);

Loading…
Cancel
Save