⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.cpp

📁 平台:c++ builder V6.0 功能:利用串口设备通讯,
💻 CPP
📖 第 1 页 / 共 3 页
字号:
        inbuff[0]=0;
        ClearCommError(COMM.hComm,&dwError,&cs);
        if(cs.cbInQue>sizeof(inbuff)){
                PurgeComm(COMM.hComm,PURGE_RXCLEAR);
                Temp="";
                return Temp;
                }
        ReadFile(COMM.hComm,inbuff,cs.cbInQue,&nBytesRead,NULL);
        if(cs.cbInQue==0) CH=0;
        else CH=inbuff[cs.cbInQue-1];
        inbuff[cs.cbInQue]='\0';
        Temp=Temp+String(inbuff);
        dd=GetTickCount()-tt;
        if(CHK.Exit) break;
        if(dd>10000L){
           //COMM.Linked=false;
           Temp="超时";
           break;}//超时返回 限时10秒
        if(dd<=0) tt=GetTickCount();//避免循环计数
        Application->ProcessMessages();
        StatusBar1->Refresh();
        }while(!Form_Main->Stop_Check&&CH!='\x0A');//收到结束符后返回或强制返回
Edit_Data_Get->Text=Temp+"crlf";
Timer1->Enabled=true;
return Temp;
}
//--------------------------------------------------------------------------
void __fastcall TForm_Main::Link_Device()//联接设备
{
String TMP;

   COMM.hComm=NULL;
   Open_Comm();//打开端口
   if(COMM.hComm==INVALID_HANDLE_VALUE){
      StatusBar1->Panels->Items[1]->Text="端口未能打开.";
      return;
      }

   COMM.Comm_OK=false;
   Set_Comm();//设置通讯参数
   if(!COMM.Comm_OK){
      StatusBar1->Panels->Items[1]->Text=TMP+"通讯参数设置不正确.";
      CloseHandle(COMM.hComm);
      return;
      }

AnsiString CMD;
AnsiString RS,rs;
int M;

CMD="01010BE80001";
Label_Com_Hint->Caption="发送联机询问:检查M1000";
SendString(CMD);//发送联机询问:读取M1000(地址\XBE8)
RS=ReadString();

if(CMD.SubString(1,3)!=RS.SubString(2,3)){
   StatusBar1->Panels->Items[1]->Text=TMP+"设备未返回正确数据或可能尚未打开电源";
   CloseHandle(COMM.hComm);
   return;
   }
rs="X"+RS.SubString(8,2);
if(0)M=rs.ToInt()&255;
M=rs.ToInt()&1;
if(!M){
   StatusBar1->Panels->Items[1]->Text="未能联机,不明原因";
   CloseHandle(COMM.hComm);
   return;
   }
COMM.Linked=true;
StatusBar1->Panels->Items[1]->Text="联机成功";
}
//----------------------------------
void __fastcall TForm_Main::A1Click(TObject *Sender)
{
Form_File->ShowModal();
CHK.Info_Send=true;
}
//---------------------------------------------------------------------------
void __fastcall TForm_Main::BitBtn_SetClick(TObject *Sender)
{
AnsiString CMD,RS;

//Timer1->Enabled=false;

if(REPORT.CHECK_1){
   CMD="0105083DFF00";
   SendString(CMD);//发送工位1安装:强迫M61-1(地址\X083D)
   RS=ReadString();
   }
if(REPORT.CHECK_2){
   CMD="0105083EFF00";
   SendString(CMD);//发送工位2安装:强迫M62-1(地址\X083E)
   RS=ReadString();
   }
if(REPORT.CHECK_3){
   CMD="0105083FFF00";
   SendString(CMD);//发送工位3安装:强迫M63-1(地址\X083F)
   RS=ReadString();
   }
//Timer1->Enabled=true;
ShowMessage("请安装好工件,再进行下一步操作.");
}
//---------------------------------------------------------------------------

