CANopen IO模块基本通信测试.docx

上传人:b****7 文档编号:11297888 上传时间:2023-02-26 格式:DOCX 页数:23 大小:1.21MB
下载 相关 举报
CANopen IO模块基本通信测试.docx_第1页
第1页 / 共23页
CANopen IO模块基本通信测试.docx_第2页
第2页 / 共23页
CANopen IO模块基本通信测试.docx_第3页
第3页 / 共23页
CANopen IO模块基本通信测试.docx_第4页
第4页 / 共23页
CANopen IO模块基本通信测试.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

CANopen IO模块基本通信测试.docx

《CANopen IO模块基本通信测试.docx》由会员分享,可在线阅读,更多相关《CANopen IO模块基本通信测试.docx(23页珍藏版)》请在冰豆网上搜索。

CANopen IO模块基本通信测试.docx

CANopenIO模块基本通信测试

思泰CANopenIO模块基本通信测试

前言:

F1键的妙用

当您在使用PCAN-view时,如果遇到某个操作功能不太清楚是什么含义,比如某个按键的操作功能是什么,应该怎么查看呢?

快捷方法:

您只需要在操作当前页面下按F1键,就可快捷地打开相应的操作帮助文档,比如,在Connect窗口下按下F1键,即可查阅该窗口下大部分名词的含义,以及一些操作的步骤。

1.思泰CANopenIO模块简介

本文档选用的是SYSTEC(思泰)CANopenIO-X116DI/8DO模块进行通信实操,因此模块简介也以该模块的配置为标准进行。

1.1IO规格及CANopen特性

1.1.1IO规格

·数字输出:

24VDC/500mA的8通道输出;高压端配置有监测及保护功能的断路器;过热保护功能

·数字输入:

24VDC,16通道输入;通道隔离功能;每4个通道共享1个接地端

1.1.2CANopen特性

·遵循通信文档CiA301DSV4.02;

·遵循设备文档CiA401DSV2.1;

·遵循文档CiA401DSV2.1的标准指示灯信号;

·遵循文档CiA305DSV1.1的LSS层;

·配备2个TPDO与2个RPDO;

·动态的、可修改的PDO链接与映射;

·配备SDO服务器;

·配备生命守护(lifeguarding)、节点守护、心跳报文生产等功能;

·配备5个心跳报文消费者;

·配备紧急报文生产者;

·具备最小启动能力(MinimumBoot-upcapability);

·具备最小NMT启动主端的功能(MinimumNMTboot-upmasterfunction);

1.2供电电压及运行环境条件

·操作电压:

24V±20%;

·电流消耗:

<70mA;

·操作温度:

-20°Cto+70°C;

·贮存温度:

-20°Cto+90°C;

·体积(长x宽x高单位:

mm):

95x70x58;

·安装方式:

DIN导轨安装;

·外壳防护等级:

IP20;

·重量:

约130g;

1.3设备引脚及含义

图:

设备俯视图来源:

《systecCANopenIOdatasheet》

16进制编码旋钮(上图中下方蓝色模块)含义:

Node-ID:

允许使用者配置该IO模块的Node-ID号,可配置0x1-0x7F(1-127);当Node-ID配置为0x00时,设备将在复位或重新上电时,恢复出厂设置。

Baud-rate:

允许使用者在该处配置该IO模块的波特率,如下所示:

0=1Mbit/s;1=800kbit/s;2=500kbit/s;3=250kbit/s;4=125kbit/s

5=100kbit/s;6=50kbit/s;7=20kbit/s;8=10kbit/s

表:

设备引脚含义来源:

《systecCANopenIOdatasheet》

2.CANopen通信链路搭建

2.1物理连接部分

1PEAKsystemCAN总线监视软件,PCAN-view;

2PEAKsystemUSB--CAN转换器

3DB9母口总线;

4SYSTEC(思泰)CANopenIO-X116DI/8DO模块;

524V直流电源。

2.2PCAN-view软件部分

PCAN-view是由PEAK提供的CAN总线驱动程序,可以模拟CANopen主站进行数据收发。

各物品连接到位后,打开软件,会自动弹出连接窗口:

其中一些参数含义如下:

1Bitrate:

