毕业论文

打赏
当前位置: 毕业论文 > 自动化 >

VC基于乘客实时数据的自动扶梯变频控制软件设计(11)

时间:2017-04-11 13:34来源:毕业论文
char szTx[0x10]; // 发送缓存 char szRx[0x10]; // 接收缓存 char szCommand[0x10];// 命令 int nTx,nRx; // 缓存容量存储用 int nSum; // 求和代码计算用 BOOL bRet; int nRet; int i; //


char szTx[0x10]; // 发送缓存
char szRx[0x10]; // 接收缓存
char szCommand[0x10];// 命令
int nTx,nRx; // 缓存容量存储用
int nSum; // 求和代码计算用
BOOL bRet;
int nRet;
int i;
//     打开COM1端口     
hCom = CreateFile ("COM1", (GENERIC_READ | GENERIC_WRITE), 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
if (hCom !=NULL) {
//     进行COM1端口的通讯设定     
GetCommState (hCom,&hDcb); // 获取当前的通讯信息
hDcb.DCBlength=sizeof (DCB); // 设定结构体的大小
hDcb.BaudRate =19200; // 通讯速率=19200bps
hDcb.ByteSize =8; // 位长=8bit
hDcb.Parity =2; // 偶校验
hDcb.StopBits =2; // 停止位长=2bit
bRet=SetCommState (hCom,&hDcb); // 设定变更后的通讯信息
if (bRet == TRUE) {
//     进行COM1端口的超时设定      
GetCommTimeouts (hCom,&hTim); // 获取当前的超时值
hTim.WriteTotalTimeoutConstant=1000; // 写入超时为1秒
hTim.ReadTotalTimeoutConstant=1000; // 读取超时为1秒
SetCommTimeouts (hCom,&hTim); // 设定变更后的超时值
//     设定使站号为1的变频器切换到网络运行模式的命令      
sprintf (szCommand,"01FB10000"); // 发送数据(写入网络运行)
nTx=strlen (szCommand); // 发送数据的大小
//     生成求和代码      
nSum=0; // 求和数据的初始化
for (i=0;i < nTx;i++) {
nSum +=szCommand[i]; // 计算求和代码
nSum &= (0xff); // 屏蔽数据
}
//     生成发送数据      
memset (szTx,0,sizeof (szTx)); // 发送缓存的初始化
memset (szRx,0,sizeof (szRx)); // 接收缓存的初始化
sprintf (szTx,"\5%s%02X",szCommand,nSum);// ENQ代码+发送数据+求和代码
nTx=1 + nTx + 2; // ENQ代码数+发送数据数+求和代码数
nRet=WriteFile (hCom,szTx,nTx,&nTx,NULL);
//     发送      
if (nRet !=0) {
nRet=ReadFile (hCom,szRx,sizeof (szRx),&nRx,NULL);
//     接收      
if (nRet !=0) {
//     显示接收数据      
for (i=0;i < nRx;i++) {
printf ("%02X ", (BYTE)szRx[i]);// 输出接收数据到控制台
// 以16进制数显示ASCII码。'0'显示为30。 VC基于乘客实时数据的自动扶梯变频控制软件设计(11):http://www.youerw.com/zidonghua/lunwen_4795.html
------分隔线----------------------------
推荐内容