今日头条
CANopen 是一个基于 CAN 串行总线的网络传输系统的应用层协议,遵循 ISO/OSI 标准模型。网络中不同的设备通过对象字典或者对象来相互交换数据,其中,主节点可以通过过程数据对象 (PDO) 或者服务数据对象 (SDO) 来获取或者修改其它节点对象字典列表中的数据。
CANOpen协议主要内容分为三大块,如下图CANopen 的设备模型。
选用西门子S7-1200与晨控RFID的LR08-C01
一、读卡器端
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的应用可以联系晨控智能官方,晨控智能期待与您的合作。
审核编辑:汤梓红
全部0条评论
快来发表一下你的评论吧 !