Exemplo n.º 1
0
        private void myOPCItems_Fill(List <VarItem> OPCVariables, OPCItems items)
        {
            for (int i = 0; i < OPCVariables.Count; i++)
            {
                VarItem myVarItem = OPCVariables[i];
                OPCItem myItem    = items.AddItem(myVarItem.name, myVarItem.array_index);

                // Check if the OPC variable consist in OPC server's configuration !!!
                if (myItem == null)
                {
                    this.myLog.LogAlert(AlertType.Error, this.id.ToString(), this.GetType().ToString(), "myOPCItems_Fill()",
                                        "Exception: unknown variable '" + myVarItem.name + "' !!"
                                        , "system");
                    OPCVariables.Remove(OPCVariables[i]);
                }
                else
                {
                    OPCVariables[i].servHandle = myItem.ServerHandle;

                    this.myLog.LogAlert(AlertType.System, this.id.ToString(), this.GetType().ToString(), "myOPCItems_Fill()",
                                        this.OPCServerName + ", myVarItem (name; arr_idx) = "
                                        + myVarItem.name.ToString()
                                        + ", " + myVarItem.array_index.ToString()
                                        + ", myItem.ServerHandle=" + myItem.ServerHandle.ToString()
                                        + ", myItem.Quality=" + myItem.Quality.ToString()
                                        + ", myItem.ItemID=" + myItem.ItemID.ToString()
                                        // + ", myItem.Value=" + myItem.Value.ToString()
                                        , "system"
                                        );
                }
            }
        }
Exemplo n.º 2
0
        private void OPCGroup_DataChange(int TransactionID, int NumItems, ref Array ClientHandles, ref Array ItemValues, ref Array Qualities, ref Array TimeStamps)
        {
            for (int i = 1; i <= NumItems; i++)
            {
                int varIndex = Convert.ToInt32(ClientHandles.GetValue(i));

                VarItem currentItem = this.OPCVariables.FirstOrDefault(p => p.array_index.Equals(varIndex));

                if (currentItem != null && currentItem.type == OPCControlType.Button)
                {
                    VarItem myVarItem   = currentItem;
                    bool    myBoolValue = Convert.ToBoolean(ItemValues.GetValue(i));
                    if (myVarItem.bool_value != myBoolValue)
                    {
                        myVarItem.old_bool_value = myVarItem.bool_value;
                        myVarItem.bool_value     = myBoolValue;
                        if (myVarItem.bool_value == true)
                        {
                            VarEventArgs myArgs = new VarEventArgs();
                            myArgs.varIndex = myVarItem.array_index;

                            ////int buttonIndex = this.OPCVariables.IndexOf(currentItem);
                            ////VarItem myVarSignalItem = this.OPCVariables[buttonIndex + 1];

                            // this maqnaged by the line itself !!!
                            //bool bntSignal = myOPCGroup.OPCItems.GetOPCItem((int)myVarSignalItem.servHandle).Value;
                            //myOPCGroup.OPCItems.GetOPCItem((int)myVarSignalItem.servHandle).Write(!bntSignal);

                            this.ImpDataChanged(this, myArgs);
                        }
                    }
                }
            }
        }
Exemplo n.º 3
0
 public void WriteVariableValue(VarItem varItem, bool value)
 {
     try
     {
         if (this.OPCServerName.Contains("Simulation"))
         {
             int     servHandle = varItem.servHandle;
             OPCItem opc_item_s = this.myOPCGroup.OPCItems.GetOPCItem(servHandle);
             opc_item_s.Write(value);
         }
         else
         {
             this.eXX_DO_Write(varItem.MXIO_ipAddr, 502, 300, Convert.ToByte(varItem.MXIO_channel), Convert.ToUInt32(value), varItem.MXIO_moduleType);
         }
     }
     catch (Exception ex)
     {
         this.myLog.LogAlert(AlertType.Error, this.id.ToString(), this.GetType().ToString(), "WriteVariableValue()",
                             ex.Message, "system");
     }
 }