Kinco伺服CANOPEN通讯使用说明一.docx
- 文档编号:9496613
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:27
- 大小:189.95KB
Kinco伺服CANOPEN通讯使用说明一.docx
《Kinco伺服CANOPEN通讯使用说明一.docx》由会员分享,可在线阅读,更多相关《Kinco伺服CANOPEN通讯使用说明一.docx(27页珍藏版)》请在冰豆网上搜索。
Kinco伺服CANOPEN通讯使用说明一
Kinco伺服CANopen通讯使用说明
1.介绍
支持CANopen通讯的Kinco系列伺服驱动器,允许通过CANopen总线对驱动器内部参数进行设置并驱动电机的转动,kinco伺服的所有工作模式都支持通过CANopen操作。
2.属性
Kinco伺服在CANopen总线网络(参考“CIADraftStandard301”)中做为从站使用,设计符合“CANopenProfileforDriversandMotionControl”(参考“CiADraftStandardProposal402”)。
其它的功能通过使用“制造商指定数据”区实现。
对设备的操作基于所称的“ObjectDictionary”。
所有的参数、参数值和功能都是通过index和sub-index组成的地址来访问和存取。
3.硬件
Kinco伺服的CANopen接口针脚定义如下:
针脚
信号定义
说明
1
2
CAN_L
CAN数据L
3
CAN_GND
CAN数据参考地
4
5
6
GND
CAN电源地
7
CAN_H
CAN数据H
8
+8..+18VDC,最大50mA
9
CANV+
由于该接口的GND和Kinco伺服的housing之间电气隔离,该接口必须外部提供电源,在使用时需要在针脚9和6之间提供电源,根据CAN标准定义,在总线的两个末端都必须提供终端电阻(120Ω)。
常见控制器和Kinco伺服之间的硬件连接:
4.波特率
Kinco伺服的CANopen通讯波特率由2F8100和2F8200对象设置,出厂时波特率预设为1Mbit/s。
波特率
最大传输距离
2F81,00对象值
2F82,00对象值
1M
40m
0h
14h
500k
130m
0h
1Ch
250k
270m
1h
1Ch
125k
530m
3h
1Ch
50k
1300m
47h
2Fh
20k
3300m
53h
2Fh
5.数据协议
CANopen总线提供两种重要的数据交互格式。
1种是ServiceDataObjects,SDO,数据交互按照DS301标准执行。
1种是ProcessDataObjects,PDOs,数据交互不执行该标准。
除了PDO和SDO这两种数据传输协议外,还有一些其它的信息被定义用于更多的应用场合,这些信息或者来自于伺服驱动器,或者来自于主控制器。
SDO
ServiceDataObject
用于驱动器参数的正常设置
PDO
PorcessDataObjec
快速过程数据交互(如:
实际位置)
EMCY
EmergencyMessage
故障信息传输
SYNC
SynchronizationMessage
多个CAN节点的同步
NMT
NetwordManagement
网络服务:
例如,可以同时激活所有的CAN节点。
NODEGUARDING
NodeGuarding
通过信息的规范监控通讯参与者。
5.1标识定义
所有信息(通讯对象,COB)通过标识(COB-ID)后由主站传递到从站,然后返回。
具有最低COB-ID的信息有着最高的总线优先级。
下表列出了一些重要的COB-ID内容,这些ID配合节点地址使用。
在对象2F80,00(Node_Offset)中值被加到节点地址值(伺服驱动器面板商的DIP开关)中,做为设备的节点地址。
对象2F80,00的默认值=0,通过DIP开关,总线上最多支持15个设备,但通过设置偏移值2F80,00,最多可支持127个设备。
对象
COD-Ids
通讯对象
NMT
0
-
SYNC
80h
1005h
Emergency
80h+节点地址1)
1014h
Tx-PDO1
180h+节点地址1)
1800h
Rx-PDO1
200h+节点地址1)
1400h
Tx-PDO2
280h+节点地址1)
1801h
Rx-PDO2
300h+节点地址1)
1401h
Tx-PDO3
380h+节点地址1)
1802h
Rx-PDO3
400h+节点地址1)
1402h
Tx-PDO4
480h+节点地址1)
1803h
Rx-PDO4
500h+节点地址1)
1403h
Tx-SDO
580h+节点地址
1200h
Rx-SDO
600h+节点地址
1200h
1)Thebaseaddresscanbechangedinthisarea.
5.2SDO访问
SDO允许直接访问伺服驱动器内部对象。
访问操作简单。
1个SDO访问从主站发起,可以是1条写指令发送到驱动器用于改变驱动器内的对象值,或者是1条读指令用于读取驱动器内的参数值。
对每1条从主站发送出去的指令,从站会响应1条指令给主站。
响应指令可以含有读出的值,或者只是刚才发送出去的1条写的指令。
发送或响应指令的格式依赖于读或写对象的类型,因为数据类型可以是1字节、2或4字节。
写访问,从主站发送数据给从站
每1次对对象的访问都会被从站效验。
任何对不存在对象、只读对象的写访问,或者是一个非正确数据发送都将被从站答复1个相应的故障信息。
主站发送:
Byte0
Byte1
Byte2
Byte3
Byte4
Byte5
Byte6
Byte7
CMD
IndexLSBMSB
Sub-Index
DataLSB…MSB
CMD定义数据传输方向和数据对象大小:
23hex发送4byte数据(byte4..7含1个32位数据值)
2Bhex发送2byte数据(byte4..5含1个16位数据值)
2Fhex发送1byte数据(byte4含1个8位数据值)
Index16bit值,写入对象的index地址
Sub-index8bit值,写入对象的sub-index地址
Data8bit,16bit,或32bit值
从站响应从站响应值:
Byte0
Byte1
Byte2
Byte3
Byte4
Byte5
Byte6
Byte7
RES
IndexLSBMSB
Sub-Index
Reserved(系统保留)
RES从站响应值:
60hex数据成功发送
80hex错误,bytes4..7含有错误代码
Index16bit值,主报文(主站发送)中定义的对象index地址
Sub-Index8bit值,主报文(主站发送)中定义的对象sub-index地址
Reserved无用,或错误信息(依RES定义)。
范例:
写控制字(index=6040,Sub-index=00)=6hex(轴松开)
Byte0
Byte1
Byte2
Byte3
Byte4
Byte5
Byte6
Byte7
发送
2B
40
60
00
06
00
00
00
响应
60
40
60
00
00
00
00
00
读访问,数据由从站传送到主站
任何对不存在对象的读访问都会有一个错误信息响应给主站。
主站发送:
Byte0
Byte1
Byte2
Byte3
Byte4
Byte5
Byte6
Byte7
CMD
Index
Sub-Index
Reserved
CMD定义传输方向:
40hex读数据
Index16bit数值,读取对象的index地址(对象地址表中对象)
Sub-Index8bit数值,读取对象的sub-index地址(对象地址表中对象)
Reserve没有使用
从站响应:
Byte0
Byte1
Byte2
Byte3
Byte4
Byte5
Byte6
Byte7
RES
IndexLSBMSB
Sub-Index
DataLSBMSB
RES从站响应:
43hexBytes4..7含有读取从站对象值,1个32bit数据
4BhexBytes4..5含有读取从站对象值,1个16bit数据
4FhexBytes4含有读取从站对象值,1个8bit数据
80hex错误,bytes4..7含有错误代码
Index16bit值,主报文(主站发送)中定义的对象index地址
Sub-Index8bit值,主报文(主站发送)中定义的对象sub-index地址
Data数据胡错误信息(依RES定义)。
范例:
读状态字(index6041,subindex00)
Byte0
Byte1
Byte2
Byte3
Byte4
Byte5
Byte6
Byte7
发送
40
41
60
00
00
00
00
00
响应
4B
41
60
00
37
40
00
00
返回状态字的值:
4037h(轴锁紧,无故障)
5.3用于终端社保的SDO报文
下表是1个完整的传输给节点为ID1的站点1个32bit数据的SDO报文。
Identifier
Length
Byte0
Byte1
Byte2
Byte3
Byte4
Byte5
Byte6
Byte7
601
8
2B
4060
00
6
0
0
0
COB-ID:
ID1
数据字节数:
8bytes
CMD:
写16bit
Index6040
低字节在前
Sub
Index0
数据:
6h,低字节在前
5.4PDO访问
非常快速,PDO没有统一的方法用于传输,具有事件驱动数据传输优点。
在进程中,PDO传输1个或多个预先定义的参数。
因为任务发生时间无法确定,在PDO激活后接受PDO的一方必须能够在任何时刻尽可能快的处理到达的PDO信息。
这种传输方式提供的优点是:
Thiskindoftransmissionofferstheadvantagethatthehostcomputerdoesnotneedtopollthe
parameterstransmittedbyaPDO.ThisleadstoaconsiderablyreducedutilizationoftheCANbuscapacity.1个PDO允许1次传输8bytes,即最多传输8个对象(每个对象大小为1byte时),从伺服驱动器来看,有接收RxPDO和发送TxPDO,1个PDO报文由COB-ID,周期时间(cycletime)和被传输的数据。
范例:
检测:
A位置定位到B位置是否完成?
如果使用SDO,需要持续不断、实时的读取对象“Statusword”,这势必会占用总线通道。
如果使用PDO,当对象“Statusword”值改变时,伺服驱动器会传输一个含有“Statusword”对象值的PDO报文。
主站Computer在事件发生时立即自动接收一个相应的信息。
PDO允许传输在对象词典中具有“mappable”属性的所有对象,例如实际速度、实际位置或类似对象。
伺服驱动器必须预先被通知哪个数据将要被传输,因为PDO报文中只含义用户的数据,没有关于参数类型的任何信息。
按照这个定义,几乎任何数据报文可以被定义。
所需要的设置按下面章节内容操作。
有意义的是,在没有主站情况下,从站之间根据之间互相匹配的COB-ID就可以自行发送和接收对方的PDO。
5.4.1PDO传输类型
对每一个PDO而言,导致传输(Tx-PDO)或接收(Rx-PDO)信息的事件必须事先定义,事件通过传输类型(Transmission_Type)对象定义(通讯参数、对象0x1800,02)
值(16进制)
说明
0-8C
SYNEMessage
该数字表示每次PDO被发送(Tx-PDO)或接收(Rx-PDO)时有多少个SYNC信息。
FF
Change
PDO数据中至少有1bit被改变后,Tx-PDO将会立即发送。
如果对象值发生变化,且相邻变化间隔时间不在inhibit_Time(禁止时间)内,将立即发送。
缺省100us。
5.4.3PDO映射
在ID和传输类型被定义之后,下一步就是需要定义伺服驱动器需要传输的数据对象或将要接收的数据。
这就是所谓的“mapping”,每一个PDO可以传输最多8个字节,也就是说,最多可以定义8个1byte长的对象。
在映射的对象中,首先定义传输的对象数量,例如,你在一个PDO中映射了3个对象,那么你首先需要确定传输对象值:
3。
在确定了对象数量后,继续输入需要接收或发送的对象。
Tx-PDO1映射的对象
对象Index(16进制)
Sub-index
说明
当前值
1A00
0
映射的对象数量
0
1A00
1
PDO1映射对象1
00020008h(通用字符)
1A00
2
PDO1映射对象2
00020008h(通用字符)
1A00
3
PDO1映射对象3
00020008h(通用字符)
1A00
4
PDO1映射对象4
00020008h(通用字符)
1A00
5
PDO1映射对象5
00020008h(通用字符)
1A00
6
PDO1映射对象6
00020008h(通用字符)
1A00
7
PDO1映射对象7
00020008h(通用字符)
1A00
8
PDO1映射对象8
00020008h(通用字符)
1A00
9
PDO1映射对象9
00020008h(通用字符)
输入的映射对象由下面几部分组成:
将要被映射的对象的index(16进制)
将要被映射的对象的sub-index(16进制)
对象长度(以16进制表示的长度值),如08h表示对象值为8bit长,10h为16bit长,20h为32bit长数据。
5.4.4Tx-PDO1编程范例
在下面的范例中,ID为1的伺服驱动器在设置编程完成后,将每10ms以COB-ID181发送该伺服驱动器的状态字、电机实际位置和4字节的数字输入口当前状态。
Index,Sub
说明
当前值
范例
1800h_01h
PDO使用的COB_ID
00000181h
00000181h
1800h_02h
传输类型
FFh
Feh
1800h_03h
禁止时间[1/10ms]
1000
100
1A00h_01h
PDO1映射对象1
00020008h
60410010h
1A00h_02h
PDO1映射对象2
00020008h
60630020h
1A00h_03h
PDO1映射对象3
00020008h
60FD0020h
1A00h_00h
输入的映射对象数
00h
03h
在ECO2WIN软件中,上述对象可以通过Communicationparameter和RX-PDOMapping两个功能页面输入(见红色标注部分):
5.4.5用于差补模式的PDO参数
Kinco伺服有一种插补模式,该模式下,轴通过PDO方式与上层控制器循环交互该轴的相对和实际值。
所有用于在kinco伺服和上层控制器之间安全交互数据的指令列在下表中,除外,主站发送一个Sync信息用于读取和同步轴之间数据。
Index
Sub.
字节数
值(h)
说明
0x1800
1
4
0x181
设置传输(Tx)PDO1的COB-ID为181h
0x1800
2
1
0x1
设置传输PDO1的工作模式为同步模式
0x1400
1
4
0x201
设置接收(Rx)PDO1的ID为201h
0x1400
2
1
0x1
设置接收PDO的工作模式为同步模式
0x1600
1
4
0x60400010
映射接收PDO1的前2字节为Kinco伺服的对象“controlword”
0x1600
2
4
0x607a0020
映射接收PDO1的后4字节为Kinco伺服的对象“targetposition”
0x1600
0
1
0x2
接收PDO1映射的对象数量
0x1A00
1
4
0x60410010
映射kinco伺服的状态字到发送PDO1的前2个字节
0x1A00
2
4
0x60630020
映射kinco伺服的实际位置到发送PDO1的后4个字节
0x1A00
0
1
0x2
发送PDO1映射的对象数量
在ECO2WIN软件中,上述对象可以通过Communicationparameter和RX-PDOMapping两个功能页面输入(见红色标注部分):
Communicationparameter的设置->
TX-PDOMapping的设置->
RX-PDOMapping的设置->
在进行PDO通讯之前,利用SDO对一些需要预先设置的对象进行设置,在插补模式下,经过SDO将工作模式设置为插补模式(对象606000=7),然后就可以进行PDO交互数据了。
该模式下的一些常用命令:
Index
Sub
字节数
值
说明
0x6040
0
2
0x6
控制字,使轴松开或准备开始启动
0x6040
0
2
0xf
控制字,使轴锁紧(PDO)
0x6060
0
1
0x7
设置工作模式为插补模式(SDO)(需要特殊firmware)
0x6040
0
2
0x1f
控制字,使能插补模式(PDO)
数据同步传输一般都是有主控制器启动。
5.4.6回原定控制的参数定制(伺服驱动器内部定义)
原点过程是一个特殊案例,多数情况下编码器的index信号或外部的传感器信号不会通过CAN总线由控制器获取到,找原点过程是由kinco伺服内部编程完成,控制器只是需要对其进行初始设置。
在将工作模式设置为homing模式,控制字一单被设置为1F值,找原点动作将立即执行。
具体找原点的方式由原点方式对象字确定。
Index
Sub
Byte
值
说明
0x6040
0
2
0xf
控制字,将轴锁紧或准备启动
0x6098
0
1
17(dec)
设置原点方式17,该方式是将负限位信号做为原点信号,没有参考index信号
0x6060
0
1
0x6
设置工作模式为原点模式
0x6040
0
2
0x1f
控制字,启动找原点动作
原点过程通过状态字中的“referencefound”位(0x8000)来判定原点是否找到。
在成功找到原点后,驱动器可以切换为其他的任何模式。
这一点,不向其他的控制器,如CNC控制器,它们都需要通过自身的程序重新编程来寻找原点。
5.5网络管理(NMT-Service)
所有CANopen设备都可以通过network管理器方式控制。
用于netword管理的一个特殊ID为000h。
该ID的信息用于发送指令到CANopen网络中的1个或所有的伺服驱动器。
每条指令都由2个字节组成:
第1个字节包含指令代码,第2个字节包含被操作的伺服驱动器节点地址。
主控制器信息结构:
Identifier
Byte0
Byte1
000h
指令代码
节点地址
使用节点地址0,网络中所有节点可以同时被激活。
伺服驱动器并不需要确认NMT指令。
“Pre-operational”状态用于网络的配置,要使PDO正常工作,节点必须接收到通讯状态“operational”。
一般情况下,主站引导启动网络并通过“NMT-Start”方式置于“operational”状态。
代码
名称
通讯状态
01
NMT-Start
Operational
02
NMT-Stop
Pre-operational
04
PrepareRemotNode
(准备远程节点)
Pre-operational
80
Pre-operational
Pre-operational
5.6EmergencyMessage
紧急停止(Emergency)信息的ID由080h+伺服驱动器的节点数两部分组成。
紧急停止信息在故障发生时立即被发送出去。
持续的故障只生成1次紧急信息,或在尝试对故障复位后,再次生成。
Emergency信息由8个数据字节组成,头2个字节含故障代码,其余的字节迄今没有使用。
080h+节点号
Error_code
故障代码
Sub_error
子代码
0
0
0
0
0
故障代码表在本使用说明文档末端有说明。
6.经过CAN初始化对象
用户可集成集成更多的对象,通过SDO方式在应用中访问这些对象,如此可以简化操作和故障处理。
对每一个欲通过CAN总线完整初始化的伺服驱动器,下列对象务必被初始化并被保存在控制器中。
作为一个范例,下表为一个23S31-0650-xx3Jx-xx电机和Kinco100-AA驱动器连接系统需要初始化的对象:
Index
Sub
Byte
Value(h)
值
Description
说明
Commutation参数
60F6
1
4
8000
Commutation周期
60F6
2
2
50
每个励磁周期极对数
60F6
3
2
180
Phaseleadfactordependantonvelocity
60F6
4
2
0
Phaseleadfactordependantontorque
60F6
5
2
60
Maximumphaseleadvalue
60F6
6
2
1023
寻找励磁时电流
60F6
7
2
500
寻找励磁延迟时间
60F6
8
2
0
Dampingforfindingcommutation
60F6
9
2
3
(1)
寻找励磁的方法(1=垂直轴)
60F6
10
2
100
抱闸响应延迟时间(ms)
60F6
13
2
0
励磁功能,补偿1×f
60F6
14
2
0
励磁功能,补偿3×f
60F6
15
2
0
励磁功能,补偿5×f
60F6
16
2
0
励磁功能,补偿7×f
60F6
22
2
0
Currentequalization,basicvalue
60F6
23
2
0
Currentequalization,firstcoefficient
60F6
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Kinco 伺服 CANOPEN 通讯 使用说明