ethercat通讯协议_工业通讯 | 思泰CANopen IO模块基本通信测试(Part 3)

e5f3488bae0962cd98eefc30e21dcf8a.png

点击上方 蓝字关注我们 !

                          相关阅读

思泰CANopen IO模块基本通信测试(Part 1)

思泰CANopen IO模块基本通信测试(Part 2)

3.2 PDO通信测试●●

1

6c7a869c-b223-eb11-8da9-e4434bdf6706.svg

PDO简介

      PDO协议是CANopen中的一种单向传输方式,用于实时数据传输,其传输形式如下:PDO分为TPDO(发送PDO)和RPDO(接收PDO),一个CANopen站点可以从自身的TPDO发送数据到另一个站点相应的RPDO之中。

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

da0cdd8c4772719c8f91645989c16495.png

表:PDO的CAN-ID定义,来源:《CANopen轻松入门》

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

585b6caf0a954af32ab314b77f8dc70c.png

表:PDO的通信参数,来源:《思泰操作手册 L-1070e》

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

00h,Largest Subindex supported:最大支持的子索引个数;即1800h下有多少个子索引;

01h,COB-ID used by PDO:PDO所使用的COB-IB;

02h,Transmission Type:传输类型,其值可选,详解在下文中进行;

03h,Inhibit Time:生产禁止约束时间,单位:0.1ms;描述该PDO不可以在指定的一段时间内连续发送;

05h,Event timer:事件定时器触发的时间,单位:ms;即计数器,每隔一定时间数值+1,与02h结合,可规定PDO循环发送的时间;

2

6c7a869c-b223-eb11-8da9-e4434bdf6706.svg

通信测试

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

fbc794bc5540ca8b3bb74d0514c88189.png ba938e74f5caba05513e22fdc7f1ec80.png

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

3.3 SDO通信测试●●

1

6c7a869c-b223-eb11-8da9-e4434bdf6706.svg

SDO简介

      SDO协议是CANopen中的一种双向传输方式,用于非实时数据传输,如配置信息的读写。具体而言又可以分为快速SDO与普通SDO,其区别在于前者能在一次来回传输完所需的信息,后者则需要分段传输所需信息。因为实际应用时几乎用不到普通SDO,所以此处以快速SDO为例,进行操作的示例。

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

97fd4196828c381cc1843667d3bf4921.png

图:SDO命令报文格式-1

97d91b80b33600cc2d51f30441581ff0.png

图:SDO命令报文格式-2

2

6c7a869c-b223-eb11-8da9-e4434bdf6706.svg

通信测试

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

15586b794f9de0dd538cea20f6f16bd9.png

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

3a063ada10bded7d376750d49da996dc.png

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

b2aa3c26ac39e49f8ddeaccd7d4227e0.png

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

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

3.4 修改TPDO映射参数●●

1

6c7a869c-b223-eb11-8da9-e4434bdf6706.svg

PDO映射参数简介

      前面我们简要介绍了PDO传输方式,并通过报文编辑器,实现了主站向从站发送了自己填写的数据。那么问题来了,当并非通过PCAN模拟主站PDO发送,或是从站向主站发送数据时,其报文数据域里携带的是什么数据?这就涉及到了PDO的映射参数。

      映射参数与通信参数类似,都是PDO所持有的,描述其自身特性的东西。映射参数的内容,是PDO所发送数据的索引值,如下图所示:

0468349cecaab0dc9c8a03bde986d14c.png

图:PDO映射参数举例,来源:《CANopen轻松入门》

      类比C语言,笔者认为映射参数与二重指针的概念十分相似。即映射参数是一个二重指针,其内容(索引值)是一个一重指针(地址),指向了真正要传输的数据。

83722d73379c542cdfe94a06ebc6cfe7.png

图:TPDO1映射参数,来源:《思泰操作手册 L-1070e》

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

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

2

6c7a869c-b223-eb11-8da9-e4434bdf6706.svg

修改步骤

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

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

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

      ① 禁用COB-ID

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

253ba77daa04109ba9ad2bab2f2f8ce0.png

图: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中,编辑如下报文:

92d6988bcb4b40e73194785ea1ab154a.png 2eb103d7bac7e11cfc5603844ff24fc2.png

      报文含义即,向索引1800h 01h处写入4字节数据80 00 01 82 h,数据将valid位置1,禁用了该COB-ID。点击该报文,单击空格发送,PCAN Receive区域582h收到写成功响应,即成功禁用该COB-ID。

      ②清零映射个数

      在PCAN中,编辑如下报文:

1da9792d63b8c9bb0bb13f89ad21fd0c.png 54ad43fef967674e859df943259eb737.png

      报文含义即,向索引1A00h 00h处写入1字节数据00 h,数据将映射个数置零。点击该报文,单击空格发送,PCAN Receive区域582h收到写成功响应,即成功清零映射个数。

      ③ 修改映射参数

      在PCAN中,编辑如下报文:

5f5ebdfe9445d930ab1f000bf09e0756.png 288f1bb9d6b2c5aa9ef996096a564a71.png

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

1ddbf04108c9364882d4e5279a11bdcb.png

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

030a5e0a8c673d3202f037f65b386da0.png c281a572a1ee8718a5317ec82a723c25.png

      报文含义即,向索引1A01h 01h处写入4字节数据60 00 02 08 h,映射参数改为映射至索引 6000h 02h处的8位数据,即8-15号输入口的输入情况。点击该报文,单击空格发送,PCAN Receive区域582h收到写成功响应,即成功写入。

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

618e107a781ae5f2ab7f953be45f45fb.png

      ④ 填写映射个数

      在PCAN中,编辑如下报文

f824ca98f31118bb503dd33e155707d5.png f43931fb0060c05980a61d7a5f7534db.png

      报文含义即,向索引1A00h 00h处写入1字节数据01 h,数据将映射个数置1。点击该报文,单击空格发送,PCAN Receive区域582h收到写成功响应,即成功将映射个数置1。

      ⑤ 使能COB-ID

      在PCAN中,编辑如下报文:

b4ace2f858197f39c56d30c083c27e0d.png 68dfb227b3b9ac7831c4a84b8c09dfff.png

      报文含义即,向索引1800h 01h处写入4字节数据80 00 01 82 h,数据将valid位置0,使能了该COB-ID。点击该报文,单击空格发送,PCAN Receive区域582h收到写成功响应,即成功使能该COB-ID。

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

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

1

6c7a869c-b223-eb11-8da9-e4434bdf6706.svg

PDO传输模式简介

      上文简要介绍了PDO通信参数各部分的含义,其中就包含传输模式(Transmission Type)。而关于TPDO传输模式的具体含义,CiA 301中做出了如下的解释:

8f94c02705bd89945f26fa2825774d23.png

来源:协议文档《CiA 301》

其含义为,当该值处于:

00 h:非同步传输模式;

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

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

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

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

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

585b6caf0a954af32ab314b77f8dc70c.png

表:PDO的通信参数,来源:《思泰操作手册 L-1070e》

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

2

6c7a869c-b223-eb11-8da9-e4434bdf6706.svg

操作步骤

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

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

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

  写传输模式、驱动时间      

      在PCAN中,编辑如下报文:

a85dea179aa6bd12b34681bd89427efd.png dddd071287c964a6f964fb8cc5d2fc1d.png 80a4879718ed14bbe1bf10960e3433b6.png 6b78ea996a0046860234c75c3d83df61.png

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

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

dc3bb9c35ddf2e334e7452068d974224.png 384cc76b0ae7686e3c9f65ae22bbe693.png 5e1800458e7cb2a16756f7c0fd1999e9.pngEND......

虹科邀您参加上海工博会

ba91a605e54de07090cd1a9be8fb7d6b.png

关于虹科工业通讯

虹科是一家在工业自动化领域,特别是工业总线通讯行业经验超过10年的高科技公司。虹科工业通讯事业部与世界知名的工业通讯专家【PEAK-System,Hilscher,Kunbus,SYS TEC,Koenig-Pa,Port,Copa-data,TenAsys,SoC-e、RELYUM】等深度合作,提供业内顶尖水平的工业总线协议软硬件解决方案,协议类型包含【CAN、CANopen、EtherCAT、Profibus、Profinet、Ethernet/IP、TSN】等,产品类型包含代码、软件、芯片、板卡、模块等。虹科工业通讯以客户需求为导向,以技术能力为基础,为国内企业提供最适合的产品和最满意的服务。特别是在工业4.0的大环境下,虹科工业通讯与时俱进,推出了TSN(时间敏感网络)的解决方案,后者将在推动万物互联的潮流中扮演着如高速公路般的连接作用。

3ecdccc6e5a243e408e1b535df43259c.png 68dcf32c76fdf301cfbf2fcc7d0e7a69.png

你点的每一个在看,我都认真当成了喜欢

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值