void __fastcall TForm_Main::BitBtn_ResetClick(TObject *Sender)
{
AnsiString CMD,RS;

//Timer1->Enabled=false;

if(REPORT.CHECK_1){
   CMD="0105083D0000";
   SendString(CMD);//发送工位1安装:强迫M61-0(地址\X083D)
   RS=ReadString();
   }
if(REPORT.CHECK_2){
   CMD="0105083E0000";
   SendString(CMD);//发送工位2安装:强迫M62-0(地址\X083E)
   RS=ReadString();
   }
if(REPORT.CHECK_3){
   CMD="0105083F0000";
   SendString(CMD);//发送工位3安装:强迫M63-0(地址\X083F)
   RS=ReadString();
   }
//Timer1->Enabled=true;
ShowMessage("等待设备复位后,可以进行下一步操作.");
}
//---------------------------------------------------------------------------

void __fastcall TForm_Main::BitBtn_Start_AllClick(TObject *Sender)
{
ProgressBar_Total->Position=0;
ProgressBar_Air->Position=0;
ProgressBar_In_Out->Position=0;
ProgressBar_Pause->Position=0;
BitBtn_Start1Click(this);
BitBtn_Start2Click(this);
BitBtn_Start3Click(this);
}
//---------------------------------------------------------------------------

void __fastcall TForm_Main::BitBtn_Start1Click(TObject *Sender)
{
AnsiString CMD,RS;

//Timer1->Enabled=false;
for(int i=0;i<2;i++)
if(REPORT.CHECK_1){
   CMD="01050872FF00";
   Label_Com_Hint->Caption="工位1启动";
   SendString(CMD);//强迫工位1运行:强迫M114->1(地址\X0872)
   RS=ReadString();
   }
for(int i=0;i<2;i++)
if(REPORT.CHECK_1){
   CMD="010508720000";
   Label_Com_Hint->Caption="工位1启动";
   SendString(CMD);//强迫工位1运行:强迫M114->0(地址\X0872)
   RS=ReadString();
   }

BitBtn_Set->Enabled=false;
BitBtn_Reset->Enabled=false;
BitBtn_Start_All->Enabled=false;
BitBtn_Start1->Enabled=false;

BitBtn_Stop1->Enabled=true;
BitBtn_StopAll->Enabled=true;

//Timer1->Enabled=true;
}
//---------------------------------------------------------------------------

void __fastcall TForm_Main::BitBtn_Start2Click(TObject *Sender)
{
AnsiString CMD,RS;

//Timer1->Enabled=false;
for(int i=0;i<2;i++)
if(REPORT.CHECK_2){
   CMD="01050873FF00";
   Label_Com_Hint->Caption="工位2启动";
   SendString(CMD);//强迫工位2运行:强迫M115->1(地址\X0873)
   RS=ReadString();
   }
for(int i=0;i<2;i++)
if(REPORT.CHECK_2){
   CMD="010508730000";
   Label_Com_Hint->Caption="工位2启动";
   SendString(CMD);//强迫工位2运行:强迫M115->0(地址\X0872)
   RS=ReadString();
   }

BitBtn_Set->Enabled=false;
BitBtn_Reset->Enabled=false;
BitBtn_Start_All->Enabled=false;
BitBtn_Start2->Enabled=false;

BitBtn_Stop2->Enabled=true;
BitBtn_StopAll->Enabled=true;

//Timer1->Enabled=true;
}
//---------------------------------------------------------------------------

