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