S7Driver/PLCS7Driver.cs
@@ -61,60 +61,150 @@
            client?.Dispose();
        }
        public bool Simens_S7_ReadBool(int DB, int StartAdd, int Pos)
        public bool Simens_S7_ReadBool(int DB, int StartAdd, int Pos, out bool value, out string msg)
        {
            var or = client.ReadBool($"DB{DB}.DBX{StartAdd}.{Pos}");
            return or.Content;
            value = false;
            msg = null;
            try
            {
                var or = client.ReadBool($"DB{DB}.DBX{StartAdd}.{Pos}");
                if (!or.IsSuccess)
                {
                    msg = $"{or.ErrorCode} {or.Message}";
                    return false;
                }
                value = or.Content;
                return true;
            }
            catch (Exception ex)
            {
                msg = ex.Message;
                return false;
            }
        }
        public void Simens_S7_WriteBool(int DB, int StartAdd, int Pos, bool Val)
        public bool Simens_S7_WriteBool(int DB, int StartAdd, int Pos, bool Val, out string msg)
        {
            var or = client.Write($"DB{DB}.DBX{StartAdd}.{Pos}", Val);
            return;
            msg = null;
            try
            {
                var or = client.Write($"DB{DB}.DBX{StartAdd}.{Pos}", Val);
                if (!or.IsSuccess)
                {
                    msg = $"{or.ErrorCode} {or.Message}";
                    return false;
                }
                return true;
            }
            catch (Exception ex)
            {
                msg = ex.Message;
                return false;
            }
        }
        public int Simens_S7_ReadInt(int DB, int StartAdd, int Length)
        {
            var or = client.ReadInt16($"DB{DB}.DBW{StartAdd}");
            return or.Content;
        }
        public void Simens_S7_WriteInt(int DB, int StartAdd, short Val)
        {
            client.Write($"DB{DB}.DBW{StartAdd}", Val);
        }
        public float Simens_S7_ReadReal(int DB, int StartAdd, int Length)
        {
            var or = client.ReadFloat($"DB{DB}.DBW{StartAdd}");
            return or.Content;
        }
        public void Simens_S7_WriteReal(int DB, int StartAdd, float Val)
        {
            client.Write($"DB{DB}.DBW{StartAdd}", Val);
        }
        public bool ReadShort(string address, out short value, out string errMsg)
        public bool Simens_S7_ReadInt(int DB, int StartAdd, out int value, out string msg)
        {
            value = 0;
            errMsg = null;
            msg = null;
            try
            {
                var or = client.ReadInt16($"DB{DB}.DBW{StartAdd}");
                if (!or.IsSuccess)
                {
                    msg = $"{or.ErrorCode} {or.Message}";
                    return false;
                }
                value = or.Content;
                return true;
            }
            catch (Exception ex)
            {
                msg = ex.Message;
                return false;
            }
        }
        public bool Simens_S7_WriteInt(int DB, int StartAdd, short Val, out string msg)
        {
            msg = null;
            try
            {
                var or = client.Write($"DB{DB}.DBW{StartAdd}", Val);
                if (!or.IsSuccess)
                {
                    msg = $"{or.ErrorCode} {or.Message}";
                    return false;
                }
                return true;
            }
            catch (Exception ex)
            {
                msg = ex.Message;
                return false;
            }
        }
        public bool Simens_S7_ReadReal(int DB, int StartAdd, out float value, out string msg)
        {
            value = 0;
            msg = null;
            try
            {
                var or = client.ReadFloat($"DB{DB}.DBW{StartAdd}");
                if (!or.IsSuccess)
                {
                    msg = $"{or.ErrorCode} {or.Message}";
                    return false;
                }
                value = or.Content;
                return true;
            }
            catch (Exception ex)
            {
                msg = ex.Message;
                return false;
            }
        }
        public bool Simens_S7_WriteReal(int DB, int StartAdd, float Val, out string msg)
        {
            msg = null;
            try
            {
                var or = client.Write($"DB{DB}.DBW{StartAdd}", Val);
                if (!or.IsSuccess)
                {
                    msg = $"{or.ErrorCode} {or.Message}";
                    return false;
                }
                return true;
            }
            catch (Exception ex)
            {
                msg = ex.Message;
                return false;
            }
        }
        public bool ReadShort(string address, out short value, out string msg)
        {
            value = 0;
            msg = null;
            try
            {
                var or = client.ReadInt16(address);
                if (or.IsSuccess)
                if (!or.IsSuccess)
                {
                    value = or.Content;
                    msg = $"{or.ErrorCode} {or.Message}";
                    return false;
                }
                else
                {
                    errMsg = or.Message;
                }
                return or.IsSuccess;
                value = or.Content;
                return true;
            }
            catch (Exception e)
            {
                errMsg = e.Message;
                msg = e.Message;
                return false;
            }
        }