時間:2021-01-29 10:51:34來æºï¼šä¸Šæµ·å®‰æµ¦é³´å¿—自動化è¨(shè)備有é™å…¬å¸
Q編程介紹
SCL指令的使用已經(jÄ«ng)有很多年的æ·å²ã€‚Qç¨‹åºæ˜¯å»ºç«‹åœ¨SCL指令基礎(chÇ”)之上的一個新的平臺,擴(kuò)展了SCL命令的使用,å…許用戶創(chuà ng)建與å˜å„²SCL指令。這些程åºå¯ä»¥ä¿å˜åœ¨é©…(qÅ«)å‹•å™¨çš„éžæ˜“失性å˜å„²å™¨ä¸ï¼Œé©…(qÅ«)å‹•å¯ä»¥è„«é›¢ä¸»æ©Ÿç¨ç«‹é‹è¡Œé€™äº›ç¨‹åºã€‚Q程åºç‚ºç³»çµ±(tÇ’ng)è¨(shè)計æä¾›äº†é«˜åº¦çš„éˆæ´»æ€§å’Œå¼·å¤§çš„功能。主è¦ç‰¹é»žå¦‚下:
? é‹å‹•控制(例如FLã€FPã€SHç‰ï¼‰
? 執(zhÃ)行é§ç•™ç¨‹åº
? 多任務(wù)處ç†ï¼ˆè«‹åƒé–±MT指令)
? æ¢ä»¶åˆ¤æ–·ï¼ˆä¾‹å¦‚OIã€TIç‰æŒ‡ä»¤ï¼‰
? 數(shù)å¸(xué)é‹ç®—(例如R+ã€R-ã€R*ã€R/ã€R|ã€R&ç‰æŒ‡ä»¤ï¼‰
? 寄å˜å™¨æ“作(例如RXã€RMç‰æŒ‡ä»¤ï¼‰
1個Qç¨‹åºæ”¯æŒå¤šé”(dá)12å€‹ç¨‹åºæ®µï¼Œæ¯å€‹ç¨‹åºæ®µæœ€å¤šå¯ä»¥ç·¨å¯«62æ¢æŒ‡ä»¤ã€‚
åƒè€ƒä¾‹ç¨‹
以下內(nèi)容給出了Q編程的åƒè€ƒä¾‹ç¨‹ï¼Œå¹¶å°é€™äº›æŒ‡ä»¤é€æ¢é€²(jìn)行了解釋,Qç·¨ç¨‹ä¸æ‰€æœ‰æŒ‡ä»¤å‡ç‚ºç·©å˜æŒ‡ä»¤ï¼ˆBuffered Commands)
點到點相å°é‹å‹•(Feed to Length)
FL(Feed to Length)指令用來完æˆé»žåˆ°é»žç›¸å°ä½ç½®é‹å‹•,當(dÄng)執(zhÃ)行該指令時,電機將按照è¨(shè)å®šçš„åŠ é€Ÿåº¦ï¼ˆAC),減速度(DE)åŠé‹è¡Œé€Ÿåº¦ï¼ˆVE),完æˆä¸€æ®µå›ºå®šçš„相å°ä½ç½®è·é›¢ï¼ˆDI)。電機轉(zhuÇŽn)動的方å‘ç”±DI指令的æ£è² (fù)極性決定。比如,DI32000 ä»£è¡¨é›»æ©Ÿé †æ™‚é‡è½‰(zhuÇŽn)å‹•32000æ¥ï¼ˆæˆ–å¾®æ¥ï¼‰ï¼Œè€ŒDI-32000代表電機逆時é‡è½‰(zhuÇŽn)å‹•32000æ¥ï¼ˆæˆ–å¾®æ¥ï¼‰ã€‚上圖ä¸åˆ—出了一個åƒè€ƒä¾‹ç¨‹ï¼ŒQ程åºé€šéŽWI指令首先ç‰å¾…輸入å£3æŽ¥æ”¶ä¸€å€‹ä¸‹é™æ²¿è§¸ç™¼(fÄ)信號,如果æ¢ä»¶æ»¿è¶³ï¼Œé›»æ©Ÿå°‡æŒ‰ç…§20 轉(zhuÇŽn)/秒的轉(zhuÇŽn)速,轉(zhuÇŽn)å‹•4圈;如果æ¢ä»¶ä¸æ»¿è¶³ï¼Œç¨‹åº?qÅ«)â’æ¢è“–A粼?/span>WI指令處ç‰å¾…輸入å£3接收æ£ç¢ºçš„觸發(fÄ)信號為æ¢ã€‚
點到點絕å°é‹å‹•(Feed to Position)
FP(Feed to Position)指令用來完æˆé»žåˆ°é»žçµ•å°ä½ç½®é‹å‹•,當(dÄng)執(zhÃ)行該指令時,電機將按照è¨(shè)å®šçš„åŠ é€Ÿåº¦ï¼ˆAC),減速度(DE)åŠé‹è¡Œé€Ÿåº¦ï¼ˆVE),完æˆä¸€æ®µçµ•å°ä½ç½®è·é›¢ï¼ˆDI)。DI指令代表目標(biÄo)絕å°ä½ç½®ï¼Œé›»æ©Ÿè½‰(zhuÇŽn)å‹•æ–¹å‘ä¸ç”±å…¶æ£è² (fù)極性決定,而由電機當(dÄng)å‰çµ•å°ä½ç½®èˆ‡ç›®æ¨™(biÄo)絕å°ä½ç½®ä¾†æ±ºå®šã€‚上圖ä¸åˆ—出了一個åƒè€ƒä¾‹ç¨‹ï¼ŒQ程åºé€šéŽWI指令首先ç‰å¾…輸入å£3æŽ¥æ”¶ä¸€å€‹ä¸‹é™æ²¿è§¸ç™¼(fÄ)信號,如果æ¢ä»¶æ»¿è¶³ï¼Œé›»æ©Ÿå°‡æŒ‰ç…§20 轉(zhuÇŽn)/秒的轉(zhuÇŽn)速,轉(zhuÇŽn)å‹•4圈,然åŽç‰å¾…1秒(WT指令),然åŽé›»æ©Ÿä»¥20 轉(zhuÇŽn)/秒的轉(zhuÇŽn)速回到絕å°ä½ç½®0點;如果æ¢ä»¶ä¸æ»¿è¶³ï¼Œç¨‹åº?qÅ«)â’æ¢è“–A粼?/span>WI指令處ç‰å¾…輸入å£3接收æ£ç¢ºçš„觸發(fÄ)信號為æ¢ã€‚
SP(Set Position)指令用來è¨(shè)置電機當(dÄng)å‰çš„絕å°ä½ç½®ï¼Œå¦‚發(fÄ)é€â€œSP0â€æŒ‡ä»¤ï¼Œå°‡é›»æ©Ÿç•¶(dÄng)å‰ä½ç½®è¨(shè)為絕å°ä½ç½®é›¶é»žã€‚注æ„,SP指令è¨(shè)ç½®çš„åƒæ•¸(shù)是以編碼器Encoder Counts作為基本單ä½çš„ï¼Œæ¯”å¦‚ä¸€å€‹è£æœ‰500線編碼器的電機,一圈有2000個Encoder Counts,如發(fÄ)é€â€œSP5000â€æŒ‡ä»¤ï¼Œå°‡é›»æ©Ÿç•¶(dÄng)å‰ä½ç½®è¨(shè)為以絕å°ä½ç½®é›¶é»žé †æ™‚釿–¹å‘2.5圈的ä½ç½®ã€‚
é‹å‹•到傳感器ä½ç½®ï¼ˆFeed to Sensor)
FS(Feed to Sensor)指令使電機以一個固定速度轉(zhuÇŽn)動,直到一個輸入å£çš„電平狀態(tà i)滿足觸發(fÄ)æ¢ä»¶ï¼Œé›»æ©Ÿæ¸›é€Ÿï¼Œé‹å‹•åœæ¢ã€‚é‹å‹•åƒæ•¸(shù)ç”±AC,DE,VEåŠDI指令決定,注æ„DI指令在FS指令執(zhÃ)行時代表輸入å£é›»å¹³ç‹€æ…‹(tà i)滿足觸發(fÄ)æ¢ä»¶åŽï¼Œé›»æ©Ÿæ¸›é€Ÿåˆ°0çš„é‹å‹•è·é›¢ï¼Œæ³¨æ„DIè¨(shè)å®šçš„æ¸›é€Ÿå…·é«”å¿…é ˆå¤§äºŽæœ€å°æ¸›é€Ÿè·é›¢Dmï¼Œæœ€å°æ¸›é€Ÿè·é›¢ç”±DE,VE,EG指令決定,計算公å¼å¦‚下,其ä¸V代表VEè¨(shè)定值,R代表EGè¨(shè)定值,D代表DEè¨(shè)定值:
注æ„:當(dÄng)DIè¨(shè)å®šå€¼å¤§äºŽæœ€å°æ¸›é€Ÿè·é›¢Dm時,電機接收到輸入å£è§¸ç™¼(fÄ)電平狀態(tà i)(找到傳感器)åŽï¼Œæœƒç¹¼çºŒ(xù)以當(dÄng)å‰é€Ÿåº¦å‘å‰é‹å‹•(DI-Dm)的è·é›¢ï¼Œç„¶åŽä»¥DEè¨(shè)定的減速度減速,直到完æˆDm的減速è·é›¢ã€‚åŒæ™‚,DI指令也決定了電機剛開始é‹å‹•的方å‘,比如,DI8000 代表執(zhÃ)行FS指令åŽï¼Œé›»æ©Ÿé †æ™‚é‡è½‰(zhuÇŽn)動,而DI-8000代表執(zhÃ)行FS指令åŽï¼Œé›»æ©Ÿé€†æ™‚é‡è½‰(zhuÇŽn)動。輸入å£é›»å¹³ç‹€æ…‹(tà i)分為H(高電平),L(低電平),Rï¼ˆä¸Šå‡æ²¿ï¼‰ï¼ŒFï¼ˆä¸‹é™æ²¿ï¼‰é€™å¹¾ç¨®ç‹€æ…‹(tà i)。
上圖ä¸åˆ—出了一個åƒè€ƒä¾‹ç¨‹ï¼ŒQ程åºé€šéŽWI指令首先ç‰å¾…輸入å£3æŽ¥æ”¶ä¸€å€‹ä¸‹é™æ²¿è§¸ç™¼(fÄ)信號,如果æ¢ä»¶æ»¿è¶³ï¼Œå–消é™ä½åŠŸèƒ½ï¼Œé›»æ©Ÿä»¥5轉(zhuÇŽn)/秒的轉(zhuÇŽn)é€Ÿé †æ™‚é‡æ–¹å‘轉(zhuÇŽn)動,直到輸入å£7接收到一個高電平觸發(fÄ)狀態(tà i),驅(qÅ«)動器找到了傳感器,于是以DEè¨(shè)定的減速度,DIè¨(shè)定的減速è·é›¢å®Œæˆæ¸›é€Ÿåˆ°0。然åŽé›»æ©Ÿç‰å¾…1ç§’é˜ï¼Œéš¨åŽä»¥20轉(zhuÇŽn)/秒的速度é‹è¡Œåˆ°çµ•å°ä½ç½®é›¶é»žè™•,打開é™ä½åŠŸèƒ½ã€‚
循環(huán)(Looping)
用戶å¯ä»¥é€šéŽå…©ç¨®æ–¹å¼ä¾†å¯¦ç¾(xià n)程åºçš„循環(huán)。第一種使用QG(Queue Goto)指令,è¨(shè)ç½®QGåƒæ•¸(shù)使程åºå›žåˆ°è¨(shè)定的行數(shù)。下圖ä¸åˆ—出了一個åƒè€ƒä¾‹ç¨‹ï¼Œåœ¨FL指令åŽç‰å¾…時間0.5秒(WT0.5),然åŽä½¿ç”¨QG指令,使程åºå›žåˆ°ç¬¬ä¸€è¡Œé‡æ–°åŸ·(zhÃ)行,實ç¾(xià n)䏿–·å¾ªç’°(huán)。
第二種方法是使用QR(Queue Repeat)指令,QR指令指明跳轉(zhuÇŽn)到哪一行和循環(huán)次數(shù)。下圖ä¸åˆ—出了一個åƒè€ƒä¾‹ç¨‹ï¼ŒQR指令表示跳轉(zhuÇŽn)åˆ°ç¬¬äºŒè¡Œï¼Œåƒæ•¸(shù)為3,å³å¾ªç’°(huán)次數(shù)由用戶自定義寄å˜å™¨3ä¸çš„值決定,在這里RX指令寫入數(shù)值5到自定義寄å˜å™¨3, 所以程åºå¾ªç’°(huán)執(zhÃ)行5次。
跳轉(zhuǎn)(Jumping)
程åºè·³è½‰(zhuÇŽn)ç”±QJ(Queue Jump)指令實ç¾(xià n),跳轉(zhuÇŽn)和循環(huán)ä¸åŒï¼Œè·³è½‰(zhuÇŽn)主è¦åˆ¤æ–·æ¢ä»¶æ˜¯å¦æ»¿è¶³ï¼Œå³è·³è½‰(zhuÇŽn)指令通常和TI(輸入檢測),TR(寄å˜å™¨æª¢æ¸¬ï¼‰ï¼ŒCR(寄å˜å™¨æ¯”較)指令é…åˆä½¿ç”¨ã€‚下圖ä¸åˆ—出了一個åƒè€ƒä¾‹ç¨‹ï¼Œæœ‰å…©ç¨®å¯èƒ½çš„é‹å‹•ï¼Œé †æ™‚é‡æ—‹è½‰(zhuÇŽn),當(dÄng)輸入信號5æœ‰æ•ˆæ™‚ï¼ˆä½Žé›»å¹³æœ‰æ•ˆï¼‰é›»æ©Ÿé–‹å§‹é€†æ™‚é‡æ—‹è½‰(zhuÇŽn)ï¼ŒåŠ é€Ÿåº¦300,減速度450,速度18.5,兩種é‹å‹•間有0.25ç§’çš„ç‰å¾…時間。然åŽï¼Œæª¢æ¸¬X5信號的狀態(tà i),當(dÄng) X5信號有效時(True),程åºè·³è½‰(zhuÇŽn)到第10è¡Œï¼Œé–‹å§‹é€†æ™‚é‡æ—‹è½‰(zhuÇŽn),如果X5信號為高時程åºç›´æŽ¥åˆ°ç¬¬7行進(jìn)è¡Œé †æ™‚é‡æ—‹è½‰(zhuÇŽn), 執(zhÃ)行完åŽå›žåˆ°ç¬¬ä¸€è¡Œé€²(jìn)行循環(huán)。
程åºèª¿(dià o)用(Calling)
程åºèª¿(dià o)用是在ä¸åŒçš„ç¨‹åºæ®µï¼ˆSegment)之間實ç¾(xià n)的。QC(Queue Call)指令å…許用戶çµ(jié)æŸä¸€å€‹ç•¶(dÄng)å‰ç¨‹åºæ®µï¼Œèª¿(dià o)用å¦ä¸€å€‹ç¨‹åºæ®µï¼ŒåŸ·(zhÃ)行完åŽï¼Œå›žåˆ°åŸ·(zhÃ)行調(dià o)ç”¨æŒ‡ä»¤çš„ç¬¬ä¸€å€‹ç¨‹åºæ®µã€‚這樣,用戶å¯ä»¥æŠŠéœ€è¦å¤šæ¬¡å¾ªç’°(huán)的程åºå–®ç¨æ”¾åˆ°ä¸€å€‹æ®µä¸é€²(jìn)行調(dià o)用,以減少循環(huán)的次數(shù)å’Œé™ä½Žç¨‹åºçµ(jié)æ§‹(gòu)的復(fù)雜度。下圖ä¸åˆ—出了一個åƒè€ƒä¾‹ç¨‹ï¼Œç”±ç¬¬1ç¨‹åºæ®µï¼ˆSegment 1)和第2ç¨‹åºæ®µï¼ˆSegment 2)組æˆï¼š
第1ç¨‹åºæ®µåœ¨ç¬¬6ã€10行調(dià o)用第2ç¨‹åºæ®µï¼Œç¬¬2ç¨‹åºæ®µä¸è¨(shè)ç½®Y1低電平輸出,ç‰å¾…0.25秒,è¨(shè)ç½®Y2低電平輸出,ç‰å¾…0.25秒。然åŽè¨(shè)ç½®Y2高電平輸出,ç‰å¾…0.25秒,è¨(shè)ç½®Y1高電平輸出,回到第1ç¨‹åºæ®µï¼Œç¹¼çºŒ(xù)執(zhÃ)行第1ç¨‹åºæ®µå…§(nèi)åŽçºŒ(xù)指令。
多任務(wù)處ç†ï¼ˆMulti-tasking)
多任務(wù)è™•ç†æ¨¡å¼ï¼ˆMT1)å…許程åºåœ¨åŸ·(zhÃ)行é‹è¡ŒæŒ‡ä»¤ï¼ˆå¦‚FL,FP,CJ,FSç‰ï¼‰æ™‚ï¼ŒåŒæ™‚執(zhÃ)行其他指令,而ä¸éœ€è¦ç‰å¾…å‰ä¸€å€‹é‹è¡ŒæŒ‡ä»¤çš„çµ(jié)æŸã€‚在單任務(wù)è™•ç†æ¨¡å¼ï¼ˆMT0)下,Qç¨‹åºæ˜¯é †åºåŸ·(zhÃ)行的,å³åŸ·(zhÃ)è¡Œä¸‹ä¸€æ¢æŒ‡ä»¤æœƒç‰å¾…ä¸Šä¸€æ¢æŒ‡ä»¤çš„çµ(jié)æŸã€‚例如,FLæŒ‡ä»¤åŽæ˜¯SO指令,那么驅(qÅ«)動器在FL指令çµ(jié)æŸåŽæ‰æœƒè¨(shè)置輸出。當(dÄng)開啟多任務(wù)è™•ç†æ¨¡å¼ï¼ˆMT1),Q程åºåŸ·(zhÃ)行é‹è¡ŒæŒ‡ä»¤çš„åŒæ™‚會執(zhÃ)行åŽé¢çš„æŒ‡ä»¤ã€‚例如,上é¢çš„FL,SO指令,執(zhÃ)行多任務(wù)處ç†ï¼Œé©…(qÅ«)動器開始é‹è¡Œå¹¶ä¸”ç«‹å³åŸ·(zhÃ)行輸出è¨(shè)置,ä¸éœ€è¦ç‰å¾…FL指令執(zhÃ)行完畢。多任務(wù)處ç†ç”±MT指令è¨(shè)置,MT1為多任務(wù)處ç†é–‹å•Ÿï¼ŒMT0為多任務(wù)處ç†é—œ(guÄn)閉(單任務(wù)è™•ç†æ¨¡å¼ï¼‰ã€‚
例如上圖所示,當(dÄng)MT=1,驅(qÅ«)動器執(zhÃ)行FL指令,ç‰å¾…0.5ç§’åŽè¨(shè)置輸出å£Y1為低電平,ä¸éœ€è¦ç‰å¾…FL指令çµ(jié)æŸåŽï¼Œå†ç‰å¾…0.5ç§’æ‰è¼¸å‡ºä½Žé›»å¹³ã€‚以上是一個最基本的例åï¼Œå¦‚æžœæ‚¨å˜—è©¦å°æ‚¨çš„é©…(qÅ«)動器進(jìn)行編程,請盡é‡ä¿è‰DIå€¼è¶³å¤ å¤§ä»¥è§€å¯Ÿä¸åŒçš„æŒ‡ä»¤åŸ·(zhÃ)行åŽçš„å€(qÅ«)別。注æ„ï¼Œå› ç‚ºé›»æ©Ÿä¸èƒ½åŒæ™‚執(zhÃ)行兩種é‹å‹•,å³ä½¿å¤šä»»å‹™(wù)處ç†é–‹å•ŸåŽï¼Œé‹å‹•指令還是會有先åŽé †åºã€‚例如,多任務(wù)處ç†é–‹å•ŸåŽï¼Œç¨‹åºä¸é€£çºŒ(xù)有兩種é‹è¡ŒæŒ‡ä»¤ï¼Œé‚£ä¹ˆé©…(qÅ«)動器還是會ç‰å¾…ç¬¬ä¸€æ¢æŒ‡ä»¤å®ŒæˆåŽåŸ·(zhÃ)è¡Œä¸‹ä¸€æ¢æŒ‡ä»¤ã€‚
ä¸åœ‹å‚³å‹•ç¶²(wÇŽng)版權(quán)與å…責(zé)è²æ˜Žï¼šå‡¡æœ¬ç¶²(wÇŽng)注明[來æºï¼šä¸åœ‹å‚³å‹•ç¶²(wÇŽng)]的所有文å—ã€åœ–片ã€éŸ³è¦–å’Œè¦–é »æ–‡ä»¶ï¼Œç‰ˆæ¬Š(quán)å‡ç‚ºä¸åœ‹å‚³å‹•ç¶²(wÇŽng)(www.hysjfh.com)ç¨å®¶æ‰€æœ‰ã€‚如需轉(zhuÇŽn)載請與0755-82949061è¯(lián)系。任何媒體ã€ç¶²(wÇŽng)站或個人轉(zhuÇŽn)è¼‰ä½¿ç”¨æ™‚é ˆæ³¨æ˜Žä¾†æºâ€œä¸åœ‹å‚³å‹•ç¶²(wÇŽng)â€ï¼Œé•å者本網(wÇŽng)將追究其法律責(zé)任。
本網(wÇŽng)轉(zhuÇŽn)載并注明其他來æºçš„稿件,å‡ä¾†è‡ªäº’è¯(lián)ç¶²(wÇŽng)或æ¥(yè)å…§(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuÇŽn)載請ä¿ç•™ç¨¿ä»¶ä¾†æºåŠä½œè€…ï¼Œç¦æ¢æ“…自篡改,é•è€…è‡ªè² (fù)版權(quán)法律責(zé)任。
相關(guÄn)資訊