CANopen从站伺服配置报文及使用

CANopen从站伺服配置报文及使用

步骤一:切换到预操作态

使PDO进入预操作态(在预操作状态下才可修改参数,否侧容易报错);
主站发送报文:0x000 0x80 0x01(节点号)

步骤二:失能PDO(TPDO,RPDO)

失能RPDO1(修改参数前需要失能,否侧不能更改参数,COB-ID 0x201)
主站发送报文:0x601 0x22 0x00 0x14 0x01 0x01 0x02 0x00 0x80
失能RPDO2(修改参数前需要失能,否侧不能更改参数,COB-ID 0x301)
主站发送报文:0x601 0x22 0x01 0x14 0x01 0x01 0x03 0x00 0x80
失能RPDO3(修改参数前需要失能,否侧不能更改参数,COB-ID 0x401)
主站发送报文:0x601 0x22 0x02 0x14 0x01 0x01 0x04 0x00 0x80
失能RPDO4(修改参数前需要失能,否侧不能更改参数,COB-ID 0x501)
主站发送报文:0x601 0x22 0x03 0x14 0x01 0x01 0x05 0x00 0x80

失能TPDO1(修改参数前需要失能,否侧不能更改参数,COB-ID 0x201)(纠正后)
报文:0x601 0x22 0x00 0x18 0x01 0x81 0x01 0x00 0x80
失能TPDO2(修改参数前需要失能,否侧不能更改参数,COB-ID 0x301)
报文:0x601 0x22 0x01 0x18 0x01 0x81 0x02 0x00 0x80
失能TPDO3(修改参数前需要失能,否侧不能更改参数,COB-ID 0x301)
报文:0x601 0x22 0x02 0x18 0x01 0x81 0x03 0x00 0x80
失能TPDO4(修改参数前需要失能,否侧不能更改参数,COB-ID 0x301)
报文:0x601 0x22 0x03 0x18 0x01 0x81 0x04 0x00 0x80

步骤三:清空PDO映射

清空RPDO1 Mapping,全部置0
报文:0x601 0x2F 0x00 0x16 0x00 0x00 0x00 0x00 0x00
清空RPDO2 Mapping,全部置0
报文:0x601 0x2F 0x01 0x16 0x00 0x00 0x00 0x00 0x00
清空RPDO3 Mapping,全部置0
报文:0x601 0x2F 0x02 0x16 0x00 0x00 0x00 0x00 0x00
清空RPDO4 Mapping,全部置0
报文:0x601 0x2F 0x03 0x16 0x00 0x00 0x00 0x00 0x00

清空TPDO1 Mapping,全部置0
报文:0x601 0x2F 0x00 0x1A 0x00 0x00 0x00 0x00 0x00
清空TPDO2 Mapping,全部置0
报文:0x601 0x2F 0x01 0x1A 0x00 0x00 0x00 0x00 0x00
清空TPDO3 Mapping,全部置0
报文:0x601 0x2F 0x02 0x1A 0x00 0x00 0x00 0x00 0x00
清空TPDO4 Mapping,全部置0
报文:0x601 0x2F 0x03 0x1A 0x00 0x00 0x00 0x00 0x00

步骤四:设置PDO映射

注意:8bit:0x08
16bit: 0x10
32bit: 0x20
RPDO映射:
PT模式:
设置控制字0x6040(ControlWord 16bit,子索引0)映射到RPDO1子索引1
设置目标力矩0x6071(TargetTorque16bit,子索引0)映射到RPDO1子索引2
报文:0x601 0x22 0x00 0x16 0x01 0x10 0x00 0x40 0x60
报文:0x601 0x22 0x00 0x16 0x02 0x10 0x00 0x71 0x60

设置控制字0x6040(ControlWord 16bit,子索引0)映射到RPDO2子索引1
设置控制模式0x6060(Modes_of_operation 8bit,子索引0)映射到RPDO2子索引2
报文:0x601 0x22 0x01 0x16 0x01 0x10 0x00 0x40 0x60
报文:0x601 0x22 0x01 0x16 0x02 0x08 0x00 0x60 0x60

