圖片:
簡單寫了個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()//創(chuàng)建連接PLC方法
{
try
{
Myplc = new Plc(CpuType.S71500, IP, 0, 1);//實例化PLC對象
}
catch { MessageBox.Show("連接失敗!"); }
}
public Form1()
{
InitializeComponent();
Connect();//調(diào)用連接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();//關(guān)閉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("讀取或?qū)懭胧。?quot;); }//捕獲異常
}
catch { MessageBox.Show("讀取或?qū)懭胧。?quot;); }//捕獲異常
}
}
}