规定软件收发数据的比特率,须与IO模块的比特率设置相同,否则传输数据时将报错;

2BusTimingRegister:

16进制显示的总线定时寄存器(BTR0BTR1)的值;此值在选择比特率时将自动改变,无需手动设置;

3Filtersettings:

报文过滤设置,可选择接收标准类型还是扩展类型的报文,以及设置软件可收发数据的节点ID范围;

这里我们进行如上图的设置,并将IO模块的旋钮部分进行如下设置:

结合上一节中IO模块的旋钮含义部分,此时IO模块收发速率为125kbit/s,节点ID号为2。

3.基本通信测试

3.1NMT网络管理

3.1.1NMT简介

NMT(Networkmanagement)网络管理是CANopen网络中的管理方式,主站通过NMT进行发号施令,保证整个网络的可靠性、可控性。

因此每个CANopen从站节点都必须具备NMT惯例的相应代码,这是节点具备CANopen协议的最基本的要素。

每个CANopen节点从上电开始有6种状态:

来源:

《CANopen轻松入门》

每种状态的含义如下:

初始化(Initializing):

节点上电后对功能部件包括CAN控制器进行初始化;

应用层复位(ApplicationReset):

节点中的应用程序复位(开始),比如开关量输出、模拟量输出的初始值

通讯复位(Communicationreset):

节点中的CANopen通讯复位(开始),从这个时刻起,此节点就可以进行CANopen通讯了。

预操作状态(Pre-operational):

节点的CANopen通讯处于操作就绪状态,此时此节点不能进行PDO通信,而可以进行SDO进行参数配置和NMT网络管理的操作;

操作状态(operational):

节点收到NMT主机发来的启动命令后,CANopen通讯被激活,PDO通信启动后,按照对象字典里面规定的规则进行传输,同样SDO也可以对节点进行数据传输和参数修改;

停止状态(Stopped):

节点收到NMT主机发来的停止命令后,节点的PDO通信被停止,但SDO和NMT网络管理依然可以对节点进行操作。

其命令报文总结格式如下:

3.1.2NMT命令改变IO模块运行状态

IO模块上电后,可以观察到Run指示灯处于闪烁状态,根据思泰提供的设备操作手册,可得知这是处在预操作状态的指示,参考的是CiA303-3V1.0子协议。

来源:

《systecCANopenIOdatasheet》

我们需要发送命令,将模块转换为操作状态后,才能进行下一步的测试操作。

在PCAN-view中进行如下操作:

点击创建新消息的按钮后,弹出编辑传输消息的窗口,编辑发送内容后点击OK,即可创建报文,并在Transmit区域中可观察到该报文。

其中一些参数含义如下:

1CycleTime:

设定报文的传输周期,若为正数,软件会每隔设定好的周期发送该报文,实现周期传输;否则使用者可单击空格进行发送,实现单次传输;

2Paused:

若不勾选,且CycleTime同时设定为正数,则点击OK后该报文立刻进入周期传输状态;

3ID:

功能号,填写内容决定了该条报文拥有何种功能;000指示该条报文为NMT命令报文;

4Length:

报文数据域长度,可选择0-8,单位为字节;NMT命令的数据域长度固定为2;

5Data:

报文数据域,根据功能号的不同,其含义也不同;NMT命令中,第0个字节表示命令指示,01h表示该NMT命令为将模块转换为运行状态;第1个字节表示目标模块节点ID号,00h表示该NMT命令为广播报文,所有节点均适用。

在Transmit区域点击该报文,单击空格键后,即可发送该报文:

同时也可观察到Receive区域接收到了一条回应报文,这是IO模块的回应报文,指示IO模块已经切换到操作状态,模块的Run指示灯也变成了常量状态。

3.2PDO通信测试

3.2.1PDO简介

PDO协议是CANopen中的一种单向传输方式,用于实时数据传输,其传输形式如下:

PDO分为TPDO(发送PDO)和RPDO(接收PDO),一个CANopen站点可以从自身的TPDO发送数据到另一个站点相应的RPDO之中。

CiA301子协议已经预定义TPDO和RPDO的CAN-ID,如下图所示:

表:

PDO的CAN-ID定义,来源:

《CANopen轻松入门》

