嵌入式PLC芯片組實現(xiàn)kp3-05m06r型運動控制器
4.1 主控制器軟件設(shè)計
主控制器采用嵌入式plc芯片組,完成開關(guān)量輸入輸出、uart0、uart1、can、rs485/232互連和通信功能?;拒浖蚣苡梢韵缕邆€子程序組成。
init-config:端口初始化程序,完成輸入輸出端口配置,中間變量初始化,啟動spi。
init-start:上電初始化程序,復(fù)位所有輸出口。
init-set:設(shè)置初始化程序,復(fù)位所有輸出口。
init-run:運行初始化程序。
step:指令周期掃描程序
tms:2.5ms周期掃描程序,采樣輸入口狀態(tài)、刷新輸出口狀態(tài)、spi通信報文的發(fā)送和接收。
scan:演算周期掃描程序,輸入口狀態(tài)濾波,spi通信報文的解讀。
4.2 從控制器軟件設(shè)計
從控制器采用c8051f330單片機,指令運算速度高達(dá)25mips。從控制器對輸入脈沖采樣,接受主控制器發(fā)送的命令并進(jìn)行相應(yīng)的處理,輸入脈沖經(jīng)過分頻后,輸出相應(yīng)頻率的脈沖,并將有關(guān)信息發(fā)送給主站控制器。從控制器的作用相當(dāng)于一個執(zhí)行機構(gòu),它接受主控制器的命令執(zhí)行不同的動作,并把執(zhí)行的狀態(tài)反饋給主控制器,主要由以下5個功能程序組成。
start:上電復(fù)位初始化程序,輸入輸出端口配置,復(fù)位中間變量單元,啟動spi、int0中斷。
int-int0:外部中斷0服務(wù)程序,對輸入脈沖進(jìn)行分頻處理及脈沖插補。
int-spi:spi中斷服務(wù)程序,spi通信報文的接收和發(fā)送。
int-t3:定時器t3中斷服務(wù)程序,監(jiān)控spi通信狀態(tài)和主程序執(zhí)行狀態(tài)。
main:主程序,解讀spi通信報文,完成脈沖點動、定位。
4.3主從控制器的組合設(shè)計
主、從控制器之間以spi接口連接,spi通訊速率為500kbit/s,因此有利于提高系統(tǒng)的快速性和實時性。
主站采用定時發(fā)送/接收模式,嵌入程序初始化時,啟動spi發(fā)送,定時時間到,先接收一字節(jié)數(shù)據(jù),然后發(fā)送下一字節(jié)數(shù)據(jù)。當(dāng)所有報文發(fā)送完成后,暫停發(fā)送等待主程序處理報文,報文處理完后才啟動下一輪發(fā)送。
從站采用中斷接收/發(fā)送模式,進(jìn)入中斷服務(wù)程序后,先接收一字節(jié)數(shù)據(jù),然后發(fā)送一字節(jié)數(shù)據(jù),當(dāng)所有報文接收完成后,對應(yīng)的有相同字節(jié)的報文發(fā)送完成。此時從站停止接收報文,等待主程序處理接收到的報文,報文處理完后,又啟動下一輪報文接收過程。
報文結(jié)構(gòu):stx+報文內(nèi)容+etx+crc。
stx:報文起始代碼,固定為02h。
報文內(nèi)容:起始2個字節(jié)為命令字對應(yīng)的ascii碼,以區(qū)別不同的報文,后面為報文實際 數(shù)據(jù),全部采用ascii碼。
etx:報文結(jié)束代碼,固定為03h。
crc:校驗和,報文內(nèi)容所有字節(jié)相加后再加etx的數(shù)值,然后轉(zhuǎn)換成ascii碼。
5 應(yīng)用舉例
5.1控制設(shè)備名稱
控制設(shè)備名稱:4套色圓網(wǎng)印花機控制系統(tǒng)。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論