1、实验简介
在工业自动化现场应用中,CANopen是一种架构在控制局域网路(Controller Area Network, CAN)上的高层通讯协定,包括通讯子协定及设备子协定,常在嵌入式系统中使用,也是工业控制常用到的一种现场总线。
Control Expert是一个功能齐全的编程、调试和运行软件。软件功能强大又直观,集成度高且开放,它是提高生产力的理想伙伴。Control Expert软件能在 M580, M340, Quantum 等系列PLC中使用,提供完全自由的空间,让你为你的应用程序选择最佳的解决方案并享受 PLC 之间完全可移植性所带来的益处。
M580系列CPU不像M340系列CPU那样有本体自带的CANopen端口可供选择,必须用到CANopen X80 主站模块 (BMECXM0100) 来实现M580 PAC 上的 CANopen通讯,硬件目录中仅有一个设备部件号 BMECXM0100用来声明和配置两种 CANopen X80 主站模块参考,协议标准CANopen CiA 301 V4.2。支持 M580 Ethernet 背板(带有子站端通讯器 BMECRA31210 模块,最低固件版本为 V2.10)的远程子站,但是Quantum X80分站上不能组态此CANopen模块。
Wachendorff(沃申道夫)是德国知名的编码器、测量系统及工业仪表制造商,总部位于德国黑森州莱茵高地区,威斯巴登以西的小镇盖森海姆,自1978年成立以来,专注于编码器技术研究与开发近40年,产品均为德国制造,数十年来一直为全球客户提供多样化、个性化的优质产品定制服务。WDGA 58B CANopen 带电流隔离磁性绝对值编码器, CANopen WDGA 58B,带电流隔离;实心轴编码,夹紧法兰,外壳:Ø 58mm,16位/43位 单圈/多圈;轴:Ø 6mm, Ø 8mm, Ø 10mm, Ø 3/8",遵循CiA 301通信协议,编码器 CiA 406 V3.2 Class C2 设备协议;二进制代码。
2、实验组成
主要硬件见表:
类型
|
型号
|
数量
|
参考图片
|
PLC
|
BMEP582040
|
1
|
|
CANopen X80 主站模块
|
BMECXM0100
|
1
|
|
CANopen编码器
|
WDGA 58B-10-1212-COA-B00-CB5-AAS
|
1
|
|
主要软件见表:
软件
|
说明
|
参考图片
|
Control Expert V15
|
施耐德电气M580 PLC组态及编程软件。
|
|
硬件配置见图2.1及图2.2:
图 2.1
图2.2
3、软件组态配置及程序编写
3.1 BMECXM0100组态
打开Control Expert软件,新建工程,选择机架后,组态配置上电源BMXCPS3500、CPU BMEP582040、CANopen X80 主站模块 BMECXM0100模块。解锁M580以太网端口及BMECXM010以太网端口安全性,设置CANopen波特率,项目浏览器-CANopen子站双击组态添加CANopen子站设备节点。详见下图3.1-图3.5:
图3.1
图3.2
图3.3
图3.4
图3.5
3.2添加第三方CANopen EDS文件
如果需要通讯的CANopen设备已经在Control Expert软件“新设备”列表中,那么可以在项目浏览器-CANopen子站直接组态添加此设备节点;如果需要通讯的设备不在“新设备”列表中,那么需要先关闭Control Expert软件,在Windows操作系统“开始”菜单中搜索到“硬件目录编辑器”进行添加,然后才能在项目浏览器-CANopen子站直接组态添加此设备节点。设置路径为:硬件目录编辑器—单击 Canopen子站—编辑—添加设备—选择要添加的EDS文件—打开—添加。详细步骤截图如3.6-图3.11:
图3.6
图3.7
图3.8
图3.9
图3.10
图3.11
3.3 CANopen通讯程序编写
3.3.1 PDO通讯
CANopen通讯分为PDO和SDO两部分,PDO通讯在添加设备的时候就直接映射到了Control Expert软件的Device DDT变量中,不用编写程序,如下图3.12:
图3.12
3.3.2 SDO通讯
SDO通讯需要在Control Expert软件中使用READ_SDO及WRITE_SDO编写程序,关联CANopen设备ID及参数的 索引和子索引地址即可,新建FBD程序段A,读取SDO,读取节点号1的编码器的位置值,SDO对象索引6004h(24580),子索引00h。ENABLE 使能端需设置条件,为1时开始读取。0.0.3为三号槽,192.168.10.2为CANopen模块的地址。见下图3.13:
图3.13
新建FBD程序段B,写入SDO, 将清零值00h写入节点号为1的编码器,SDO对象索引6003h(24579),子索引 00h,对编码器进行清零操作。ENABLE 使能端需设置条件,为1时执行清零功能。0.0.3为三号槽,192.168.10.2为CANopen模块的地址,见图3.14。
图3.14
程序编写完成后,点击“生成”菜单里面的“全部生成”,无报错后点击“PLC”菜单里面的“标准模式”,然后点“连接”并执行“将项目传输到PLC”,接着还要点击“PLC”菜单里面的“运行”程序才会执行,见图3.15-图3.18。
图3.15
图3.16
图3.17
图3.18
程序正常运行后,双击BMECXM0100,可以直接监控到此模块的运行状态,如下图3.19:
图3.19
新建动态数据表,添加自动生成的编码器Device DDT变量,旋转编码器轴,可以读取到编码器当前值,如下图3.20:
图3.20
上图中SDO读取的参数和PDO映射配置的参数都是Position Value,值1048572换算成16进制是00 0F FF FC,分别对应的是READ_SDO的输出管脚DATA_OUT数组DATA_RSDO (DATA_RSDO[4]=0,DATA_RSDO[3]=15,DATA_RSDO[2]=255,DATA_RSDO[1]=252)。此编码器单圈12位1024(高12位),圈数12位共1024圈(低12位),Position Value值是1048572,代表1023圈1020。1048576是临界值,1048575过去就是0 。
4、模块状态诊断
正常下载程序等待约30s 后BMECXM0100模块正常启动 RUN, BS, CAN RUN三个绿灯常亮。可以通过面板指示灯判断BMECXM0100模块运行状态:
模块处于 RUN 状态是通过 LED 诊断与 CANopen 设备进行的 I/O 交换的先决条件。下表给出了 I/O 和 CAN ERR LED 组合所反映的诊断结果:
5、实验总结
编码器WDGA 58B-10-1212-COA-B00-CB5-AAS出厂默认节点是127,CANopen X80 主站模块 BMECXM0100支持的CANopen子站节点地址最大是63,需要先设置好此编码器的CANopen子站节点地址至有效范围内(0-63),再用BMECXM0100模块采用CANopen协议连接此编码器。
|