數(shù)控平臺(tái)PLC控制系統(tǒng)的開(kāi)發(fā)
點(diǎn)擊:1397
A+ A-
所屬頻道:新聞中心
0 前言
可編程控制器( PLC) 是上世紀(jì)60 年代發(fā)展起來(lái)的一種新型自動(dòng)化控制器。最早是用于替代傳統(tǒng)的繼電器控制裝置, 功能上只有邏輯控制、計(jì)時(shí)、計(jì)數(shù)以及順序控制等, 而且只能進(jìn)行開(kāi)關(guān)量控制。隨著技術(shù)的進(jìn)步, PLC吸取了微電子技術(shù)和計(jì)算機(jī)技術(shù)的最新成果, 發(fā)展十分迅速, 其控制功能已遠(yuǎn)遠(yuǎn)超出邏輯控制的范疇, 從單機(jī)自動(dòng)化、生產(chǎn)線的自動(dòng)化, 到整個(gè)工廠的生產(chǎn)自動(dòng)化, 從柔性制造、工業(yè)機(jī)器人到大型分散型控制系統(tǒng), PLC均擔(dān)當(dāng)著重要角色。PLC、數(shù)控技術(shù)和工業(yè)機(jī)器人已成為機(jī)械工業(yè)自動(dòng)化的三大支柱。
PLC與數(shù)控技術(shù)的結(jié)合產(chǎn)生了各種不同類型的數(shù)控設(shè)備, 如復(fù)雜的數(shù)控加工中心, 簡(jiǎn)單的激光淬火用X2Y數(shù)控平臺(tái), X2Y繪圖儀。如兩軸運(yùn)動(dòng)的X2Y數(shù)控裝置, 不但有著廣泛的工業(yè)應(yīng)用, 而且在高校數(shù)控實(shí)踐教學(xué)中也是典型的實(shí)驗(yàn)設(shè)備。它一般由兩個(gè)步進(jìn)電機(jī)驅(qū)動(dòng), 可以沿X軸方向和Y軸方向運(yùn)動(dòng), 用單片機(jī)或PLC編程控制其走出不同的運(yùn)動(dòng)軌跡。本設(shè)計(jì)用西門(mén)子S72200PLC控制數(shù)控平臺(tái), 用PC機(jī)作上位機(jī)構(gòu)成控制系統(tǒng), 通過(guò)直線插補(bǔ)、圓弧插補(bǔ)運(yùn)算實(shí)現(xiàn)數(shù)控平臺(tái)按規(guī)定的軌跡運(yùn)動(dòng)。
1 數(shù)控平臺(tái)控制系統(tǒng)
用西門(mén)子S72200PLC (CPU226模塊) 作控制器,由于現(xiàn)有的PLC主機(jī)模塊為繼電器輸出型, 24 點(diǎn)輸入16點(diǎn)輸出, 接交流220V電源工作, 繼電器輸出不適合步進(jìn)電機(jī)控制的大量、快速脈沖輸出, 故擴(kuò)展一個(gè)晶體管輸出型EM222 模塊作輸出口。EM222 模塊有8個(gè)輸出點(diǎn), 一邊4個(gè)點(diǎn), 模塊要外接電源才能工作, 一般只要直接接PLC主機(jī)模塊的24V 直流輸出就行, 也可以用+ 5V電源, 但要注意與驅(qū)動(dòng)電源共地的問(wèn)題。驅(qū)動(dòng)數(shù)控平臺(tái)的兩個(gè)步進(jìn)電機(jī)型號(hào)為45BF005Ⅱ, 是三相反應(yīng)式步進(jìn)電機(jī), 步距角115, 相電流215A, 驅(qū)動(dòng)電壓直流24 ~40V。X軸步進(jìn)電機(jī)三相XA~XC接EM222輸出點(diǎn)的Q217~Q215, Y軸步進(jìn)電機(jī)三相YA~YC接EM222 輸出點(diǎn)的Q214 ~Q212。輸出點(diǎn)通過(guò)一大電阻接地M, 使其與EM222 內(nèi)部晶體管輸出電路L+(24V) 、M形成完整回路, 能保證輸出信號(hào)的確定。
PC機(jī)作上位機(jī), 設(shè)計(jì)人機(jī)接口界面, 數(shù)據(jù)輸入,數(shù)控插補(bǔ)運(yùn)算, 仿真動(dòng)態(tài)顯示插補(bǔ)運(yùn)動(dòng)軌跡, 并將插補(bǔ)運(yùn)動(dòng)軌跡控制信息傳給PLC, 由PLC控制步進(jìn)電機(jī)運(yùn)動(dòng)。驅(qū)動(dòng)電路就是功率放大, 使步進(jìn)電機(jī)獲得所要求的相電流和驅(qū)動(dòng)電壓。
2 插補(bǔ)運(yùn)算
PC機(jī)界面友好, 數(shù)據(jù)輸入方便, 插補(bǔ)運(yùn)算速度快, 插補(bǔ)軌跡顯示直觀生動(dòng), 利用PC機(jī)強(qiáng)大的軟硬件功能完成這些任務(wù)彌補(bǔ)了PLC的不足。一般的零件輪廓大都可以分解為直線和圓弧, 用VB編程, 采用逐點(diǎn)比較法設(shè)計(jì)直線插補(bǔ)和圓弧插補(bǔ)運(yùn)算程序。無(wú)論圖形在哪個(gè)象限, 插補(bǔ)運(yùn)算的結(jié)果就是產(chǎn)生步進(jìn)電機(jī)的運(yùn)動(dòng)控制信息, 一是運(yùn)動(dòng)軸, 二是在該軸的正或負(fù)方向運(yùn)動(dòng)。PC機(jī)插補(bǔ)運(yùn)算一步, 實(shí)時(shí)地將插步結(jié)果的運(yùn)動(dòng)控制信息傳送給PLC, PLC根據(jù)PC機(jī)傳來(lái)的控制信息驅(qū)動(dòng)相應(yīng)的步進(jìn)電機(jī)運(yùn)動(dòng)。PC 機(jī)傳給PLC的運(yùn)動(dòng)控制信息分下面幾種情況:
MSComm1 1Ou tp u t = " 1 " + " 1 " + " 0 " + Ch r $ ( &HA ) - - - - - - - - - - +X方向走一步 MSComm1 1Ou tp u t = " 1 " + " 2 " + " 0 " + Ch r $ ( &HA ) - - - - - - - - - - - X方向走一步 MSComm1 1Ou tp u t = " 2 " + " 3 " + " 0 " + Ch r $ ( &HA ) - - - - - - - - - - + Y方向走一步 MSComm1 1Ou tp u t = " 2 " + " 4 " + " 0 " + Ch r $ ( &HA ) - - - - - - - - - - - Y方向走一步 MSComm1 1Ou tp u t = " 0 " + " 0 " + " 6 " + Ch r $ ( &HA ) - - - - - - - - - - 停止信號(hào)
實(shí)際上就是PC機(jī)與PLC之間的通信數(shù)據(jù)協(xié)議問(wèn)題, PC機(jī)實(shí)時(shí)傳送的數(shù)據(jù)由4 個(gè)字節(jié)組成, 分別為軸、軸的運(yùn)動(dòng)方向、停止信號(hào)、最后是結(jié)束符0AH。
第一個(gè)字節(jié)表示運(yùn)動(dòng)軸, 字符1 (傳ASCII碼31H) 為X軸, 字符2 (傳ASCII碼32H) 為Y軸。第二個(gè)字節(jié)表示運(yùn)動(dòng)方向, 字符1為+ X方向, 字符2為- X方向, 字符3為+ Y方向, 字符4為- Y方向。第三個(gè)字節(jié)表示停止信號(hào), 字符6 表示插補(bǔ)結(jié)束, 關(guān)閉步進(jìn)電機(jī)。第四個(gè)字節(jié)為結(jié)束符0AH, PLC以接收到0AH為標(biāo)志, 認(rèn)為本次數(shù)據(jù)接收完畢。
3 PLC控制程序
3.1 接收數(shù)據(jù)
按照通信協(xié)議, PLC處于接收數(shù)據(jù)狀態(tài)。用接收指令RCV VB100, 0, 將接收到的數(shù)據(jù)存放在PLC接收緩沖區(qū)VB100 開(kāi)始的存儲(chǔ)區(qū), 接收緩沖區(qū)與插補(bǔ)控制信息的對(duì)應(yīng)關(guān)系。
3.2 通信及初始化設(shè)置
S72200PLC與PC機(jī)通信采用自由端口通信模式, 通信參數(shù)為波特率9600bp s, 每個(gè)字符8位數(shù)據(jù)位, 無(wú)奇偶校驗(yàn)。采用報(bào)文接收, 一次接收多個(gè)字節(jié), 這時(shí)需要設(shè)置特殊存儲(chǔ)器字節(jié)SMB87 ~SMB94及脈沖分配要用到的幾個(gè)寄存器。通信與初始化設(shè)置程序如下:
LD SM011 / /首次掃描為1 MOVB 16#09, SMB30 / /初始化自由口通信參數(shù) MOVB 16#B0, SMB87 / /RCV信息控制字節(jié) MOVB 16#0A, SMB89 / /結(jié)束符為16#0A MOVW + 1, SMW90 / /空閑超時(shí)為1ms MOVB 100, SMB94 / /最大字符數(shù)為100 MOVB 1, VB400 / /X軸脈沖分配移位寄存器 MOVB 1, VB500 / /Y軸脈沖分配移位寄存器 MOVB 0, VB300 / /移位寄存器的移入數(shù)據(jù) MOVB 0, AC1 / /X軸的時(shí)序脈沖記數(shù)器 MOVB 0, AC2 / /Y軸的時(shí)序脈沖記數(shù)器 ATCH INT_ 0, 23 / /報(bào)文接收結(jié)束中斷事件 EN I / /允許中斷 RCV VB100, 0 / /執(zhí)行接收指令, 接收緩沖區(qū) 指向VB100 3.3 脈沖分配
對(duì)三相步進(jìn)電機(jī)的控制, 有單三拍、雙三拍和單、雙六拍通電方式, 我們采用六拍通電方式。改變通電順序就改變了步進(jìn)電機(jī)的旋轉(zhuǎn)方向, 數(shù)控平臺(tái)的移動(dòng)方向就改變了。如何用PLC產(chǎn)生六拍時(shí)序脈沖及改變通電順序, 實(shí)現(xiàn)數(shù)控平臺(tái)沿X、Y軸正確移動(dòng)是PLC控制程序的關(guān)鍵。
以X軸步進(jìn)電機(jī)為例, 用移位寄存器指令SHRBV30010, V40010, + 7 對(duì)VB400 移位產(chǎn)生六拍時(shí)序脈沖, 初始化時(shí)VB300 為0, VB400 為1, 執(zhí)行一次移位將V30010 位的值從V40010 位移入, + 7 表示VB400中參與移位的7 位為V40010 ~V40016。用VB400中的六位V40011 ~V40016 產(chǎn)生六拍時(shí)序脈沖, 每移位一次為一拍, V40011~V40016前移一位,在V40011~V40016中每次總有一位為邏輯1, 其它位為邏輯0, 如第一次移位后V40011 ~V40016 等于100000, 邏輯1就代表著當(dāng)前拍所在位置。移位六次為一循環(huán), 反復(fù)進(jìn)行。
每一拍X 步進(jìn)電機(jī)三相的通電情況用M110、M111和M112存儲(chǔ), M110、M111 和M112 組成三相單、雙六拍環(huán)形脈沖分配器, 在V40011 ~V40016產(chǎn)生的六拍時(shí)序脈沖的作用下, M110、M111 和M112的通電順序?yàn)? M110M110、M111M111M111、M112M112M112、M110。
步進(jìn)電機(jī)的正反轉(zhuǎn)控制用4 個(gè)控制開(kāi)關(guān)實(shí)現(xiàn),Q013作X軸正轉(zhuǎn)開(kāi)關(guān), Q013 = 1正轉(zhuǎn), Q014作X軸反轉(zhuǎn)開(kāi)關(guān), Q014 = 1 反轉(zhuǎn), Y軸類似, 用Q015 和Q016。
用Q217、Q216和Q215輸出控制信號(hào)到X軸步進(jìn)電機(jī)XA、XB和XC三相, 當(dāng)Q013 閉合時(shí)X軸正轉(zhuǎn), X步進(jìn)電機(jī)的通電順序?yàn)锳ABBBCCCAA, 循環(huán)。即:
Q217Q217、Q216Q216Q216、Q215Q215Q215、Q217Q217, 循環(huán)。
當(dāng)Q014閉合時(shí)X軸反轉(zhuǎn), X步進(jìn)電機(jī)的通電順序?yàn)锽BAAACCCB;B, 循環(huán)。即:
Q216Q216、Q217 Q217 Q217、Q215 Q215Q215、Q216Q216, 循環(huán)。將以上時(shí)序脈沖的產(chǎn)生及脈沖分
3.4 PLC控制程序
PLC采用報(bào)文接收方式接收PC機(jī)實(shí)時(shí)傳送來(lái)的數(shù)據(jù), 接收到的數(shù)據(jù)存入緩沖區(qū)VB100。初始化程序中已用中斷連接指令A(yù)TCH INT_0, 23 將報(bào)文接收完成中斷(中斷號(hào)為23) 連接到用戶中斷處理程序INT_ 0。PLC每接收到一次PC機(jī)傳送的數(shù)據(jù), 響應(yīng)一次中斷并立即執(zhí)行用戶中斷處理程序INT_ 0。在中斷處理程序中首先對(duì)接收到的數(shù)據(jù)進(jìn)行判斷, 根據(jù)VB102中的值判斷是X或Y軸朝正、負(fù)哪個(gè)方向運(yùn)動(dòng), 并將此次運(yùn)動(dòng)方向開(kāi)關(guān)Q013 ~Q016 之一置邏輯1。然后根據(jù)VB101 中的值判斷是X或Y軸的哪個(gè)軸運(yùn)動(dòng), 如是X軸運(yùn)動(dòng), 則X軸計(jì)數(shù)一拍(無(wú)論是+X方向還是- X方向) , 執(zhí)行移位寄存器指令產(chǎn)生時(shí)序脈沖, 并進(jìn)行軟件脈沖分配, 從Q217~Q215輸出X軸步進(jìn)電機(jī)走一步的控制脈沖, 完成一拍的動(dòng)作。接著判斷X軸方向是否走了六拍, 如果已走完六拍, 要回到下一個(gè)六拍的起始拍, 在程序中就是重新初始化X軸計(jì)數(shù)器AC1為0, 移位寄存器VB400為1。Y軸的運(yùn)動(dòng)程序類似, 只是所使用的存儲(chǔ)器不同而已。
4 結(jié)束語(yǔ)
西門(mén)子S72200PLC數(shù)控平臺(tái)控制系統(tǒng), 集計(jì)算機(jī)、通信、數(shù)控、機(jī)電傳動(dòng)于一體, 不但作為高校智能綜合實(shí)驗(yàn)設(shè)備可廣泛應(yīng)用于學(xué)生大型綜合實(shí)踐環(huán)節(jié)、畢業(yè)設(shè)計(jì)及應(yīng)用課題開(kāi)發(fā), 而且其控制系統(tǒng)的設(shè)計(jì)思想和方法可以直接用于工業(yè)自動(dòng)化裝置及一些數(shù)控系統(tǒng)。
(審核編輯: 智匯張瑜)
分享