예제 #1
0
 private void RefreshEventsGroup(TagHandler Tags)
 {
     for (int i = 0; i < EvGroups.Count; i++)
     {
         //All the events are in evGroups
         //refresh from OPC all events (diferents OPCs)
         if (EvGroups[i].opcgroup.ServerName.Length > 1)
         {
             EvGroups[i].opcgroup.GetData();
             Tags.RefreshFromGroup(EvGroups[i].opcgroup);
         }
         else
         {
             Tags.RefreshFromEvents(EvGroups[i].opcgroup);
         }
     }
     //Refresh the struc EVENTS (that contain inserts/updates)
     for (int i = 0; i < OPCEvents.Count; i++)
     {
         int indexer = Tags.SearchTag(OPCEvents[i].Tagevent);
         if (indexer != -1)
         {
             TagEvent evt = OPCEvents[i];
             evt.Activated   = Tags.Values[indexer].Activated;
             evt.Deactivated = Tags.Values[indexer].Deactivated;
             OPCEvents[i]    = evt;
         }
     }
 }
예제 #2
0
 private void RefreshWhereGroup(TagHandler Tags)
 {
     for (int i = 0; i < WhereGroups.Count; i++)
     {
         WhereGroups[i].opcgroup.GetData();
         Tags.RefreshFromGroup(WhereGroups[i].opcgroup);
     }
 }
예제 #3
0
 private void RefreshVarGroup(string tagevent, TagHandler Tags)
 {
     for (int i = 0; i < VarGroups.Count; i++)
     {
         if (VarGroups[i].tagEvent == tagevent)
         {
             VarGroups[i].opcgroup.GetData();
             Tags.RefreshFromGroup(VarGroups[i].opcgroup);
         }
     }
 }
예제 #4
0
        private Boolean GenerateTagsInWhereTable(TagHandler Tags)
        {
            string        sqlQuery;
            List <string> tags = new List <string>();

            sqlQuery = "delete  from PLC2DB_TagsInWhere";
            Logging log = new Logging(sqlQuery);

            try
            {
                using (SqlConnection connection = new SqlConnection(IntData.CfgConn))
                {
                    connection.Open();
                    SqlCommand cmd = new SqlCommand(sqlQuery, connection);
                    cmd.ExecuteNonQuery();
                    sqlQuery = "select ID, Cond from PLC2DB_Cfg where Cond is Not Null and Cond <>''";
                    cmd      = new SqlCommand(sqlQuery, connection);
                    SqlDataReader sdr = cmd.ExecuteReader();
                    while (sdr.Read())
                    {
                        if (Tags.GetTagsInString(sdr[1].ToString(), tags) != 0)
                        {
                            InsertTagInWhere(Convert.ToInt32(sdr[0]), ref tags);
                        }
                    }
                    sdr.Close();
                }
                log.Success();
                return(true);
            }
            catch (Exception ex)
            {
                log.Fatal(ex);
                return(false);
            }
        }
예제 #5
0
 public void Refresh(TagHandler Tags)
 {
     RefreshEventsGroup(Tags);
     RefreshTimerEvents();
     IntData.SaveRecordsetFlag = false;
     for (int i = 0; i < OPCEvents.Count; i++)
     {
         if (OPCEvents[i].Enable)
         {
             if (OPCEvents[i].Activated)
             {
                 RefreshVarGroup(OPCEvents[i].Tagevent, Tags);
                 RefreshWhereGroup(Tags);
                 for (int index = 0; index < OPCEvents[i].Targets[POSITIVE_FLANC].Count; index++)
                 {
                     OPCEvents[i].Targets[POSITIVE_FLANC][index].Execute(true, OPCEvents[i].Tagevent, Tags);
                 }
                 Tags.ExecuteScripts(OPCEvents[i].ScriptsList, POSITIVE_FLANC);
             }
             if (OPCEvents[i].Deactivated)
             {
                 RefreshVarGroup(OPCEvents[i].Tagevent, Tags);
                 RefreshWhereGroup(Tags);
                 for (int index = 0; index < OPCEvents[i].Targets[NEGATIVE_FLANC].Count; index++)
                 {
                     OPCEvents[i].Targets[NEGATIVE_FLANC][index].Execute(true, OPCEvents[i].Tagevent, Tags);
                 }
                 Tags.ExecuteScripts(OPCEvents[i].ScriptsList, NEGATIVE_FLANC);
             }
         }
     }
     if (IntData.SaveRecordsetFlag)
     {
         //***JB1 MsgBox "grabarRecordsetFlag"
         //tcklog.log "Saving Record Set"
     }
     for (int i = 0; i < TimerEvents.Count; i++)
     {
         if (TimerEvents[i].enable)
         {
             if (TimerEvents[i].Activated)
             {
                 RefreshVarGroup(TimerEvents[i].Tagevent, Tags);
                 RefreshWhereGroup(Tags);
                 for (int index = 0; index < TimerEvents[i].Targets[POSITIVE_FLANC].Count; index++)
                 {
                     TimerEvents[i].Targets[POSITIVE_FLANC][index].Execute(true, TimerEvents[i].Tagevent, Tags);
                 }
                 Tags.ExecuteScripts(TimerEvents[i].ScriptsList, POSITIVE_FLANC);
             }
             if (TimerEvents[i].Deactivated)
             {
                 RefreshVarGroup(TimerEvents[i].Tagevent, Tags);
                 RefreshWhereGroup(Tags);
                 for (int index = 0; index < TimerEvents[i].Targets[NEGATIVE_FLANC].Count; index++)
                 {
                     TimerEvents[i].Targets[NEGATIVE_FLANC][index].Execute(true, TimerEvents[i].Tagevent, Tags);
                 }
                 Tags.ExecuteScripts(TimerEvents[i].ScriptsList, NEGATIVE_FLANC);
             }
         }
     }
 }