修改PLC,判断是否掉线

liuwf
liulb@mesnac.com 1 year ago
parent 31bd7c5737
commit 0b66f97430

Binary file not shown.

@ -840,6 +840,9 @@
},
"D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Service\\Admin.Core.Service.csproj": {
"projectPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Service\\Admin.Core.Service.csproj"
},
"D:\\Project\\gitea\\AUCMA\\SCADA\\Aucma.Core.MelsecPLc\\Aucma.Core.MelsecPLc.csproj": {
"projectPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Aucma.Core.MelsecPLc\\Aucma.Core.MelsecPLc.csproj"
}
}
}

@ -4070,6 +4070,7 @@
"Admin.Core.Common": "1.0.0",
"Admin.Core.Model": "1.0.0",
"Admin.Core.Service": "1.0.0",
"Aucma.Core.MelsecPLc": "1.0.0",
"Quartz": "3.3.3"
},
"compile": {

@ -1,6 +1,6 @@
{
"version": 2,
"dgSpecHash": "kguWVd+Rt9XCmLGjsnIAJvhdCtx7S0IM6fsfpPYk13tAS4xNtxRToY0BUWAg3XfGKtZldwcJdlbt/ecnaDR5Ow==",
"dgSpecHash": "FqkL9Utn3kOvbItGoDJ7C9CWMH4up3Gv0zo1Dj7t76a+ODAQBFernJM1EdcyPeQ2F9qZ/7WyOPKo/o8kYCqJ4g==",
"success": true,
"projectFilePath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Api\\Admin.Core.Api.csproj",
"expectedPackageFiles": [

@ -2292,6 +2292,7 @@
"Admin.Core.Common": "1.0.0",
"Admin.Core.Model": "1.0.0",
"Admin.Core.Service": "1.0.0",
"Aucma.Core.MelsecPLc": "1.0.0",
"Quartz": "3.3.3"
},
"runtime": {

@ -762,6 +762,9 @@
},
"D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Service\\Admin.Core.Service.csproj": {
"projectPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Service\\Admin.Core.Service.csproj"
},
"D:\\Project\\gitea\\AUCMA\\SCADA\\Aucma.Core.MelsecPLc\\Aucma.Core.MelsecPLc.csproj": {
"projectPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Aucma.Core.MelsecPLc\\Aucma.Core.MelsecPLc.csproj"
}
}
}

