注册名:

密码:

个人注册

企业注册

商务申请

商务管理平台

企业管理平台

个人管理平台

我的工控博客

中国工控网www.chinakong.com

首页 | 新闻中心 | 工控论坛 | 经验视点 | 工控商务 | 电气手册 | 工控博客 | 招聘求职 | 网上调查 | 企业中心 | 供求信息 | 资料中心 | 工控书店

所在位置:工控博客苑-- 充电器-- C#上位机循环读取下位机数据

中国工控网搜索:

刘先生

     学历:大学本科
     职称:工程师
     年龄:40岁
       新闻信息(1/2)
       工作图片(0)
       技术论文(0/0)
       交流论坛(0/0)
       留言信箱(3)
       浏览人次:2166

C#上位机循环读取下位机数据

发表评论(2)    发布时间:2010年5月11日  

    Setp1:创建串口对象,并配置其属性,也可以使用SerialPort控件
   
    SerialPort sp = new SerialPort();
    sp.DataBits = 8;
    sp.StopBits = StopBits.One;
    sp.ReadBufferSize = 500000;
    //读写超时,如果底层串口驱动效率问题,能有效的避免死锁
    sp.ReadTimeout = 200;
    sp.WriteTimeout = 200;
    sp.DtrEnable = true; //如果是RS232转RS485,此句必须要,否则不能通讯
    sp.NewLine = "\r\n";
    sp.Open();
   
    Step2:创建定时器对象,也可以用Timer控件
   
    Timer tScan =Timer();
    tScan.Interval = 1000;//表示一秒钟扫描一次
    tScan.Enable=true;
   
    Step3 利用ReceivedData方法接收下位机数据并显示下位机数据
    在Timer事件里添加
    byte[] Received_Datas = new byte[29];
    DataManager.ReceivedData(Received_Datas, 0, Received_Datas.Length, sp);
    //显示下位机数据
    如:txtControlVol.Text=Received_Datas.toString();
   
   
   
    /// <summary>
    /// 接收信息
    /// </summary>
    /// <param name="data">存储接收到的信息</param>
    /// <param name="offset">缓冲区数组中开始写入的偏移量</param>
    /// <param name="count">要读取的字节数</param>
    /// <param name="sp">串行口</param>
    /// <returns></returns>
    public bool ReceivedData(byte[] data, int offset, int count,SerialPort sp)
    {
    if (sp.IsOpen)
    {
    try
    {
    //System.Threading.Thread.Sleep(50);
    sp.Read(data, offset, count);
    return true;
    }
    catch
    {
    return false;
    }
    }
    else
    {
    return false;
    }
    }
   
   
    如需更复杂的通讯(如多线程监控,多设备数据并发处理)请留言给我。文字文字
 

 评论仅代表评论人个人看法,不表明博客主人及中国工控网同意其观点或其描述  共2条评论  共1页  第1页  

 评论人署名:liyiping12 评论时间:2010/9/8 17:25:00

我要发表评论 

    你好,看了你写的代码,受益匪浅,我刚学C#,在做一个通过上位机软件和下位机的通讯,采集温湿度数据,并且显示图形和数据,然后存储的上位机,对于上位机采集的方式代码和过程不是很了解,串口方面也不是很懂,希望得到指导,谢谢,我的邮箱:468024123@qq.coom
 评论人署名:tr14466 评论时间:2012/8/24 17:48:00

我要发表评论 

    你好,我正在做一个c#写的上位机软件通讯软件,但之前没做过,无从下手,希望您能多指教指教,不胜感激。我的邮箱是1072131870@qq.com(邮件联系,急急急急急),谢谢,好人一生平安。

共2条评论   共1页  第1页   

    发表评论

登陆网站发表评论

用户名:

密码:

注册 | 忘了密码
     相关博客新闻:

关于我们     免责声明     服务项目     广告联系     友情链接     联系方式     意见反馈     设为首页     加入收藏

 ©2023-2025 中国工控网(www.chinakong.com) 版权所有 豫ICP备17046657号

管理员信箱:chinakong98@163.com  服务热线:13525974529

洛阳博德工控自动化技术有限公司

中国    洛阳