工业机器人离线编程(FANUC) 课件 12-O-F-111(机器人仿真ROBOGUIDE定时软件的制作)_第1页
工业机器人离线编程(FANUC) 课件 12-O-F-111(机器人仿真ROBOGUIDE定时软件的制作)_第2页
工业机器人离线编程(FANUC) 课件 12-O-F-111(机器人仿真ROBOGUIDE定时软件的制作)_第3页
工业机器人离线编程(FANUC) 课件 12-O-F-111(机器人仿真ROBOGUIDE定时软件的制作)_第4页
工业机器人离线编程(FANUC) 课件 12-O-F-111(机器人仿真ROBOGUIDE定时软件的制作)_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

机器人仿真(ROBOGUIDE)定时软件的制作制作:孟庆波IndustryRobotSimulationcomputeraidedtechnology总述123提出问题解决问题的思路项目实施、调试与使用1提出问题工业机器人仿真软件(Roboguide)的30天限用期。如何破解30天的使用权问题?01系统时间数据的设置、保存02启动后让时间停止再运行ROBOGUIDE软件03ROBOGUIDE关闭后恢复时间04软件启动的唯一进程问题解决问题的思路2.1工作流程的构思2.2可视化编程技术;时间锁定技术;文件的创建与存储技术;进程的创建、启动与查询技术。技术问题2.33项目实施、调试与使用程序界面开发时间锁存的编程实现参数设置、文件读写的编程实现进程创建、启动与查询的编程实现程序界面开发3.1时间锁存的编程实现3.2设置定时器SetTimer(1,TIMECONST,NULL);在响应函数内修改系统时间

st.wYear=m_nYear; st.wMonth=m_nMonth; st.wDay=m_nDate; st.wHour=m_nHour; st.wMinute=m_nMinute; st.wSecond=m_nSecond; st.wMilliseconds=0;voidCStopTimerDlg::OnTimer(UINTnIDEvent){ tNum++;

SetLocalTime(&st);

bExe=TRUE; if(lockTime) { if((tNum%3)==0)

if(!FindProcess(str1)) { ShowWindow(SW_SHOWNORMAL); ExitAndRecover(); KillTimer(1); lockTime=FALSE; }

}}参数设置、文件读写的编程实现3.3

设置ROBOGUIDE执行文件的位置voidCStopTimerDlg::OnButton3(){ CStringfilter_str="执行文件(*.exe)|*.exe||"; CFileDialogmSaveDlg(FALSE,NULL,NULL, NULL,filter_str,NULL);

mSaveDlg.DoModal(); //显示

m_fName=mSaveDlg.GetPathName(); UpdateData(FALSE);

//向文件中写入内容 file.Open(str_Path+"\\Data.txt",CFile::modeCreate|CFile::modeWrite);

file.Write(m_fName,m_fName.GetLength()); file.Close();}记录锁定时间voidCStopTimerDlg::OnClose(){ SaveTime(str_Path+"\\tData.txt"); CDialog::OnClose();}voidCStopTimerDlg::SaveTime(CStringtf){ UpdateData(TRUE); CStringsContent; sContent.Format("%dY%dM%dD%dH%dM%dS",m_nYear,m_nMonth, m_nDate,m_nHour,m_nMinute,m_nSecond); file.Open(tf,CFile::modeCreate|CFile::modeWrite); file.Write(sContent,sContent.GetLength()); file.Close();}进程的创建与查询3.BOOLCStopTimerDlg::CreateNewProcess(LPCSTRpszExeName){

PROCESS_INFORMATIONpiProcInfoGPS; STARTUPINFOsiStartupInfo; SECURITY_ATTRIBUTESsaProcess,saThread; ZeroMemory(&siStartupInfo,sizeof(siStartupInfo)); siStartupInfo.cb=sizeof(siStartupInfo); saProcess.nLength=sizeof(saProcess); saProcess.lpSecurityDescriptor=NULL; saProcess.bInheritHandle=true; saThread.nLength=sizeof(saThread); saThread.lpSecurityDescriptor=NULL; saThread.bInheritHandle=true;

return::CreateProcess(NULL,(LPTSTR)pszExeName,&saProcess,&saThread,false,CREATE_DEFAULT_ERROR_MODE, NULL,NULL,&siStartupInfo,&piProcInfoGPS);}UINTCStopTimerDlg::FindProcess(CStringfFile){ UINT processNum=0; HANDLEhProcessSnap=NULL; PROCESSENTRY32pe32={0};

//系统中当前进程列表的快照

hProcessSnap=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0); if(hProcessSnap==INVALID_HANDLE_VALUE) return(FALSE);

pe32.dwSize=sizeof(PROCESSENTRY32);

//初始化PROCESSENTRY32结构

if(Process32First(hProcessSnap,&pe32))

//遍历进程列表,查找进程名 { do

//在这里枚举进程,如果是需要结果的进程,就记录个数 {

if(fFile==pe32.szExeFile) { processNum=processNum+1; } }while(Process32Next(hProcessSnap,&pe32)); }

CloseHandle(hProcessSnap);

return(processNum);}

UINTpstop=FindProcess("stopTimer.exe"); if(pstop>=2) { AfxMessageBox("已经运行了‘时间锁存’进程,退出!"); ExitProcess(0); }voidCStopTimerDlg::OnTimer(UINTnIDEvent){ SetLocalTime(&st);

tNum++;bExe=TRUE; if(lockTime) { if((tNum%3)==0)

if(!FindProcess(str1))

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论