譚子健
級別: 正式會員
|
圖片:
簡單寫了個c#連接西門子PLC的小程序來練習,源代碼放在下面,可以看看 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; using S7.Net; namespace 西門子連接上位機 { public partial class Form1 : Form { public Plc Myplc; public string IP = "192.168.1.118";//PLC的IP地址 public void Connect()//創建連接PLC方法 { try { Myplc = new Plc(CpuType.S71500, IP, 0, 1);//實例化PLC對象 } catch { MessageBox.Show("連接失敗!"); } } public Form1() { InitializeComponent(); Connect();//調用連接PLC方法 } private void button1_Click(object sender, EventArgs e) { if(Myplc==null) { MessageBox.Show("連接失敗!"); return; } try { Myplc.Open();//打開PLC連接 button1.BackColor = Color.Lime;//改變按鈕1顏色為綠色 button2.BackColor = Color.White;//改變按鈕2顏色為白色 button1.Text = "已連接PLC";//改變按鈕1文字為已連接PLC label1.Text = "已連接到PLC";//改變label1文字為已連接到PLC label1.Visible = true;//顯示label1 } catch { MessageBox.Show("連接失敗!"); }//捕獲異常 } private void button2_Click(object sender, EventArgs e) { if (Myplc == null) { MessageBox.Show("連接失敗!");//判斷PLC是否連接成功 return; } try { Myplc.Close();//關閉PLC連接 button2.BackColor = Color.Lime;//改變按鈕2顏色為綠色 button1.BackColor = Color.White;//改變按鈕1顏色為白色 button2.Text = "已斷開PLC";//改變按鈕2文字為已斷開PLC label1.Visible = false;//隱藏label1 } catch { MessageBox.Show("斷開失敗!"); }//捕獲異常 } private void button3_Click(object sender, EventArgs e) { if (Myplc == null) { MessageBox.Show("連接失敗!");//判斷PLC是否連接成功 return; } try { if ((bool)Myplc.Read("DB1.DBX0.0") == false)//判斷讀取的BOOL變量對按鈕進行取反操作 { Myplc.Write("DB1.DBX0.0", 1);//寫入BOOL變量 button3.BackColor = Color.Lime;//改變按鈕3顏色為綠色 } else if ((bool)Myplc.Read("DB1.DBX0.0") == true) { Myplc.Write("DB1.DBX0.0", 0);//寫入BOOL變量 button3.BackColor = Color.White;//改變按鈕3顏色為白色 } else { MessageBox.Show("讀取或寫入失敗!"); }//捕獲異常 } catch { MessageBox.Show("讀取或寫入失敗!"); }//捕獲異常 } } } |
|
---|---|---|
本帖最近評分記錄:
|
hezhen880924
級別: 略有小成
|
哈哈,做個單機軟件看看,軟件部我都看不上,總在走人。現在做軟件這么不穩定,一個項目接口對接換幾個人。 [ 此帖被hezhen880924在2025-01-10 08:57重新編輯 ] |
---|---|
|