@ -3973,6 +3973,7 @@
"Admin.Core.Common": "1.0.0",
"Admin.Core.Model": "1.0.0",
"Admin.Core.Service": "1.0.0",
"Aucma.Core.MelsecPLc": "1.0.0",
"Quartz": "3.3.3"
},
"compile": {

@ -1,6 +1,6 @@
{
"version": 2,
"dgSpecHash": "32HX9OehfURuSDm9ZMCPvghxCqC7OsS+LqIae6prtI8hbJQEUw5HlZL6XoLN0R5s0yjj9Sue5UPZSWzgkJWHHQ==",
"dgSpecHash": "I1ZcT/dtFuJgk0KHYm8p8u6J59bzsvvNwkRykbWFI8Va1NiJQraZ6LBCImVaFhG9ZCk4xmit3fQxFCPq7Db1pw==",
"success": true,
"projectFilePath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Extensions\\Admin.Core.Extensions.csproj",
"expectedPackageFiles": [

@ -62,7 +62,7 @@ namespace Admin.Core.RealTimeService
//注册业务服务
AddServices(services);
//任务调度
//services.AddJobSetup();
services.AddJobSetup();
//扫码器
//services.AddScannerSetup();
//三菱PLC
@ -87,13 +87,13 @@ namespace Admin.Core.RealTimeService
/// </summary>
/// <param name="app"></param>
/// <param name="env"></param>
public void Configure(IApplicationBuilder app,
IMelsecService melsecService)//IScannerService scannerService,
public void Configure(IApplicationBuilder app,ISysTasksQzService tasksQzService,
ISchedulerCenter schedulerCenter,IMelsecService melsecService)//IScannerService scannerService,
{
// 使用静态文件
app.UseStaticFiles();
// 开启QuartzNetJob调度服务
// app.UseQuartzJobMildd(tasksQzService, schedulerCenter);
app.UseQuartzJobMildd(tasksQzService, schedulerCenter);
//开启扫码服务
//app.UseScannerMildd(scannerService);
//三菱PLC
@ -109,7 +109,7 @@ namespace Admin.Core.RealTimeService
{
#region 注册服务
services.AddScoped<IMelsecPlc, MelsecPlc>();
//services.AddScoped<IMelsecPlc, MelsecPlc>();
//services.AddScoped<IProductOrderInfoServices, ProductOrderInfoServices>();
//services.AddScoped<IProductOrderInfoRepository, ProductOrderInfoRepository>();
//services.AddScoped<IBaseRepository<EEquipmentCategory>, BaseRepository<EEquipmentCategory>>();

@ -2471,6 +2471,7 @@
"Admin.Core.Common": "1.0.0",
"Admin.Core.Model": "1.0.0",
"Admin.Core.Service": "1.0.0",
"Aucma.Core.MelsecPLc": "1.0.0",
"Quartz": "3.3.3"
},
"runtime": {

@ -846,6 +846,9 @@
},
"D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Service\\Admin.Core.Service.csproj": {
"projectPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Service\\Admin.Core.Service.csproj"
},
"D:\\Project\\gitea\\AUCMA\\SCADA\\Aucma.Core.MelsecPLc\\Aucma.Core.MelsecPLc.csproj": {
"projectPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Aucma.Core.MelsecPLc\\Aucma.Core.MelsecPLc.csproj"
}
}
}

@ -4139,6 +4139,7 @@
"Admin.Core.Common": "1.0.0",
"Admin.Core.Model": "1.0.0",
"Admin.Core.Service": "1.0.0",
"Aucma.Core.MelsecPLc": "1.0.0",
"Quartz": "3.3.3"
},
"compile": {

@ -1,6 +1,6 @@
{
"version": 2,
"dgSpecHash": "27mv8FEx047S6wUyBTe9KOkWIes4Yzoa8Dir/ihnBgHmJJIvKf3ZJQjVNdeqBpcQcQxoGSQJheloHZNQAqwWmA==",
"dgSpecHash": "TVWuEwUzAABaVMfq4P4qK/43dCcGmClzIolR5buorgo16O3Sgw5WZnttdcm/I3kBRD03VQ6TuELvTo9JU3boAw==",
"success": true,
"projectFilePath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.RealTimeService\\Admin.Core.RealTimeService.csproj",
"expectedPackageFiles": [

@ -12,6 +12,7 @@
<ProjectReference Include="..\Admin.Core.Common\Admin.Core.Common.csproj" />
<ProjectReference Include="..\Admin.Core.Model\Admin.Core.Model.csproj" />
<ProjectReference Include="..\Admin.Core.Service\Admin.Core.Service.csproj" />
<ProjectReference Include="..\Aucma.Core.MelsecPLc\Aucma.Core.MelsecPLc.csproj" />
</ItemGroup>
</Project>

@ -2,6 +2,7 @@
using Admin.Core.IService;
using Admin.Core.IService.ISys;
using Admin.Core.Service;
using Aucma.Core.MelsecPLc;
using Quartz;
using System;
using System.Threading.Tasks;
@ -18,10 +19,11 @@ namespace Admin.Core.Tasks
public static event LogDelegate LogDelegateEvent;
#endregion
//string address = Appsettings.app("Siemens", "ConString").ToString();
public static IProductPlanInfoServices _productPlanInfoServices;
public static IProductPlanInfoServices _productPlanInfoServices;
public static IPrintOrderInfoServices _printOrderInfoServices;
public Job_Admin_Quartz(ISysTasksQzService SysTasksQzService, ISysJobLogService sysJobLogService, IProductPlanInfoServices productPlanInfoServices, IPrintOrderInfoServices printOrderInfoServices)
public Job_Admin_Quartz(ISysTasksQzService SysTasksQzService, ISysJobLogService sysJobLogService,
IProductPlanInfoServices productPlanInfoServices,
IPrintOrderInfoServices printOrderInfoServices)
{
_SysTasksQzService = SysTasksQzService;
_sysJobLogService = sysJobLogService;
@ -34,7 +36,8 @@ namespace Admin.Core.Tasks
}
public async Task Run(IJobExecutionContext context)
{
LogDelegateEvent?.Invoke("SC-农夫山泉SC 85764521323 完成");
Console.WriteLine($"读取数据:{MelsecPlc.ReadBool("M100")}");
//LogDelegateEvent?.Invoke("SC-农夫山泉SC 85764521323 完成");
//Console.WriteLine("定时任务");
//var list = await _productPlanInfoServices.QueryAsync(d => d.productLineCode == "1001");
//foreach (var item in list)

@ -11,6 +11,7 @@
"Admin.Core.Common": "1.0.0",
"Admin.Core.Model": "1.0.0",
"Admin.Core.Service": "1.0.0",
"Aucma.Core.MelsecPLc": "1.0.0",
"Quartz": "3.3.3"
},
"runtime": {
@ -2238,6 +2239,19 @@
"runtime": {
"Admin.Core.Service.dll": {}
}
},
"Aucma.Core.MelsecPLc/1.0.0": {
"runtime": {
"Aucma.Core.MelsecPLc.dll": {}
}
},
"HslCommunication/11.0.6.0": {
"runtime": {
"HslCommunication.dll": {
"assemblyVersion": "11.0.6.0",
"fileVersion": "11.0.6.0"
}
}
}
}
},
@ -3732,6 +3746,16 @@
"type": "project",
"serviceable": false,
"sha512": ""
},
"Aucma.Core.MelsecPLc/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"HslCommunication/11.0.6.0": {
"type": "reference",
"serviceable": false,
"sha512": ""
}
}
}

@ -551,6 +551,9 @@
},
"D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Service\\Admin.Core.Service.csproj": {
"projectPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Service\\Admin.Core.Service.csproj"
},
"D:\\Project\\gitea\\AUCMA\\SCADA\\Aucma.Core.MelsecPLc\\Aucma.Core.MelsecPLc.csproj": {
"projectPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Aucma.Core.MelsecPLc\\Aucma.Core.MelsecPLc.csproj"
}
}
}
@ -589,6 +592,61 @@
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\7.0.402\\RuntimeIdentifierGraph.json"
}
}
},
"D:\\Project\\gitea\\AUCMA\\SCADA\\Aucma.Core.MelsecPLc\\Aucma.Core.MelsecPLc.csproj": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "D:\\Project\\gitea\\AUCMA\\SCADA\\Aucma.Core.MelsecPLc\\Aucma.Core.MelsecPLc.csproj",
"projectName": "Aucma.Core.MelsecPLc",
"projectPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Aucma.Core.MelsecPLc\\Aucma.Core.MelsecPLc.csproj",
"packagesPath": "C:\\Users\\admin\\.nuget\\packages\\",
"outputPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Aucma.Core.MelsecPLc\\obj\\",
"projectStyle": "PackageReference",
"configFilePaths": [
"C:\\Users\\admin\\AppData\\Roaming\\NuGet\\NuGet.Config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
],
"originalTargetFrameworks": [
"netstandard2.1"
],
"sources": {
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"netstandard2.1": {
"targetAlias": "netstandard2.1",
"projectReferences": {}
}
},
"warningProperties": {
"warnAsError": [
"NU1605"
]
}
},
"frameworks": {
"netstandard2.1": {
"targetAlias": "netstandard2.1",
"imports": [
"net461",
"net462",
"net47",
"net471",
"net472",
"net48",
"net481"
],
"assetTargetFallback": true,
"warn": true,
"frameworkReferences": {
"NETStandard.Library": {
"privateAssets": "all"
}
},
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\7.0.402\\RuntimeIdentifierGraph.json"
}
}
}
}
}

