您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > Kinco伺服CANOPEN通讯使用说明(一)
Kinco伺服CANopen通讯使用说明1.介绍支持CANopen通讯的Kinco系列伺服驱动器,允许通过CANopen总线对驱动器内部参数进行设置并驱动电机的转动,kinco伺服的所有工作模式都支持通过CANopen操作。2.属性Kinco伺服在CANopen总线网络(参考“CIADraftStandard301”)中做为从站使用,设计符合“CANopenProfileforDriversandMotionControl”(参考“CiADraftStandardProposal402”)。其它的功能通过使用“制造商指定数据”区实现。对设备的操作基于所称的“ObjectDictionary”。所有的参数、参数值和功能都是通过index和sub-index组成的地址来访问和存取。3.硬件Kinco伺服的CANopen接口针脚定义如下:针脚信号定义说明12CAN_LCAN数据L3CAN_GNDCAN数据参考地456GNDCAN电源地7CAN_HCAN数据H8+8..+18VDC,最大50mA9CANV+由于该接口的GND和Kinco伺服的housing之间电气隔离,该接口必须外部提供电源,在使用时需要在针脚9和6之间提供电源,根据CAN标准定义,在总线的两个末端都必须提供终端电阻(120Ω)。常见控制器和Kinco伺服之间的硬件连接:4.波特率Kinco伺服的CANopen通讯波特率由2F8100和2F8200对象设置,出厂时波特率预设为1Mbit/s。波特率最大传输距离2F81,00对象值2F82,00对象值1M40m0h14h500k130m0h1Ch250k270m1h1Ch125k530m3h1Ch50k1300m47h2Fh20k3300m53h2Fh5.数据协议CANopen总线提供两种重要的数据交互格式。1种是ServiceDataObjects,SDO,数据交互按照DS301标准执行。1种是ProcessDataObjects,PDOs,数据交互不执行该标准。除了PDO和SDO这两种数据传输协议外,还有一些其它的信息被定义用于更多的应用场合,这些信息或者来自于伺服驱动器,或者来自于主控制器。SDOServiceDataObject用于驱动器参数的正常设置PDOPorcessDataObjec快速过程数据交互(如:实际位置)EMCYEmergencyMessage故障信息传输SYNCSynchronizationMessage多个CAN节点的同步NMTNetwordManagement网络服务:例如,可以同时激活所有的CAN节点。NODEGUARDINGNodeGuarding通过信息的规范监控通讯参与者。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通讯对象NMT0-SYNC80h1005hEmergency80h+节点地址1)1014hTx-PDO1180h+节点地址1)1800hRx-PDO1200h+节点地址1)1400hTx-PDO2280h+节点地址1)1801hRx-PDO2300h+节点地址1)1401hTx-PDO3380h+节点地址1)1802hRx-PDO3400h+节点地址1)1402hTx-PDO4480h+节点地址1)1803hRx-PDO4500h+节点地址1)1403hTx-SDO580h+节点地址1200hRx-SDO600h+节点地址1200h1)Thebaseaddresscanbechangedinthisarea.5.2SDO访问SDO允许直接访问伺服驱动器内部对象。访问操作简单。1个SDO访问从主站发起,可以是1条写指令发送到驱动器用于改变驱动器内的对象值,或者是1条读指令用于读取驱动器内的参数值。对每1条从主站发送出去的指令,从站会响应1条指令给主站。响应指令可以含有读出的值,或者只是刚才发送出去的1条写的指令。发送或响应指令的格式依赖于读或写对象的类型,因为数据类型可以是1字节、2或4字节。写访问,从主站发送数据给从站每1次对对象的访问都会被从站效验。任何对不存在对象、只读对象的写访问,或者是一个非正确数据发送都将被从站答复1个相应的故障信息。主站发送:Byte0Byte1Byte2Byte3Byte4Byte5Byte6Byte7CMDIndexLSBMSBSub-IndexDataLSB…MSBCMD定义数据传输方向和数据对象大小: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值从站响应从站响应值:Byte0Byte1Byte2Byte3Byte4Byte5Byte6Byte7RESIndexLSBMSBSub-IndexReserved(系统保留)RES从站响应值:60hex数据成功发送80hex错误,bytes4..7含有错误代码Index16bit值,主报文(主站发送)中定义的对象index地址Sub-Index8bit值,主报文(主站发送)中定义的对象sub-index地址Reserved无用,或错误信息(依RES定义)。范例:写控制字(index=6040,Sub-index=00)=6hex(轴松开)Byte0Byte1Byte2Byte3Byte4Byte5Byte6Byte7发送2B40600006000000响应6040600000000000读访问,数据由从站传送到主站任何对不存在对象的读访问都会有一个错误信息响应给主站。主站发送:Byte0Byte1Byte2Byte3Byte4Byte5Byte6Byte7CMDIndexSub-IndexReservedCMD定义传输方向:40hex读数据Index16bit数值,读取对象的index地址(对象地址表中对象)Sub-Index8bit数值,读取对象的sub-index地址(对象地址表中对象)Reserve没有使用从站响应:Byte0Byte1Byte2Byte3Byte4Byte5Byte6Byte7RESIndexLSBMSBSub-IndexDataLSBMSBRES从站响应:43hexBytes4..7含有读取从站对象值,1个32bit数据4BhexBytes4..5含有读取从站对象值,1个16bit数据4FhexBytes4含有读取从站对象值,1个8bit数据80hex错误,bytes4..7含有错误代码Index16bit值,主报文(主站发送)中定义的对象index地址Sub-Index8bit值,主报文(主站发送)中定义的对象sub-index地址Data数据胡错误信息(依RES定义)。范例:读状态字(index6041,subindex00)Byte0Byte1Byte2Byte3Byte4Byte5Byte6Byte7发送4041600000000000响应4B41600037400000返回状态字的值:4037h(轴锁紧,无故障)5.3用于终端社保的SDO报文下表是1个完整的传输给节点为ID1的站点1个32bit数据的SDO报文。IdentifierLengthByte0Byte1Byte2Byte3Byte4Byte5Byte6Byte760182B4060006000COB-ID:ID1数据字节数:8bytesCMD:写16bitIndex6040低字节在前SubIndex0数据:6h,低字节在前5.4PDO访问非常快速,PDO没有统一的方法用于传输,具有事件驱动数据传输优点。在进程中,PDO传输1个或多个预先定义的参数。因为任务发生时间无法确定,在PDO激活后接受PDO的一方必须能够在任何时刻尽可能快的处理到达的PDO信息。这种传输方式提供的优点是:ThiskindoftransmissionofferstheadvantagethatthehostcomputerdoesnotneedtopolltheparameterstransmittedbyaPDO.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-8CSYNEMessage该数字表示每次PDO被发送(Tx-PDO)或接收(Rx-PDO)时有多少个SYNC信息。FFChangePDO数据中至少有1bit被改变后,Tx-PDO将会立即发送。如果对象值发生变化,且相邻变化间隔时间不在inhibit_Time(禁止时间)内,将立即发送。缺省100us。5.4.3PDO映射在ID和传输类型被定义之后,下一步就是需要定义伺服驱动器需要传输的数据对象或将要接收的数据。这就是所谓的“mapping”,每一个PDO可以传输最多8个字节,也就是说,最多可以定义8个1byte长的对象。在映射的对象中,首先定义传输的对象数量,例如,你在一个PDO中映射了3个对象,那么你首先需要确定传输对象值:3。在确定了对象数量后,继续输入需要接收或发送的对象。Tx-PDO1映射的对象对象Index(16进制)Sub-index说明当前值1A000映射的对象数量01A001PDO1映射对象100020008h(通用字符)1A002PDO1映射对象200020008h(通用字符)1A003PDO1映射对象300020008h(通用字符)1A004PDO1映射对象400020008h(通用字符)1A005PDO1映射对象500020008h(通用字符)1A006PDO1映射对象600020008h(通用字符)1A007PDO1映射对象700020008h(通用字符)1A008PDO1映射对象800020008h(通用字符)1A009PDO1映射对象900020008h(通用字符)输入的映射对象由下面几部分组成:将要被映射的对象的index(16进制)将要被映射的对象的sub-index(16进制)对象长度(以16进制表示的
本文标题:Kinco伺服CANOPEN通讯使用说明(一)
链接地址:https://www.777doc.com/doc-2904223 .html