📄 main.~cpp
字号:
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 + -