@ -1 +1 @@
34a5da429f209d52addcd1912f08a0cdcac8e48c
6cace8e81875cb8d10c478d8588ae4bec24ce345

@ -284,3 +284,6 @@ D:\gitea\AUCMA\AUCMA_SCADA\Admin.Core.Tasks\obj\Debug\net6.0\Admin.Core.Tasks.dl
D:\gitea\AUCMA\AUCMA_SCADA\Admin.Core.Tasks\obj\Debug\net6.0\refint\Admin.Core.Tasks.dll
D:\gitea\AUCMA\AUCMA_SCADA\Admin.Core.Tasks\obj\Debug\net6.0\Admin.Core.Tasks.pdb
D:\gitea\AUCMA\AUCMA_SCADA\Admin.Core.Tasks\obj\Debug\net6.0\ref\Admin.Core.Tasks.dll
D:\Project\gitea\AUCMA\SCADA\Admin.Core.Tasks\bin\Debug\net6.0\Aucma.Core.MelsecPLc.dll
D:\Project\gitea\AUCMA\SCADA\Admin.Core.Tasks\bin\Debug\net6.0\HslCommunication.dll
D:\Project\gitea\AUCMA\SCADA\Admin.Core.Tasks\bin\Debug\net6.0\Aucma.Core.MelsecPLc.pdb

@ -3879,6 +3879,16 @@
"runtime": {
"bin/placeholder/Admin.Core.Service.dll": {}
}
},
"Aucma.Core.MelsecPLc/1.0.0": {
"type": "project",
"framework": ".NETStandard,Version=v2.1",
"compile": {
"bin/placeholder/Aucma.Core.MelsecPLc.dll": {}
},
"runtime": {
"bin/placeholder/Aucma.Core.MelsecPLc.dll": {}
}
}
}
},
@ -10510,6 +10520,11 @@
"type": "project",
"path": "../Admin.Core.Service/Admin.Core.Service.csproj",
"msbuildProject": "../Admin.Core.Service/Admin.Core.Service.csproj"
},
"Aucma.Core.MelsecPLc/1.0.0": {
"type": "project",
"path": "../Aucma.Core.MelsecPLc/Aucma.Core.MelsecPLc.csproj",
"msbuildProject": "../Aucma.Core.MelsecPLc/Aucma.Core.MelsecPLc.csproj"
}
},
"projectFileDependencyGroups": {
@ -10517,6 +10532,7 @@
"Admin.Core.Common >= 1.0.0",
"Admin.Core.Model >= 1.0.0",
"Admin.Core.Service >= 1.0.0",
"Aucma.Core.MelsecPLc >= 1.0.0",
"Quartz >= 3.3.3"
]
},
@ -10555,6 +10571,9 @@
},
"D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Service\\Admin.Core.Service.csproj": {
"projectPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Service\\Admin.Core.Service.csproj"
},
"D:\\Project\\gitea\\AUCMA\\SCADA\\Aucma.Core.MelsecPLc\\Aucma.Core.MelsecPLc.csproj": {
"projectPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Aucma.Core.MelsecPLc\\Aucma.Core.MelsecPLc.csproj"
}
}
}

@ -1,6 +1,6 @@
{
"version": 2,
"dgSpecHash": "2aggNUriuEy3n/GmEk+jGC2ZlQCfa1ALOFRKJ0Oxafxddo9hnPZ55RCaIl3b+T5a9/mY9OVZ6bfecGxNzmfSuA==",
"dgSpecHash": "F9RcVpY/XhLJWBtPjnMf8s2hz7KynWDa0i3KrkcXd41ZM4Mc+qAN9EsVYF0JQLg7kuN7kXQaAzkZA6wUWGiSzw==",
"success": true,
"projectFilePath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Tasks\\Admin.Core.Tasks.csproj",
"expectedPackageFiles": [

@ -762,6 +762,9 @@
},
"D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Service\\Admin.Core.Service.csproj": {
"projectPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Service\\Admin.Core.Service.csproj"
},
"D:\\Project\\gitea\\AUCMA\\SCADA\\Aucma.Core.MelsecPLc\\Aucma.Core.MelsecPLc.csproj": {
"projectPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Aucma.Core.MelsecPLc\\Aucma.Core.MelsecPLc.csproj"
}
}
}