同时每个PDO在对象字典中,都有自己的通信参数描述其通信特性,举例如下图所示:

表:

PDO的通信参数,来源:

《思泰操作手册L-1070e》

CiA301子协议已经预定义每个PDO通信参数的对象字典索引值,上图所示的TPDO1通信参数的对象字典索引为1800h,子索引00h、01h、02h、03h、05h分别代表了不同的含义:

00h,LargestSubindexsupported:

最大支持的子索引个数;即1800h下有多少个子索引;

01h,COB-IDusedbyPDO:

PDO所使用的COB-IB;

02h,TransmissionType:

传输类型,其值可选,详解在下文中进行;

03h,InhibitTime:

生产禁止约束时间,单位:

0.1ms;描述该PDO不可以在指定的一段时间内连续发送;

05h,Eventtimer:

事件定时器触发的时间,单位:

ms;即计数器,每隔一定时间数值+1,与02h结合,可规定PDO循环发送的时间;

3.2.2通信测试

创建一条新报文后如下编写报文,其含义为软件向从站的RPDO1发送一条8字节数据域为全1的报文,点击报文后,单击空格,即可进行PDO报文发送:

而由于PDO的单向传输特性,仅从此次PDO传输我们无法得知接受站点是否正确收到PDO数据,只能使用另外的手段(如SDO读取、观察相应IO的行为等)得知数据是否接收到位。

3.3SDO通信测试

3.3.1SDO简介

SDO协议是CANopen中的一种双向传输方式,用于非实时数据传输,如配置信息的读写。

具体而言又可以分为快速SDO与普通SDO,其区别在于前者能在一次来回传输完所需的信息,后者则需要分段传输所需信息。

因为实际应用时几乎用不到普通SDO,所以此处以快速SDO为例,进行操作的示例。

CANopen中规定了SDO传输报文的格式,按照格式填写报文信息,即可进行SDO通信,其部分报文格式总结如下:

图:

SDO命令报文格式-1

图:

SDO命令报文格式-2

3.3.2通信测试

接下来我们进行SDO读取节点对象字典内容的操作,创建报文后,如下编写报文:

其中查找厂商提供的datasheet,可以得知节点的1000h索引处的内容为设备类型号码:

点击报文,单击空格后,可以在Receive区域接收到返回的报文信息:

可以观察到582h处收到了一条信息为4300100091010300的报文,比对报文格式,可知此次从1000h处读取并返回了4个字节的数据,且数据为00030191。

如此便完成了一次SDO读对象字典的操作,而有关SDO写对象字典的操作,将在下面几节中提到。

3.4修改TPDO映射参数

3.4.1PDO映射参数简介

前面我们简要介绍了PDO传输方式,并通过报文编辑器,实现了主站向从站发送了自己填写的数据。

那么问题来了,当并非通过PCAN模拟主站PDO发送,或是从站向主站发送数据时,其报文数据域里携带的是什么数据?

这就涉及到了PDO的映射参数。

映射参数与通信参数类似,都是PDO所持有的,描述其自身特性的东西。

映射参数的内容,是PDO所发送数据的索引值,如下图所示:

图:

PDO映射参数举例,来源:

《CANopen轻松入门》

类比C语言,笔者认为映射参数与二重指针的概念十分相似。

即映射参数是一个二重指针,其内容(索引值)是一个一重指针(地址),指向了真正要传输的数据。

图:

TPDO1映射参数,来源:

《思泰操作手册L-1070e》

映射参数的子索引00h,描述的是该映射参数下有效映射的个数,即余下子索引01h~08h有多少个指向的数据能够发送出去,如00h内的值为3,则01h~03h内索引指向的数据能够被该PDO发送,并且数据的排布顺序也是根据子索引的顺序排布。

同时,一条CAN报文的数据域总共只有8字节(64位),因此所有映射参数映射的内容,其总大小不能超过64位。

3.4.2修改步骤

节点的PDO映射参数修改需要使用SDO写值到节点的对象字典当中,其修改步骤如下:

禁用该PDO的COB-ID→清零映射个数→写映射参数→填写映射个数→使能该COB-ID

我们仍以TPDO1为例,演示如何修改PDO的映射参数。

1禁用COB-ID

