|
PLCÀÔ·ÂÁ¦¾î(MASTER-K10s1) |
||||
ÇнÀ¸ñÇ¥ |
|||||
0.1ÃÊ °£°ÝÀ¸·Î PLC ÀÔ·Â Á¢Á¡ÀÇ »óŸ¦ Àоî PC ȸ鿡 Ç¥½ÃÇÑ´Ù. |
|||||
ÇнÀÁÖÁ¦ |
|||||
1. ¡°¿ø°ÝÁ¦¾î¡± 2ÁÖÂ÷ ÇÁ·Î±×·¥À» »ç¿ëÇÏ¿© ÇÁ·Î±×·¥ÇÑ´Ù. 2. ŸÀ̸Ӹ¦ ¼³Á¤ÇÏ°í 0.1ÃÊ·Î µ¿ÀÛ ½ÃŲ´Ù. 3. Àоî¿Ã PLC ¹øÈ£¸¦ ¼³Á¤ÇÑ´Ù. 4. ŸÀÌ¸Ó ÇÔ¼ö ¾È¿¡ ÀÔ·ÂÆ÷Æ® »óŸ¦ Àоî¿Ã ¹®À» ÇÁ·Î±×·¥ÇÏ¿© ¼Û½ÅÇÑ´Ù. 5. ¼ö½Å ÇÁ·Î±×·¥ OnCommunication() ¾È¿¡ PLC »óŸ¦ Àоî PC ȸéÀÇ Led¿¡ Ç¥½Ã ÇÑ´Ù. |
|||||
¿¹½À³»¿ë |
|||||
1. ¡°PLC µ¥ÀÌÅÍ Àб⡱ ¸í·É¹® ÀÛ¼º Àб⠸í·ÉÀ» ¾Æ·¡¿Í °°ÀÌ º¸³½´Ù. STX01GP000008EOT À§¿¡¼ 01Àº ±â±â¹øÈ£, G´Â µ¥ÀÌÅÍ Àб⠸í·É, P0000 µ¥ÀÌÅÍ ÀбâÀÇ ½ÃÀÛ¹øÁö, 08Àº ÀÐÀ» µ¥ÀÌÅÍ °³¼ö ÀÌ´Ù. À̸¦ ÇÁ·Î±×·¥ ÇÏ¸é ¾Æ·¡¿Í °°´Ù. strTemp.Format("%c%02dGP000008%c",0x05,(int)m_nMachinNo.Value,0x04); m_nMachinNo´Â PLC ¹øÈ£ 2. ¼ö½Åµ¥ÀÌÅÍ ºÐ¼® À§¿Í °°ÀÌ º¸³»¸é ¼ö½ÅµÇ¾î ¿À´Â µ¥ÀÌÅÍ´Â ¾Æ·¡¿Í °°´Ù. STX01G10000000EOT ¿©±â¼ 01Àº ±â±â¹øÈ£, G Àб⠸í·É ÄÚµå, 10000000 Àº 8°³ ÀÔ·Â Æ÷Æ® P00~P07 ±îÁö 8°³ÀÇ µ¥ÀÌÅÍ »óÅ·ΠÁö±ÝÀº P00Àº 24V°£ ¿¬°áµÇ°í ³ª¸ÓÁö P01~P07Àº 0V°¡ ÀԷµǰí ÀÖ´Ù. |
|||||
3. ¹è¼±Àº ÀÔ·ÂÀÇ ¡°COM¡±À» ¡°24V+¡±¿Í ¿¬°áÇÏ¿© 0V¸¦ ÀÔ·Â ÇÒ ¶§ µ¿ÀÛ Çϵµ·Ï ÇÑ´Ù. |
|
||||
½Ç½À¹æ¹ý |
|||||
¸ñ Â÷ |
|||||
|
|||||
NumEdit Control]À» ¼±ÅÃÇÏ¿© Åë½Å±â±â ¹øÈ£¸¦ ¼³Á¤ÇÏ°Ô ÇÑ´Ù. ¡°Values¡±¿¡¼ ¡°Discrete¡±¸¦ ¼±ÅÃÇÑ´Ù. |
|
||||
¼³Á¤ÇÑ Å°ÀÇ ¸â¹ö º¯¼ö À̸§À» ¾Æ·¡¿Í °°ÀÌ ¡°m_nMachinNo¡±¶ó ÇÑ´Ù. |
|
||||
[Button Control]À» ¼±ÅÃÇÏ¿© ½ºÀ§Ä¡ ¸ð¾ç¿¡¼ Led ¸ð¾çÀ¸·Î º¯°æÇÑ´Ù. |
|
||||
8°³ Led ÀÇ º¯¼ö À̸§À» ¾Æ·¡¿Í °°ÀÌ ¸¸µç´Ù. |
|
||||
[ClassWizard]¿¡¼ ¾Æ·¡¿Í °°ÀÌ Å¸ÀÌ¸Ó ÇÔ¼ö¸¦ ¸¸µç´Ù. |
|
||||
|
|||||
|
OnInitDialog()ÇÔ¼ö ¾È¿¡ SetTimer(1,500,NULL); ¸¦ ¼³Á¤ÇÑ´Ù. ŸÀÌ¸Ó ÇÔ¼ö ¾È¿¡¼ Æ÷Æ®ÀÇ »óŸ¦ ÀÐ¾î ¿Àµµ·Ï ÇÁ·Î±×·¥ ÇÑ´Ù. |
|
|||
|
void CRs232Dlg::OnTimer(UINT nIDEvent) { // TODO: Add your message handler code here and/or call default CString strTemp; strTemp.Format("%c%02dGP000008%c",0x05,(int)m_nMachinNo.Value,0x04); // ÀÔÃâ·ÂÆ÷Æ®ÀÇ »óŸ¦ ÀÐ¾î ¿Â´Ù. m_ComuPort.WriteComm((unsigned char*)(LPCTSTR)strTemp,strTemp.GetLength()); CDialog::OnTimer(nIDEvent); } |
|
|||
|
|||||
|
OnCommunication() ÇÔ¼ö ¾È¿¡ ¸®ÅÏ µÇ¾î ¿À´Â °ªÀ» üũÇÏ´Â CheckInput() ÇÔ¼ö¸¦ ¸¸µé¾î ÀÔ·Â °ªÀ» ÄÄÇ»ÅÍ¿¡ Ç¥½ÃÇÑ´Ù. CheckInput() ÇÔ¼ö´Â ¼ö½ÅµÈ µ¥ÀÌÅÍÀÇ ÇØ´ç ºñÆ®°¡ 0ÀÎÁö 1ÀÎÁö ÆÇ´ÜÇÏ¿© ÇØ´ç Led¿¡ ºÒÀÌ µé¾î°Ô ÇÑ´Ù. |
|
|||
|
LONG CRs232Dlg::OnCommunication(UINT port, LONG lParam) {
BYTE aByte; int size= (m_ComuPort.m_QueueRead).GetSize(); /* for( int i=0; i< size; i++ ) { (m_ComuPort.m_QueueRead).GetByte(&aByte); if( aByte!= NULL ) buff[i]= aByte; else { i--; size--; } } */ for( int i=0; i< size; i++ ) { (m_ComuPort.m_QueueRead).GetByte(&aByte); if(aByte==0x06 || aByte==21) j=0; if( aByte!= NULL ) buff[j++]= aByte; else { j--; size--; } if(aByte==0x04) break; } CheckInput(); if(size > 0) m_Edit2.SetWindowText(buff); return 0; } void
CRs232Dlg::CheckInput() { if(buff[4]==0x31) m_In0.Value = 1; else m_In0.Value = 0; if(buff[5]==0x31) m_In1.Value = 1; else m_In1.Value = 0; if(buff[6]==0x31) m_In2.Value = 1; else m_In2.Value = 0; if(buff[7]==0x31) m_In3.Value = 1; else m_In3.Value = 0; if(buff[8]==0x31) m_In4.Value = 1; else m_In4.Value = 0; if(buff[9]==0x31) m_In5.Value = 1; else m_In5.Value = 0; if(buff[10]==0x31) m_In6.Value = 1; else m_In6.Value = 0; if(buff[11]==0x31) m_In7.Value = 1; else m_In7.Value = 0; } |
|
|||
|
|||||
°ú Á¦ |
|||||
|
|||||
Áß¿äÇÔ¼ö |
|||||
|
|||||