@ -4123,6 +4123,7 @@
"Admin.Core.Common": "1.0.0",
"Admin.Core.Model": "1.0.0",
"Admin.Core.Service": "1.0.0",
"Aucma.Core.MelsecPLc": "1.0.0",
"Quartz": "3.3.3"
},
"compile": {

@ -1,6 +1,6 @@
{
"version": 2,
"dgSpecHash": "ShpFgH/BpIu7lquHbQ1flHlWinvR57SB1tzPlO7jQiAl146ATo39/dYOoQREqBloGsJqdEbfwMx+S3nhwlRcCw==",
"dgSpecHash": "96rCF3k67RSk0jRx6fkdBKu+5g7sEtRsrxQa07GC2DbU2kp3h43c5OjyUfej2yPHHmExTs012W0akW066k9DtA==",
"success": true,
"projectFilePath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Aucma.Core.BoxFoam\\Aucma.Core.BoxFoam.csproj",
"expectedPackageFiles": [

@ -762,6 +762,9 @@
},
"D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Service\\Admin.Core.Service.csproj": {
"projectPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Service\\Admin.Core.Service.csproj"
},
"D:\\Project\\gitea\\AUCMA\\SCADA\\Aucma.Core.MelsecPLc\\Aucma.Core.MelsecPLc.csproj": {
"projectPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Aucma.Core.MelsecPLc\\Aucma.Core.MelsecPLc.csproj"
}
}
}

