using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Aucma.Core.PLc { public interface IPlc { /// <summary> /// 是否连接 /// </summary> bool IsConnected { get; set; } /// <summary> /// 建立连接 /// </summary> /// <param name="IP"></param> /// <param name="port"></param> /// <returns></returns> bool Connect(string IP, int port); /// <summary> /// 断开连接 /// </summary> /// <returns></returns> bool DisConnect(); /// <summary> /// 读取byte数据 /// </summary> /// <param name="address"></param> /// <returns></returns> byte[] ReadBytes(string address); /// <summary> /// 读取 /// </summary> /// <param name="address"></param> /// <returns></returns> byte[] Read(string address, ushort len); /// <summary> /// 读取bool /// </summary> /// <param name="address"></param> /// <returns></returns> bool ReadBool(string address); /// <summary> /// 读取int16 /// </summary> /// <param name="address"></param> /// <returns></returns> int ReadInt16(string address); /// <summary> /// 读取int32 /// </summary> /// <param name="address"></param> /// <returns></returns> int ReadInt32(string address); /// <summary> /// 读取string /// </summary> /// <param name="address"></param> /// <returns></returns> string ReadString(string address); /// <summary> /// 单精度浮点型数据 /// </summary> /// <param name="address"></param> /// <returns></returns> float ReadFloat(string address); /// <summary> /// 双精度浮点型数据 /// </summary> /// <param name="address"></param> /// <returns></returns> double ReadDouble(string address); /// <summary> /// 写入int16 /// </summary> /// <param name="address"></param> /// <param name="value"></param> /// <returns></returns> bool WriteInt16(string address, string value); /// <summary> /// 写入int32 /// </summary> /// <param name="address"></param> /// <param name="value"></param> /// <returns></returns> bool WriteInt32(string address, int value); /// <summary> /// 写入string /// </summary> /// <param name="address"></param> /// <param name="value"></param> /// <returns></returns> bool WriteString(string address, string value); /// <summary> /// 写入byte /// </summary> /// <param name="address"></param> /// <param name="bytes"></param> /// <returns></returns> bool WriteByte(string address, byte[] bytes); /// <summary> /// 写入byte /// </summary> /// <param name="address"></param> /// <param name="value"></param> /// <returns></returns> bool WriteFloat(string address, float value); /// <summary> /// 心跳使用——喂狗 /// </summary> /// <param name="address"></param> /// <returns></returns> Task<bool> Read(string address); } }