using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using S7.Net;
using System.Threading;
namespace readDB
{
class ReConnect
{
Plc p ;
ClaDB1 dbRe; int dbunba;
public bool iscon { get; set; }
/// <summary>
/// 读取DB块Class
/// </summary>
/// <param name="plc">PLC实力对象</param>
/// <param name="db1">PLC DB块属性的类的实力对象</param>
/// <param name="dbNuba">DB块号</param>
public ReConnect(Plc plc, ClaDB1 db1,int dbNuba)
{
p = plc;
dbRe = db1;
dbunba = dbNuba;
}
public void GetDB()
{
Task.Run(() =>
{
while (true )
{
if (p.IsConnected == false)//如果连接没有打开,就把它打开
{
try { p.Open(); }
catch { }
}
if (p .IsConnected )//连接正常的情况下,读取DB块数据
{
try { p.ReadClass(dbRe, dbunba); iscon = true; }
catch { }
}
else//连接中断后,重新尝试连接
{
iscon = false;
p.Close();
Thread.Sleep(2000);
try { p.Open(); }
catch { }
}
//Console.WriteLine(dbRe.a1);
//Console.WriteLine(dbRe.a2);
//Console.WriteLine(dbRe.a3);
//Console.WriteLine(iscon);
Thread.Sleep(100);
}
});
}
}
}
S7.netpuls掉线重连
于 2023-06-04 23:35:59 首次发布