PP模式
设置控制字0x6040(ControlWord 16bit,子索引0)映射到RPDO3子索引1
设置目标位置0x607A(Target_position 32bit,子索引0)映射到RPDO3子索引2
报文:0x601 0x22 0x02 0x16 0x01 0x10 0x00 0x40 0x60
报文:0x601 0x22 0x02 0x16 0x02 0x20 0x00 0x7A 0x60

PV模式
设置控制字0x6040(ControlWord 16bit,子索引0)映射到RPDO4子索引1
设置目标速度0x60FF(Target_velocity 32bit,子索引0)映射到RPDO4子索引2
报文:0x601 0x22 0x03 0x16 0x01 0x10 0x00 0x40 0x60
报文:0x601 0x22 0x03 0x16 0x02 0x20 0x00 0xFF 0x60

TPDO映射:
设置状态字0x6041(StatusWord 16bit,子索引0)映射到TPDO1子索引1
设置实际电流0x6078(Current_actual_value 16bit,子索引0)映射到TPDO1子索引2
报文:0x601 0x22 0x00 0x1A 0x01 0x10 0x00 0x41 0x60
报文:0x601 0x22 0x00 0x1A 0x02 0x10 0x00 0x78 0x60

设置状态字0x6041(StatusWord 16bit,子索引0)映射到TPDO2子索引1
设置实际电流0x6061(Modes_of_operation_display 8bit,子索引0)映射到TPDO2子索引2
报文:0x601 0x22 0x01 0x1A 0x01 0x10 0x00 0x41 0x60
报文:0x601 0x22 0x01 0x1A 0x02 0x08 0x00 0x61 0x60

设置状态字0x6041(StatusWord 16bit,子索引0)映射到TPDO3子索引1
设置实际电流0x6064(Modes_of_operation_display 32bit,子索引0)映射到TPDO3子索引2
设置实际电流0x6077(ActualTorque 16bit,子索引0)映射到TPDO3子索引3
报文:0x601 0x22 0x02 0x1A 0x01 0x10 0x00 0x41 0x60
报文:0x601 0x22 0x02 0x1A 0x02 0x20 0x00 0x64 0x60
报文:0x601 0x22 0x02 0x1A 0x03 0x10 0x00 0x77 0x60

设置状态字0x6041(StatusWord 16bit,子索引0)映射到TPDO4子索引1
设置实际电流0x606C(Velocity_actual_value 32bit,子索引0)映射到TPDO4子索引2
报文:0x601 0x22 0x03 0x1A 0x01 0x10 0x00 0x41 0x60
报文:0x601 0x22 0x03 0x1A 0x02 0x20 0x00 0x6C 0x60

步骤五:设置PDO传输类型

同步非周期模式(0x00):收到同步报文之后,启动pdo事件。
同步周期模式(0x01-0xFB):收到指定个同步报文后,启动pdo事件。
同步远程模式(0xFC):收到同步报文后准备好pdo报文,等待接收到远程请求帧时发送报文。
异步远程模式(0xFD):收到远程请求帧时,构建pdo报文并发送。
异步特殊模式(0xFF):pdo报文初始化或接收到远程请求帧时,启动pdo事件。特殊事件无视直接禁止时间,直接取消禁止然后构建pdo报文并发送。
一般选择0xFF就可。

设置RPDO1传输类型(类型FFh);异步
报文:0x601 0x2F 0x00 0x14 0x02 0xFF 0x00 0x00 0x00
设置RPDO2传输类型(类型FFh);
报文:0x601 0x2F 0x01 0x14 0x02 0xFF 0x00 0x00 0x00
设置RPDO3传输类型(类型FFh);
报文:0x601 0x2F 0x02 0x14 0x02 0xFF 0x00 0x00 0x00
设置RPDO4传输类型(类型FFh);
报文:0x601 0x2F 0x03 0x14 0x02 0xFF 0x00 0x00 0x00

设置TPDO1传输类型(类型01h);同步循环模式
报文:0x601 0x2F 0x00 0x18 0x02 0x01 0x00 0x00 0x00
设置TPDO2传输类型(类型FFh);
报文:0x601 0x2F 0x01 0x18 0x02 0x01 0x00 0x00 0x00
设置TPDO3传输类型(类型FFh);
报文:0x601 0x2F 0x02 0x18 0x02 0x01 0x00 0x00 0x00
设置TPDO4传输类型(类型FFh);
报文:0x601 0x2F 0x03 0x18 0x02 0x01 0x01 0x00 0x00

