59 lines
2.0 KiB
C#
59 lines
2.0 KiB
C#
|
|
using System;
|
|||
|
|
using System.Collections.Generic;
|
|||
|
|
using System.Threading.Tasks;
|
|||
|
|
using S7.Net;
|
|||
|
|
|
|||
|
|
namespace DMS.Infrastructure.Interfaces.Services
|
|||
|
|
{
|
|||
|
|
/// <summary>
|
|||
|
|
/// S7服务接口,定义了与S7 PLC进行通信所需的方法
|
|||
|
|
/// </summary>
|
|||
|
|
public interface IS7Service
|
|||
|
|
{
|
|||
|
|
/// <summary>
|
|||
|
|
/// 获取当前连接状态
|
|||
|
|
/// </summary>
|
|||
|
|
bool IsConnected { get; }
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 异步连接到S7 PLC
|
|||
|
|
/// </summary>
|
|||
|
|
/// <returns>表示异步操作的任务</returns>
|
|||
|
|
Task ConnectAsync(string ipAddress, int port, short rack, short slot, S7.Net.CpuType cpuType);
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 异步断开与S7 PLC的连接
|
|||
|
|
/// </summary>
|
|||
|
|
/// <returns>表示异步操作的任务</returns>
|
|||
|
|
Task DisconnectAsync();
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 异步读取单个变量的值
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="address">S7地址</param>
|
|||
|
|
/// <returns>表示异步操作的任务,包含读取到的值</returns>
|
|||
|
|
Task<object> ReadVariableAsync(string address);
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 异步读取多个变量的值
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="addresses">S7地址列表</param>
|
|||
|
|
/// <returns>表示异步操作的任务,包含读取到的值字典</returns>
|
|||
|
|
Task<Dictionary<string, object>> ReadVariablesAsync(List<string> addresses);
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 异步写入单个变量的值
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="address">S7地址</param>
|
|||
|
|
/// <param name="value">要写入的值</param>
|
|||
|
|
/// <returns>表示异步操作的任务</returns>
|
|||
|
|
Task WriteVariableAsync(string address, object value);
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 异步写入多个变量的值
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="values">地址和值的字典</param>
|
|||
|
|
/// <returns>表示异步操作的任务</returns>
|
|||
|
|
Task WriteVariablesAsync(Dictionary<string, object> values);
|
|||
|
|
}
|
|||
|
|
}
|