类别:程序开发
日期:2022-02-08 浏览:4512 评论:0
完整程序包和S7.Net库及使用说明:
上传个界面让大家看的更明白一些,感觉我的命名还可以,应该都能直接看懂吧,看不懂我也没办法了~
废话不说直接上代码:
Plc S71200;//声明一个类型为PLC的内部变量 private void Form1_Load(object sender, EventArgs e) { comDT.Items.Add("Int"); comDT.Items.Add("DInt"); comDT.Items.Add("Real"); comDT.Text = "Real"; } //连接 private void btnLink_Click(object sender, EventArgs e) { //创建连接对象 S71200 = new Plc(CpuType.S71200, txtAddress.Text, Convert.ToInt16(txtRack.Text), Convert.ToInt16(txtSlot.Text)); S71200.Open(); } //断开 private void btnBreak_Click(object sender, EventArgs e) { S71200.Close(); } //读数据 private void btnRead_Click(object sender, EventArgs e) { //浮点 if(comDT.Text=="Real") { double MyPlcData = ((uint)S71200.Read("DB" + txtDB.Text + "." + "DBD" + txtStart.Text)).ConvertToDouble(); MessageBox.Show(MyPlcData.ToString()); } //整数 else if(comDT.Text == "Int") { short MyPlcData = ((ushort)S71200.Read("DB" + txtDB.Text + "." + "DBW" + txtStart.Text)).ConvertToShort(); MessageBox.Show(MyPlcData.ToString()); } //双整数 else if(comDT.Text =="DInt") { int MyPlcData = ((uint)S71200.Read("DB" + txtDB.Text + "." + "DBD" + txtStart.Text)).ConvertToInt(); MessageBox.Show(MyPlcData.ToString()); } } //写PLC private void btnWrite_Click(object sender, EventArgs e) { //浮点 if (comDT.Text == "Real") { double MyData = Convert.ToDouble(txtWrite.Text); S71200.Write("DB" + txtDB.Text + "." + "DBD" + txtStart.Text,MyData.ConvertToUInt()); } //整数 else if (comDT.Text == "Int") { short MyData = Convert.ToInt16(txtWrite.Text); S71200.Write("DB" + txtDB.Text + "." + "DBW" + txtStart.Text,MyData.ConvertToUshort()); } //双整数 else if (comDT.Text == "DInt") { int myData = Convert.ToInt32(txtWrite.Text); S71200.Write("DB" + txtDB.Text + "." + "DBD" + txtStart.Text,myData); } }
中文版文档
本文标题:C#使用S7.Net.DLL连接PLC,读写数据
本文链接:https://vtzw.com/post/885.html
版权声明:本文不使用任何协议授权,您可以任何形式自由转载或使用。
发表评论 / 取消回复