VisualStudio2010-C#跟西門子1200(Sharp7)-簡單上位機(jī)界面⑩-IO
上期回顧(上期主要是對讀取PLC的IO狀態(tài)進(jìn)行了調(diào)試測試,可以看到當(dāng)PLC有輸入輸出時,相應(yīng)點(diǎn)位會顯示綠色指示燈,這樣就實(shí)現(xiàn)了IO的監(jiān)控)
本期將做一個手動強(qiáng)制輸出的功能,讓C#界面能夠手動控制PLC的各種輸出
1.0 切換到窗口界面唧喉,左上角的工具箱,選擇button添加一個,然后修改參數(shù)仇让,
(Name) = Q0_0_EN
Size = 75,23
Text = 打開/關(guān)閉
像這樣的依次做8個典奉,按鈕名稱對應(yīng)需要控制的輸出點(diǎn),這樣容易看清楚
2.0 雙擊按鈕妹孙,生成代碼秋柄,首先建立通訊,跟之前差不多
private void Q0_0_EN_Click_1(object sender, EventArgs e)
? ? ? ? {
? ? ? ? ? ? var client = new S7Client();//建立通訊
? ? ? ? ? ? int comectionResult = client.ConnectTo("192.168.0.1", 0, 1);//接受來次通訊的結(jié)果
3.0 建立讀寫緩存區(qū)
? ? ? ? ? ? var writeBuffer = new byte[1];//新建一個字節(jié)的writeBuffer輸出緩沖區(qū)蠢正,
4.0 判斷現(xiàn)在輸出Q點(diǎn)的狀態(tài)骇笔,然后置反,這里我們用的是字節(jié)來手動輸出Q點(diǎn)
? ? ? ? ? ? if (Q0_0.BackColor == Color.Green)
? ? ? ? ? ? {
? ? ? ? ? ? ? ? S7.SetByteAt(writeBuffer, 0, 0);
? ? ? ? ? ? ? ? client.DBWrite(3, 0, writeBuffer.Length, writeBuffer);
? ? ? ? ? ? ? ? client.Disconnect();//斷開
? ? ? ? ? ? }
? ? ? ? ? ? else
? ? ? ? ? ? {
? ? ? ? ? ? ? ? S7.SetByteAt(writeBuffer, 0, 1);
? ? ? ? ? ? ? ? client.DBWrite(3, 0, writeBuffer.Length, writeBuffer);
? ? ? ? ? ? ? ? client.Disconnect();//斷開
? ? ? ? ? ? }
? ? ? ? }
5.0 這樣我們強(qiáng)制PLC輸出的代碼就寫好了