由於PDO所傳輸的數據內容是無協議的且分配的標識符范圍較SDO靠前,因此,其效率和優先級都是較高的,通常用於實時過程數據的傳輸.
PDO是生產/消費類型的通訊方式,數據只有一個生產者(發送),但是消費者(接收)可以有多個,生產者和消費者事先都已知道數據的類型和內容(通過設置PDO映射來管理).
對PDO通訊參數的設置可以實現四種通訊方式:
-
同步傳輸.在收到SYNC消息后觸發PDO發送,可以定義收到幾個SYNC后觸發一次TPDO,在有SYNC的CANopen網絡中,SYNC就相當於一個網絡節拍,數據根據節拍來進行固定周期的過程數據傳輸.比如網絡中有一個壓力傳感器,一個溫度傳感器,一個物位傳感器,網絡中有一個HMI監控終端來實時監控三個傳感器采集的數據,壓力傳感器可能檢測的是一個快速的壓力變化,那可以每隔200mS更新一次數據,溫度可能需要1S更新一次數據,物位可能5S更新一次數據,(假設各傳感器的數據采集周期都比數據更新周期小,如果大的話數據更新快可能沒有意義,呵呵)現在我可以設置一個200mS周期的SYNC消息,壓力傳感器每收到一個SYNC就向HMI傳輸一次數據,溫度傳感器可以每隔5個SYNC傳輸一次數據,同樣物位傳感器就是每收到25個SYNC發送一次數據.這種通訊方式顯得比較規矩,好管理,系統運行效率高,適合周期性數據更新的應用.
-
遠程請求.在需要網絡上某個節點的數據的時候,我發一個遠程數據請求過去,對方在接收到請求后,把我要的數據給發過來,這種方式是在我需要的時候去主動獲取.
-
定時發送.這個有別於SYNC,它是在本節點實現周期發送,通過設置PDO參數,定一個周期,每隔固定的時間向網絡上發送一次PDO,它與SYNC無關,在網絡設計中主要按照傳感器的數據采集速度和數據更新要求來設定定時周期.
-
事件觸發.當節點的某個時間發生觸發的一次數據發送,例如當某個接着報警開關的開關量采集節點的報警狀態發生變化時,觸發一次PDO將報警狀態發送到網絡上,使系統能夠及時獲得該報警狀態信息.該方式是實時性最好的一種傳輸方式,特別適合系統運行出錯報警和重大事件的及時處理上.
上面的幾種傳輸方式各有所長,在CANopen網絡的設計中,按照不同的應用靈活配合使用才能構建一個優秀的解決方案.