设置TPDO1禁止约束时间(1/10ms);
报文:0x601 0x2B 0x00 0x18 0x03 0x2C 0x01 0x00 0x00
设置TPDO2禁止约束时间(1/10ms);
报文:0x601 0x2B 0x01 0x18 0x03 0x2C 0x01 0x00 0x00
设置TPDO3禁止约束时间(1/10ms);
报文:0x601 0x2B 0x02 0x18 0x03 0x2C 0x01 0x00 0x00
设置TPDO4禁止约束时间(1/10ms);
报文:0x601 0x2B 0x03 0x18 0x04 0x2C 0x01 0x00 0x00

步骤六:参数被映射

设置索引0为映射的参数个数
使能RPDO1映射参数
报文:0x601 0x2F 0x00 0x16 0x00 0x02 0x00 0x00 0x00
使能RPDO2映射参数
报文:0x601 0x2F 0x01 0x16 0x00 0x02 0x00 0x00 0x00
使能RPDO3映射参数
报文:0x601 0x2F 0x02 0x16 0x00 0x02 0x00 0x00 0x00
使能RPDO4映射参数
报文:0x601 0x2F 0x03 0x16 0x00 0x02 0x00 0x00 0x00

使能TPDO1映射参数
报文:0x601 0x2F 0x00 0x1A 0x00 0x02 0x00 0x00 0x00
使能TPDO2映射参数
报文:0x601 0x2F 0x01 0x1A 0x00 0x02 0x00 0x00 0x00
使能TPDO3映射参数
报文:0x601 0x2F 0x02 0x1A 0x00 0x03 0x00 0x00 0x00
使能TPDO4映射参数
报文:0x601 0x2F 0x03 0x1A 0x00 0x02 0x00 0x00 0x00

步骤七:使能映射参数

使能RPDO1映射参数
报文:0x601 0x22 0x00 0x14 0x01 0x01 0x02 0x00 0x00
使能RPDO2映射参数
报文:0x601 0x22 0x01 0x14 0x01 0x01 0x03 0x00 0x00
使能RPDO3映射参数
报文:0x601 0x22 0x02 0x14 0x01 0x01 0x04 0x00 0x00
使能RPDO4映射参数
报文:0x601 0x22 0x03 0x14 0x01 0x01 0x05 0x00 0x00

使能TPDO1映射参数(纠正后)
报文:0x601 0x22 0x00 0x18 0x01 0x81 0x01 0x00 0x00
使能TPDO2映射参数
报文:0x601 0x22 0x01 0x18 0x01 0x81 0x02 0x00 0x00
使能TPDO3映射参数
报文:0x601 0x22 0x02 0x18 0x01 0x81 0x03 0x00 0x00
使能TPDO4映射参数
报文:0x601 0x22 0x03 0x18 0x01 0x81 0x04 0x00 0x00

步骤八:切换到操作态

报文:0x000 0x01 0x01(节点)

步骤九:写入参数(主站)

主站发出报文:0x201 0x0F 0x00 0xE8 0x03(16bit控制字,16bit 目标力矩 1000)
主站发出报文:0x301 0x0F 0x00 0x03(16bit控制字,8bit 控制模式)
主站发出报文:0x401 0x0F 0x00 0xE8 0x03 0x00 0x00 (16bit控制字,32bit 目标位置 1000)
主站发出报文:0x501 0x0F 0x00 0xE8 0x03 0x00 0x00 (16bit控制字,32bit 目标速度 1000)

步骤十:读取参数(主站)

从站发出报文:0x181 0x00 0x00 0xE8 0x03(16bit状态字,16bit 实际电流 1000)
从站发出报文:0x281 0x00 0x00 0x03(16bit状态字,8bit 运行模式)
从站发出报文:0x381 0x00 0x00 0xE8 0x03 0x00 0x00 0xE8 0x03(16bit状态字,32bit 实际位置 1000,16bit 实际力矩 1000)
从站发出报文:0x481 0x00 0x00 0xE8 0x03 0x00 0x00(16bit状态字,32bit 实际速度 1000)
注:若参数超过8字节,会多帧发送。

原文使用语雀文档,有颜色标注,更加清晰:
在这里插入图片描述

