CANopen 是一個(gè)基于 CAN 串行總線的網(wǎng)絡(luò)傳輸系統(tǒng)的應(yīng)用層協(xié)議,遵循 ISO/OSI 標(biāo)準(zhǔn)模型。網(wǎng)絡(luò)中不同的設(shè)備通過(guò)對(duì)象字典或者對(duì)象來(lái)相互交換數(shù)據(jù),其中,主節(jié)點(diǎn)可以通過(guò)過(guò)程數(shù)據(jù)對(duì)象 (PDO) 或者服務(wù)數(shù)據(jù)對(duì)象 (SDO) 來(lái)獲取或者修改其它節(jié)點(diǎn)對(duì)象字典列表中的數(shù)據(jù)。
CANOpen協(xié)議主要內(nèi)容分為三大塊,如下圖CANopen 的設(shè)備模型。

選用西門(mén)子S7-1200與晨控RFID的LR08-C01

一、讀卡器端
1、接線說(shuō)明

CK-LR08-C01接線說(shuō)明

2、通訊格式
通信接口:CAN
通信協(xié)議:CANOpen
波特率:1MBit/s
CANID:2
使用PLC進(jìn)行通信是無(wú)需使用SDO指令,讀卡器讀取到卡片數(shù)據(jù)會(huì)自動(dòng)使用PDO發(fā)送。

二、西門(mén)子PLC端
1、模塊CANopen模塊組態(tài)
先將EDS文件添加進(jìn)軟件內(nèi)部


在Tools中選擇Manage Catalog打開(kāi)Device Catalog Managemen,點(diǎn)擊Import a device打開(kāi)文件選擇窗口,選擇好目標(biāo)EDS文件雙擊載入。

此時(shí)可以在下方的Error List欄內(nèi)看到是0Errors 0Warnings,這就代表EDS文件成功載入。

在軟件內(nèi)新建出一個(gè)工程,選擇好 保存路徑、主站設(shè)備然后點(diǎn)擊OK.

在下方的Other Profiles欄內(nèi)將CK-LR08拖動(dòng)至上方的Project Explorer內(nèi),在新彈出的Add New Device內(nèi)填上設(shè)備名稱、從站ID,將Group選擇為Slaves從站然后點(diǎn)擊OK完成。

添加完設(shè)備后將LR08-C01的Bit7取消勾選,如上圖所示

在Error Conttrol Configuration界面下將主從站的心跳報(bào)文時(shí)間設(shè)定為500ms,再設(shè)定主站監(jiān)聽(tīng)從站的心跳報(bào)文超時(shí)時(shí)間為750ms

在Application objects界面下選擇要通過(guò)PDO傳送的參數(shù)對(duì)象,這里全部選擇


①點(diǎn)擊“Add new group”圖標(biāo);
②以小寫(xiě)的英文字母分別命名創(chuàng)建的Group;
③選中同一Node-ID下的所有對(duì)象;
④在Group下拉列表中選擇分配給該Node-ID的組名;
⑤點(diǎn)擊“Assign group to selected objects”圖標(biāo)完成分組。

將ENABLED使能選項(xiàng)勾上→注意CAN-ID內(nèi)的數(shù)據(jù)是否正確→傳輸類(lèi)型選擇默認(rèn)的Event Driven(Profile Specific)→勾上Lock PDO→對(duì)于TPDO還需配置最小發(fā)送間隔和最大發(fā)送間隔。

①按下計(jì)算配置等待計(jì)算完成
②計(jì)算完成后查看Error List欄內(nèi)是否有錯(cuò)誤,若有錯(cuò)誤則根據(jù)錯(cuò)誤提示進(jìn)行修改
③按下生成配置將配置文件保存在用戶指定位置

① 點(diǎn)擊下載按鈕
② 在Download Interface 中選擇CM CANopen USB (*.CMCDC)
③ 點(diǎn)擊 … 選擇剛剛生成的配置文件
④ 點(diǎn)擊Download 等待下載進(jìn)度條跑完
2、通信格式設(shè)置

在設(shè)備視圖內(nèi)選中CM CANopen模塊,選擇“屬性”在“常規(guī)”選項(xiàng)內(nèi)點(diǎn)擊CANopen接口,將操作模式設(shè)置成CANopen Manager 波特率設(shè)置為1000Kbits/s,數(shù)據(jù)大小32。
3、程序編寫(xiě)


將PDO讀取出來(lái)的12Byte數(shù)據(jù)存放在LR08 . Read Data數(shù)組內(nèi)


將P#DB5.DBX12.0 BYTE 20內(nèi)的10Byte數(shù)據(jù)寫(xiě)入PDO;
P#DB5.DBX12.0 BYTE 20是指以DB5塊內(nèi)起始地址12.0的20Byte數(shù)據(jù),也可以使用上面RDREC的寫(xiě)法 “LR08”.”Write Data”。
如需了解CANOpen的應(yīng)用可以聯(lián)系晨控智能官方,晨控智能期待與您的合作。
審核編輯:湯梓紅
電子發(fā)燒友App


























































評(píng)論