台达B系列触摸屏与高压变频器DSP的通讯连接测试方式..docVIP

台达B系列触摸屏与高压变频器DSP的通讯连接测试方式..doc

  1. 1、本文档共6页,可阅读全部内容。
  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文档。上传文档
查看更多
台达B系列触摸屏与高压变频器DSP的通讯连接测试方式.

台达B系列触摸屏与高压变频器DSP的通讯连接测试方式 哈尔滨机电 王鹏九 关键词:VC++软件 通讯模拟器 自由通讯宏 内容提要:本文介绍了触摸屏与特定协议的DSP进行通讯的方式,并介绍了在没有实际产品的情况下,如何验证程序及模拟通讯器的编辑方式 概述 哈尔滨JZ公司生产一型高压变频器,需要一种人机界面读取DSP当中的数据,由于其DSP的通讯方式为自己定义,不能使用已有的通讯方式进行通讯,只能应用触摸屏中的宏通讯指令和其进行通讯。为了展示我们的通讯方式正确,我还使用VC++编辑了一款模拟器,来模拟从站DSP,以得到用户的认可。 DSP的通讯协议分析 其通讯方式共有3种,其中写操作在其协议中是没有回应的,因此,不做模拟,以下为其他两种通讯协议, 读故障 F8 52校验和A0 03 1D 00 F9 (首址928(03A0),长度29(001D))6KV 校验和= A0 + 03 + 1D + 00 = C0 返回:F8 _ _ _… …_ _ _ F9(返回60 Bytes,29*2+2) 读四个显示数据 F8 55 校验和 00 FF 00 FF F9 校验和= 00 + FF + 00 + FF 码:F8 55 FE 00 FF 00 FF F9 返回: F8 频率整L, 频率整H, 频率小L/1000, 频率小H/1000, 电压整L, 电压整H, 电压小L/1000, 电压小H/1000, 实频整L, 实频整H, 实频小L/1000, 实频小H/1000, 电流整L, 电流整H, 电流小L/1000, 电流小H/1000, F9。 以上可以看出只有发送报文时才需要进行校验,而返回的报文不需要进行校验计算,校验计算以和校验为准,不同于其他类型的和校验,它的协议的和校验只校验一个字节,因此,要注意其求和后的数据处理问题。 模拟器结构 模拟器采用VC++语言编制,使用windows多线程技术来解决通讯循环的问题,在接收到触摸屏的发送字符串后,对报文进行分析,然后,根据输入框不同的数据对指令进行回复。通讯过程没有使用大家常用的MSCOMM控件,而是使用自己编制的通讯类,使用自己编制的通讯类虽然在代码的编写上有些麻烦,但也只限于第一次使用,以后可以直接引用类,并对其进行继承!而且,自己编制的通讯类在多串口通讯时,更具功效。 线程中的主要代码如下所示: UINT Comm(LPVOID pParam) { BOOL bCtrl; // int iNum=0; BYTE byRcv[50]; BYTE bySend[80]; DWORD dwRcv,dwCnt; // BYTE bySend[10]={0x10,0x00,0x80,0x00,0x7f,0x00,0x04,0xe7,0x00,0x00}; // DWORD dwNum; CString str,m_strRcv,m_strSend; // DWORD i=0; int i=0; bCtrl=TRUE; CNs_jzDlg* pdlg=(CNs_jzDlg*)pParam; do { if(pdlg-m_hCom.m_hCom!=NULL) { dwRcv=pdlg-m_hCom.ReceiveComm(byRcv); if(dwRcv!=-1) { m_strRcv.Empty(); for(dwCnt=0;dwCntdwRcv;dwCnt++) { str.Format(%x-,byRcv[dwCnt]); m_strRcv+=str; } pdlg-m_listRcv.AddString(m_strRcv); Sleep(3); switch(byRcv[1]) { case 0x55: if(byRcv[0]==0xf8) { bySend[0]=0xf8; // bySend[1]=byRcv[1]; for(i=0;i16;i++) bySend[i+1]=pdlg-byFour[i]; bySend[17]=0xf9; pdlg-m_hCom.WriteComm((char*)bySend,18); m_strSend.Empty(); for(i=0;i18;i++) { str.Format(%x-,bySend[i]); m_strSend+=str; }

文档评论(0)

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

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

1亿VIP精品文档

相关文档