下载链接:https://download.csdn.net/download/qq_28149763/87287922

  • 3
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: S7-1200通过CM CANopen模块与CANopen伺服进行通讯。S7-1200是西门子公司的一款可编程逻辑控制器(PLC),而CANopen是一种通信协议,用于在工业自动化系统中实现设备之间的通讯。 在这种通讯方式下,S7-1200扮演着CANopen的角色,负责管理整个通讯过程。CM CANopen模块是安装在S7-1200控制器插槽上的一个扩展模块,通过它,S7-1200可以实现CANopen通信功能。 CANopen伺服则是作为被控制的设备,负责执行主发出的指令,并将执行结果返回给主。该从伺服可以是一个伺服驱动器、变频器或其他支持CANopen协议的设备。 在通讯过程中,主与从之间通过CANopen协议进行数据交换。主可以向从发送指令、参数设置、数据请求等,并通过CAN网络将数据传输给从伺服。同样,从也可以将执行结果、状态反馈等信息通过CAN网络传回主。 通过使用S7-1200和CM CANopen模块,可以方便地与支持CANopen协议的从伺服进行通信。这样的通信方式可以实现更高效,更可靠的控制和监控,使得自动化系统的运行更加稳定和可控。 ### 回答2: S7-1200可通过CM CANopen模块与CANopen伺服进行通讯。CM CANopen模块是西门子PLC(可编程逻辑控制器)系统中的一部分,它负责建立和管理CANopen通讯网络。CANopen伺服则是通过CANopen协议与主进行通讯的设备。 首先,我们需要配置CM CANopen模块。在PLC编程软件(如TIA Portal)中,我们需要设置CANopen的参数,例如波特率和网络ID等。然后,我们需要将CM CANopen模块连接到PLC的进程图中并进行相应的编程配置。 接下来,我们需要配置CANopen伺服。根据具体的伺服型号和制造商,我们可能需要使用其提供的配置软件或者通过某种其他方式进行配置。在配置过程中,我们需要设置从的CANopen地址、波特率、通信对象以及其他相关参数。 完成配置后,我们可以在PLC的进程图中使用特定的指令与CANopen进行通信。通过发送CANopen报文,我们可以读取或写入从的状态和数据,以实现与从的交互。这些报文的内容和格式是按照CANopen协议定义的,它们包含了各种类型的命令和数据,用于控制和监测从的运行状态。 通过CM CANopen模块与CANopen伺服的通讯,我们可以实现对从的远程监控和控制。PLC可以通过读取从的状态和数据,实时获取其运行情况,并根据需要发送控制命令,来调整伺服的工作模式和参数设置。 总之,S7-1200可以通过CM CANopen模块与CANopen伺服进行通讯。通过配置和编程,我们可以实现与从的双向通信,从而实现对伺服的监控和控制。 ### 回答3: S7-1200是西门子推出的一种可编程控制器(PLC),通过内置的CM CANopen模块与CANopen伺服进行通讯。 CM CANopen模块是一种特殊的硬件设备,可以与CANopen设备进行通信。该模块将主的功能整合到了S7-1200 PLC中,通过CAN总线与CANopen设备进行连接。通过配置和编程,可以实现PLC与CANopen设备之间的数据交换和控制指令传递。 CANopen是一种基于CAN总线的通信协议,被广泛应用于工业自动化领域。它定义了一套标准的通信对象和通信方式,使得不同厂商的设备可以进行互联和通信。CANopen伺服是指通过CANopen协议与PLC通信的伺服驱动器或电机。 当S7-1200 PLC与CANopen伺服通讯时,首先需要通过CM CANopen模块进行配置和初始化。可以设置主的CAN总线参数,如波特率、节点ID等。接着,在PLC程序中编写相关逻辑,以实现与CANopen伺服的数据交换和控制指令传递。可以通过读写CANopen对象字典中的数据对象来实现数据的读取和写入,也可以通过发送CANopen特定的PDO(过程数据对象)来控制从伺服的运动。 通过S7-1200 PLC的CM CANopen模块与CANopen伺服通讯,可以实现PLC对伺服驱动器或电机的控制,包括启停、速度调节、位置控制等。这样,可以将PLC的控制能力扩展到更多的领域,实现更为复杂的自动化处理和生产流程控制。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hlpinghcg

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值