VisualStudio2010-C#跟西门子1200(Sharp7)-简单上位机界面③-按钮
上期回顾(上期主要是对启动,停止,复位,清零按钮等进行了代码功能的编写,功能简单,但是实现的比较复杂)
本期将对上面讲过的复杂的代码进行瘦身,用一个更简单的代码来替代,是代码的可读性更强
1.0 这里我们可以能够新建一个方法,然后调用方法来解决代码臃肿的问题,这样就简单一点,怎么写呢?代码差不多,就是换个门头,具体源代码如下:
大概解释下,首先这个门头,我们新建一个无返回值的的方法,因为我们现在建立一个针对按钮的方法,我们就命名buttton,然后看里面,建立通讯这个不变,最起码在这个程序中肯定不会太会变,所有不用参数替代,再看第三行,缓冲区,字节数因为我们仅针对按钮,所以个字节一般都够了,所以也不设参数了,再往下第四行,这里要给这个字节的具体位写入具体值了,这里就需要用参数bit_num,和vale来分别替代具体值,第五行,这里是写目标的数据块和地址,每个按钮肯定不一样的,所以这里我们用db_num和IP_num来代替
public void button(int bit_num,bool vale,int db_num,int IP_num)//string[] args
{
var client = new S7Client();//建立通讯
client.ConnectTo("192.168.0.1", 0, 1);//接受来次通讯的结果
var writeBuffer = new byte[1];//新建一个字节的writeBuffer输出缓冲区,
S7.SetBitAt(ref writeBuffer, 0, bit_num, vale);
//输出给PLC的DB数据块1,从地址0开始的,一个字节的传输
int writeReswlt = client.DBWrite(db_num, IP_num, writeBuffer.Length, writeBuffer);
client.Disconnect();//断开
}
3.0 就用启动来说,具体的引用如下图,一行就写完了
private void button1_Click(object sender, EventArgs e)
{
button(0,true,1,14);
}
4.0 如上所示,其他的复位,停止,清零都可以用这个替代
5.0 保存,按F5调试,这时候结果应该是一样的