《Kinco伺服CANOPEN通讯使用说明(一).pdf》由会员分享,可在线阅读,更多相关《Kinco伺服CANOPEN通讯使用说明(一).pdf(14页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、KincoKinco 伺服 CANopen 通讯使用说明Kinco 伺服 CANopen 通讯使用说明1 介绍支持 CANopen 通讯的 Kinco 系列伺服驱动器, 允许通过 CANopen 总线对驱动器内部参数进行设置并驱动电机的转动,kinco 伺服的所有工作模式都支持通过CANopen 操作。2 属性Kinco 伺服在 CANopen 总线网络(参考“CIA Draft Standard 301” )中做为从站使用, 设计符合“CANopen Profile for Drivers and Motion Control” (参考“CiA Draft StandardProposal
2、402” ) 。其它的功能通过使用“制造商指定数据”区实现。对设备的操作基于所称的“Object Dictionary” 。所有的参数、参数值和功能都是通过index 和 sub-index 组成的地址来访问和存取。3 硬件Kinco 伺服的 CANopen 接口针脚定义如下:针脚123456789信号定义CAN_LCAN_GNDGNDCAN_HCAN V+说明CAN 数据 LCAN 数据参考地CAN 电源地CAN 数据 H+8.+18V DC, 最大 50mA4 波特率Kinco 伺服的 CANopen 通讯波特率由 2F8100 和 2F8200 对象设置, 出厂时波特率预设为1Mbit/
3、s。波特率1M500k250k125k50k20k最大传输距离40m130m270m530m1300m3300m2F81,00 对象值0h0h1h3h47h53h2F82,00 对象值14h1Ch1Ch1Ch2Fh2Fh由于该接口的 GND 和 Kinco 伺服的 housing 之间电气隔离,该接口必须外部提供电源,在使用时需要在针脚 9 和 6 之间提供电源,根据 CAN 标准定义,在总线的两个末端都必须提供终端电阻(120) 。常见控制器和 Kinco 伺服之间的硬件连接:5 数据协议CANopen 总线提供两种重要的数据交互格式。 1 种是 Service Data Objects,
4、SDO, 数据交1/14KincoKinco 伺服 CANopen 通讯使用说明互按照 DS301 标准执行。 1 种是 Process Data Objects, PDOs, 数据交互不执行该标准。除了 PDO 和 SDO 这两种数据传输协议外, 还有一些其它的信息被定义用于更多的应用场合,这些信息或者来自于伺服驱动器,或者来自于主控制器。SDOPDOEMCYSYNCNMTNODE GUARDINGService Data ObjectPorcess Data ObjecEmergency MessageSynchronization MessageNetword ManagementNod
5、e Guarding用于驱动器参数的正常设置快速过程数据交互(如:实际位置)故障信息传输多个 CAN 节点的同步网络服务:例如,可以同时激活所有的CAN 节点。通过信息的规范监控通讯参与者。51 标识定义所有信息(通讯对象,COB)通过标识(COB-ID)后由主站传递到从站,然后返回。具有最低 COB-ID 的信息有着最高的总线优先级。 下表列出了一些重要的COB-ID 内容, 这些 ID配合节点地址使用。在对象2F80,00(Node_Offset)中值被加到节点地址值(伺服驱动器面板商的 DIP 开关)中,做为设备的节点地址。对象 2F80,00 的默认值=0,通过 DIP 开关,总线上最
6、多支持 15 个设备,但通过设置偏移值2F80,00, 最多可支持 127 个设备。对象NMTSYNCEmergencyTx-PDO1Rx-PDO1Tx-PDO2Rx-PDO2Tx-PDO3Rx-PDO3Tx-PDO4Rx-PDO4Tx-SDORx-SDOCOD-Ids080h80h+节点地址1)通讯对象-1005h1014h1800h1400h1801h1401h1802h1402h1803h1403h1200h1200h)180h+节点地址1200h+节点地址1280h+节点地址1300h+节点地址1380h+节点地址1400h+节点地址1480h+节点地址1500h+节点地址1580h+
7、节点地址600h+节点地址1)The base address can be changed in this area.2/14KincoKinco 伺服 CANopen 通讯使用说明52SDO 访问SDO 允许直接访问伺服驱动器内部对象。访问操作简单。1 个 SDO 访问从主站发起,可以是 1 条写指令发送到驱动器用于改变驱动器内的对象值, 或者是 1 条读指令用于读取驱动器内的参数值。对每 1 条从主站发送出去的指令, 从站会响应 1 条指令给主站。响应指令可以含有读出的值, 或者只是刚才发送出去的1 条写的指令。 发送或响应指令的格式依赖于读或写对象的类型,因为数据类型可以是1 字节、2
8、 或 4 字节。写访问写访问,从主站发送数据给从站每 1 次对对象的访问都会被从站效验。 任何对不存在对象、只读对象的写访问,或者是一个非正确数据发送都将被从站答复1 个相应的故障信息。主站发送:Byte0CMDCMDIndexSub-indexData从站响应Byte0RESRESIndexSub-IndexReserved范例:发送响应2B60Byte1Byte2Byte3Byte4Byte5Byte6Byte7Index LSBMSBSub-IndexData LSBMSB定义数据传输方向和数据对象大小:23 hex发送 4byte 数据( byte4.7 含 1 个 32 位数据值)2
9、B hex发送 2byte 数据( byte4.5 含 1 个 16 位数据值)2F hex发送 1byte 数据( byte4 含 1 个 8 位数据值)16bit 值, 写入对象的 index 地址8bit 值,写入对象的 sub-index 地址8bit, 16bit, 或 32bit 值从站响应值:Byte1Byte2Byte3Byte4Byte5Byte6Byte7Index LSBMSBSub-IndexReserved(系统保留)从站响应值:60 hex数据成功发送80 hex错误, bytes 4.7 含有错误代码16bit 值, 主报文(主站发送)中定义的对象index 地址
10、8bit 值,主报文(主站发送)中定义的对象sub-index 地址无用,或错误信息(依RES 定义) 。写控制字(index=6040,Sub-index=00)6 hex (轴松开)Byte14040Byte26060Byte30000Byte40600Byte50000Byte60000Byte70000Byte0读访问读访问,数据由从站传送到主站任何对不存在对象的读访问都会有一个错误信息响应给主站。主站发送:Byte0CMD3/14Byte1IndexByte2Byte3Byte4Byte5Byte6Byte7Sub-IndexReservedKincoKinco 伺服 CANopen
11、 通讯使用说明CMDIndexSub-IndexReserve从站响应:Byte0RES定义传输方向:40 hex读数据16bit 数值, 读取对象的 index 地址(对象地址表中对象)8bit 数值,读取对象的 sub-index 地址(对象地址表中对象)没有使用Byte1Byte2Byte3Byte4Byte5Byte6Byte7Index LSBMSB Sub-IndexData LSBMSBRES从站响应:43 hexBytes 4.7 含有读取从站对象值,1 个 32bit 数据4B hexBytes 4.5 含有读取从站对象值,1 个 16bit 数据4F hexBytes 4
12、含有读取从站对象值,1 个 8bit 数据80 hex错误,bytes4.7 含有错误代码Index16bit 值, 主报文(主站发送)中定义的对象index 地址Sub-Index8bit 值,主报文(主站发送)中定义的对象sub-index 地址Data数据胡错误信息(依 RES 定义) 。范例:读状态字(index 6041, sub index 00)Byte0Byte14141Byte26060Byte30000Byte40037Byte50040Byte60000Byte70000发送40响应4B返回状态字的值: 4037h(轴锁紧, 无故障)53用于终端社保的 SDO 报文下表是
13、 1 个完整的传输给节点为ID1 的站点 1 个 32bit 数据的 SDO 报文。IdentifierLengthByte0601COB-ID:ID 18数据字节数:8bytes2BByte1Byte2Byte300SubIndex0Byte46Byte50Byte60Byte704060CMD:Index 6040写低字节在前16bit数据:6h,低字节在前54PDO 访问非常快速,PDO没有统一的方法用于传输,具有事件驱动数据传输优点。在进程中,PDO传输1个或多个预先定义的参数。 因为任务发生时间无法确定, 在PDO激活后接受PDO的一方必须能够在任何时刻尽可能快的处理到达的PDO信息
14、。这种传输方式提供的优点是:Thiskind of transmission offers the advantage that the host computer does not need to poll theparameters transmitted by a PDO. This leads to a considerably reduced utilization of the CANbus capacity.1个PDO允许1次传输8bytes,即最多传输8个对象(每个对象大小为1byte时) ,从伺服驱动器来看, 有接收RxPDO和发送TxPDO,1个PDO报文由COB-ID,
15、周期时间(cycletime)和被传输的数据。范例: 检测 :A 位置定位到 B 位置是否完成?4/14KincoKinco 伺服 CANopen 通讯使用说明如果使用 SDO,需要持续不断、实时的读取对象“Statusword” ,这势必会占用总线通道。如果使用 PDO,当对 象“ Statusword”值改变时, 伺服驱动器会 传输一个 含有“Statusword ” 对象值的 PDO 报文。 主站 Computer 在事件发生时立即自动接收一个相应的信息。PDO 允许传输在对象词典中具有“mappable”属性的所有对象,例如实际速度、实际位置或类似对象。伺服驱动器必须预先被通知哪个数据
16、将要被传输, 因为 PDO 报文中只含义用户的数据,没有关于参数类型的任何信息。 按照这个定义,几乎任何数据报文可以被定义。 所需要的设置按下面章节内容操作。有意义的是,在没有主站情况下,从站之间根据之间互相匹配的COB-ID 就可以自行发送和接收对方的PDO。541 PDO 传输类型对每一个 PDO 而言,导致传输(Tx-PDO)或接收(Rx-PDO)信息的事件必须事先定义,事件通过传输类型(Transmission_Type)对象定义(通讯参数、对象0 x1800,02)值(16 进制)08CFFSYNE MessageChange说明该数字表示每次 PDO 被发送(Tx-PDO)或接收(
17、Rx-PDO)时有多少个 SYNC 信息。PDO 数据中至少有 1bit 被改变后,Tx-PDO 将会立即发送。如果对象值发生变化,且相邻变化间隔时间不在 inhibit_Time(禁止时间)内,将立即发送。缺省 100us。543 PDO 映射在 ID 和传输类型被定义之后,下一步就是需要定义伺服驱动器需要传输的数据对象或将要接收的数据。这就是所谓的“mapping” ,每一个 PDO 可以传输最多 8 个字节,也就是说,最多可以定义 8 个 1byte 长的对象。在映射的对象中,首先定义传输的对象数量,例如,你在一个PDO 中映射了 3 个对象,那么你首先需要确定传输对象值: 3。在确定了
18、对象数量后,继续输入需要接收或发送的对象。Tx-PDO 1 映射的对象对象 Index (16 进制)1A001A001A001A001A001A001A001A001A001A00Sub-index0123456789说明映射的对象数量PDO1 映射对象 1PDO1 映射对象 2PDO1 映射对象 3PDO1 映射对象 4PDO1 映射对象 5PDO1 映射对象 6PDO1 映射对象 7PDO1 映射对象 8PDO1 映射对象 9当前值000020008h(通用字符)00020008h(通用字符)00020008h(通用字符)00020008h(通用字符)00020008h(通用字符)000
19、20008h(通用字符)00020008h(通用字符)00020008h(通用字符)00020008h(通用字符)输入的映射对象由下面几部分组成:将要被映射的对象的 index (16 进制)5/14KincoKinco 伺服 CANopen 通讯使用说明将要被映射的对象的 sub-index (16 进制)对象长度 (以 16 进制表示的长度值) ,如 08h 表示对象值为 8bit 长,10h 为 16bit 长,20h为 32bit 长数据。544 Tx-PDO1 编程范例在下面的范例中,ID 为 1 的伺服驱动器在设置编程完成后,将每10ms 以 COB-ID 181 发送该伺服驱动器
20、的状态字、电机实际位置和4 字节的数字输入口当前状态。Index, Sub1800h_01h1800h_02h1800h_03h1A00h_01h1A00h_02h1A00h_03h1A00h_00h说明传输类型禁止时间1/10msPDO1 映射对象 1PDO1 映射对象 2PDO1 映射对象 3输入的映射对象数当前值FFh100000020008h00020008h00020008h00h范例00000181hFeh10060410010h60630020h60FD0020h03hPDO 使用的 COB_ID00000181h在 ECO2WIN 软件中,上述对象可以通过Communicati
21、on parameter 和 RX-PDO Mapping 两个功能页面输入(见红色标注部分) :6/14KincoKinco 伺服 CANopen 通讯使用说明545 用于差补模式的PDO 参数Kinco 伺服有一种插补模式,该模式下,轴通过 PDO 方式与上层控制器循环交互该轴的相对和实际值。所有用于在kinco 伺服和上层控制器之间安全交互数据的指令列在下表中,除外,主站发送一个 Sync 信息用于读取和同步轴之间数据。Index0 x18000 x18000 x14000 x14000 x16000 x1600Sub.121212字节数414144值(h)0 x1810 x10 x20
22、10 x10 x604000100 x607a0020说明设置传输(Tx) PDO1 的 COB-ID为 181h设置传输 PDO1 的工作模式为同步模式设置接收(Rx) PDO1的ID为201h设置接收 PDO 的工作模式为同步模式映射接收 PDO1 的前 2 字节为Kinco 伺服的对象“control word”映射接收 PDO1 的后 4 字节为Kinco伺 服 的 对 象 “ targetposition”接收 PDO1 映射的对象数量映射 kinco 伺服的状态字到发送PDO1 的前 2 个字节映射 kinco 伺服的实际位置到发送 PDO1 的后 4 个字节发送 PDO1 映射的
23、对象数量0 x16000 x1A000 x1A000 x1A00012014410 x20 x604100100 x606300200 x27/14KincoKinco 伺服 CANopen 通讯使用说明在 ECO2WIN 软件中,上述对象可以通过Communication parameter 和 RX-PDO Mapping 两个功能页面输入(见红色标注部分) :Communication parameter的设置-TX-PDO Mapping 的设置-8/14KincoKinco 伺服 CANopen 通讯使用说明RX-PDO Mapping 的设置-在进行 PDO 通讯之前,利用 SDO
24、 对一些需要预先设置的对象进行设置, 在插补模式下,经过 SDO 将工作模式设置为插补模式(对象606000=7) ,然后就可以进行 PDO 交互数据了。该模式下的一些常用命令:Index0 x60400 x60400 x60600 x6040Sub0000字节数2212值0 x60 xf0 x70 x1f说明控制字,使轴松开或准备开始启动控制字,使轴锁紧(PDO)设 置 工 作 模 式 为 插 补 模 式(SDO)(需要特殊 firmware)控制字,使能插补模式( PDO)数据同步传输一般都是有主控制器启动。546 回原定控制的参数定制(伺服驱动器内部定义)原点过程是一个特殊案例,多数情况
25、下编码器的 index 信号或外部的传感器信号不会通过CAN 总线由控制器获取到,找原点过程是由 kinco 伺服内部编程完成,控制器只是需要对其进行初始设置。在将工作模式设置为 homing 模式,控制字一单被设置为 1F 值,找原点动作将立即执行。具体找原点的方式由原点方式对象字确定。Index0 x60400 x6098Sub00Byte21值0 xf17(dec)说明控制字,将轴锁紧或准备启动设置原点方式 17,该方式是将负限位信号做为原点信号,没有参考index 信号设置工作模式为原点模式控制字,启动找原点动作0 x60600 x604000120 x60 x1f原点过程通过状态字中
26、的“reference found”位(0 x8000)来判定原点是否找到。在成功找9/14KincoKinco 伺服 CANopen 通讯使用说明到原点后,驱动器可以切换为其他的任何模式。这一点,不向其他的控制器,如CNC 控制器,它们都需要通过自身的程序重新编程来寻找原点。55网络管理(NMT-Service)所有 CANopen 设备都可以通过 network 管理器方式控制。用于netword 管理的一个特殊 ID为 000h。该 ID 的信息用于发送指令到CANopen 网络中的 1 个或所有的伺服驱动器。 每条指令都由 2个字节组成:第 1 个字节包含指令代码,第 2 个字节包含被
27、操作的伺服驱动器节点地址。 主控制器信息结构:Identifier000hByte0指令代码Byte1节点地址使用节点地址 0,网络中所有节点可以同时被激活。伺服驱动器并不需要确认NMT 指令。“Pre-operational” 状态用于网络的配置,要使PDO 正常工作,节点必须接收到通讯状态“operational” 。一般情况下,主站引导启动网络并通过 “NMT-Start”方式置于“operational”状态。代码01020480名称NMT-StartNMT-StopPrepare Remot Node(准备远程节点)Pre-operational通讯状态OperationalPre-
28、operationalPre-operationalPre-operational56Emergency Message紧急停止(Emergency)信息的ID 由 080h+伺服驱动器的节点数两部分组成。紧急停止信息在故障发生时立即被发送出去。 持续的故障只生成 1 次紧急信息, 或在尝试对故障复位后,再次生成。Emergency信息由 8 个数据字节组成,头2 个字节含故障代码,其余的字节迄今没有使用。080h+ 节点号Error_codeSub_error0故障代码子代码0000故障代码表在本使用说明文档末端有说明。6 经过 CAN 初始化对象用户可集成集成更多的对象,通过 SDO 方式
29、在应用中访问这些对象,如此可以简化操作和故障处理。对每一个欲通过 CAN 总线完整初始化的伺服驱动器, 下列对象务必被初始化并被保存在控制器中。作为一个范例, 下表为一个 23S31-0650-xx3Jx-xx电机和 Kinco 100-AA 驱动器连接系统需要初始化的对象:IndexSubByteValue(h)值800050180Description说明Commutation 周期每个励磁周期极对数Phase lead factor dependant on velocity10/14Commutation 参数60F660F660F6123422KincoKinco 伺服 CANope
30、n 通讯使用说明60F660F660F660F660F660F660F660F660F660F660F660F660F660F660F6607360F660F660F960F960F960F960F960F960FB60FB60FB60FB60FB60FB60FB607E60656067607D456789101314151622232425011121273451234567000122222222222222422222222224222221444060102350003 (1)10000000005.000.000204715004050101000221000016384000002
31、000100Phase lead factor dependant on torqueMaximum phase lead value寻找励磁时电流寻找励磁延迟时间Damping for finding commutation寻找励磁的方法(1=垂直轴)抱闸响应延迟时间(ms)励磁功能,补偿 1f励磁功能,补偿 3f励磁功能,补偿 5f励磁功能,补偿 7fCurrent equalization, basic valueCurrent equalization, first coefficientCurrent equalization, second coefficientLimit vel
32、ocity for silent mode电机最大电流 2047100I2t 保护电流I2t 保护时间常数 (0= 功能未激活)速度环 P 增益速度环 i1 增益速度环 i1 增益1/256, itot=i1+i2速度环的 i 限制Error 滤波时间常数Output 滤波时间常数位置环 P 增益最大加速电源速度前馈 16384=100%加速度前馈电流预控制偏移电流预控制放大比例电流预控制限制位置控制极性 0, 80最大 following error inc目标位置窗口inc最小软件限位(和最大软件限位都是0 = 未激活)11/14Current(电流)环参数Velocity(速度)环参数P
33、osition(位置)环参数Limit 值/监控值KincoKinco 伺服 CANopen 通讯使用说明607D607F608F6098607C60996099609A2170217121712171217221722172607A6081608360846040606060FF6063606c6041606160FD60FE605A605B605C20100120012312300000000000010004441444411111124444214442144222030.000.00080001701.000.0001000.00020.00060020200404000200002
34、00006100511最大软件限位最大速度inc/64s编码器分辨率,监控编码器信号原点方式零点偏移位置inc查找参考开关时电机速度inc/64s查找 z 相信号时的电机速度inc/64s查找原点时电机加速度 16inc/s2DIN1.8 的电机极性设置 (DIN6, 7 = openers)Or-mask,正限位AND-mask,正限位 (DIN6 做为正限位信号输入)Comparison mask, 正限位Or-mask,负限位AND-mask,负限位 (DIN7 做为负限位信号输入)Comparison mask, 负限位定位位置inc定位速度inc/64s加速度 16 inc/64s2
35、减速度 16 inc/64s2控制字控制模式 1,3,4,6,-3,-4,7目标速度 速度模式 inc/64s实际位置 inc实际速度 inc/64s状态字当前工作模式数字输入口当前状态设置输出口快速停止的反映时间(在对象辞典中有说明)Switch-off 响应时间禁止操作的响应时间12/14Homing(原点)设置配置输入口参考(Reference)值实际值(Actual)数字输出出现故障后的 Turn-off 动作KincoKinco 伺服 CANopen 通讯使用说明605D605E2600603F0021224201停止的响应时间Fault 的响应时间显示故障(对象辞典)最近 1 次故
36、障故障读取7 技术参数Line 接口波特率物理层数据链路层协议建议同步控制时钟Kinco 插补周期ISO 高速驱动 PCA82C251T 全 CAN 控制最大 1000kb/sISO 11898CAN V2.0A (V2.0B+)CANopen DS301 和 DS402(参考 CANopen 手册)4ms1ms8 Kinco 伺服故障位和故障码对象 0 x2600,02 的故障位 (Detected_Faults)0 x603F,00为最近 1 次检测到的故障对象 603F 只有其低 2 字节通过急停信息传送。故障2600 , 02对象中的bit 码1h2h4h8h10h20h40h80h1
37、00h200h400h800h说明对象 603f,00 中的代码0 x000060100 x00006011FAULT_H8SWD_BITFAULT_REGLERWD_BITFAULT_ENC_ERROR_BITFAULT_MOTENCCAP_BITFAULT_MAENCCAP_BITFAULT_OVERTEMP_BITFAULT_UVMESS_BITFAULT_OV_ERROR_BITFAULT_UV_ERROR_BITFAULT_A_ERROR_BITFAULT_B_ERROR_BITFAULT_OUT_DIAG_BITSoftware reset triggeredSynchroniza
38、tion lossMotorencoder0 x00007305non-equivalence errorMotorencodercounting0 x00017305errorMastererrorencodercountig0 x00017306Servoamplifier0 x00004210temperature80Undervoltage logic supplyOvervoltage DC linkUndervoltage DC linkShort circuit phase AShort circuit phase BShort circuit or overload ofout
39、putREADY, OUT1, OUT2, orBrake0 x000051120 x000032100 x000032200 x000123200 x000223200 x0003232013/14KincoKinco 伺服 CANopen 通讯使用说明FAULT_EX_ENABLE_BIT1000hExternal ENABLE on low,with axis onFollowing error too high0 x00005441FAULT_FOLLOWINGERROR_BIT2000h0 x00008611FAULT_ABORT_CONNECT_BIT10000hCommutati
40、on not foundFAULT_OVERSPEEDERROR_BIT4000hFAULT_COMMUFINDERROR_BIT8000hVelocity too high (not used)00 x00008312CAN communicationinterrupted in theNode Guarding mode0 x00008120FAULT_IxIxT_BIT0 x0000231020000h40000hi*t supervision releasedAdditional firmware -800 (插补)FAULT_NLOCK_BITMin. hardware limit
41、position0 x00008612triggeredMax. hardware limitposition triggeredFAULT_PLOCK_BIT80000h0 x00008613Motortemperatur_error100.000h0 x00004310Motor temperature is toohigh (bridge ismissing)Extended error codes firmwareExtended error codes firmware 009 ( 009 (绝对式编码器绝对式编码器) )User_data_error200.000h400.000h800.000hNo access to saved userdata0 x00007600User_data_valid_error0 x000076010 x000076020 x00007603User data invalidNo access to motot dataMotor_data_errorMotor_data_valid_error1.000.000hMotor_data invalid14/14
限制150内