技术论坛

C#改的一个监控IO的小程序

作者 主题
侠圣

经验值: 2714
发帖数: 118
精华帖: 5
主题:【分享】C#改的一个监控IO的小程序
推荐帖


只看楼主 楼主 2021-02-17 15:45:30

浏览论坛发现一个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

侠圣

经验值: 2051
发帖数: 166
精华帖: 0
回复:C#改的一个监控IO的小程序
推荐帖


只看楼主 1楼 2021-02-17 16:32:11

厉害了,学习学习!


 
以下网友喜欢您的帖子:

  
至圣

经验值: 16430
发帖数: 2402
精华帖: 0
回复:C#改的一个监控IO的小程序
推荐帖


只看楼主 2楼 2021-02-17 16:57:05

学习了,谢谢分享!


开心每一天,懂得包容、感恩!
以下网友喜欢您的帖子:

  
奇侠

经验值: 7772
发帖数: 1150
精华帖: 1
回复:C#改的一个监控IO的小程序
推荐帖


只看楼主 3楼 2021-02-17 21:21:52

 谢谢分享,,,,,


,,
以下网友喜欢您的帖子:

  
至圣

经验值: 18932
发帖数: 2108
精华帖: 0
回复:C#改的一个监控IO的小程序
推荐帖


只看楼主 4楼 2021-02-17 21:23:11

先下载学习


 
以下网友喜欢您的帖子:

  
侠圣

经验值: 4553
发帖数: 811
精华帖: 2
回复:C#改的一个监控IO的小程序
推荐帖


只看楼主 5楼 2021-02-17 21:26:28

 学习一下,感谢分享,,,,


暂无
以下网友喜欢您的帖子:

  
至圣

经验值: 10993
发帖数: 997
精华帖: 31
回复:C#改的一个监控IO的小程序
推荐帖


只看楼主 6楼 2021-02-17 23:08:01

IT和自动化的融合来了。。。


Chance favors the prepared mind.
以下网友喜欢您的帖子:

  
侠圣

经验值: 2576
发帖数: 79
精华帖: 2
回复:C#改的一个监控IO的小程序
推荐帖


只看楼主 7楼 2021-02-18 09:17:21

就需要楼主这样的,大家多分享经验


别低估专业,别高估自己,精进的人生,从敬畏专业开始。
以下网友喜欢您的帖子:

  
侠士

经验值: 1751
发帖数: 379
精华帖: 0
回复:C#改的一个监控IO的小程序
推荐帖


只看楼主 8楼 2021-02-18 09:53:57


希望论坛越来越多像楼主这样的人


路漫漫其修远
以下网友喜欢您的帖子:

  
侠圣

经验值: 2853
发帖数: 223
精华帖: 1
回复:C#改的一个监控IO的小程序
推荐帖


只看楼主 9楼 2021-02-18 10:41:54

感谢楼主分享


 
以下网友喜欢您的帖子:

  
新手

经验值: 23
发帖数: 1
精华帖: 0
回复:C#改的一个监控IO的小程序
推荐帖


只看楼主 10楼 2021-02-18 15:34:26


谢谢楼主,先下载学习了



 
以下网友喜欢您的帖子:

  
侠圣

经验值: 2336
发帖数: 190
精华帖: 0
回复:C#改的一个监控IO的小程序
推荐帖


只看楼主 11楼 2021-02-19 08:09:45

谢谢分享!


1112让人
以下网友喜欢您的帖子:

  
至圣

经验值: 11247
发帖数: 3299
精华帖: 4
回复:C#改的一个监控IO的小程序
推荐帖


只看楼主 12楼 2021-02-19 08:21:19

谢谢楼主,先下载学习了


喜欢用SIEMENS,乐水工控生活 打造工业智能家居生活!
以下网友喜欢您的帖子:

  
至圣

经验值: 13075
发帖数: 1081
精华帖: 8
回复:C#改的一个监控IO的小程序
推荐帖


只看楼主 13楼 2021-02-19 08:31:28


,楼主是做IT出圈的?现在论坛感觉it风越刮越强


做最好的自己!活出自我!
以下网友喜欢您的帖子:

  
游侠

经验值: 529
发帖数: 46
精华帖: 0
回复:C#改的一个监控IO的小程序
推荐帖


只看楼主 14楼 2021-02-19 08:34:48

  谢谢分享


唯有努力,不负光阴。
以下网友喜欢您的帖子:

  
侠圣

经验值: 2308
发帖数: 444
精华帖: 2
回复:C#改的一个监控IO的小程序


只看楼主 15楼 2021-02-19 08:57:44


谢 谢 分 享


fighting
以下网友喜欢您的帖子:

  
侠圣

经验值: 3103
发帖数: 440
精华帖: 0
回复:C#改的一个监控IO的小程序
推荐帖


只看楼主 16楼 2021-02-19 09:38:00

 

这个高级的东西,值得学习哦


云淡风轻
以下网友喜欢您的帖子:

  
侠圣

经验值: 2130
发帖数: 80
精华帖: 0
回复:C#改的一个监控IO的小程序


只看楼主 17楼 2021-02-19 10:03:49

 

感谢分享!学习了!


 
以下网友喜欢您的帖子:

  
至圣

经验值: 10589
发帖数: 848
精华帖: 9
回复:C#改的一个监控IO的小程序


只看楼主 18楼 2021-02-19 11:46:46


  感谢楼主分享


学如逆水行舟,不进则退! wwhoho@163.com
以下网友喜欢您的帖子:

  
游民

经验值: 129
发帖数: 12
精华帖: 0
回复:C#改的一个监控IO的小程序
推荐帖


只看楼主 19楼 2021-02-19 13:50:14

谢谢楼主分享


有时候正是那些无人看好之人,成就了无人能及的成就。
以下网友喜欢您的帖子:

  
收起
C#改的一个监控IO的小程序
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。