void __fastcall TForm_Main::BitBtn_Start3Click(TObject *Sender)
{
AnsiString CMD,RS;

//Timer1->Enabled=false;
for(int i=0;i<2;i++)
if(REPORT.CHECK_3){
   CMD="01050874FF00";
   Label_Com_Hint->Caption="工位2启动";
   SendString(CMD);//强迫工位2运行:强迫M116->1(地址\X0874)
   RS=ReadString();
   }
for(int i=0;i<2;i++)
if(REPORT.CHECK_1){
   CMD="010508740000";
   Label_Com_Hint->Caption="工位3启动";
   SendString(CMD);//强迫工位2运行:强迫M116->0(地址\X0874)
   RS=ReadString();
   }

BitBtn_Set->Enabled=false;
BitBtn_Reset->Enabled=false;
BitBtn_Start_All->Enabled=false;
BitBtn_Start3->Enabled=false;

BitBtn_Stop3->Enabled=true;
BitBtn_StopAll->Enabled=true;

//Timer1->Enabled=true;
}
//---------------------------------------------------------------------------

void __fastcall TForm_Main::BitBtn_StopAllClick(TObject *Sender)
{
AnsiString CMD,RS;

BitBtn_Stop1Click(this);
BitBtn_Stop2Click(this);
BitBtn_Stop3Click(this);
//Timer1->Enabled=true;
}
//---------------------------------------------------------------------------

void __fastcall TForm_Main::BitBtn_Stop2Click(TObject *Sender)
{
AnsiString CMD,RS;

//Timer1->Enabled=false;
for(int i=0;i<2;i++)
if(REPORT.CHECK_2){
   CMD="01050931FF00";
   SendString(CMD);//发送工位2:强迫M305-1(地址\X0931)
   RS=ReadString();
   }
for(int i=0;i<2;i++)
if(REPORT.CHECK_2){
   CMD="010509310000";
   SendString(CMD);//发送工位2:强迫M305-0(地址\X0931)
   RS=ReadString();
   }

BitBtn_Set->Enabled=false;
BitBtn_Reset->Enabled=false;
BitBtn_Start_All->Enabled=false;
BitBtn_Start2->Enabled=false;

BitBtn_Stop2->Enabled=false;
BitBtn_StopAll->Enabled=true;
Shape_2_Stop->Brush->Color=clRed;

//Timer1->Enabled=true;
}
//---------------------------------------------------------------------------

void __fastcall TForm_Main::BitBtn_Stop3Click(TObject *Sender)
{
AnsiString CMD,RS;

//Timer1->Enabled=false;
for(int i=0;i<2;i++)
if(REPORT.CHECK_3){
   CMD="01050932FF00";
   SendString(CMD);//发送工位3:强迫M306-1(地址\X0932)
   RS=ReadString();
   }
for(int i=0;i<2;i++)
if(REPORT.CHECK_3){
   CMD="010509320000";
   SendString(CMD);//发送工位3:强迫M306-0(地址\X0932)
   RS=ReadString();
   }
BitBtn_Set->Enabled=false;
BitBtn_Reset->Enabled=false;
BitBtn_Start_All->Enabled=false;
BitBtn_Start3->Enabled=false;

BitBtn_Stop3->Enabled=false;
BitBtn_StopAll->Enabled=true;
Shape_3_Stop->Brush->Color=clRed;

//Timer1->Enabled=true;
}
//---------------------------------------------------------------------------

void __fastcall TForm_Main::P1Click(TObject *Sender)
{
Form_Print->ShowModal();
}
//---------------------------------------------------------------------------

void __fastcall TForm_Main::N6Click(TObject *Sender)
{
Form_Company->ShowModal();
}
//---------------------------------------------------------------------------





void __fastcall TForm_Main::BitBtn_ReportClick(TObject *Sender)
{
Form_Print->ShowModal();
BitBtn_End->Enabled=true;     
}
//---------------------------------------------------------------------------

void __fastcall TForm_Main::S3Click(TObject *Sender)
{
BitBtn_Start_AllClick(this);        
}
//---------------------------------------------------------------------------

void __fastcall TForm_Main::N10Click(TObject *Sender)
{
BitBtn_StopAllClick(this);        
}
//---------------------------------------------------------------------------

void __fastcall TForm_Main::BitBtn_EndClick(TObject *Sender)
{
Timer1->Enabled=true;
BitBtn_StopAllClick(this);      
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -