CAN總線在自動生產(chǎn)線中的應用
標識符字節(jié)1設定發(fā)送節(jié)點/接收節(jié)點,設定內(nèi)容見表2。標識符字節(jié)2中ID.2~ID.0(高3位)無定義取0,RTR是遠程發(fā)送請求位,低4位為數(shù)據(jù)長度碼。
報文的標識符就象報文的名字,它在接收器的接收過濾中被用到。網(wǎng)絡上所有的節(jié)點可以通過接收過濾確定是否采用該報文。接收過濾功能是可選項,如選擇接收過濾功能,則應將接收屏蔽寄存器中各個位設置成“相關”,如不選擇接收過濾功能,接收屏蔽寄存器中各個位應設置成“不相關”。當選擇了接收過濾功能時,一旦節(jié)點接收到數(shù)據(jù),則只有當接收碼與標識符的ID.6~ID.3相同,接收的數(shù)據(jù)才會被節(jié)點采用。
報文中數(shù)據(jù)區(qū)第1個字節(jié)的內(nèi)容設定為信息類別,第2字節(jié)為待發(fā)送的數(shù)據(jù)。信息類別根據(jù)被傳送的信息類型進行編碼,詳見表3。數(shù)據(jù)用來區(qū)分工件的黑/白顏色、正品/次品等信息。
3.2 CAN通訊節(jié)點軟件設計
CAN通訊節(jié)點的軟件設計主要包括兩個部分:CAN通訊模塊程序、站內(nèi)控制模塊程序。站內(nèi)控制模塊程序包括單片機初始化和站內(nèi)控制功能的實現(xiàn)以及對CAN子程序的調(diào)用。CAN總線通訊程序是指在單片機的控制下將本節(jié)點的數(shù)據(jù)發(fā)送到總線上,以及接收總線上發(fā)送給本節(jié)點的信息并將其存人單片機,主要包括CAN總線控制器sJAlooo的初始化、報文發(fā)送和報文接收3個部分。CAN通訊的數(shù)據(jù)傳輸按照用戶自定義通訊協(xié)議的格式進行。
第2站(搬運站)的CAN通訊數(shù)據(jù)幀定義見表4。
3.2.1 CAN初始化子程序流程
CAN控制器初始化是CAN總線系統(tǒng)正常工作的前提,CAN控制器SJAlooO的初始化設置是在復位模式下進行的。由于篇幅關系,本文不作詳細說明。
3.2.2 CAN發(fā)送子程序流程
報文的發(fā)送由SJAl000根據(jù)CAN總線協(xié)議自動完成,用戶所要做的是把要發(fā)送的信息按特定的格式組成一幀報文,從單片機內(nèi)的系統(tǒng)發(fā)送緩沖區(qū)送到SJA1000的發(fā)送緩沖區(qū)中,然后通過寫命令寄存器的相應位啟動“發(fā)送請求標志位”。在將系統(tǒng)發(fā)送緩沖區(qū)數(shù)據(jù)送到SJAl000的發(fā)送緩沖區(qū)前,應先判斷總線上是否正在接收數(shù)據(jù),還需判斷一下上次發(fā)送是否成功,否則不能寫入數(shù)據(jù)。
3.2.3 CAN接收子程序流程
報文的接收仍然由SJAlooO獨立完成。在搬運站中,節(jié)點從總線上接收報文采用中斷的方式進行。搬運站通過中斷接收方式接收的信息有前站的工件顏色、前站準備好的信息以及后站準備好的信息。
采用中斷的方式進行控制時,總線上的報文通過本節(jié)點的驗收濾波器測試后,這條完整的報文就被保存在接收緩沖器中。此時,接收緩沖器狀態(tài)標志位RBS被置1,表示接收緩沖區(qū)有新的數(shù)據(jù),并同時產(chǎn)生外部中斷。
單片機進入中斷接收程序后首先保護現(xiàn)場,然后CPU讀出接收緩沖區(qū)的內(nèi)容,接著發(fā)送釋放接收緩沖器命令,清除接收緩沖器狀態(tài)標志。最后恢復現(xiàn)場,中斷返回。
4 結(jié)束語
網(wǎng)絡技術在自動控制系統(tǒng)中的應用已成為現(xiàn)代控制技術的一個重要發(fā)展方向。作為目前現(xiàn)場總線的主流標準-CAN總線技術在現(xiàn)代自動控制領域中的應用狀況,從某種程度上代表著現(xiàn)代工業(yè)控制技術的發(fā)展水平。
本文根據(jù)預期的通訊速度快、可靠性高的目標和要求,設計這套測控系統(tǒng),通過用戶自定義網(wǎng)絡應用層協(xié)議,給出了具體的設計方案,闡述了CAN通訊程序的實現(xiàn)方法,滿足了自動生產(chǎn)線實時化、網(wǎng)絡化和智能化的設計要求。
隨著計算機、通訊和控制等技術的不斷發(fā)展,建立于這些技術基礎之上的現(xiàn)場總線技術也在不斷向前發(fā)展,CAN總線的特點和優(yōu)勢,使它非常適合于作為現(xiàn)場監(jiān)測和控制系統(tǒng)的通訊協(xié)議,其技術開放性及低成本,使基于CAN總線的測控技術可以廣泛應用于工業(yè)自動化領域。
評論