磁导航1.0内部交管和信号交互
This commit is contained in:
@@ -25,7 +25,7 @@ namespace StandardScene.Signal.Plc
|
||||
private SiemensClient _client;
|
||||
private readonly object _sync = new object();
|
||||
|
||||
/// <param name="version">进程字段 PlcVersion,如 S7_1500。</param>
|
||||
/// <param name="version">西门子系列名,如 S7_1500;空或无法解析时默认 S7_1500。</param>
|
||||
/// <param name="ip">机构 IP。</param>
|
||||
/// <param name="port">S7 端口,通常 102。</param>
|
||||
/// <param name="slot">机架槽号,S7-1500 常见 1。</param>
|
||||
@@ -103,6 +103,26 @@ namespace StandardScene.Signal.Plc
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>从起始字节连续读 length 字节,用于工位 BOOL 拆位。</summary>
|
||||
public bool TryReadBytes(string startAddress, ushort length, out byte[] data)
|
||||
{
|
||||
data = Array.Empty<byte>();
|
||||
if (string.IsNullOrWhiteSpace(startAddress) || length == 0 || !EnsureOpen())
|
||||
return false;
|
||||
try
|
||||
{
|
||||
var r = _client.Read(NormalizeByteAddress(startAddress), length, false);
|
||||
if (r == null || !r.IsSucceed || r.Value == null)
|
||||
return false;
|
||||
data = r.Value;
|
||||
return true;
|
||||
}
|
||||
catch
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>读心跳位。地址不做 DBB 转换。</summary>
|
||||
public bool TryReadBool(string address, out bool value)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user