VisualStudio2010-C#跟西門子1200(Sharp7)-簡單上位機界面?-參數(shù)
上期回顧(上期主要是對IO監(jiān)控的輸入輸出做了調(diào)試试和,基本上都能達(dá)到要求)如下圖:
本期要在補充說一個參數(shù)修改藐翎,這是作為PLC上位機也經(jīng)常用的一個,你要是看了之前的文章潘鲫,還是比較簡單的
1.0 這里簡單的復(fù)制下,上面的IO監(jiān)控注釋條燥筷,如下圖睦授,基本上不用怎么改,記住這個名字就行了撵孤,當(dāng)然最好改一個你對應(yīng)的參數(shù)名字迈着,這樣會方便后期讀
2.0 這里要設(shè)置個響應(yīng)程序,就是當(dāng)Text內(nèi)容被修改后邪码,這個響應(yīng)程序會執(zhí)行裕菠,label1_Click,如下圖,給這個復(fù)制的控件設(shè)置一個響應(yīng)程序
3.0 然后切換到代碼界面闭专,源代碼如下奴潘,先建立通訊旧烧,建立緩存區(qū),這里我們要寫如一個PLC的UDint32位的數(shù)據(jù)画髓,就是四個字節(jié)的緩存區(qū)
private void label1_Click(object sender, EventArgs e)
? ? ? ? {
? ? ? ? ? ? try
? ? ? ? ? ? {
? ? ? ? ? ? ? ? var client = new S7Client();//建立通訊
? ? ? ? ? ? ? ? client.ConnectTo(IP, 0, 1);//接受來次通訊的結(jié)果
? ? ? ? ? ? ? ? var writeBuffer = new byte[4];//新建一個字節(jié)的writeBuffer輸出緩沖區(qū)掘剪,
4.0 把輸入的在Text的數(shù)據(jù),轉(zhuǎn)換為C#的int變量(32位)奈虾,然后在寫入到緩存區(qū)中
? ? ? ? ? ? ? ? int aa = int.Parse(textBox29.Text);
? ? ? ? ? ? ? ? S7.SetDIntAt( writeBuffer,0,aa);
? ? ? ? ? ? ? ? //輸出給PLC的DB數(shù)據(jù)塊1夺谁,從地址0開始的,一個字節(jié)的傳輸
5.0 最后把這個字符數(shù)組傳送到PLC對應(yīng)的DB數(shù)據(jù)塊1肉微,從地址16開始寫入
? ? ? ? ? ? ? ? int writeReswlt = client.DBWrite(1, 16, writeBuffer.Length, writeBuffer);
? ? ? ? ? ? ? ? client.Disconnect();//斷開
? ? ? ? ? ? }
? ? ? ? ? ? catch (Exception err)
? ? ? ? ? ? {
? ? ? ? ? ? ? ? //return false;
? ? ? ? ? ? }
? ? ? ? }
6.0 最后你會看到C#這邊的界面就是這樣的匾鸥,當(dāng)寫入334后傳送給PLC,然后又讀取出來到OK_COUNT