public void WriteValue(string varName, object value, bool doConvert = false)
        {
            bool write_ok = false;
            ClsSingeltonVariablesCollecterDataType var_tof = ClsSingeltonVariablesCollecterDataType.Null;

            if (this.m_VariablesType[varName] != null)
            {
                var_tof = (ClsSingeltonVariablesCollecterDataType)this.m_VariablesType[varName];
            }
            string tof = "";

            if (doConvert == false)
            {
                tof = value.GetType().ToString();
            }
            else
            {
                string val = value.ToString();
                if (var_tof == ClsSingeltonVariablesCollecterDataType.Int)
                {
                    int new_val;
                    int.TryParse(val, out new_val);
                    value = new_val;
                }
                if (var_tof == ClsSingeltonVariablesCollecterDataType.Double)
                {
                    double new_val;
                    double.TryParse(val, out new_val);
                    value = new_val;
                }
            }
            tof = value.GetType().ToString();

            if (tof == "System.Int32" && var_tof == ClsSingeltonVariablesCollecterDataType.Int)
            {
                write_ok = true;
            }

            if (tof == "System.Double" && var_tof == ClsSingeltonVariablesCollecterDataType.Double)
            {
                write_ok = true;
            }

            if (write_ok == true)
            {
                this.m_Variables[varName] = value;
            }
        }
        public int ReadValueInt(string varName)
        {
            int retval = 0;
            ClsSingeltonVariablesCollecterDataType var_tof = ClsSingeltonVariablesCollecterDataType.Null;

            if (this.m_Variables[varName] != null || this.m_VariablesType[varName] != null)
            {
                if (this.m_VariablesType[varName] != null)
                {
                    var_tof = (ClsSingeltonVariablesCollecterDataType)this.m_VariablesType[varName];
                    if (var_tof == ClsSingeltonVariablesCollecterDataType.Int)
                    {
                        retval = Convert.ToInt32(this.m_Variables[varName]);
                    }
                }
            }
            return(retval);
        }
        public double ReadValueDouble(string varName)
        {
            double retval = 0.0;
            ClsSingeltonVariablesCollecterDataType var_tof = ClsSingeltonVariablesCollecterDataType.Null;

            if (this.m_Variables[varName] != null || this.m_VariablesType[varName] != null)
            {
                if (this.m_VariablesType[varName] != null)
                {
                    var_tof = (ClsSingeltonVariablesCollecterDataType)this.m_VariablesType[varName];
                    if (var_tof == ClsSingeltonVariablesCollecterDataType.Double)
                    {
                        retval = Convert.ToDouble(this.m_Variables[varName]);
                    }
                }
            }

            return(retval);
        }
 public void CreateVariable(string varName, ClsSingeltonVariablesCollecterDataType dataType)
 {
     if (this.m_Variables[varName] == null)
     {
         if (dataType == ClsSingeltonVariablesCollecterDataType.Int)
         {
             int var = 0;
             this.m_Variables.Add(varName, var);
         }
         if (dataType == ClsSingeltonVariablesCollecterDataType.Double)
         {
             double var = 0.0;
             this.m_Variables.Add(varName, var);
         }
         if (dataType == ClsSingeltonVariablesCollecterDataType.String)
         {
             string var = "";
             this.m_Variables.Add(varName, var);
         }
         this.m_VariablesType.Add(varName, dataType);
     }
 }
예제 #5
0
        public void AddList(string adresse, string symbolName, string dataType, string comment, string symbolType, bool dataLog = false)
        {
            int byte_length = 0;
            ClsSingeltonVariablesCollecterDataType data_type = ClsSingeltonVariablesCollecterDataType.Null;

            if (dataType == "BOOL")
            {
                byte_length = 2;
                data_type   = ClsSingeltonVariablesCollecterDataType.Int;
            }
            if (dataType == "INT")
            {
                byte_length = 2;
                data_type   = ClsSingeltonVariablesCollecterDataType.Int;
            }
            if (dataType == "TIME")
            {
                byte_length = 4;
                data_type   = ClsSingeltonVariablesCollecterDataType.Int;
            }
            if (dataType == "REAL")
            {
                byte_length = 4;
                data_type   = ClsSingeltonVariablesCollecterDataType.Double;
            }

            int db_nr   = 0;
            int byte_nr = 0;
            int bit_nr  = 0;

            string[] adressen = adresse.Split('.');
            if (adressen.Count() >= 2)
            {
                db_nr   = Convert.ToInt32(FuncString.GetOnlyNumeric(adressen[0]));
                byte_nr = Convert.ToInt32(FuncString.GetOnlyNumeric(adressen[1]));
                if (adressen.Count() == 3)
                {
                    bit_nr = Convert.ToInt32(FuncString.GetOnlyNumeric(adressen[2]));
                    int rest = byte_nr % 2;
                    byte_length = byte_length - rest;
                }
                if (this.m_DatabasesInfo.ContainsKey(db_nr))
                {
                    int value = Convert.ToInt32(this.m_DatabasesInfo[db_nr]);
                    if ((byte_nr + byte_length) > value)
                    {
                        this.m_DatabasesInfo[db_nr] = byte_nr + byte_length;
                    }
                }
                else
                {
                    this.m_DatabasesInfo.Add(db_nr, byte_nr);
                    this.m_DatabasesNr.Add(db_nr);
                }
            }
            ClsSingeltonPlcDatas data;

            data.Adress         = adresse;
            data.DatabaseNumber = db_nr;
            data.ByteNumber     = byte_nr;
            data.BitNumber      = bit_nr;
            data.Symbolname     = symbolName;
            data.DataType       = dataType;
            data.Comment        = comment;
            data.Value          = "0.0";
            data.DataLog        = dataLog;
            data.SymbolType     = symbolType;
            this.m_Daten.Add(data);
            string keyInfo = "DB" + db_nr + "." + symbolName;

            this.m_VarCollect.CreateVariable(keyInfo, data_type);
            if (!this.m_SymbolInfo.ContainsKey(keyInfo))
            {
                this.m_SymbolInfo.Add(keyInfo, data);
            }
        }