@ -4147,6 +4147,7 @@
"Admin.Core.Common": "1.0.0",
"Admin.Core.Model": "1.0.0",
"Admin.Core.Service": "1.0.0",
"Aucma.Core.MelsecPLc": "1.0.0",
"Quartz": "3.3.3"
},
"compile": {

@ -1,6 +1,6 @@
{
"version": 2,
"dgSpecHash": "G6j4wO73quyy07EuwfgwX/17+o0llR/3bpHj6cBcsH2BOQCP6M8F38NL9Ag7nuFFJrWGKJrKuTobJMpbY1TC5A==",
"dgSpecHash": "XHP545YL/jNVRI7Es0Nefg/3baAJpcXZHV4Nvo3q7ZNZSfQ/S9pYsx6tz+1XAYkBNSq9HZWdD32z9ygxc2RsDQ==",
"success": true,
"projectFilePath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Aucma.Core.DoorFoam\\Aucma.Core.DoorFoam.csproj",
"expectedPackageFiles": [

@ -10,13 +10,24 @@ namespace Aucma.Core.Melsec
/// </summary>
public class MelsecService : IMelsecService
{
private IMelsecPlc _melsecPlc;
System.Timers.Timer timer = new System.Timers.Timer(1000);//创建定时器设置间隔时间为1000毫秒
public MelsecService(IMelsecPlc melsecPlc)
System.Timers.Timer timer = new System.Timers.Timer(5000);//创建定时器设置间隔时间为1000毫秒
#region 构造函数
public MelsecService()
{
_melsecPlc = melsecPlc;
var r = MelsecPlc.Registed();
if (r)
{
string address = Appsettings.app("Middleware", "Melsec", "ConString").ToString();
int port = Appsettings.app("Middleware", "Melsec", "Port").ObjToInt();
MelsecPlc.Connect(address, port);
}
}
public Task StartMelsecAsync()
#endregion
#region 心跳
public Task StartMelsecAsync()
{
timer.Elapsed += new System.Timers.ElapsedEventHandler(ExecTask); //到达时间的时候执行事件;
timer.AutoReset = true;//设置是执行一次false还是一直执行(true)
@ -24,28 +35,32 @@ namespace Aucma.Core.Melsec
timer.Start();//timer.Start()的内部原理还是设置timer.Enabled = true;
return Task.CompletedTask;
}
#endregion
private void ExecTask(object? sender, ElapsedEventArgs e)
#region 心跳检测
private async void ExecTask(object? sender, ElapsedEventArgs e)
{
if (_melsecPlc.Read("M100"))
if (await MelsecPlc.Read("M100"))
{
Console.WriteLine(_melsecPlc.ReadBool("M100"));
Console.WriteLine("PLC连接成功");
MelsecPlc.IsConnected = true;
//Console.WriteLine(_melsecPlc.ReadBool("M100"));
//Console.WriteLine("PLC连接成功");
}
else
{
if (!_melsecPlc.IsConnected)
if (!MelsecPlc.IsConnected)
{
Console.WriteLine("PLC连接失败");
System.GC.Collect();
if (_melsecPlc.DisConnect())
if (MelsecPlc.DisConnect())
{
string address = Appsettings.app("Middleware","Melsec", "ConString").ToString();
string address = Appsettings.app("Middleware", "Melsec", "ConString").ToString();
int port = Appsettings.app("Middleware", "Melsec", "Port").ObjToInt();
_melsecPlc.Connect(address, port);
MelsecPlc.Connect(address, port);
}
}
}
}
}
#endregion
}
}

@ -2,27 +2,43 @@
using HslCommunication.Profinet.Melsec;
using System;
using System.Text;
using System.Threading.Tasks;
namespace Aucma.Core.MelsecPLc
{
/// <summary>
/// 三菱PLC
/// </summary>
public class MelsecPlc : IMelsecPlc
public class MelsecPlc //: IMelsecPlc
{
private MelsecMcNet? melsecMc = null;
private static MelsecMcNet? melsecMc = null;
#region 构造函数
public MelsecPlc()
//public MelsecPlc()
//{
// if (!HslCommunication.Authorization.SetAuthorizationCode("ed1415f8-e06a-43ad-95f7-c04f7ae93b41"))
// {
// //log.Info("HslCommunication激活失败");
// return;
// }
// Console.WriteLine("HslCommunication激活成功!");
// melsecMc = new MelsecMcNet();
// melsecMc.ConnectTimeOut = 2000;
//}
#endregion
#region 注册
public static bool Registed()
{
if (!HslCommunication.Authorization.SetAuthorizationCode("ed1415f8-e06a-43ad-95f7-c04f7ae93b41"))
{
//log.Info("HslCommunication激活失败");
return;
return false;
}
Console.WriteLine("HslCommunication激活成功!");
melsecMc = new MelsecMcNet();
melsecMc.ConnectTimeOut = 2000;
return true;
}
#endregion
@ -30,7 +46,7 @@ namespace Aucma.Core.MelsecPLc
/// <summary>
/// 是否连接
/// </summary>
public bool IsConnected { get; set; }
public static bool IsConnected { get; set; }
#endregion
@ -41,7 +57,7 @@ namespace Aucma.Core.MelsecPLc
/// <param name="IP"></param>
/// <param name="port"></param>
/// <returns></returns>
public bool Connect(string iP, int port)
public static bool Connect(string iP, int port)
{
//melsecMc.IpAddress = iP;//正式环境开启
melsecMc.Port = port;
@ -53,20 +69,19 @@ namespace Aucma.Core.MelsecPLc
OperateResult connect = melsecMc.ConnectServer();
if (connect.IsSuccess)
{
this.IsConnected = true;
IsConnected = true;
return true;
}
else
{
melsecMc.ConnectClose();
this.IsConnected = false;
IsConnected = false;
return false;
}
}
catch (Exception ex)
{
this.IsConnected = false;
//"三菱PLC建立连接异常
IsConnected = false;
return false;
}
}
@ -78,10 +93,10 @@ namespace Aucma.Core.MelsecPLc
/// 断开连接
/// </summary>
/// <returns></returns>
public bool DisConnect()
public static bool DisConnect()
{
return melsecMc.ConnectClose().IsSuccess;
}
}
#endregion
#region 读取byte数据
@ -90,7 +105,7 @@ namespace Aucma.Core.MelsecPLc
/// </summary>
/// <param name="address"></param>
/// <returns></returns>
public byte[] ReadBytes(string address)
public static byte[] ReadBytes(string address)
{
byte[] bytes = null;
try
@ -118,7 +133,7 @@ namespace Aucma.Core.MelsecPLc
/// </summary>
/// <param name="address"></param>
/// <returns></returns>
public bool ReadBool(string address)
public static bool ReadBool(string address)
{
bool iflag = false;
try
@ -144,7 +159,7 @@ namespace Aucma.Core.MelsecPLc
/// </summary>
/// <param name="address"></param>
/// <returns></returns>
public int ReadInt16(string address)
public static int ReadInt16(string address)
{
int returnflag = 0;
try
@ -169,7 +184,7 @@ namespace Aucma.Core.MelsecPLc
/// </summary>
/// <param name="address"></param>
/// <returns></returns>
public int ReadInt32(string address)
public static int ReadInt32(string address)
{
int returnflag = 0;
try
@ -195,7 +210,7 @@ namespace Aucma.Core.MelsecPLc
/// </summary>
/// <param name="address"></param>
/// <returns></returns>
public string ReadString(string address)
public static string ReadString(string address)
{
string returnflag = "";
try
@ -221,7 +236,7 @@ namespace Aucma.Core.MelsecPLc
/// </summary>
/// <param name="address"></param>
/// <returns></returns>
public float ReadFloat(string address)
public static float ReadFloat(string address)
{
float flag = 0;
try
@ -248,7 +263,7 @@ namespace Aucma.Core.MelsecPLc
/// <param name="address"></param>
/// <param name="value"></param>
/// <returns></returns>
public bool WriteInt16(string address, string value)
public static bool WriteInt16(string address, string value)
{
bool iflag = false;
try
@ -281,7 +296,7 @@ namespace Aucma.Core.MelsecPLc
/// <param name="address"></param>
/// <param name="value"></param>
/// <returns></returns>
public bool WriteInt32(string address, int value)
public static bool WriteInt32(string address, int value)
{
bool iflag = false;
try
@ -312,7 +327,7 @@ namespace Aucma.Core.MelsecPLc
/// <param name="address"></param>
/// <param name="value"></param>
/// <returns></returns>
public bool WriteString(string address, string value)
public static bool WriteString(string address, string value)
{
bool iflag = false;
try
@ -345,7 +360,7 @@ namespace Aucma.Core.MelsecPLc
/// <param name="address"></param>
/// <param name="bytes"></param>
/// <returns></returns>
public bool WriteByte(string address, byte[] bytes)
public static bool WriteByte(string address, byte[] bytes)
{
bool iflag = false;
try
@ -376,7 +391,7 @@ namespace Aucma.Core.MelsecPLc
/// <param name="address"></param>
/// <param name="bytes"></param>
/// <returns></returns>
public bool WriteFloat(string address, float value)
public static bool WriteFloat(string address, float value)
{
bool iflag = false;
try
@ -408,20 +423,32 @@ namespace Aucma.Core.MelsecPLc
/// </summary>
/// <param name="address"></param>
/// <returns></returns>
public bool Read(string address)
public static async Task<bool> Read(string address)
{
try
{
OperateResult<Int32> read = melsecMc.ReadInt32(address);
melsecMc.ReceiveTimeOut = 2000;
OperateResult<bool> read = await melsecMc.ReadBoolAsync(address);
if (read.IsSuccess)
{
this.IsConnected = true;
IsConnected = true;
return true;
}
else
{
this.IsConnected = false;
return false;
var k = read.ErrorCode < 0 ? false : true;
if (k)
{
IsConnected = true;
return true;
}
else
{
IsConnected = false;
return false;
}
}
}
catch (Exception ex)

@ -762,6 +762,9 @@
},
"D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Service\\Admin.Core.Service.csproj": {
"projectPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Service\\Admin.Core.Service.csproj"
},
"D:\\Project\\gitea\\AUCMA\\SCADA\\Aucma.Core.MelsecPLc\\Aucma.Core.MelsecPLc.csproj": {
"projectPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Aucma.Core.MelsecPLc\\Aucma.Core.MelsecPLc.csproj"
}
}
}

@ -4147,6 +4147,7 @@
"Admin.Core.Common": "1.0.0",
"Admin.Core.Model": "1.0.0",
"Admin.Core.Service": "1.0.0",
"Aucma.Core.MelsecPLc": "1.0.0",
"Quartz": "3.3.3"
},
"compile": {

@ -1,6 +1,6 @@
{
"version": 2,
"dgSpecHash": "BJy57/YwXjNxvWJUtDYu2K9CRCoGwEWjMHz2lSCv03oUUkaokenLlOvDo5me4Cuu5LWMFdeudtls3O2jiaAafQ==",
"dgSpecHash": "mxCeUAC+Far4lhXcnKCPtlnQ4LfxODx15wHoPNYPKtaQRdbFieQGk5TvYQmr1jXukNuj/wYONr5LCFx6RxLRVA==",
"success": true,
"projectFilePath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Aucma.Core.Palletiz\\Aucma.Core.Palletiz.csproj",
"expectedPackageFiles": [

@ -762,6 +762,9 @@
},
"D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Service\\Admin.Core.Service.csproj": {
"projectPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Service\\Admin.Core.Service.csproj"
},
"D:\\Project\\gitea\\AUCMA\\SCADA\\Aucma.Core.MelsecPLc\\Aucma.Core.MelsecPLc.csproj": {
"projectPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Aucma.Core.MelsecPLc\\Aucma.Core.MelsecPLc.csproj"
}
}
}

@ -4123,6 +4123,7 @@
"Admin.Core.Common": "1.0.0",
"Admin.Core.Model": "1.0.0",
"Admin.Core.Service": "1.0.0",
"Aucma.Core.MelsecPLc": "1.0.0",
"Quartz": "3.3.3"
},
"compile": {

@ -1,6 +1,6 @@
{
"version": 2,
"dgSpecHash": "L6+furiN9nFdpFnvZ0p0YEA6wFdRaTmvLh+JrhwBDJHj/2YSJERe+7rXywaDMUzF3Sb5RUSP1BQ6O8P3lY01Mg==",
"dgSpecHash": "nLMSVNKENKdxcvLKotRnDkkQPetJeHQfVyem59LuAM6bbEFA3xGGUiVsZgKb2L58UMCElXPs48QwKg5g7TWEnA==",
"success": true,
"projectFilePath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Aucma.Core.PrintTo\\Aucma.Core.PrintTo.csproj",
"expectedPackageFiles": [

@ -762,6 +762,9 @@
},
"D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Service\\Admin.Core.Service.csproj": {
"projectPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Service\\Admin.Core.Service.csproj"
},
"D:\\Project\\gitea\\AUCMA\\SCADA\\Aucma.Core.MelsecPLc\\Aucma.Core.MelsecPLc.csproj": {
"projectPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Aucma.Core.MelsecPLc\\Aucma.Core.MelsecPLc.csproj"
}
}
}

@ -4147,6 +4147,7 @@
"Admin.Core.Common": "1.0.0",
"Admin.Core.Model": "1.0.0",
"Admin.Core.Service": "1.0.0",
"Aucma.Core.MelsecPLc": "1.0.0",
"Quartz": "3.3.3"
},
"compile": {

@ -1,6 +1,6 @@
{
"version": 2,
"dgSpecHash": "9J/EANwxbAyO1VMJkqT8WUt35X1WYnwFQE6CKB25ro4CxCaRurjceC7iGzDsY9uVaiAYKVz84NQp2tjKGNM73A==",
"dgSpecHash": "bDrUMH6ifwHpwem49EQU9rBAbPSHgT5nEN0k69+/6KdJ3FNECill8qsH5Y9EQ8i+mfp1d2zsyvXR3qSSntRBsA==",
"success": true,
"projectFilePath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Aucma.Core.SheetMetal\\Aucma.Core.SheetMetal.csproj",
"expectedPackageFiles": [

Loading…
Cancel
Save