12.PMAC 상위기-통신 중단(하위기 알림 상위기)
1. 하위기 알림 상위기 원리
다음 그림과 같이
PC는 PMAC에 명령을 보내서 무엇을 하는지 제어한다. 운동 프로그램이 끝난 후에 상위기에 알림을 끊고 끊기는 동시에 완성된 프로그램 번호를 표시하는 표지 P100을 보낸다. 이 표지는 1번 축이 운동이 끝났는지 2번 축이 운동이 끝났는지 표시한다.PC단에 인터럽트 리셋 함수가 하나 있는데 하위기 발송이 인터럽트되면 자동으로 이 함수로 넘어가 인터럽트 함수는 인터럽트를 받아들이고 표지 P100에 따라 상황에 따라 처리를 결정한다.
일반적으로 다음과 같은 절차가 있습니다.
PC->PMAC: , (&1b40r)
PMAC: , PC (While (M613 = 1) wait)
PMAC->PC: ,PC (P100=1 M613=1)
PC: PMAC ( P100 )
PC->PMAC: , (P100=0 M613=0)
위의 그림에서 보듯이 M613은 하드웨어 점프선으로 설정된 것으로 현재 인터럽트 응답 채널을 지정하고 구체적인 설정은 여기에 있다.P100은 우리가 지정한 상하위기 통신 변수로 이것은 스스로 정의한 것이거나 P1/P2/P3 등이 될 수 있다.
2. 하위 코드
&1
CLOSE ;
OPEN PROG 40
CLEAR
TA(200)
TS(20)
F(30)
INC
Linear
X(10) Y(40)
dwell 0
;
While (M613 = 1) wait ;
P100=1 ; , 0、1、2
M613=1 ;
CLOSE
3. 상위기 처리 코드
등록 중단 처리 함수:
BOOL CInterruptDlg::ConnectPmac()
{
// Pcomm32.dll , myRuntimeLink
if (NULL == PmacRuntimeLink(PMAC_NUM))
{
AfxMessageBox(TEXT(" Pcomm32.dll PMAC !"));
return m_bIsConnect = FALSE;
}
//
if( FALSE == PmacINTRFuncCallInit(PMAC_NUM, InterruptFunc2, 0, 0xFF1F))
{
AfxMessageBox(TEXT("PMAC "));
return m_bIsConnect = FALSE;
}
return m_bIsConnect = TRUE;
}
해당 인터럽트 함수는 다음과 같이 처리됩니다.
//
void WINAPI InterruptFunc2(DWORD msg, PINTRBUFFER pBuffer)
{
extern CInterruptApp theApp;
TCHAR szRes[MAX_PATH];
TCHAR szCmd[MAX_PATH];
if (pBuffer->dwInterruptType == ISR_IR6)
{
if (1 == PmacGetVariable(PMAC_NUM, 'P', 100, 0))
{
AfxMessageBox(TEXT(" !"));
//
lstrcpy(szCmd, "M613=0 P100=0");
PmacGetResponse(0,szRes,MAX_PATH,szCmd);
}
}
}
프로그램 소스 코드 다운로드 주소를 보여 줍니다. 이 프로그램에서 모터를 누르면 0으로 돌아간 후, 0으로 돌아간 단추는 회색화됩니다.하위기가 0으로 되돌아와 상위기 프로그램에 중단될 때까지 상위기 프로그램이 판단한 후에 에너지 버튼을 처리합니다.이 프로그램은 가장 간단한 중단 처리 프로그램으로 주로 원리를 밝히기 위해서이다. 아무리 복잡한 프로그램이라도 이 원리와 같다. 이 원리를 바탕으로 우리는 더욱 복잡한 상하위기 상호작용 프로그램을 개발할 수 있다.
기본 설치가 완료된runtime를 사용할 수 없습니다.h, 원래 문제가 있어서 프로그램 원본 폴더에 넣은 myRuntime를 다시 써야 합니다.h.
더 많은 PMAC 코드는 나의 사이트를 참조하는데 기본적으로 모두 이 시리즈가 관련된 지식점이다.
지금까지 PMAC의 사용 시리즈는 기본적으로 다 썼습니다. 이 시리즈를 보고 기본적인 PMAC 프로그래밍과 디버깅은 문제가 없을 것입니다. 나머지는 Read The Fuck Manual입니다.
오리지널http://blog.csdn.net/wenzhou1219
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
【Rails】자신의 활동 일람을 표시한다【통지 기능의 응용】안녕하세요! 고양이 조카 ( )라고합니다. 요 전날, 처음부터 독학으로 공부하고, 웹 서비스 「 」를 시작했습니다. 이 서비스는 다음과 같은 알림 기능을 구현합니다. 이 기능을 응용하여 자신이 「좋아요, 코멘트, 팔...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.