Modbus串口编程

Modbus串口编程

ID:37848772

大小:124.50 KB

页数:5页

时间:2019-06-01

Modbus串口编程_第1页
Modbus串口编程_第2页
Modbus串口编程_第3页
Modbus串口编程_第4页
Modbus串口编程_第5页
资源描述:

《Modbus串口编程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、{charlstr,hstr=str[i];if(hstr==''){i++;continue;}i++;if(i>=len)break;lstr=str[i];hexdata=ConvertHexChar(hstr);lowhexdata=ConvertHexChar(lstr);if((hexdata==16)

2、

3、(lowhexdata==16))break;elsehexdata=hexdata*16+lowhexdata;i++;senddata[hexdatalen]=(char)hexdata;hexdatalen++;}senddata.

4、SetSize(hexdatalen);returnhexdatalen;}charCModbusDlg::ConvertHexChar(charch){if((ch>='0')&&(ch<='9'))returnch-0x30;elseif((ch>='A')&&(ch<='F'))returnch-'A'+10;elseif((ch>='a')&&(ch<='f'))returnch-'a'+10;elsereturn(-1);}然后接在(3)的后面写——//发送数据CStringstr="12FA";CByteArrayhexdata;intle

5、n=String2Hex(str,hexdata);//len用于计算发送了多少个十六进制数m_MSComm.SetOutput((COleVariant)hexdata);//发送十六进制数据Sleep(1000);(5)接收数据:在MFC的类向导中,为MSComm控件添加一个成员函数OnOnCommMscomm1(),然后编辑代码:voidCModbusDlg::OnOnCommMscomm1(){//TODO:Addyourcontrolnotificationhandlercodehere//接收数据VARIANTvariant_inp;COl

6、eSafeArraysafearray_inp;LONGlen,k;BYTErxdata[2048];//设置BYTE数组CStringstrtemp,str;BYTEbt;intresEvent;resEvent=m_MSComm.GetCommEvent();if(resEvent==2){variant_inp=m_MSComm.GetInput();//读缓冲区safearray_inp=variant_inp;//VARIANT型转为ColeSafeArray型len=safearray_inp.GetOneDimSize();//得到有效数

7、据长度for(k=0;k

8、Comm控件打开“Project->AddToProject->ComponentsandControls->RegisteredActivexControls”,然后选择控件:MicrosoftCommunicationsControl,version6.0插入到当前的工程中。这样就将类CMSComm的相关文件mscomm.cpp和mscomm.h一并加入到了工程中。再将控件对话中的MSComm控件拖至你的应用对话框中,用MFC类向导给其添加变量m_MSComm。(3)串口初始化:在CModbusDlg::OnInitDialog()函数中//TOD

9、O:Addextrainitializationhereif(m_MSComm.GetPortOpen())//如果串口是打开的,则先关闭串口{m_MSComm.SetPortOpen(FALSE);}m_MSComm.SetCommPort(4);//选择COM4m_MSComm.SetInBufferSize(1024);//接收缓冲区m_MSComm.SetOutBufferSize(1024);//发送缓冲区m_MSComm.SetInputLen(0);//设置当前接收区长度为0,表示全部读取m_MSComm.SetInputMode(1);

10、//以二进制方式读写数据m_MSComm.SetRThreshold(1);//接收缓冲区有1

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。