Compare commits

...

2 Commits

1 changed files with 60 additions and 9 deletions

View File

@ -6,6 +6,7 @@ using System.Text.RegularExpressions;
using System.ComponentModel;
using Newtonsoft.Json.Linq;
using System.ComponentModel.DataAnnotations;
using System.Diagnostics;
namespace LibS7Adv
{
@ -42,11 +43,16 @@ namespace LibS7Adv
string lastError;
}
public partial class PLCViewModel : ObservableObject
{
[JsonIgnore]
private IInstance Instance { get; set; }
[JsonIgnore]
private Stopwatch stopwatch = new Stopwatch();
private bool IsConfigured { get; set; }
[ObservableProperty]
@ -329,7 +335,10 @@ namespace LibS7Adv
{
try
{
stopwatch.Restart();
Instance?.WriteBool(pTag, pValue);
stopwatch.Stop();
Debug.WriteLine($" EscribirTagBool took {stopwatch.Elapsed.TotalMilliseconds} ms");
}
catch (Exception ex)
{
@ -340,7 +349,10 @@ namespace LibS7Adv
{
try
{
stopwatch.Restart();
Instance?.WriteInt16(pTag, (short)pValue);
stopwatch.Stop();
Debug.WriteLine($" EscribirTagInt16 took {stopwatch.Elapsed.TotalMilliseconds} ms");
}
catch (Exception ex)
{
@ -352,7 +364,11 @@ namespace LibS7Adv
{
try
{
return Instance?.ReadBool(pTag) ?? false;
stopwatch.Restart();
bool result = Instance?.ReadBool(pTag) ?? false;
stopwatch.Stop();
Debug.WriteLine($" LeerTagBool took {stopwatch.Elapsed.TotalMilliseconds} ms");
return result;
}
catch (Exception ex)
{
@ -365,7 +381,11 @@ namespace LibS7Adv
{
try
{
return Instance?.ReadInt16(pTag);
stopwatch.Restart();
int? result = Instance?.ReadInt16(pTag);
stopwatch.Stop();
Debug.WriteLine($" LeerTagInt16 took {stopwatch.Elapsed.TotalMilliseconds} ms");
return result;
}
catch (Exception ex)
{
@ -374,6 +394,37 @@ namespace LibS7Adv
}
}
public int? LeerTagDInt(string pTag)
{
try
{
stopwatch.Restart();
int? result = Instance?.ReadInt32(pTag);
stopwatch.Stop();
Debug.WriteLine($" LeerTagDInt took {stopwatch.Elapsed.TotalMilliseconds} ms");
return result;
}
catch (Exception ex)
{
PlcData.LastError = pTag + ":" + ex.Message;
return 0;
}
}
public void EscribirTagDInt(string pTag, int pValue)
{
try
{
stopwatch.Restart();
Instance?.WriteInt32(pTag, pValue);
stopwatch.Stop();
Debug.WriteLine($" EscribirTagDInt took {stopwatch.Elapsed.TotalMilliseconds} ms");
}
catch (Exception ex)
{
PlcData.LastError = pTag + ":" + ex.Message;
}
}
public static TagAddress ParseTagAddress(string tag)
{