Kinco伺服CANOPEN通讯使用说明一Word格式.docx
- 文档编号:6938808
- 上传时间:2023-05-07
- 格式:DOCX
- 页数:27
- 大小:189.92KB
Kinco伺服CANOPEN通讯使用说明一Word格式.docx
《Kinco伺服CANOPEN通讯使用说明一Word格式.docx》由会员分享,可在线阅读,更多相关《Kinco伺服CANOPEN通讯使用说明一Word格式.docx(27页珍藏版)》请在冰点文库上搜索。
40m
0h
14h
500k
130m
1Ch
250k
270m
1h
125k
530m
3h
50k
1300m
47h
2Fh
20k
3300m
53h
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
通讯对象
-
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+节点地址
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值
从站响应从站响应值:
RES
Reserved(系统保留)
RES从站响应值:
60hex数据成功发送
80hex错误,bytes4..7含有错误代码
Index16bit值,主报文(主站发送)中定义的对象index地址
Sub-Index8bit值,主报文(主站发送)中定义的对象sub-index地址
Reserved无用,或错误信息(依RES定义)。
范例:
写控制字(index=6040,Sub-index=00)=6hex(轴松开)
发送
2B
40
60
00
06
响应
读访问,数据由从站传送到主站
任何对不存在对象的读访问都会有一个错误信息响应给主站。
Index
Reserved
CMD定义传输方向:
40hex读数据
Index16bit数值,读取对象的index地址(对象地址表中对象)
Sub-Index8bit数值,读取对象的sub-index地址(对象地址表中对象)
Reserve没有使用
从站响应:
IndexLSBMSB
DataLSBMSB
RES从站响应:
43hexBytes4..7含有读取从站对象值,1个32bit数据
4BhexBytes4..5含有读取从站对象值,1个16bit数据
4FhexBytes4含有读取从站对象值,1个8bit数据
80hex错误,bytes4..7含有错误代码
Data数据胡错误信息(依RES定义)。
读状态字(index6041,subindex00)
41
4B
37
返回状态字的值:
4037h(轴锁紧,无故障)
5.3用于终端社保的SDO报文
下表是1个完整的传输给节点为ID1的站点1个32bit数据的SDO报文。
Identifier
Length
601
4060
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
映射的对象数量
PDO1映射对象1
00020008h(通用字符)
PDO1映射对象2
PDO1映射对象3
PDO1映射对象4
PDO1映射对象5
PDO1映射对象6
PDO1映射对象7
PDO1映射对象8
PDO1映射对象9
输入的映射对象由下面几部分组成:
将要被映射的对象的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
1800h_02h
传输类型
FFh
Feh
1800h_03h
禁止时间[1/10ms]
1000
100
1A00h_01h
00020008h
60410010h
1A00h_02h
60630020h
1A00h_03h
60FD0020h
1A00h_00h
输入的映射对象数
00h
03h
在ECO2WIN软件中,上述对象可以通过Communicationparameter和RX-PDOMapping两个功能页面输入(见红色标注部分):
5.4.5用于差补模式的PDO参数
Kinco伺服有一种插补模式,该模式下,轴通过PDO方式与上层控制器循环交互该轴的相对和实际值。
所有用于在kinco伺服和上层控制器之间安全交互数据的指令列在下表中,除外,主站发送一个Sync信息用于读取和同步轴之间数据。
Index
Sub.
字节数
值(h)
0x1800
0x181
设置传输(Tx)PDO1的COB-ID为181h
0x1
设置传输PDO1的工作模式为同步模式
0x1400
0x201
设置接收(Rx)PDO1的ID为201h
设置接收PDO的工作模式为同步模式
0x1600
0x60400010
映射接收PDO1的前2字节为Kinco伺服的对象“controlword”
0x607a0020
映射接收PDO1的后4字节为Kinco伺服的对象“targetposition”
0x2
接收PDO1映射的对象数量
0x1A00
0x60410010
映射kinco伺服的状态字到发送PDO1的前2个字节
0x60630020
映射kinco伺服的实际位置到发送PDO1的后4个字节
发送PDO1映射的对象数量
Communicationparameter的设置->
TX-PDOMapping的设置->
RX-PDOMapping的设置->
在进行PDO通讯之前,利用SDO对一些需要预先设置的对象进行设置,在插补模式下,经过SDO将工作模式设置为插补模式(对象606000=7),然后就可以进行PDO交互数据了。
该模式下的一些常用命令:
值
0x6040
0x6
控制字,使轴松开或准备开始启动
0xf
控制字,使轴锁紧(PDO)
0x6060
0x7
设置工作模式为插补模式(SDO)(需要特殊firmware)
0x1f
控制字,使能插补模式(PDO)
数据同步传输一般都是有主控制器启动。
5.4.6回原定控制的参数定制(伺服驱动器内部定义)
原点过程是一个特殊案例,多数情况下编码器的index信号或外部的传感器信号不会通过CAN总线由控制器获取到,找原点过程是由kinco伺服内部编程完成,控制器只是需要对其进行初始设置。
在将工作模式设置为homing模式,控制字一单被设置为1F值,找原点动作将立即执行。
具体找原点的方式由原点方式对象字确定。
Byte
控制字,将轴锁紧或准备启动
0x6098
17(dec)
设置原点方式17,该方式是将负限位信号做为原点信号,没有参考index信号
设置工作模式为原点模式
控制字,启动找原点动作
原点过程通过状态字中的“referencefound”位(0x8000)来判定原点是否找到。
在成功找到原点后,驱动器可以切换为其他的任何模式。
这一点,不向其他的控制器,如CNC控制器,它们都需要通过自身的程序重新编程来寻找原点。
5.5网络管理(NMT-Service)
所有CANopen设备都可以通过network管理器方式控制。
用于netword管理的一个特殊ID为000h。
该ID的信息用于发送指令到CANopen网络中的1个或所有的伺服驱动器。
每条指令都由2个字节组成:
第1个字节包含指令代码,第2个字节包含被操作的伺服驱动器节点地址。
主控制器信息结构:
000h
指令代码
节点地址
使用节点地址0,网络中所有节点可以同时被激活。
伺服驱动器并不需要确认NMT指令。
“Pre-operational”状态用于网络的配置,要使PDO正常工作,节点必须接收到通讯状态“operational”。
一般情况下,主站引导启动网络并通过“NMT-Start”方式置于“operational”状态。
代码
名称
通讯状态
01
NMT-Start
Operational
02
NMT-Stop
Pre-operational
04
PrepareRemotNode
(准备远程节点)
80
5.6EmergencyMessage
紧急停止(Emergency)信息的ID由080h+伺服驱动器的节点数两部分组成。
紧急停止信息在故障发生时立即被发送出去。
持续的故障只生成1次紧急信息,或在尝试对故障复位后,再次生成。
Emergency信息由8个数据字节组成,头2个字节含故障代码,其余的字节迄今没有使用。
080h+节点号
Error_code
故障代码
Sub_error
子代码
故障代码表在本使用说明文档末端有说明。
6.经过CAN初始化对象
用户可集成集成更多的对象,通过SDO方式在应用中访问这些对象,如此可以简化操作和故障处理。
对每一个欲通过CAN总线完整初始化的伺服驱动器,下列对象务必被初始化并被保存在控制器中。
作为一个范例,下表为一个23S31-0650-xx3Jx-xx电机和Kinco100-AA驱动器连接系统需要初始化的对象:
Value(h)
Description
Commutation参数
60F6
8000
Commutation周期
50
每个励磁周期极对数
180
Phaseleadfactordependantonvelocity
Phaseleadfactordependantontorque
Maximumphaseleadvalue
1023
寻找励磁时电流
500
寻找励磁延迟时间
Dampingforfindingcommutation
3
(1)
寻找励磁的方法(1=垂直轴)
10
抱闸响应延迟时间(ms)
13
励磁功能,补偿1×
f
14
励磁功能,补偿3×
15
励磁功能,补偿5×
16
励磁功能,补偿7×
22
Currentequalization,basicvalue
23
Currentequalization,firstcoefficient
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Kinco 伺服 CANOPEN 通讯 使用说明