基于DSP的伺服控制系統設計
現場操作趨向于使用人機界面,MT500系列觸摸屏是專門面向PLC 應用的,它使用RS-232和RS485通信協議,能快速可靠的讀寫PLC內部數據。本文使用DSP與PLC直接通信,針對PLC節點狀態對ISA槽上各個伺服控制板進行同步控制。我們采用了ISA槽,但這和PC的ISA總線是完全不一樣的,ISA槽的引入只是為系統設計提供標準。所有的仲裁和大部分數據計算都由主控板完成,因此主控板的設計是系統設計的關鍵。
系統結構
系統總體結構如圖1所示:
圖1 伺服系統總體框圖
系統的控制對象是多個圓網電機和一個導帶主電機,圓網電機始終跟隨主電機,系統要保持各個圓網和導帶的線速度同步。主控板控制著系統的總線,其它板卡(如速度板、伺服板)都處于從屬位置,DSP周期性的發送數據給各個伺服板和速度板。觸摸屏與PLC通過串口通信,每種觸摸屏都配有相應軟件,包含了大量的元件庫,用這些元件可以實現面板上的各種顯示,如指示燈、數值顯示和輸入、文本顯示和輸入、報警、趨勢圖等。觸摸屏和PLC通信是雙向的,既可以顯示也可以修改PLC內的數據,因此觸摸屏可以替代面板的功能。主控板的功能是控制著系統的流程,通過串口接收從PLC得到的現場狀態,從而控制著整個系統工作的狀態。具體是通過ISA槽與速度板通訊,給定導帶電機當前需要工作的速度。由于生產過程中,圓網跟蹤導帶是主要工作狀態,所以主令電機的反饋由主控板采集也是最簡便的。主令導帶電機位置檢測元件采用數字式檢測元件5000p/r的光電編碼器,安裝在印花機被動輥的軸上,其反饋送給主控板。
圓網電機驅動單元采用Panasonic公司的全數字型交流伺服驅動器和配套交流伺服電機。圓網電機位置檢測元件采用伺服電機自帶2500p/r光電編碼器,直接與電機的出軸相連。交流伺服驅動器控制板完成對伺服驅動器的控制和位置反饋信號的采集,實現對圓網電機的位置半閉環控制。
主控板設計
主控板的原理
圖2示出主控板硬件原理圖,主控板對系統的控制時要完成以下幾項工作:
圖2 主控板硬件原理圖
● 實現與PLC的數據交換
PLC與主控板交換的數據有圓網的狀態,如: 系統的急停、圓網的啟動、停止、基速、跟蹤、自動降速等等; 系統的參數設置,如磨擦系數的設置。由于這些信息實時性要求不是很高,采用串口通訊。
● 控制總線并和總線上的板卡通訊
采用的是基于ISA槽的通訊,這里的ISA總線由主控板控制其仲裁和時序。主控板和伺服板通訊的數據有速度設定值和一些特殊的命令字符,命令字符用以控制伺服電機的運行方式。主控板上所有的數據、地址都經過CPLD鎖存和處理,增強了總線驅動能力,保證DSP的I/O操作能順利收發數據。
● 主令電機反饋信號的采集
通過主令電機編碼器,采集導帶的速度值,并將這些值通過總線送給伺服板,使其能快速、精確地跟蹤導帶的速度。DSP內含的正交編碼器脈沖(QEP)捕獲單元可以直接處理光電編碼器的兩路正交輸出信號。QEP單元對輸入的兩路正交信號的上升和下降沿進行捕獲,根據兩路信號的相位關系自動判斷電機的正反轉,并據此對捕獲的信號進行加、減計數。在程序中可以方便地讀取當前的計數值和計數方向,即電機的角位移和轉向;而電機速度則可以由計數脈沖的頻率獲得。
● 全局時鐘以及同步中斷信號地產生
伺服板之間的發送脈沖電路如果沒有基準時鐘,它們之間將產生累計誤差,所以系統需要全局時鐘,全局時鐘給ISA槽上所有控制板提供了同步的基準。全局時鐘是晶振信號經過DSP處理后經CPLD驅動而發出的,與DSP的CPUCLK頻率相同。系統中,導帶、圓網的運行速度獲取是在采樣周期內完成。圓網要實時跟蹤導帶的運行速度,給定周期越短,圓網速度跟蹤的效果也就會更理想。為控制每塊伺服控制板同步動作,在系統中設計了同步控制信號。
主控板的軟件設計
圖3是系統主控板的主程序流程圖。
圖3 主控板主程序流程圖
主控板軟件可分為2個模塊,這兩個模塊完成任務調度和管理、中斷服務。
● 任務調度和管理
實現DSP與PLC的通訊,DSP采用查詢方式獲取PLC節點狀態變化,整個模塊是一個主循環。系統所用的是OMRON系列PLC,有特殊的通訊幀格式,需在DSP上寫好通訊函數。在本文中PLC常用的命令字有RR(讀IR/SR區)、RD(讀DM區)、WR(寫IR/SR區)、WD(寫DM區)、SC(寫狀態)。實際的運行過程中,PLC的IR區的節點對應著控制面板各個按鈕、開關的狀態。常用的參數設置和一些顯示用數據都放在DM區,斷電后能保持較久的時間。下圖是SC(寫狀態)的幀格式,其中短格表示一字節,長格表示2字節數據。程序中按幀格式把數據填入緩存區,再把緩存區的數據依次填入SCITXBUF就能實現數據發送,接收數據和發送類似。

不管DSP讀還是寫數據,PLC 都會有應答幀,DSP根據應答信息能知道通訊是否成功。串口工作在9600bps的速率下,所有命令幀中最長達19字節,即使在比較惡劣的工業現場環境下也能保證通訊正常。
DSP在程序主循環中與PLC 若干個節點始終保持通訊,并且對各個節點的狀態變化能在毫秒級完成相應的控制,因此系統的實時性能很好。系統實時性得以保證還需要程序提供充分的通訊異常處理,否則DSP與PLC通訊過程中,如果沒有收到PLC的應答幀或者應答幀出錯,都會對導致系統死機或狀態混亂。在通訊異常檢測方面,程序采用定時器超時檢測和應答幀檢測,發現錯誤后重發數據幀,如果重發次數超過限定,就跳過該PLC節點檢測,系統狀態保持原樣。采取以上措施后,除非DSP與PLC通信線出現物理中斷,系統都能正常運行。
● 中斷服務程序
DSP所用中斷是定時器1的周期中斷,中斷程序交替執行兩個子模塊。在第一個子模塊內DSP給速度板發送數據,控制導帶速度;在第二個子模塊內DSP接收主電機編碼反饋,處理后發給ISA總線上的各個伺服控制板。在這個中斷程序中屏蔽掉了其他中斷,所以它的優先級是最高的,這樣就能保證各個圓網數據能實時發送,完成同步跟蹤。DSP擁有50ns 的單周期指令執行時間,毫秒級的周期中斷內能執行20000條指令,而實際的中斷服務程序內只有幾百條指令,因此DSP能迅速執行完中斷程序,留有足夠時間執行主循環程序。即使在DSP與PLC間正在傳送數據時產生了周期中斷,也能保證串口通訊的正常進行。