在禁用/使能COB-ID时,我们还需要提前了解COB-ID的组成和各个位的功能:

图:

TPDO的COB-ID结构

valid:

0表示PDO存在或有效;1表示PDO不存在或无效;

RTR:

0表示此PDO允许RTR;1表示此PDO不允许RTR;

frame:

0表示11位CAN-ID有效;1表示29位CAN-ID有效;

CAN-ID:

功能码;

在禁用/使能COB-ID时,我们只需使用SDO,将valid的第一位翻转即可。

在PCAN中,编辑如下报文:

报文含义即,向索引1800h01h处写入4字节数据80000182h,数据将valid位置1,禁用了该COB-ID。

点击该报文,单击空格发送,PCANReceive区域582h收到写成功响应,即成功禁用该COB-ID。

2清零映射个数

在PCAN中,编辑如下报文:

报文含义即,向索引1A00h00h处写入1字节数据00h,数据将映射个数置零。

点击该报文,单击空格发送,PCANReceive区域582h收到写成功响应,即成功清零映射个数。

3修改映射参数

在PCAN中,编辑如下报文:

报文含义即,向索引1A00h01h处读取数据。

点击该报文,单击空格发送,PCANReceive区域582h收到读成功响应,为4字节数据60000108h,即发送数据的索引值为6000h01h,长度为8位(1字节),结合设备的datasheet,可以了解到该处数据的含义,即模块0~7号输入口的输入情况:

现在我们改为在该TPDO发送8-15号输入口的输入情况,编辑如下报文:

报文含义即,向索引1A01h01h处写入4字节数据60000208h,映射参数改为映射至索引6000h02h处的8位数据,即8-15号输入口的输入情况。

点击该报文,单击空格发送,PCANReceive区域582h收到写成功响应,即成功写入。

再次读取该处数据,可观察到映射参数已经改变:

4填写映射个数

在PCAN中,编辑如下报文:

报文含义即,向索引1A00h00h处写入1字节数据01h,数据将映射个数置1。

点击该报文,单击空格发送,PCANReceive区域582h收到写成功响应,即成功将映射个数置1。

5使能COB-ID

在PCAN中,编辑如下报文:

报文含义即,向索引1800h01h处写入4字节数据80000182h,数据将valid位置0,使能了该COB-ID。

点击该报文,单击空格发送,PCANReceive区域582h收到写成功响应,即成功使能该COB-ID。

如此便完成了PDO映射参数的修改,当该设备节点通过该PDO发送数据时,发送的便是修改后的索引值处的数据内容。

3.5TPDO事件驱动循环传输测试

3.5.1PDO传输模式简介

上文简要介绍了PDO通信参数各部分的含义,其中就包含传输模式(TransmissionType)。

而关于TPDO传输模式的具体含义,CiA301中做出了如下的解释:

来源:

协议文档《CiA301》

其含义为,当该值处于:

00h:

非同步传输模式;

01h~F0h:

参照PDO通信参数下的同步起始值,收到(同步起始值×该值)数量的同步报文后,进行一次传输;

FCh:

同步传输模式(远程帧专用);

FDh:

事件触发传输模式(远程帧专用);

FEh:

事件触发传输模式(制造商特定事件);

FFh:

事件触发传输模式(设备子协议CiA401特定事件);即利用设备自身内部的定时器,定时发送报文。

表:

PDO的通信参数,来源:

《思泰操作手册L-1070e》

结合厂商的datasheet,该IO模块没有子索引06h,即同步设定值,因此只能进行事件触发的循环通信测试。

3.5.2操作步骤

执行TPDO事件驱动循环传输测试的操作步骤如下:

禁用该COB-ID→写传输模式、驱动时间→启用该COB-ID

使能/禁用COB-ID的操作与上文相同,在此不再赘述。

1写传输模式、驱动时间

在PCAN中,编辑如下报文:

报文含义即,向索引1800h02h处写入1字节数据FFh,将TPDO1的传输模式改变为事件触发模式;向索引1800h05h处写入2字节数据1000h,设定定时器触发时间为256ms,即每隔256ms传输一次报文。

使能该COB-ID后,即可观察到数据以256ms左右的间隔(存在抖动)源源不断地输送至182h处:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 历史学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1