設為首頁 加入收藏
首 頁 企業簡介 項目案例 軟件定制 行業軟件 解決方案 企業資訊 服務專區 客服中心
服務項目
案例展示 更多 >>
·生產流程監控 2020/11/26
·上位機軟件定制開發 2020/9/29
·手機端公眾號集成開發 2020/6/5
·業務技能培訓學習軟件 2020/6/5
·潤宇司法行政管理綜合平… 2010/12/6
·連鎖店管理系統軟件 2010/7/31
·醫院管理系統軟件 2010/7/27
·駕校查詢系統軟件 2010/7/15
·生產管理系統軟件 2010/1/30
·人事管理系統軟件 2010/1/30
聯系人:李先生
電  話:029-87878512
手  機:13468700578
地  址:西安市絲路國際創意夢工廠4號樓
在線咨詢:  762176615
Email:junsoft@126.com
 
當前的位置 >> 返回首頁 >> 解決方案
西安軟件外包讀寫PLC數據
發布者:西安軟件公司   發布時間:2022/8/19   閱讀:次

西安軟件外包采用讀寫PLC數據
using S7.Net;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace 讀寫PLC數據
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
       
        public Plc plc = new Plc(CpuType.S71200, "127.0.0.1", 0, 1);  //定義新的PLC對象  
        private void Button1_Click(object sender, EventArgs e)
        {
            plc.Open();//連接PLC
            if (plc.IsConnected)
            {
                MessageBox.Show("連接成功!", "連接提示", MessageBoxButtons.OK);
            }
            else
            {
                MessageBox.Show("連接失!", "連接提示", MessageBoxButtons.OK);
            }
        }
        private void Btn_disconnect_Click(object sender, EventArgs e)
        {
            plc.Close();//斷開PLC
        }
        #region 讀PLC數據
        private void Btn_read_Click(object sender, EventArgs e)
        {
            if (plc.IsConnected == false)
            {
                MessageBox.Show("未連接PLC!", "連接提示", MessageBoxButtons.OK);//檢查PLC是否連接;               
            }
            else
            {
                try
                {
                    string[] arr = (txt_read_addr.Text.ToUpper()).Split(’.’);//將txt_read_addr文本框中的數據轉為大寫字母,并用“.”拆分后存放到arr數組中
                    string valuetype = arr[1].Substring(0, 3);//取數組中的第二個元素的前三位,用以確認讀取的PLC數據類型
                                                              //PLC數據類型:DBX(位,bool)DBB(字節,byte)DBW(字,word)DBD(雙字,dword)
                                                              //以下是按不同的數據類型,對PLC數據進行讀取
                    if (valuetype == "DBX")
                    {
                        bool test1 = (bool)plc.Read(txt_read_addr.Text.ToUpper());
                        ShowMsg(txt_read_addr.Text + ":" + test1.ToString());
                    }
                    else if (valuetype == "DBW")
                    {
                        short test3 = ((ushort)plc.Read(txt_read_addr.Text.ToUpper())).ConvertToShort();
                        ShowMsg(txt_read_addr.Text + ":" + test3.ToString());
                    }
                    else if (valuetype == "DBD")
                    {
                        double test5 = ((uint)plc.Read(txt_read_addr.Text.ToUpper())).ConvertToFloat();
                        ShowMsg(txt_read_addr.Text + ":" + test5.ToString());
                    }
                    else
                    {
                        MessageBox.Show("請檢查地址是否輸入錯誤!", "輸入提示", MessageBoxButtons.OK);
                    }
                }
                catch (Exception Ex)
                {
                    MessageBox.Show("請檢查地址是否輸入錯誤!", "輸入提示", MessageBoxButtons.OK);
                }
            }
        }
        #endregion

        #region  將數據寫入PLC
        private void Btn_write_Click(object sender, EventArgs e)
        {
            if (plc.IsConnected == false)
            {
                MessageBox.Show("未連接PLC!", "連接提示", MessageBoxButtons.OK);
            }
            else
            {
                try
                {
                    string[] arr = (txt_write_addr.Text.ToUpper()).Split(’.’);
                    string valuetype = arr[1].Substring(0, 3);
                    if (valuetype == "DBX")
                    {
                        plc.Write(txt_write_addr.Text.ToUpper(), Convert.ToBoolean(txt_value.Text));
                    }
                    else if (valuetype == "DBW")
                    {
                        var value = short.Parse(txt_value.Text);
                        plc.Write(txt_write_addr.Text.ToUpper(), value);
                    }
                    else if (valuetype == "DBD")
                    {
                        double value = double.Parse(txt_value.Text);
                        plc.Write(txt_write_addr.Text.ToUpper(), value);
                    }
                    else
                    {
                        MessageBox.Show("請檢查地址是否輸入錯誤!", "輸入提示", MessageBoxButtons.OK);
                    }
                }
                catch (Exception Ex)
                {
                    MessageBox.Show("請檢查輸入的“地址”或“值”是否錯誤!", "輸入提示", MessageBoxButtons.OK);
                }
            }

        }
        #endregion
        private void Btn_clear_Click(object sender, EventArgs e)
        {
            txt_result.Text = null;//清空“結果”文本框
        }
        private void ShowMsg(string v)
        {
            txt_result.AppendText(v + "\r\n");//將讀取的PLC數據追加到“結果”文本框中
        }
        private void Txt_result_TextChanged(object sender, EventArgs e)
        {
        }
    }
}

網站首頁 | 關于我們 | 售后服務 | 網站地圖 | 查看留言 | 在線留言 | 客服中心
© 版權所有:西安潤宇軟件科技有限公司 
公司地址:西安市絲路國際創意夢工廠4號樓 聯系電話:029-87878512 手機:13468700578 聯系人:李先生
Copyright ® 2011-2023 Xbwbw.com Inc. All Rights Reserved 
技術支持:西安潤宇軟件科技有限公司  陜ICP備11000720號
97caop人人超碰国产精品最新|国产在线观看yzmw|国产欧美日韩综合AⅤ天堂|亚洲乱码中文高清字幕