數字電子信息技術的飛速發展對全世界的制造業日益起著巨大的推動作用,使得制造業的各種設備的設計越來越電子化,數字化,網絡化,ECCT產品是艾默生CT推出的一款專門應用于紡織行業的具有CAN總線協議的專用PLC控制器,它不僅滿足了紡織的基本I/O工藝需求,更是把CAN總線協議完美地融合進去,使用戶很輕易地把系統的各種設備通過CAN協議進行連接,本文介紹了CAN總線功能在艾默生CTPLC上的應用。 CAN總線基礎知識簡介 CAN總線(CONTROLLERAREANETWORK,控制器局部網絡)由德國BOSCH公司首先提出來的,CAN總線是目前工業界廣泛應用的總線。其特點簡要歸納如下: 1)CAN控制器工作于多主站方式,網絡中的各節點都可根據總線訪問優先權(取決于報文標識符)采用無損結構的逐位仲裁的方式競爭向總線發送數據。而利用RS-485只能構成主從式結構系統,通信方式也只能以主站輪詢的方式進行,系統的實時性、可靠性較差。 2)CAN協議廢除了傳統的站地址編碼,而代之以對通信數據進行編碼,其優點是可使網絡內的節點個數在理論上不受限制,加入或減少設備都不影響系統的工作。同時可使不同的節點同時接收到相同的數據,這些特點使得CAN總線構成的網絡各節點之間的數據通信實時性強,并且容易構成冗余結構,提高系統的可靠性和系統的靈活性。 3)CAN總線通過CAN控制器接口芯片的兩個輸出端CANH和CANL與物理總線相連,而CANH端的狀態只能是高電平或懸浮狀態,CANL端只能是低電平或懸浮狀態。這樣就保證不會出現類似在RS-485網絡中系統有錯誤時會導致出現多節點同時向總線發送數據而導致總線呈現短路從而損壞某些節點的現象。而且CAN節點在錯誤嚴重的情況下具有自動關閉輸出功能,以使總線上其他節點的操作不受影響,從而保證不會出現象在網絡中,因個別節點出現問題,使得總線處于“死鎖”狀態。 4)CAN具有的完善的通信協議可由CAN控制器芯片及其接口芯片來實現,從而大大降低了用戶系統開發的難度,縮短了開發周期,這些是僅僅有電氣協議的RS-485所無法比擬的。 5)與其它現場總線比較而言,CAN總線通信最高速率可達1MBPS,傳輸速率為5KBPS時,采用雙絞線,傳輸距離可達10KM,并且數據傳輸可靠性高;CAN總線是具有通信速率高、容易實現、且性價比高等諸多特點的一種已形成國際標準的現場總線。這些也是目前CAN總線應用于眾多領域,具有強勁的市場競爭力的重要原因。 CAN總線與RS485方式的區別: CAN總線系統結構:CAN總線每個節點需要帶有CAN協議控制芯片及適當的接口電路,節點之間通過雙絞屏蔽線進行總線式連接,首尾節點需要接120R的匹配電阻,通信最高速率可達1MBPS,傳輸速率越低,傳輸距離越遠。系統結構如下: CAN協議的報文格式:CAN協議支持兩種報文格式CAN2.0A和CAN2.0B;CAN2.0A為標準格式,CAN2.0B為擴展格式;格式分別如下: CAN2.0A協議報文結構圖如下 CAN2.0B協議報文結構圖如下 標準格式和擴展格式唯一的不同是標識符(ID)長度不同,標準格式為11位(ID10-ID0),擴展格式為29位(ID10-ID0,EID17-EID0)。 在標準格式和擴展格式中,報文的起始位稱為幀起始(SOF),幀起始標志數據幀或遠程幀的起始,由一個單獨的“顯性”位(0)組成。由控制芯片自動完成,不需要用戶在程序中體現。 然后是由11位標識符(ID10-ID0)(擴展格式為29位(ID10-ID0,EID17-EID0))和遠程發送請求位(RTR)組成的仲裁場。RTR位標明是數據幀還是請求幀,在請求幀中沒有數據字節。 控制場包括標識符擴展位(IDE),指出是標準格式還是擴展格式。它還包括一個保留位(RBO),為將來擴展使用。它的最后四個位用來指明數據場中數據的長度(大小就是由DLC3-DLC0組成的2進制數據)。數據場范圍為0~8個字節(DATAFIELD),其后有一個檢測數據錯誤的循環冗余檢查(CRC)。 應答場(ACK)包括應答位和應答分隔符。發送站發送的這兩位均為隱性電平(邏輯1),這時正確接收報文的接收站發送主控電平(邏輯0)覆蓋它。用這種方法,發送站可以保證網絡中至少有一個站能正確接收到報文. 報文的尾部由幀結束標出。在相鄰的兩條報文間有一很短的間隔位,如果這時沒有站進行總線存取,總線將處于空閑狀態。 艾默生CTPLC集成CAN總線功能介紹 ECCT的CAN通信功能支持CAN2.0A協議和CAN2.0B協議,通信波特率設置范圍為5-100KBPS,可以通過艾默生CTPLC編程軟件CONTROLSTARFORECCT進行設置。具體使用步驟如下: 1)基本設置:在工程管理器里雙擊“系統塊”,在彈出的窗口選擇“CAN口設置”,在“CAN口參數設置”里選擇“自由協議”,然后單擊后面的“自由口設置”按扭。在彈出的窗口選擇協議類型“2.0A”或“2.0B”,然后再下拉選擇“波特率”最后單擊“確定”,把系統塊下載到PLC里。 2)數據發送:使用指令CANXMT,并以CAN2。0A協議為例描繪了它們之間的對應關系。 3)數據接收:使用CANRCV指令(參數含義如下)或使用CAN接收中斷功能。我推薦對初使用者采用中斷更方便,具體用法參考下面的例子程序。 筆者根據ECCT集成的CAN總線功能,在紡織機械上的得到了成功的應用,現介紹如下:其CAN系統總體結構圖如下: 此系統的具體工藝不做介紹,這里只介紹CAN通信部分的應用。 程序使用說明如下: 1.首先根據要求在“系統塊”里對CAN通信口進行設置。 2.數據發送部分:對ID為5的地址發送4個字數據“16#1122,16#3344,16#6789,16#1234”需要編寫的程序為如下: 其中要注意的是:1)CANXMT為上升沿執行指令,M1000為指令執行條件,當其出現OFF—>ON的變化時,執行CANXMT指令;2)使用CANXMT指令前先把該賦值的地址寫好;3)發送數據只取D元件的低8位;4)網絡上沒有CANID、數據完全相同的CAN幀同時出現;5)ID保留0。6)CAN程序的校驗部分全部由硬件自動完成,用戶程序不需要參與。 3.數據接收部分:此部分以使用中斷方式接收數據為例,分2部分步驟: 1)先在主程序中設置CAN中斷使能. 2)設置中斷程序屬性,把其中斷事件選為48(即CAN接收中斷),然后編寫程序把接收到的數據傳遞到需要的地址.注意ID地址為雙字結構,SD282-290依次為數據的高低字節,把他們傳遞到相應的數據寄存器然后合并就可以得到完整的數據了。 總結: 由于CAN協議格式比較簡單,并且相當部分工作由CAN控制芯片硬件完成,所以編寫程序比較簡單,實現起來很容易,此紡織系統采用CAN通信方式后,速度大大提高并且系統更加穩定,受到用戶的肯定。 |