|
HSC ´ÜÀÚ¸¦ »ç¿ëÇÑ °í¼ÓÄ«¿îÅÍ ¸¸µé±â |
|||
ÇнÀ¸ñÇ¥ |
||||
PLCÀÇ °í¼ÓÄ«¿îÅÍ(HSC)¸¦ »ç¿ëÇÏ¿© PC¿¡¼ ¸ð´ÏÅ͸µÇÑ´Ù. |
||||
ÇнÀÁÖÁ¦ |
||||
1. PLC Ä«¿îÅÍ ÇÁ·Î±×·¥À» ¸¸µç´Ù. 2. PC¿¡¼ Ä«¿îÅÍ °ªÀ» ÀÐ¾î ¿Â´Ù. |
||||
¿¹½À³»¿ë |
||||
°í¼ÓÄ«¿îÅ͸¦ »ç¿ëÇÏ¿© ¿£ÄÚ´õÀÇ °ªÀ» PC¿¡¼ ÀÐ¾î ¿É´Ï´Ù. ÀÌ´Â ¡°masterk °í±Þ±³À硱 P120¿¡ ±â¼úµÈ ¡°HSCNT¡±¸¦ ÂüÁ¶ÇÏ¿© ÇÁ·Î±×·¥ ÇÏ¿´½À´Ï´Ù. 1. ¡°PLC µ¥ÀÌÅÍ Àб⡱ ¸í·É¹® ÀÛ¼º Àб⠸í·ÉÀ» ¾Æ·¡¿Í °°ÀÌ º¸³½´Ù. STX01GF014008EOT À§¿¡¼ 01Àº ±â±â¹øÈ£, G´Â ºñÆ®´ÜÀ§ µ¥ÀÌÅÍ Àб⠸í·É, F0140Àº Àоî¿Ã ¸Þ¸ð¸® ¹øÁö, 08°³ÀÇ µ¥ÀÌÅ͸¦ ÀÐ¾î ¿Â´Ù. À̸¦ ÇÁ·Î±×·¥ ÇÏ¸é ¾Æ·¡¿Í °°´Ù. strTemp.Format("%c%02dGF014008%c",0x05,(int)m_nMachinNo.Value,0x04); m_nMachinNo´Â PLC ¹øÈ£ 2. ¼ö½Åµ¥ÀÌÅÍ ºÐ¼® À§¿Í °°ÀÌ º¸³»¸é ¼ö½ÅµÇ¾î ¿À´Â µ¥ÀÌÅÍ´Â ¾Æ·¡¿Í °°´Ù. ÀÌ´Â ÇϳªÀÇ ¿¹ÀÌ´Ù. STX01G00001001EOT À§¿¡¼ 01Àº ±â±â¹øÈ£, G´Â ºñÆ®´ÜÀ§ µ¥ÀÌÅÍ Àб⠸í·É, 00001001 Àоî¿Â 8°³ÀÇ ºñÆ®µ¥ÀÌÅÍ ÀÌ´Ù. ÀÌ´Â ÀÌÁø¼öÀÇ °ªÀ¸·Î ¸ÕÀú µé¾î¿Â °ªÀÌ ÀÏÀÌ ÀÚ¸®ÀÌ´Ù. ¼ýÀÚ´Â ¾Æ½ºÅ°ÄÚµå·Î ÀԷµǾî À̸¦ ½ÊÁø¼ö·Î ¹Ù²Ù¾î¾ß ÇÑ´Ù. ¾Æ·¡´Â À̸¦ °è»êÇÑ °ªÀÌ´Ù. ±×·¯¹Ç·Î ÀÌ °è»êµÈ °ªÀ» ÄÄÇ»ÅÍ¿¡ ³ªÅ¸³»¾ß ÇÑ´Ù.
|
||||
½Ç½À¹æ¹ý |
||||
¸ñ Â÷ |
||||
1. PLC ÇÁ·Î±×·¥ |
||||
´ÙÀ½Àº ÇÁ·Î±×·¥°ú ÆĶó¸ÞŸ ¼³Á¤°ªÀÌ´Ù. ¡°P00¡±¿¡ 24¸¦ ÀÔ·ÂÇÏ°í ¡°HSC+-¡° ¿£ÄÚ´õÀÇ ¡°OUT A¡±, ¡°OUT B¡±¸¦ ¿¬°áÇϰųª ¡°OUT A¡± ¡°, 0V¡±¸¦ ¿¬°áÇÏ¿© ¿£ÄÚ´õ°¡ ȸÀüÇϸé 10,20,30ȸÀü µÇ¾úÀ» ¶§¸¶´Ù Â÷·Ê·Î PLCÀÇ OUT ¡°P10¡±, ¡°P11¡±, ¡°P12¡±°¡ Â÷·Ê·ÎONÀÌ µÈ´Ù.
¾Æ·¡´Â ¼³Á¤Ä¡´Â ¿£ÄÚ´õÀÇ È¸Àü¼öÀÌ°í ¼ÂºñÆ®¿Í ¸®¼ÂºñÆ®´Â Ãâ·Â »óÅÂÀÌ´Ù. Ãâ·ÂÀ» ¹Ù²Ù·Á¸é À̸¦ ¼öÁ¤ÇÏ¸é µÈ´Ù. ÀÌ »óÅ¿¡¼´Â 30±îÁö Ä«¿îÆ®ÇÏ°í 0·Î ¸®¼Â µË´Ï´Ù.
ÀÔ·ÂÁ¶°ÇÀÌ ONÀÌ µÇ¸é F0140 ¿¡´Â ÇöÀç°ªÀÌ F0150¿¡´Â ¼ø¼0ÀÇ ¼³Á¤°ªÀÌ ³ªÅ¸³³´Ï´Ù. ±×·¯¹Ç·Î Åë½Å¿¡¼´Â F0140¿¡ ÀúÀåµÈ °ªÀ» ÀÐ¾î ¿À¸é ÇöÀçÀÇ Ä«¿îÅÍ °ªÀ» ¾Ë ¼ö ÀÖ½À´Ï´Ù. PC ¿¡¼´Â ¾Æ·¡ÀÇ ÇÁ·Î±×·¥Àº F0140¹øÁöÀÇ °ªÀ» G¸í·É¿¡ µû¶ó ºñÆ® ´ÜÀ§·Î 08°³ÀÇ °ªÀ» ÀÐ¾î ¿É´Ï´Ù. strTemp.Format("%c%02dGF014008%c",0x05,(int)m_nMachinNo.Value,0x04); |
||||
PC ÇÁ·Î±×·¥ |
||||
ÇÁ·Î±×·¥Àº Áö³ÁÖÀÇ ÇÁ·Î±×·¥¿¡¼ ¼Ò½º ÇÁ·Î±×·¥¸¸ ÀϺΠ¼öÁ¤ÇÏ¿© ȸéÀ» ±¸¼ºÇÑ´Ù. |
|
|||
|
||||
|
OnInitDialog()ÇÔ¼ö ¾È¿¡ SetTimer(1,500,NULL); ¸¦ ¼³Á¤ÇÑ´Ù. ŸÀÌ¸Ó ÇÔ¼ö ¾È¿¡¼ Æ÷Æ®ÀÇ »óŸ¦ ÀÐ¾î ¿Àµµ·Ï ÇÁ·Î±×·¥ ÇÑ´Ù. |
|
||
|
void CRs232Dlg::OnTimer(UINT nIDEvent) { CString strTemp; // ÀÔÃâ·ÂÆ÷Æ®ÀÇ ºñÆ® ´ÜÀ§·Î »óŸ¦ ÀÐ¾î ¿Â´Ù. strTemp.Format("%c%02dGF014008%c",0x05,(int)m_nMachinNo.Value,0x04); m_ComuPort.WriteComm((unsigned char*)(LPCTSTR)strTemp,strTemp.GetLength()); CDialog::OnTimer(nIDEvent); } |
|
||
|
||||
|
OnCommunication() ÇÔ¼ö ¾È¿¡ ¸®ÅÏ µÇ¾î ¿À´Â 16Áø¼ö 4°³ÀÇ °ªÀ» Á¤¼ö·Î ¹Ù²Ù¾î m_nCount ¹Ú½º¿¡ Ç¥½Ã¸¦ ÇÑ´Ù. CharHexToInt(char in) ÇÔ¼ö´Â ¹®ÀÚ·Î µÈ 16Áø¼ö¸¦ 10Áø¼ö·Î ¹Ù²Ù´Â ÇÔ¼öÀÌ´Ù. |
|
||
|
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==0x06 || aByte==21) j=0; if( aByte!= NULL ) buff[j++]= aByte; else { j--; size--; } if(aByte==0x04) break; } m_nCount.Value=(buff[11]-48)*128+(buff[10]-48)*64+(buff[9]-48)*32 +(buff[8]-48)*16+(buff[7]-48)*8+(buff[6]-48)*4+(buff[5]-48)*2 +(buff[4]-48); if(size > 0) m_Edit2.SetWindowText(buff); return 0; } |
|
||
|
||||
°ú Á¦ |
||||
¾Æ·¡¿Í °°ÀÌ ¸®¼Â °ªÀ» ¼öÁ¤Çؼ PLC ÇÁ·Î±×·¥À» ¹Ù²Ù¾î º¾´Ï´Ù. 255±îÁö ¼öÀÚ°¡ ¿Ã¶ó °¬´Ù. ´Ù½Ã 0À¸·Î µÇ¾î ȸÀü¼ö¸¦ Ä«¿îÆ® ÇϱⰡ ¼ö¿ù ÇÕ´Ï´Ù.
|
||||
Áß¿äÇÔ¼ö |
||||
|
||||