C# SiemensS7Net 连接,并将数据存在栈中

//  链接        
private void plcDeviceLink(string plcCom)
        {
            try
            {
                plc = new SiemensS7Net(SiemensPLCS.S200Smart, plcCom);
                Boolean connectFlag = plc.ConnectServer().IsSuccess;
                if (connectFlag)
                {
                    isPLCConnected = true;
                }
                else
                {
                    isPLCConnected = false;
                }

            }
            catch (Exception ex)
            {
                UIMessageBox.ShowError("PLC连接失败:" + ex.Message);
            }
        }

//  读取数据,保存在栈中,并画在曲线上
        private void serialPort_OxygenCheck_DataReceived(object sender, SerialDataReceivedEventArgs e)
        {
            try
            {
                if (isWorking)
                {
                    Thread.Sleep(50);
                    SerialPort sp = (SerialPort)sender;
                    string readStr = sp.ReadExisting();

                    stack.Push(readStr);
                    string[] readArr = readStr.Split(' ');
                    if (readArr.Length >= 19)
                    {
                        productIndex++;
                        string isOKStr = readStr.Split(' ')[3];
                        bool isOk = Convert.ToInt32(isOKStr) == 1 ? true : false;
                        if (isOk)
                        {
                            okNumber++;
                        }
                        else
                        {
                            ngNumber++;
                        }
                        //int totalNumber = okNumber + ngNumber;

                        pointX.Add(productIndex);
                        string testValue = readArr[8];
                        if (!testValue.IsDouble())
                        {
                            testValue = "0.00";
                        }
                        pointY.Add(Convert.ToDouble(testValue));

                        if(Convert.ToDouble(testValue) >= biggestValue)
                        {
                            biggestValue = Convert.ToDouble(testValue) + 1;
                        }
                        if(productIndex >= xBiggestValue)
                        {
                            xBiggestValue = productIndex + 50;
                        }

                        Invoke((EventHandler)delegate
                        {
                            lab_ProductCount.Text = productIndex.ToString();
                            uiLabel8.Text = okNumber.ToString();
                            uiLabel9.Text = ngNumber.ToString();
                            uiLabel14.Text = ((double)okNumber / (double)productIndex).ToString("F2");
                        });
                        Thread thread = new Thread(ResetData);
                        thread.IsBackground = true;
                        thread.Start();
                    }
                }
            }
            catch(Exception ex)
            {
                UIMessageBox.ShowError(ex.Message);
            }
        }

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值