基于串口仿真的研发及应用.docVIP

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于串口仿真的研发及应用

基于C#的模拟串口通信的研究与应用 黄一鸣 (广西机械工业研究院,广西 南宁 530001) 摘要:采用Asp.Net(C#)和串口通信仿真系统,根据不同型号地磅的数据协议规则,模拟地磅称重向串口连续发送数据,C#根据接收到的十六进制数据进行截取转化计算,实时显示称重重量,很好地解决了程序开发过程中调试问题,极大缩短了系统开发时间,提高了系统稳定性。 关键字:Asp.Net(C#);模拟串口;地磅称重 地磅也被称为汽车衡,是大宗货物计量的主要称重设备。串口因具有接线简单、传输距离长、稳定可靠等优点,而广泛应用于工业控制系统之中,是计算机与地磅等硬件设备进行数据通信的重要方式之一。由于地磅的特殊性及串口独占性,给程序开发调试及系统实施带来了诸多不利因素,因此,本文提出一种基于串口仿真的地磅模拟系统,根据不同型号地磅的数据协议规则,向串口连续发送数据,C#根据接收到的十六进制数据进行截取转化计算,实时显示称重重量,模拟开发系统可直接通过串口连接实物,极大缩短了系统开发时间,提高了系统稳定性。 1、虚拟串口 虚拟串口是用操作系统的虚拟驱动技术产生的串口,相对于计算机本身的硬件串口来说虚拟串口并不对应一个物理上的串口,但是计算机应用软件可以像硬件串口一样地使用虚拟串口,对于串口软件来说虚拟串口和硬件串口并没有区别。本文采用虚拟串口工具(Virtual Serial Port Driver 6.9)添加两个虚拟串口Com3及Com4,实现数据的发送与接收。 图1 虚拟串口 2、串口调试 利用虚拟串口Com3,设置波特率、校验位、数据位及停止位等参数,根据不同型号地磅的数据协议规则,向Com3连续发送十六进制数据。本文采用托利多型号数据规则进行数据模拟,数据输出格式为:02 72 60 20 30 30 36 36 37 35 30 30 30 30 30 30 0D 4E。 图2 托利多输出格式 其中: 1.起始符 (02H) 2.状态字 A、B、C. 3.显示重量,6位不带符号和小数点的数字 4.皮重值,6位不带字符和小数点的数字 5.结束符(0DH).波特率、校验位、数据位、停止位参照实际地磅设置参数. 图3 模拟串口发送数据 3、系统开发 (1)串口初始化 采用C#的SerialPort类PortName、BaudRate、DataBits、Parity、StopBits属性设置通讯格式中的串口名、波特率、数据位、校验位、停止位参数配置与图serialPort.PortName = Com3; serialPort.BaudRate = 9600; serialPort.DataBits = 8; serialPort.Parity = Parity.None; serialPort.StopBits= StopBits.One; (2)数据接收与处理 采用C#的SerialPort类DataReceived事件接收串口发送的数据,根据数的ASCII表进行十进制转化,在根据长度if (receivedData[i] 47 receivedData [i] 59) //接收的数据 { data[i] = Convert.ToByte(receivedData [i] - 48);//十进制数组} double weight = 0; //定义重量 for (int i = 0; i data.Length; i++) {//根据十进制数组按个、十、百、千位进行累加weight += Convert.ToInt32(data[i] * Math.Pow(10, data.Length - i - 1)); } 图4 运行效果 4、结论 (1)采用串口仿真技术有效解决了地磅等实物不宜调试的问题,提高了程序开发效率。 (2)有效解决了系统连续运行稳定性问题,仿真技术可直接应用到实际项目中。 [参考文献] [1] 翟希述,王宝兴,范淼.基于Visual C#的串口通信程序设计[J].电子科技,2011,24(2) [2] 习森.地磅系统的设计与实现[C].[硕士学位论文] 华中科技大学,2011 作者简介: 黄一鸣:1978年10月,男,广西融安,本科,现任职于广西机械工业研究院,高级工程师。主要研究制糖、造纸行业的软件研发与信息化实施。 基金项目:广西科学研究与技术开发计划项目(桂科攻1598010-5)

文档评论(0)

liudao + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档