工业控制中的远程通信相关,为何自己会忽然停止? 200 分
出现问题都有半年多了,这次是真的必需要解决的了
我已在每年函数前做了程序运行记录,停止时的记录如下:
2003年 4月16日 10:10: 4: 50 : 站点名: 调度室 类型号: 1 动作: SendCmdToRemote 开始执行
2003年 4月16日 10:10: 4: 50 : 站点名: 调度室 类型号: 1 动作: 发送遥测量B帧 24 个,共分 12 帧
2003年 4月16日 10:10: 4: 50 : 站点名: 调度室 类型号: 1 动作: 遥测量B帧已准备完成
2003年 4月16日 10:10: 4: 50 : 站点名: 调度室 类型号: 1 动作: 发送准备好的<B>帧数据
2003年 4月16日 10:10: 4:100 : ======> 串口号: 1 要求发送84,地址718e24,发送缓冲0,接收缓冲0
在这里就停了,下面是记录这段记录的代码:
strLogMsg.Format("要求发送%d,地址%x,发送缓冲%d,接收缓冲%d",dwBytesToWrite,lpCommand,ComStat.cbOutQue,ComStat.cbInQue);
WriteRunLog(strLogMsg);
fWriteStat = WriteFile( IoInfoData.idComDev , lpCommand, dwBytesToWrite,
&dwBytesWritten,NULL) ;
其中文件打开时的方法:
IoInfoData.idComDev = CreateFile(szPort,GENERIC_READ|GENERIC_WRITE,
0,
NULL,
OPEN_EXISTING,
NULL,
NULL);
没有使用 OverLapped 参数,是直接发送完成才退出的。
查了两个星期了,定们到这里,我实在是没有半法解释这个问题了,可是问题还要解决
我出差中,有没有人也遇到这样的问题?大家讨论一下,可能会是什么原因? 和硬件上设置是不是有相关的地方?