VCMSCOMM 发送数据问题

qq_26840477 2017-11-20 10:05:48
我想用MSCOMM控件发送两个数据,两个数据发送到不同的地址,但是问题是,我按下面的代码来PLC没反应,如果只发一个数据PLC就能收到,求助高手,这什么原因啦。
[code=c][/void COMRONDlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
if (!m_ctrlComm.get_PortOpen())
AfxMessageBox(_T("please open serial port"));

CByteArray time;
CByteArray M10;
BYTE commstr[8];
UpdateData(true);

commstr[0] = 0x01;
commstr[1] = 0x06;
commstr[2] = 0x00;
commstr[3] = 0x64;
commstr[4] = (int(m_send) & 0xFF00) >> 8;
commstr[5] = int(m_send) & 0x00FF;
USHORT CRC = CRC16((UCHAR *)commstr, 6);
commstr[6] = (CHAR)(CRC & 0xFF);
commstr[7] = (CHAR)((CRC & 0xFF00) >> 8);

for (int i = 0; i < 8; i++)
{
time.Add(commstr[i]);
}

m_ctrlComm.put_Output(COleVariant(time));

//commstr[0] = 0x01;
//commstr[1] = 0x05;
//commstr[2] = 0x00;
//commstr[3] = 0x0A;
//commstr[4] = 0xFF;
//commstr[5] = 0x00;
//CRC = CRC16((UCHAR *)commstr, 6);
//commstr[6] = (CHAR)(CRC & 0xFF);
//commstr[7] = (CHAR)((CRC & 0xFF00) >> 8);

//for (int i = 0; i < 8; i++)
//{
// M10.Add(commstr[i]);
//}

//m_ctrlComm.put_Output(COleVariant(M10));

//m_ctrlComm.put_OutBufferCount(0);

}code]
...全文
102 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_26840477 2017-11-23
  • 打赏
  • 举报
回复
可行,但是速度下来了,还有什么好的方法来解决吗?
kuangbao9 2017-11-21
  • 打赏
  • 举报
回复
两笔数据之间要Sleep(100),你试一下效果

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