基于C#的XMTJ系列温度巡检仪通讯软件设计.docxVIP

基于C#的XMTJ系列温度巡检仪通讯软件设计.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
温度巡检仪通讯软件设计之前介绍了CAL温度巡检仪的通讯基础知识,本文详细介绍巡检仪通讯软件的实现。由于之前在测试巡检仪的时候,发现现场显示与我们HMI上的显示不一致,那么就想检查一下巡检仪发送的数据是否正确,当然我们可以通过串口调试助手给巡检仪发送指令来读取温度,但是每一次都要手动计算校验很麻烦,于是打算自己编个小软件来实现巡检,下面介绍一下实现方法。首先来看下巡检仪的通讯方式,CAL所使用的温度巡检仪都是XMTJ系列,查阅手册可知XMTJ温度巡检仪表使用异步串行通讯接口,电平符合RS485标准中的规定。数据格式为1个起始位,8位数据位,无校验位, 2个停止位。仪表的地址代号由参数T2(仪表地址)+80H。 T2是仪表的菜单内部地址参数。XMTJ温度巡检仪通讯协议规定,地址代号为两个个字节,其数值范围(16进制)是80H-BFH,两个字节必需相同,数值为“仪表地址+80H”。例如,仪表参数T2=10(16进制数为0AH,OA+80H=8AH),则该仪表的地址代号表示为:8AH 8AH通道参数代号如下:1BH 27 1信道温度1CH 28 2信道温度1DH 29 3信道温度1EH 30 4信道温度1FH 31 5信道温度…2AH16信道温度读指令:地址代号+52H(82)+要读参数的代号+0+0+CRC校验码CRC校验码为:要读参数的代号*256+82+T2 ,T2是仪表地址参数值,范围是0~100(注意不要加上80H)。CRC为以上数转换成16进制得到的数值(溢出部分不处理),为2个字节,其低字节在前,高字节在后。仪表返回以下数据:信道号+温度值+报警状态+所读参数值+CRC校验码:其中信道号占1个字节,温度值占2个字节,报警状态占1个字节,参数值占2个字节,数值范围0~220, CRC校验码占2个字节,共8个字节。每2个8位字节代表一个16位整数,低字节在前,高字节在后。先对仪表进行设置,默认通讯参数就是1个起始位,8位数据位,无校验位, 2个停止位,无需再次设置,这里介绍下设置步骤:在主画面按SET键,进入菜单,下排显示参数符号,上排显示设置值。进入菜单后,此时您只要按动▲键或▼键,即可对仪表进行规定范围内任意值设定(0~200)。长按▲键或▼键可实现快速连减或快速连加。当LK=155时,如下图:SET 按鍵按SET键,开始对巡检仪开始参数设定。设置完再按SET键对下一个参数设置,在此不一一赘述,下图是巡检仪地址接口:當前地址:4地址參數设置完参数后,再把巡检仪和计算机连接起来,如下:巡檢儀485接口232轉485轉接頭:A+:接巡檢儀485+B-:接巡檢儀485-GND:不接1.選擇串口,打開,默認COM1巡檢儀當前通道14,溫度36.8硬件连接好之后,再打开自己编写的软件,接口如下:3.點擊巡檢2.輸入當前巡檢儀地址14通道溫度值,可以和上圖巡檢儀實際值對比巡检模式会从信道1至信道16依次读取温度,若不需要巡检,可以手动选择通道后点击“手动”。通过此,可以确认巡检仪通过RS485发送的数据是否和巡检仪本身的显示一致,当然在这过程中,也学习到了串口通讯的知识并在实际测试中有了进一步了解。附源代码:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.IO.Ports; //声明串口类using System.Threading; //声明线程类namespace YPC_TEMP{publicpartialclassForm1 : Form {publicSerialPort _serialPort;int cycleFlag = 0; //巡检标志位int cycleFlag_m = 0; //手动标志位int chan = 1; //默认巡检通道string[] sendbuff;//串口发送字符串数据int timeout = 1500;//巡检时间间隔public Form1() { InitializeComponent();string[] ports = SerialPort.GetPortNames();Array.Sort(ports); comboBox1.Items.AddRange(ports); comboBox1.SelectedIndex = comboBox1.It

您可能关注的文档

文档评论(0)

企管文库 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档