在雙CAN冗余系統中,較之硬件結構而言,軟件設計相對復雜得多。一般的CAN總線通信程序必須包括 CAN初始化程序、CAN發送程序和CAN接收程序三個基本部分。在本冗余系統軟件設計中,上面三部分作為三個最基本的模塊,供系統其它軟件模塊調用。
MB90F543可以處理256種中斷源,與CAN控制器相關的硬件中斷有四個:CAN0 RX(CAN0 接收完全中斷)、CAN0 TX /NS(CAN0 發送完全/節點狀態改變中斷)、CAN1 RX(CAN1 接收完全中斷)、CAN1 TX /NS(CAN1 發送完全/節點狀態改變中斷)。在本軟件設計中,采用查詢發送,中斷接收。節點狀態改變中斷子程序,用于對節點狀態改變的處理。這是因為在CAN2.0協議中規定節點處于下面三種狀態之一:錯誤激活態、忽略錯誤態、脫離總線態。在MB90500系列中還多規定了一種警告態,它表明發送/接收錯誤計數器的值超過96。節點狀態改變會引起相應中斷。
由于系統采用雙CAN冗余熱備份方式運行,所以兩個CAN控制器必須都處于熱備份狀態。系統中所有節點的兩個CAN控制器經初始化后都隨時準備接收信息,但有且只有一個CAN控制器在發送信息。換言之,在一個時間點上,系統中有且僅有一路 CAN通道在工作,另一路處于監聽狀態(正常工作時),或故障狀態(發生故障時)。
雙CAN冗余控制系統較之單CAN控制系統在軟件設計上的復雜之處,關鍵在于CAN系統故障檢測及CAN系統自動切換。由于采用兩套完全獨立的傳輸介質、總線驅動器和總線控制器,因此它們能分別獨立檢測到自己通道的故障,比如CANH與CANL短路,CANH或CANL斷開、CANH與地短路、CANL與電源短路、總線驅動器損壞等。實際調試中發現, 如果CANH、CANL斷開或只有一個發送器在總線上,均會造成發送/接收錯誤計數器不斷增加到128,使節點處于忽略錯誤態;而CANH與CANL短路、CANH與地短路或CANL與電源短路均會造成發送/接收錯誤計數器不斷增加到256,使節點處于總線脫離態。所以,通過節點狀態改變中斷子程序中調用CAN冗余模塊,可以達到實現上述故障自動檢測及CAN系統自動切換的目的。
6sn1145-1ba01-0ba1 16 點輸出, 24VDC, 0.5A 6ES7 322-1BH01-0AA0
16 點輸出, 24VDC, 0.5A,高速 6ES7 322-1BH10-0AA0
32 點輸出, 24VDC, 0.5A 6ES7 322-1BL00-0AA0
8 點輸出, 24VDC, 0.5A,診斷能力 6ES7 322-8BF00-0AB0
64 點輸出, 24VDC, 0.3A 6ES7 322-1BP00-0AA0
64 點輸出, 24VDC, 0.3A 6ES7 322-1BP50-0AA0
16 點輸出, 24/48VDC, 0.5A 6ES7 322-5GH00-0AB0
8 點輸出, 48-125VDC, 1.5A 6ES7 322-1CF00-0AA0
8 點輸出, 120/230VAC, 1A 6ES7 322-1FF01-0AA0
8 點輸出, 120/230VAC, 2A 6ES7 322-5FF00-0AB0
16 點輸出, 120/230VAC, 1A 6ES7 322-1FH00-0AA0
32 點輸出, 120VAC, 1A 6ES7 322-1FL00-0AA0
8 點輸出,繼電器,2A 6ES7 322-1HF01-0AA0
8 點輸出,繼電器,5A 6ES7 322-1HF10-0AA0
8 點輸出,繼電器, 5A,帶過壓 RC 濾波器保護 6ES7 322-5HF00-0AB0
16 點輸出,繼電器, 8A 6ES7 322-1HH01-0AA0
SM 323 數字量輸入 / 輸出模塊
6ES7 323-1BH01-0AA0
8 輸入,8 輸出
16 輸入,16 輸出 6ES7 323-1BL00-0AA0
SM 327 數字量輸入 / 輸出模塊 8 點輸入,8 點輸入或輸出 ( 可設置 )
6ES7 327-1BH00-0AB0
?
模擬量模塊
SM 331 模擬量輸入模塊
6ES7 331-1KF02-0AB0
8 點輸入, 13 位分辨率
8 點輸入, 9/12/14 位分辨率 6ES7 331-7KF02-0AB0
2 點輸入, 9/12/14 位分辨率 6ES7 331-7KB02-0AB0
8 點輸入,增強型 16 位分辨率 6ES7 331-7NF00-0AB0
8 點輸入,增強型 16 位分辨率, 4 通道模式 6ES7 331-7NF10-0AB0
8 點輸入, 14 位分辨率,用于等時模式下運行 6ES7 331-7HF01-0AB0
8 點輸入,用于熱電阻 6ES7 331-7PF01-0AB0
8 點輸入,用于熱電偶 6ES7 331-7PF11-0AB0
SM 332 模擬量輸出模塊
6ES7 332-5HD01-0AB0
6sn1145-1ba01-0ba1 1746-IO12DC
1746-IO4
1746-IO8
1746-ITB16
1746-ITV16
1746-IV16
1746-IV32
1746-IV8
1746-OA16
1746-OA8
1746-OAP12
1746-OB16
1746-OB16E
1746-OB32
1746-OB32E
1746-OB6EI
1746-OB8
1746-OBP16
1746-OBP8
1746-OG16
1746-OV16
1746-OV32
1746-OV8
1746-OVP16
1746-OW16
1746-OW4
1746-OW8
1746-OX8
1746-FIO4I
1746-FIO4V
1746-INT4
1746-NI16I
1746-NI16V
1746-NI4
1746-NI8
1746-NIO4I
1746-NIO4V
1746-NO4I
1746-NO4V
1746-NO8I
1746-NO8V
1746-NR4
1746-NR8
1746-NT4
1746-NT8
1746-BLM
1746-BTM
1746-HSCE
1746-HSCE2
1746-HSRV
1746-HSTP1
1746-QS
1746-QV
8100-HS110
1746-N3
1747-KFC15
1747-AIC
1747-C10
1747-C11
1747-C13
1747-C20
1747-KE
1747-PIC
1747-UIC
1747-UICC13