Beispiel #1
0
 private void PLCTag_PropertyChanged(object sender, PropertyChangedEventArgs e)
 {
     //Bei Änderung des Controlvalue eines Tags, den Tag in die SPS schreiben
     if (myConn != null)
     {
         if (e.PropertyName == "Controlvalue")
         {
             myConn.WriteValue((PLCTag)sender);
         }
     }
 }
Beispiel #2
0
        private void GetParts()
        {
            Stopwatch sw = new Stopwatch();

            sw.Start();
            if (myConn == null)
            {
                DoConnect();
            }

            List <PLCNckTag> tagList = new List <PLCNckTag>();

            try
            {
                //---------------------  ActualParts   -------------------------------

                NC_Var actualParts = new NC_Var();
                actualParts.Bereich_u_einheit = 0x40;
                actualParts.Spalte            = 0x79;
                actualParts.Zeile             = 0x1;
                actualParts.Bausteintyp       = 0x7F;
                actualParts.ZEILENANZAHL      = 0x1;
                actualParts.Typ    = 0xF;
                actualParts.Laenge = 0x8;



                PLCNckTag actualPartsTag = actualParts.GetNckTag(1, 0);
                actualPartsTag.Tag = "ActualParts";
                tagList.Add(actualPartsTag);

                //---------------------  TotalParts  -------------------------------

                NC_Var totalParts = new NC_Var();
                totalParts.Bereich_u_einheit = 0x40;
                totalParts.Spalte            = 0x78;
                totalParts.Zeile             = 0x1;
                totalParts.Bausteintyp       = 0x7F;
                totalParts.ZEILENANZAHL      = 0x1;
                totalParts.Typ    = 0xF;
                totalParts.Laenge = 0x8;

                PLCNckTag totalPartsTag = totalParts.GetNckTag(1, 0);
                totalPartsTag.Tag = "TotalParts";
                tagList.Add(totalPartsTag);



                NC_Var    partsCounter    = new NC_Var(0x82, 0x40, 0x6CE8, 0x1, 0x1A, 0x1, 0x7, 0x4); // soll 272 sein, dann ists richtig aktiviert
                PLCNckTag counterPartsTag = partsCounter.GetNckTag(1, 0);
                tagList.Add(counterPartsTag);


                NC_Var    cycleTime    = new NC_Var(0x82, 0x40, 0x9, 0x1, 0x3B, 0x1, 0xF, 0x8);
                PLCNckTag cycleTimeTag = cycleTime.GetNckTag(1, 0);
                tagList.Add(cycleTimeTag);

                NC_Var    oldProgNetTime    = new NC_Var(0x82, 0x40, 0x12A, 0x1, 0x7F, 0x1, 0xF, 0x8);
                PLCNckTag oldProgNetTimeTag = oldProgNetTime.GetNckTag(1, 0);
                tagList.Add(oldProgNetTimeTag);

                oldProgNetTimeTag.Value = 12.3;
                myConn.WriteValue(oldProgNetTimeTag);

                myConn.ReadValues(tagList);

                lblActualParts.Text    = String.Format("Actual: {0}", actualPartsTag.Value.ToString());
                lblTotalParts.Text     = String.Format("Total: {0}", totalPartsTag.Value.ToString());
                lblCounter.Text        = String.Format("Counter: {0}", counterPartsTag.Value.ToString());
                lblCycleTime.Text      = String.Format("CycleTime: {0}", cycleTimeTag.Value.ToString());
                lblOldProgNetTime.Text = String.Format("OldProgNetTime: {0}", oldProgNetTimeTag.Value.ToString());
            }
            catch
            {
            }

            sw.Stop();

            lblStatus.Text += "           " + sw.ElapsedMilliseconds.ToString() + " ms";
        }