签到有奖
消息提醒
运维工程师专区
官方商城
扫码分享好友 任选多种周边
浏览论坛发现一个C#写的与PLC通信的程序,链接为http://www.ad.siemens.com.cn/club/bbs/post_like.aspx?b_id=7&a_id=1564378
但每次只能读写一个点,于是想能不能加个IO监控功能,直接将IO点写入一个EXCEL表格,然后导入程序,这样我们在办公室就可以直接监控PLC的IO了,不必安装博途,博途确实太大了,对电脑要求太高。由于本人基础太差,只能实现初步的一个简单的功能,抛转引玉,希望大牛门能多多指点!
本文读取excel用了System.Data.OleDb类,使用前需要下载安装支持文件,下载时注意区分32或64位。
程序测试画面如下:
软件经过测试与1500连接正常,只是打开EXCEL读取时有点慢
这是打开excel的方法
public DataSet getData()
{
var path = "IO.xlsx";
string filesuffix = System.IO.Path.GetExtension(path);
if (string.IsNullOrEmpty(filesuffix))
return null;
using (DataSet ds = new DataSet())
string connString = "";
connString = "Provider = Microsoft.ACE.OLEDB.12.0;" + "Data Source =" + path + ";" + "Extended Properties = \"Excel 12.0; HDR = YES; IMEX = 1 \"";
//请注意,Extended Properties 所需的双引号字符还必须包含在双引号中//当IMEX=1 时为“汇入模式”,这个模式开启的 Excel 档案只能用来做“读取”用途。//HDR=Yes,会过滤表头内容,HDR=No,可以读取表头信息,默认情况HDR=Yes
DataTable alldata = null;
string sql_select = "SELECT* FROM[Sheet1$]";
using (OleDbConnection conn = new OleDbConnection(connString))
using (OleDbDataAdapter cmd = new OleDbDataAdapter(sql_select, conn))
NewMethod1(conn);
cmd.Fill(ds);
}
if (ds == null || ds.Tables.Count <= 0) return null;
alldata = ds.Tables[0];
RowMax = alldata.Rows.Count;
return ds;
下面是添加到ListView的方法
private void button1_Click(object sender, EventArgs e)
listView1.Items.Clear();//清空listView
this.listView1.BeginUpdate();
getData();
if (Form1.lianjie == 0)
MessageBox.Show("请连接PLC!");
for (int i = 0; i < RowMax; i++)
ListViewItem lvi = new ListViewItem();
lvi.Text = "" + i;
lvi.SubItems.Add(NewMethod().Tables[0].Rows[i].ItemArray[0].ToString());
lvi.SubItems.Add(NewMethod().Tables[0].Rows[i].ItemArray[1].ToString());
lvi.SubItems.Add(NewMethod().Tables[0].Rows[i].ItemArray[2].ToString());
if (Form1.lianjie == 1)//判断连接状态
//这句是添加读取PLC的值 lvi.SubItems.Add(S7.Form1.plc.Read(NewMethod().Tables[0].Rows[i].ItemArray[1].ToString()).ToString());
this.listView1.Items.Add(lvi);
this.listView1.EndUpdate();
程序需要改进的地方有很多,比如显示方式只有十进制的,后续有时间会增加16进制的,还有就是打开EXCEL读取太慢等等
源码与程序我已打包上传,希望大家多多指点,同时希望大家可以出更好的作品,让西门子论坛百花齐放,每个人都能在此找到自己想要的知识,谢谢!
IO监控.zip
S7NET (3).zip
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1680680&b_id=66&s_id=84
厉害了,学习学习!
学习了,谢谢分享!
谢谢分享,,,,,
先下载学习
学习一下,感谢分享,,,,
IT和自动化的融合来了。。。
就需要楼主这样的,大家多分享经验
希望论坛越来越多像楼主这样的人
感谢楼主分享
谢谢楼主,先下载学习了
谢谢分享!
,楼主是做IT出圈的?现在论坛感觉it风越刮越强
谢谢分享
谢 谢 分 享
这个高级的东西,值得学习哦
感谢分享!学习了!
谢谢楼主分享
分享
扫码分享好友 任选多种好礼
收藏
有帮助
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!
密码至少8位,包含大、小写字母,数字和符号至少三种。
允许邮箱和手机接收来自支持中心网站的信息
我已同意《支持中心网站注册协议和隐私政策》
微信登录扫码一键登录
验证码登录
密码登录
二维码失效点击重试
打开微信扫一扫,快速登录/注册
未注册手机验证后自动登录,注册即代表同意《支持中心网站注册协议和隐私政策》
三日内免验证登录
短信登录
登录