CANopen 是一個基于 CAN 串行總線的網絡傳輸系統的應用層協議,遵循 ISO/OSI 標準模型。網絡中不同的設備通過對象字典或者對象來相互交換數據,其中,主節點可以通過過程數據對象 (PDO) 或者服務數據對象 (SDO) 來獲取或者修改其它節點對象字典列表中的數據。
CANOpen協議主要內容分為三大塊,如下圖CANopen 的設備模型。
一、讀卡器端
1、接線說明
CK-LR08-C01接線說明
2、通訊格式
通信接口:CAN
通信協議:CANOpen
波特率:1MBit/s
CANID:2
使用PLC進行通信是無需使用SDO指令,讀卡器讀取到卡片數據會自動使用PDO發送。
二、西門子PLC端
1、模塊CANopen模塊組態
先將EDS文件添加進軟件內部
在Tools中選擇Manage Catalog打開Device Catalog Managemen,點擊Import a device打開文件選擇窗口,選擇好目標EDS文件雙擊載入。
此時可以在下方的Error List欄內看到是0Errors 0Warnings,這就代表EDS文件成功載入。
在軟件內新建出一個工程,選擇好 保存路徑、主站設備然后點擊OK.
在下方的Other Profiles欄內將CK-LR08拖動至上方的Project Explorer內,在新彈出的Add New Device內填上設備名稱、從站ID,將Group選擇為Slaves從站然后點擊OK完成。
添加完設備后將LR08-C01的Bit7取消勾選,如上圖所示
在Error Conttrol Configuration界面下將主從站的心跳報文時間設定為500ms,再設定主站監聽從站的心跳報文超時時間為750ms
在Application objects界面下選擇要通過PDO傳送的參數對象,這里全部選擇
①點擊“Add new group”圖標;
②以小寫的英文字母分別命名創建的Group;
③選中同一Node-ID下的所有對象;
④在Group下拉列表中選擇分配給該Node-ID的組名;
⑤點擊“Assign group to selected objects”圖標完成分組。
將ENABLED使能選項勾上→注意CAN-ID內的數據是否正確→傳輸類型選擇默認的Event Driven(Profile Specific)→勾上Lock PDO→對于TPDO還需配置最小發送間隔和最大發送間隔。
①按下計算配置等待計算完成
②計算完成后查看Error List欄內是否有錯誤,若有錯誤則根據錯誤提示進行修改
③按下生成配置將配置文件保存在用戶指定位置
① 點擊下載按鈕
② 在Download Interface 中選擇CM CANopen USB (*.CMCDC)
③ 點擊 … 選擇剛剛生成的配置文件
④ 點擊Download 等待下載進度條跑完
2、通信格式設置
在設備視圖內選中CM CANopen模塊,選擇“屬性”在“常規”選項內點擊CANopen接口,將操作模式設置成CANopen Manager 波特率設置為1000Kbits/s,數據大小32。
3、程序編寫
將PDO讀取出來的12Byte數據存放在LR08 . Read Data數組內
將P#DB5.DBX12.0 BYTE 20內的10Byte數據寫入PDO;
P#DB5.DBX12.0 BYTE 20是指以DB5塊內起始地址12.0的20Byte數據,也可以使用上面RDREC的寫法 “LR08”.”Write Data”。
如需了解CANOpen的應用可以聯系晨控智能官方,晨控智能期待與您的合作。
審核編輯:湯梓紅
評論