夏普空調(diào)TIMER亮黃燈怎么回事(夏普空調(diào)亮黃燈怎么回事)
前沿拓展:
VisualStudio2010-C#跟西門子1200(Sharp7)-簡(jiǎn)單上位機(jī)界面⑨-IO
上期回顧(上期主要是對(duì)PLC的輸出監(jiān)控代碼進(jìn)行了編寫(xiě),讓其在定時(shí)器響應(yīng)程序中,不斷實(shí)時(shí)讀取PLC,到這里IO監(jiān)控的輸入輸出讀取都已經(jīng)實(shí)現(xiàn)了)
本期將調(diào)試下,看是不是能實(shí)時(shí)讀取到PLC輸入輸出的狀態(tài)
1.0 先看下我們前面制作的界面,大體上是這樣的
2.0 然后我們的代碼應(yīng)該是這樣的
private void timer1_Tick(object sender, EventArgs e)
{
var client = new S7Client();//創(chuàng)建S7客戶端對(duì)象
client.ConnectTo("192.168.0.1", 0, 1);//接受來(lái)次通訊的結(jié)果
#region PLC輸入監(jiān)控
var buffer = new byte[4];//建立4個(gè)字節(jié)的讀取緩存區(qū)
//讀取輸入的從地址0開(kāi)始的4個(gè)字節(jié)的數(shù)據(jù),讀到buffer
client.EBRead(0, buffer.Length, buffer); //PLC的輸入讀取
bool db1dbx00 = S7.GetBitAt(buffer, 0, 0);
if (db1dbx00 == true)
{
I0_0.BackColor = Color.Green;
}
else
{
I0_0.BackColor = Color.WhiteSmoke;
}
bool db1dbx01 = S7.GetBitAt(buffer, 0, 1);
if (db1dbx01 == true)
{
I0_1.BackColor = Color.Green;
}
else
{
I0_1.BackColor = Color.WhiteSmoke;
}
bool db1dbx02 = S7.GetBitAt(buffer, 0, 2);
if (db1dbx02 == true)
{
I0_2.BackColor = Color.Green;
}
else
{
I0_2.BackColor = Color.WhiteSmoke;
}
bool db1dbx03 = S7.GetBitAt(buffer, 0, 3);
if (db1dbx03 == true)
{
I0_3.BackColor = Color.Green;
}
else
{
I0_3.BackColor = Color.WhiteSmoke;
}
bool db1dbx04 = S7.GetBitAt(buffer, 0, 4);
if (db1dbx04 == true)
{
I0_4.BackColor = Color.Green;
}
else
{
I0_4.BackColor = Color.WhiteSmoke;
}
bool db1dbx05 = S7.GetBitAt(buffer, 0, 5);
if (db1dbx05 == true)
{
I0_5.BackColor = Color.Green;
}
else
{
I0_5.BackColor = Color.WhiteSmoke;
}
bool db1dbx06 = S7.GetBitAt(buffer, 0, 6);
if (db1dbx06 == true)
{
I0_6.BackColor = Color.Green;
}
else
{
I0_6.BackColor = Color.WhiteSmoke;
}
bool db1dbx07 = S7.GetBitAt(buffer, 0, 7);
if (db1dbx07 == true)
{
I0_7.BackColor = Color.Green;
}
else
{
I0_7.BackColor = Color.WhiteSmoke;
}
bool db1dbx10 = S7.GetBitAt(buffer, 1, 0);
if (db1dbx10 == true)
{
I1_0.BackColor = Color.Green;
}
else
{
I1_0.BackColor = Color.WhiteSmoke;
}
bool db1dbx11 = S7.GetBitAt(buffer, 1, 1);
if (db1dbx11 == true)
{
I1_1.BackColor = Color.Green;
}
else
{
I1_1.BackColor = Color.WhiteSmoke;
}
bool db1dbx20 = S7.GetBitAt(buffer, 2, 0);
if (db1dbx20 == true)
{
I2_0.BackColor = Color.Green;
}
else
{
I2_0.BackColor = Color.WhiteSmoke;
}
bool db1dbx21 = S7.GetBitAt(buffer, 2, 1);
if (db1dbx21 == true)
{
I2_1.BackColor = Color.Green;
}
else
{
I2_1.BackColor = Color.WhiteSmoke;
}
bool db1dbx22 = S7.GetBitAt(buffer, 2, 2);
if (db1dbx22 == true)
{
I2_2.BackColor = Color.Green;
}
else
{
I2_2.BackColor = Color.WhiteSmoke;
}
bool db1dbx23 = S7.GetBitAt(buffer, 2, 3);
if (db1dbx23 == true)
{
I2_3.BackColor = Color.Green;
}
else
{
I2_3.BackColor = Color.WhiteSmoke;
}
bool db1dbx24 = S7.GetBitAt(buffer, 2, 4);
if (db1dbx24 == true)
{
I2_4.BackColor = Color.Green;
}
else
{
I2_4.BackColor = Color.WhiteSmoke;
}
bool db1dbx25 = S7.GetBitAt(buffer, 2, 5);
if (db1dbx25 == true)
{
I2_5.BackColor = Color.Green;
}
else
{
I2_5.BackColor = Color.WhiteSmoke;
}
bool db1dbx26 = S7.GetBitAt(buffer, 2, 6);
if (db1dbx26 == true)
{
I2_6.BackColor = Color.Green;
}
else
{
I2_6.BackColor = Color.WhiteSmoke;
}
bool db1dbx27 = S7.GetBitAt(buffer, 2, 7);
if (db1dbx27 == true)
{
I2_7.BackColor = Color.Green;
}
else
{
I2_7.BackColor = Color.WhiteSmoke;
}
bool db1dbx30 = S7.GetBitAt(buffer, 3, 0);
if (db1dbx30 == true)
{
I3_0.BackColor = Color.Green;
}
else
{
I3_0.BackColor = Color.WhiteSmoke;
}
bool db1dbx31 = S7.GetBitAt(buffer, 3, 1);
if (db1dbx31 == true)
{
I3_1.BackColor = Color.Green;
}
else
{
I3_1.BackColor = Color.WhiteSmoke;
}
#endregion
#region PLC輸出監(jiān)控
var buffer2 = new byte[4];//建立4個(gè)字節(jié)的讀取緩存區(qū)
//讀取輸入的從地址0開(kāi)始的4個(gè)字節(jié)的數(shù)據(jù),讀到buffer
client.ABRead(0, buffer2.Length, buffer2); //PLC的輸出讀取
bool db1dby00 = S7.GetBitAt(buffer2, 0, 0);
if (db1dby00 == true)
{
Q0_0.BackColor = Color.Green;
}
else
{
Q0_0.BackColor = Color.WhiteSmoke;
}
bool db1dby01 = S7.GetBitAt(buffer2, 0, 1);
if (db1dby01 == true)
{
Q0_1.BackColor = Color.Green;
}
else
{
Q0_1.BackColor = Color.WhiteSmoke;
}
bool db1dby02 = S7.GetBitAt(buffer2, 0, 2);
if (db1dby02 == true)
{
Q0_2.BackColor = Color.Green;
}
else
{
Q0_2.BackColor = Color.WhiteSmoke;
}
bool db1dby03 = S7.GetBitAt(buffer2, 0, 3);
if (db1dby03 == true)
{
Q0_3.BackColor = Color.Green;
}
else
{
Q0_3.BackColor = Color.WhiteSmoke;
}
bool db1dby20 = S7.GetBitAt(buffer2, 2, 0);
if (db1dby20 == true)
{
Q2_0.BackColor = Color.Green;
}
else
{
Q2_0.BackColor = Color.WhiteSmoke;
}
bool db1dby21 = S7.GetBitAt(buffer2, 2, 1);
if (db1dby21 == true)
{
Q2_1.BackColor = Color.Green;
}
else
{
Q2_1.BackColor = Color.WhiteSmoke;
}
bool db1dby22 = S7.GetBitAt(buffer2, 2, 2);
if (db1dby22 == true)
{
Q2_2.BackColor = Color.Green;
}
else
{
Q2_2.BackColor = Color.WhiteSmoke;
}
bool db1dby23 = S7.GetBitAt(buffer2, 2, 3);
if (db1dby23 == true)
{
Q2_3.BackColor = Color.Green;
}
else
{
Q2_3.BackColor = Color.WhiteSmoke;
}
#endregion
#region DB塊數(shù)據(jù)讀取
///******************************
var buffer3 = new byte[8];
//讀取DB1的從地址0開(kāi)始的38個(gè)字節(jié)的數(shù)據(jù),讀到buffer
client.DBRead(1,16, buffer3.Length, buffer3); //PLC的輸出讀取
int db1da16 = S7.GetDIntAt(buffer3, 0);
OK_A.Text = db1da16.ToString();
int db1da20 = S7.GetDIntAt(buffer3, 4);
NOK_A.Text = db1da20.ToString();
var buffer4 = new byte[8];
//讀取DB1的從地址0開(kāi)始的38個(gè)字節(jié)的數(shù)據(jù),讀到buffer
client.DBRead(5, 16, buffer4.Length, buffer4); //PLC的輸出讀取
int db1da160 = S7.GetDIntAt(buffer4, 0);
OK_B.Text = db1da160.ToString();
int db1da200 = S7.GetDIntAt(buffer4, 4);
NOK_B.Text = db1da200.ToString();
//******************************/
#endregion
time_num = time_num + 1;
label5.Text = time_num.ToString();
client.Disconnect();//斷開(kāi)
}
3.0 PLC這邊要做個(gè)手動(dòng)置位輸出點(diǎn)的編輯,如下圖,當(dāng)變量"MUN".Static_1等于1時(shí),Q0.0導(dǎo)通,這樣類似的做幾個(gè),等會(huì)調(diào)試用
4.0 保存,按F5調(diào)試
5.0 PLC按監(jiān)控,然后修改變量"MUN".Static_1修改操作數(shù)為1,這時(shí)候就強(qiáng)制導(dǎo)通了Q0.0
6.0 這時(shí)候回到看下C#界面,代表Q0.0的點(diǎn)亮了,
7.0 如果外部強(qiáng)制給一個(gè)輸入給PLC,你就會(huì)發(fā)現(xiàn)對(duì)應(yīng)的輸入點(diǎn),其他應(yīng)該也是OK的
拓展知識(shí):
- 1海信42k11p怎么折開(kāi)(海信42K11P:全方位展示超清畫(huà)質(zhì))
- 2電視頻道沒(méi)了怎么恢復(fù)(快速解決方法)
- 3Fardior燃?xì)庠钍酆缶S修電話號(hào)碼查詢(Fardior燃?xì)庠钍酆缶S修電話查詢)
- 4艾木歐防盜門沒(méi)電打不開(kāi)怎么辦(艾木歐防盜門沒(méi)電無(wú)法啟動(dòng)?解決方法總結(jié))
- 5ENS指紋鎖售后熱線(ENS指紋鎖售后熱線-專業(yè)解決您的問(wèn)題)
- 6打電話顯示關(guān)機(jī)是什么原因(如何解決手機(jī)無(wú)法接通問(wèn)題)。
- 7v500hk1 cs5故障維修(v500hk1 cs5故障維修指南)
- 8創(chuàng)維液晶電視的遙控器怎么調(diào)試(創(chuàng)維電視遙控器調(diào)試指南)
- 9林內(nèi)空氣能售后服務(wù)官網(wǎng)熱線(林內(nèi)空氣能售后服務(wù)官網(wǎng)熱線)
- 10朝友精工保險(xiǎn)柜24小時(shí)售后電話(朝友精工保險(xiǎn)柜24小時(shí)售后電話 - 完善24小時(shí)保