CAN通信手册(2.00).doc_第1页
CAN通信手册(2.00).doc_第2页
CAN通信手册(2.00).doc_第3页
CAN通信手册(2.00).doc_第4页
CAN通信手册(2.00).doc_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

H1U/H2U系列可编程控制器CAN通信手册V2.00深圳市汇川控制技术有限公司第一章 概述31.CAN-LINK网络41.1硬件接口41.2CAN-LINK软件配置51.3CAN-LINK网络组态61.4CAN-LINK网络监控与运行62.CAN指令62.1远程扩展模块访问指令62.2CAN自由指令72.2.1 CAN数据发送指令72.2.2 CAN数据接收指令112.3 PLC编程参考113.协议133.1CAN-LINK协议133.1.1CAN-LINK远程响应帧143.1.2CAN-LINK命令帧153.1.3CAN-LINK配置帧183.1.4CAN-LINK数据帧193.2远程读写协议204.附录21第一章 概述H1U/H2U系列PLC具有CAN通信功能,硬件上需要配置CAN通讯卡。在PLC主模块上,可支持自由CAN通信指令,可支持远程模块访问指令FROM/TO,同时支持CAN-LINK网络功能。CAN-LINK是汇川控制技术公司开发的基于CAN总线的网络协议,该协议是一个开放的协议,支持该协议的设备均可接入CAN-LINK网络。H1U/H2U系列PLC及其远程扩展模块均可以支持CAN-LINK协议,CAN-LINK组网设备数量最大可达63台。若是H1U产品,要特别注意,必须预置D8199为7,否则可能造成无法通信。关键词CAN-LINK:汇川控制技术公司开发的基于CAN总线的网络协议,该协议是一个开放的协议,支持该协议的设备均可接入CAN-LINK网络。CAN-LINK网络管理主机:CAN-LINK协议是不存在主从之分的,但需要有一台或多台设备负责配置和管理CAN-LINK网络,承担CAN-LINK网络配置和管理功能的设备称为CAN-LINK网络管理主机,同一个CAN-LINK网络可以有多台网络管理主机。CAN-LINK网络设备:满足CAN-LINK协议,并接入CAN-LINK网络的设备均称为CAN-LINK网络设备。自由CAN通信指令:H1U/H2U 控制器均支持自由CAN通信指令,用户可通过指令编程,实现与具有CAN通信功能的设备之间的通信。具体指令名称为CAN发送指令:CANTX;CAN接收指令:CANRX。远程模块访问指令:H1U/H2U 控制器支持远程模块、远程PLC的访问指令,通过远程模块访问指令可实现对远程模块的读写。具体指令名称为读指令:FROM;写指令:TO。兼容本地扩展模块的读写指令。其它满足CAN远程访问协议的设备也可以用此两条指令访问。1. CAN-LINK网络1.1 硬件接口CAN-LINK网络示意图:图1-1 CAN-LINK网络拓朴示意图H1U/H2U CAN扩展卡接口定义:图1-2 CAN-LINK接口定义表1-1 CAN-LINK接口引脚定义管脚号信号描述124Vcc外接直流24V供电电源正2CANHCAN总线正3PGND屏蔽地线,接通信电缆屏蔽层4CANLCAN总线负50V外接直流24V供电电源负组成CAN-LINK网络时,所有设备的以上五根线均要一一对应连在一起。并且24Vcc和0V间需要外接24V直流电源。总线的两端均要加120欧姆的CAN总线匹配电阻。CAN-LINK接线图如图1-3所示:图1-3 多台设备组成CAN-LINK网络接线图H1U/H2U远程扩展卡和CAN接口卡均内置了匹配电阻,可通过拨码开关接入或断开。标准的拨码开关定义如下:图1-4 CAN-LINK拨码开关表1-2 CAN-LINK拨码开关定义拨码号信号描述1地址线A1此六位拨码开关由高到低组合成一个六位二进制数字,用来标识本机站号(若为PLC主模块,还可以通过D元件设置站号)。“ON”表示1,“OFF”表示0。高位在高,低位在低。按以下方式组合:A6A5A4A3A2A1。比如A1ON,其它位为OFF,即二进制地址为:000001,十进制为K01,16进制为h01。若A5,A4都为ON,其它为OFF,即二进制地址为:011000,十进制为K24,16进制为h18。2地址线A23地址线A34地址线A45地址线A56地址线A67波特率OFF:高速模式,波特率500Kbps,ON:低速模式,波特率100Kbps8匹配电阻若拨码开关为ON,表示接入120欧姆的终端匹配电阻,否则断开若改变拨码开关,除匹配电阻外,波特率和地址并不能立即生效,需要给系统重新上电才可能使用新的设置参数。1.2 CAN-LINK软件配置系统通过以下步骤完成CAN-LINK网络的配置1. 通过AUTOSHOP完成CAN-LINK网络组态,定义需要交换的数据。2. 把配置信息下载到H2U或H1U系列PLC中。3. 所有PLC等可编程设备均要启动CAN-LINK网络功能,若非特殊说明,H1U/H2U系列扩展模块默认是启用CAN-LINK功能的,不需要特殊的设置。并且,在有CAN-LINK配置的PLC中,需要通过用户程序启动CAN-LINK网络配置。1.3 CAN-LINK网络组态CAN-LINK网络组态有两种方式,绘图式、填表式或指令编写。绘图式比较直观,填表式即较为简单,指令编写即需要用户用CANTX编写满足CAN-LINK配置帧的用户程序。以下简单介绍一下绘图式,更详细的操作请参见AUTOSHOP软件使用说明。在AUTOSHOP软件中,点击新建CAN-LINK网络,系统将出现一条CAN-LINK总线,然后增加设备,把需要组成CAN-LINK网络的设备拖进来,若系统中没有该设备,可以增加其它设备。CAN-LINK网络如图1。在CAN-LINK网络系统中,需要指定一台网络管理主机,网络管理主机一般是PLC。当然,若其它设备支持CAN-LINK网络管理,也可指定该设备做网络管理主机。接着设定每台机器的地址,注意,该地址必须与物理地址对应,即必须与拨码开关地址或通过其它手段设定的地址对应,CAN-LINK网络目前仅支持6位二进制地址,网络最大支持64台设备。设定地址后,设定每台设备提供的服务,每条服务信息包括:本机服务内容及数量,服务对象站号,服务对象存储该内容的寄存器起始地址,服务信息发送间隔时间。配置完成后,把配置信息下载到所指定得网络管理主机中。1.4 CAN-LINK网络监控与运行CAN-LINK的网络管理是在网络管理主机上完成的,若此网络主机下载有配置信息,即可执行网络监控功能。PLC在第一次运行时初始化CAN硬件的,硬件初始化后PLC才能接入CAN-LINK网络,也就是说PLC必须在运行后才能执行网络监控命令。M8287:更新网络配置,用本机的配置信息覆盖原来的配置信息,若通过CANTX指令配置网络,不需要使用该命令。M8288:在原来配置的接触上增加配置信息,此命令一般用于具有多台网络管理主机时使用。此命令要慎用,特别是不能重复执行,否则会造成网络配置信息不断增加,从而造成网络通信量增加,最终可能造成网络通信量过重而使得CAN-LINK网络通信缓慢。网络配置命令执行后,CAN-LINK网络将自动执行,各设备开始自动交互数据。2. CAN指令2.1 远程扩展模块访问指令通过扩展模块指令,可读写通过CAN连接的远程扩展模块(需要扩展模块支持)和远程PLC。该指令兼容本地扩展模块访问指令。硬件接口参考1-1。指令格式如下:读模块数据指令:FROM(M1,M2,D,n)写模块数据指令:TO(M1,M2,D,n)参数说明:M1:大于100表示CAN远程模块,模块地址100。小于100表示本地扩展模块。M2:模块寄存器地址。对扩展模块来说是BFM地址,对PLC来说是D元件序号。D:PLC通信缓冲区。若为FROM指令,即把指定地址的模块的指定寄存器读到此缓冲区中;若为TO指令,即把此缓冲区的数据写入到指定地址的模块的指定寄存器中。n:表示读写的寄存器(BFM区)个数指令执行说明:该指令被驱动后,马上通过CAN对外部模块发送一帧数据,等待外部模块响应,若在规定时间(D8289设定,以ms为单位)收到外部模块的正确响应数据,指令执行正常并更新数据,否则报错。若是超时,M8289将置位。2.2 CAN自由指令CAN自由指令目的是方便用户与不满足CAN-LINK协议或远程扩展模块访问协议的设备通信用,通过该指令,用户可编写任意CAN通信用户协议。2.2.1 CAN数据发送指令指令格式:CANTX(Addr1,Addr0,D,n) Addr1,Addr0:CAN标识符(地址)Addr1.bit15:保留Addr1.bit14:保留Addr1.bit13:CAN标识符位数设定。“0”表示标准CAN标识符(11位标识符),“1”表示扩展CAN标识符(29位标识符)。若为11位标识符,Addr0的低11位表示标识符。若为29位标识符,Addr0表示低16位标识符,Addr1的012位表示高13位标识符。D:发送缓冲区,D元件。从该D元件开始的最大4个D元件作为发送缓冲区。n:发送数据个数,以字节为单位,最大为8。CAN数据发送指令是立即执行的,若5ms内没有发送成功,将报6380故障;若CAN忙,将报6382故障。下面将举例说明CANTX指令应用。1. 10ms发送一组数据,缓冲区为D1013,D0存发送的字节数。如图2-1所示。图2-1 CANTX用户指令若D0 = k8,D10 = h1234,D11 = h5678,D12 = h9ABC,D13 = hDEF0发送的数据如表2-1所示:表2-1 发送数据第一字节第二字节第三字节第四字节第五字节第六字节第七字节第八字节h12h34h56h78h9AhBChDEhF0若接收端字节从高到低,CAN接收数据寄存器MDL = h12345678,MDH = h9ABCDEF0若D0 = 1,只发送一个字节:h12若D0 = 3,发送前三个字节:h12,h34,h56依次类推。2. 通过CANTX配置CAN-LINK网络,假设有7台PLC组成一个CAN-LINK网络,站号从17。有如下要求:(1)通过 CANTX指令来配置CAN-LINK网络。(2)所有PLC的D110D179的数据相同,其中D110D119由1#PLC更新,D120D129由2#PLC更新,D170D179由7#PLC更新由于CANTX指令无法发数据给本PLC,所以要在两台PLC中,通过CANTX指令配置CAN-LINK网络。本例通过1#PLC配置2#7#PLC,通过2#PLC配置1#PLC。需要在1#PLC和2#PLC上编写一段配置程序。其它PLC不需要配置程序。由于CAN-LINK是采用1对1的通信方式,即任一台PLC需要给另6台PLC分别发数据,每台发送数据量为10个16位数据,CAN-LINK一帧最多只能发送2个16位数据,所以需要给每台PLC发送5帧数据,即任一台机器需要发送的数据帧总数为5630帧,CAN-LINK总线上总帧数为307210帧,使用500K波特率,一帧数据所用时间大约是300us,所以更新一次数据一共需要300us21063ms。为避免总线过分拥挤,取100ms刷新一次数据比较合理。1#PLC编程。配置2#PLC,服务接收站起始寄存器为D120;服务提供站起始寄存器也是D120,寄存器个数为10,时间间隔为100ms,服务发送站号为2,服务接收站号分别为1,3,4,5,6,7。取D10D13作为CANTX发送缓冲区。即有MOV K120 D10 /服务接收站起始寄存器MOV K120 D11 /服务提供站起始寄存器MOV HA06 D12 /h0a为寄存器个数(10),06为时间间隔高位(h64)MOV H4042 D13 /h4为时间间隔低位(h64),h042展开为二进制为0000,01;00,0010。分号前的6位表示1#站为服务接收站,分号后的6位表示2#站为服务提供站。只需要改变服务接收站分别为1,3,4,5,6,7即可。CANTX H35ff H201 D10 K8 /配置2#站发送数据给1#站ADD H40 D13 D13ADD H40 D13 D13CANTX H35ff H201 D10 K8 /配置2#站发送数据给3#站ADD H40 D13 D13CANTX H35ff H201 D10 K8 /配置2#站发送数据给4#站ADD H40 D13 D13CANTX H35ff H201 D10 K8 /配置2#站发送数据给5#站ADD H40 D13 D13CANTX H35ff H201 D10 K8 /配置2#站发送数据给6#站ADD H40 D13 D13CANTX H35ff H201 D10 K8 /配置2#站发送数据给7#站同理,配置3#7#PLC梯形图MOV K130 D10MOV K130 D11MOV HA06 D12MOV H4043 D13CANTX H35ff H301 D10 K8ADD H40 D13 D13CANTX H35ff H301 D10 K8ADD H40 D13 D13ADD H40 D13 D13CANTX H35ff H301 D10 K8ADD H40 D13 D13CANTX H35ff H301 D10 K8ADD H40 D13 D13CANTX H35ff H301 D10 K8ADD H40 D13 D13CANTX H35ff H301 D10 K8MOV K140 D10MOV K140 D11MOV HA06 D12MOV H4044 D13CANTX H35ff H401 D10 K8ADD H40 D13 D13CANTX H35ff H401 D10 K8ADD H40 D13 D13CANTX H35ff H401 D10 K8ADD H40 D13 D13ADD H40 D13 D13CANTX H35ff H401 D10 K8ADD H40 D13 D13CANTX H35ff H401 D10 K8ADD H40 D13 D13CANTX H35ff H401 D10 K8MOV K150 D10MOV K150 D11MOV HA06 D12MOV H4045 D13CANTX H35ff H501 D10 K8ADD H40 D13 D13CANTX H35ff H501 D10 K8ADD H40 D13 D13CANTX H35ff H501 D10 K8ADD H40 D13 D13CANTX H35ff H501 D10 K8ADD H40 D13 D13ADD H40 D13 D13CANTX H35ff H501 D10 K8ADD H40 D13 D13CANTX H35ff H501 D10 K8MOV K160 D10MOV K160 D11MOV HA06 D12MOV H4046 D13CANTX H35ff H601 D10 K8ADD H40 D13 D13CANTX H35ff H601D10 K8ADD H40 D13 D13CANTX H35ff H601 D10 K8ADD H40 D13 D13CANTX H35ff H601 D10 K8ADD H40 D13 D13CANTX H35ff H601 D10 K8ADD H40 D13 D13ADD H40 D13 D13CANTX H35ff H601 D10 K8MOV K170 D10MOV K170 D11MOV HA06 D12MOV H4047 D13CANTX H35ff H701 D10 K8ADD H40 D13 D13CANTX H35ff H701 D10 K8ADD H40 D13 D13CANTX H35ff H701 D10 K8ADD H40 D13 D13CANTX H35ff H701 D10 K8ADD H40 D13 D13CANTX H35ff H701 D10 K8ADD H40 D13 D13CANTX H35ff H701 D10 K82#PLC编程2#PLC负责配置1#PLC,相对简单,程序如下MOV K110 D10MOV K110 D11MOV HA06 D12MOV H4081 D13CANTX H35ff H102 D10 K8ADD H40 D13 D13CANTX H35ff H102 D10 K8ADD H40 D13 D13CANTX H35ff H102 D10 K8ADD H40 D13 D13CANTX H35ff H102 D10 K8ADD H40 D13 D13CANTX H35ff H102 D10 K8ADD H40 D13 D13CANTX H35ff H102 D10 K8为了保证配置信息能发到各PLC,必须要等到所有PLC上电,配置信息发送需要等待一定时间,建议为3秒。即3秒后1#PLC、2#PLC发出以上信息。2.2.2 CAN数据接收指令指令格式:CANRX(Addr1,Addr0,D,n) Addr1,Addr0:CAN标识符(地址)Addr1.bit15:保留Addr1.bit14:保留Addr1.bit13:CAN标识符位数设定。“0”表示标准CAN标识符(11位标识符),“1”表示扩展CAN标识符(29位标识符)。若为11位标识符,Addr0的低11位表示标识符。若为29位标识符,Addr0表示低16位标识符,Addr1的012位表示高13位标识符。D:接收缓冲区,D元件。从该D元件开始的最大4个D元件作为接收缓冲区。n:接收数据个数,以字节为单位,最大为8。CANRX特别说明:M8292:OFF表示CAN接收处于空闲状态,ON表示CAN处于接收等待状态。若CAN接收处于空闲状态,且接收指令被驱动,开始CAN数据接收并置M8292为ON,正常接收完成后M8292自动置为OFF,并从此条指令位置开始扫描下一条被驱动的指令开始执行接收数据。M8294:ON表示成功接收到一次数据,需用户进行复位。从指令被驱动起计时,若接收等待时间超过D8299(毫秒为单位),报超时故障,则不会接收到数据,M8292自动置为OFF。建议波特率小时增大D8299,波特率大时减小D8299。并从此条指令位置开始扫描下一条被驱动的指令开始执行接收数据。指令被驱动,并不代表马上可以开始接收数据,先要看是否有CANRX处于接收等待状态。该指令可以用沿驱动。为避免与CAN-LINK冲突,11位标识符需要小于1023。下面将举例说明CANRX的应用。1. 接收发给1号站的数据,如图2-2所示。图2-2 CANRX用户指令若D0 = 8,若对方发过来的数据是h123456789ABCDEF0,那么D1010 = h1234,D1011 = h5678,D1012 = h9ABC,D1013 = hDEF0。若D0 = 1,若对方发过来的数据是h123456789ABCDEF0,那么D1010 = h12xx,D1011 = hxxxx,D1012 = hxxxx ,D1013 = hxxxx 。x表示未知数,不用关心。若D0 = 3,对方发过来的数据是h123456789ABCDEF0,那么D1010 = h1234,D1011 = h56xx,D1012 = hxxxx ,D1013 = hxxxx 。x表示未知数。2.3 PLC编程参考对与H1U/H2U系列远程扩展模块,默认启动CAN-LINK的,只需要把硬件配置好,即把拨码开关拨好就可以了。对于PLC主机,在用户程序编程上还需要做一些配置处理,特别是使用到CAN自由指令时。请参照表2-2、2-3。表2-2 CAN通信相关特殊变量表(VEL2.00)M元件M元件定义D元件D元件定义M8280协议标志10:CAN-LING VER2.00协议1:CAN-LING VER1.00协议D8280当前软件CAN-LINK协议版本号(默认200)M8281没有识别到CAN扩展卡,CAN-LINK功能不能使用D8281扩展卡类型号,H2U为自动识别,D8280显示此卡的类型号;H1U不能自动识别,需要通过D8281设定扩展卡类型。扩展卡类型如下:1RS232扩展卡2RS422/485通讯扩展卡3AD扩展卡4DA扩展卡56A_6B_3A_BD1扩展卡6高速扩展卡7CAN扩展卡M8282保留D8282保留M8283保留D8283保留M82840:拨码设定CAN_LINK地址,D8284显示地址1: D8284设定CAN_LINK地址1D8284CAN_LINK地址设定/显示地址1M82850:拨码设定波特率,D8285显示波特率1:由M8286决定波特率设置110D8285波特率设定,或显示拨码及档位设定的波特率110M82860:波特率分档设定,由D8286分档设定,D8285显示波特率1:波特率由D8285,D8286组成的32位寄存器自由设定112D8286M8285=1,M8286 = 0时D8286 =10的时候D8286 = 10, 10KD8286 = 20, 20KD8286 = 50, 50KD8286 = 125, 125KD8286 = 250, 250K112M8287允许保存网络设备信息1D8287M82871,设定网络设备信息保存起始元件编号。1 3M8288保留D8288保留M8289重新配置CAN-LINK网络4D8289保留M8290添加CAN-LINK网络配置信息5D8290保留M8291启动网络设备搜索D8291网络设备个数2M82920:自由CAN指令接收完成或空闲1:自由CAN指令接收状态D8292CANRX接收到的数据长度(MCFL)2M8293CAN自由指令发送失败D8293CAN中断寄存器6M8294CAN自由指令接收成功2D8294CAN状态寄存器6M8295CAN状态异常6D8295CANRX接收数据MDL低16位211M8296设备地址错误D8296CANRX接收数据MDL高16位211M8297保留D8297CANRX接收数据MDH低16位211M8298保留D8298CANRX接收数据MDH高16位211M8299CAN接收超时2D8299CAN接收超时设定(ms) 7M8300设备通信中断2D8300设备编号M8301网络过载2D8301本站故障信息(PLC故障代码:)28M8302设备发送非法数据(非CAN-LINK协议数据)2D8302设备编号2M8303设备没有正确执行配置信息2D8303设备编号2M8304协议版本错误2D8304设备编号2M8305网络中有设备告警(用户程序复位)29D8305网络告警信息29M8306启用详细告警记录10D8306若启用详细告警记录:设定保存告警/错误起始元件编号。从该编号开始的64个D元件,将用来存放0-63号设备的告警信息(告警码)2101:用户设定后需重新上电或STOP-RUN才能够识别。其中M8280必须重新上电才能够识别。2:置位后需用户将其复位。3:从起始地址开始(例如D100)D100-D103以bit为单位表示站点编号,当某一站点存在,该站点编号的bit置位。D104以后以4个寄存器为一组依次表示站点信息,如果站点不存在则表示为0。D104-D107表示第0号站点(不存在,该组寄存器保留),D108-D111表示第1号站点信息,以此类推。共占用4*64=256个寄存器。4:当站点为主站时,M8289置位后主站发送删除命令广播帧,然后发送主站的所有配置信息。(目前由于后台软件没有建立所以主站没有配置信息,只发送删除命令广播帧)5:当站点为主站时M8300置位后主站发送添加命令广播帧,然后发送主站的所有配置信息。(目前由于后台软件没有建立所以主站没有配置信息,只发送添加命令广播帧)6:表示CPU相应寄存器,没有具体含义,供专业人员调试时使用。7:用来表示FROM、TO、CANRX的接收等待时间,如果设定小于5则默认为是5,如果设定大于1000默认为是1000。表示从发送指令开始计算等待的时间,对于FROM、TO指令,超过此时间则M8299置位。建议波特率大时将此值减小,波特率小时将此值增大,否则会由于传输时间长导致没有接收导数据。对于CANTX指令D8299表示从发送开始到发送成功的等待时间。8:表示PLC作为从站的故障代码。低8位以bit为单位监测M8060到M8067 8个软元件。例如M8064置位,则第5位置位,D8031的值为0010h。9:PLC作为主站时当接收到告警命令(07h命令或10h命令)时将D8305高位表示告警码,低位告警设备编号;若多个设备同时存在告警,即地址编号最小的设备告警优先;若同一个设备有多个告警,即告警码最小优先。如果告警码不为0表示从站有告警信息,同时M8305置位。10:若用户启用详细告警记录(M8306置位),D8306表示设定保存告警/错误起始元件编号。主站接收到告警时M8305置位,同时将告警信息相应保存在以D8306为起始地址的寄存器中。D8306定义为保存告警信息寄存器首地址,从该地址开始的64个D元件,将用来存放0-63号设备的告警信息(告警码)。例如:D8306为100,M8306为ON,当接收到告警信息时D8305为8001h(表示1号从站报警,报警码为80h),D101(D100表示0号站,保留。D101表示1号站)自动变为80h。11:用于专业人员调试使用,表示CANRX接收缓冲区接收数据,但并不代表CANRX接收数据,如果这4个寄存器接收到数据,而CANRX数据区没有接收到数据,需要查看CANRX相关标志位看是否存在超时等现象。12:当M8285和M8286同为ON时,PLC的CAN传输波特率由D8285和D8286来设置。具体格式如表2-4所示:表2-4 波特率设置方法D8286D8285Bit157Bit64Bit30Bit1510Bit90保留(必须为0)TESG2TESG1保留(必须为0)BRPBRP:波特率预分频。分频APB时钟来产生CAN时钟,分频值为(该字段的值+1)。TESG1:从指定同步点到采样点的延时是(该字段的值+1)个CAN时钟。TESG2:从采样点到下个指定同步点的延时是(该字段的值+1)个CAN时钟。规定的CAN位时间是(该字段的值+TSEG1的值+3)个CAN时钟。CAN波特率计算公式: 波特率= K (2-1)在公式2-1中可以看出得到相同波特率的BRP、TESG1、TESG2三个参数的组合不止一组,不同组参数虽然波特率相同,但在采样、分频等位置不同会给CAN通讯带来微小差异。建议TESG2尽可能小(建议取0)。例如:波特率为500K,可设置TESG2=0,TESG1=5,BRP=5。(D8286=5,D8285=5) 波特率为100K,可设置TESG2=0,TESG1=7,BRP=23。(D8286=7,D8285=23)波特率为1000K,可设置TESG2=0,TESG1=5,BRP=2。(D8286=5,D8285=2)用户自行设置波特率时可针对同一波特率按照上述方法多设计组参数,观察效果取最好一组,如有特殊要求也可联系技术支持帮助设置合适的波特率参数。表2-3 故障信息6380发送超时6381接收超时6382CAN发送忙6383CAN接收忙3. 协议3.1 CAN-LINK协议CAN-LINK通信由三组帧结构组成,命令帧,配置帧和数据帧。命令帧和配置帧用来管理网络,数据帧是正式通信数据,用于不同设备信息交换。CAN-LINK通信不用询问和应答,通过定时发送的方式实现高效通信。3.1.1 CAN-LINK远程响应帧网络管理主机通过远程响应帧扫描CAN-LINK设备,CAN-LINK网络中的所有设备,必须可响应网络管理主机发过来的远程帧。上电后,网络稳定后,网络主机通过远程帧扫描网络中设备。远程帧格式如图3-1、3-2、3-3所示。表3-1 远程帧格式仲裁区(29bit)DLCMDLMDH仲裁标识保留保留目的站号保留字节数数据1数据2数据3数据44bit1bit8bit8bit8bit8bit16bit16bit16bit16bitbit2825Bit24Bit2316bit158bit70Bit3116Bit150Bit3116Bit150固定11011ffhxxhffhbit70:Ai数bit158:Ao数bit70:Di数bit158:Do数产品辅标识产品主标识表3-2 主站发送远程帧仲裁区(29bit)DLCMDLMDH仲裁标识保留保留目的站号保留字节数Bit310Bit31011011ffhxxhffh0hNULLNULL表3-3 设备回应远程帧仲裁区(29bit)DLCMDLMDH仲裁标识保留保留目的站号保留字节数Bit3116Bit150Bit3116Bit15011011ffhxxhffh8hbit7.0:Ai数bit15.8:Ao数bit7.0:Di数bit15.8:Do数产品主标识产品辅标识在编程时需要注意以下两点。1. 在TI芯片中可对邮箱进行以下设置:SCC1CANMID = MSGID11(11010XXXXXX) + AAM;/发送邮箱,会响应远程帧SCC1CANMCF = 8;/字节数SCC1CANMDL .Bit0_7/输入IO数量SCC1CANMDL .Bit8_15/输出IO数量SCC1CANMDL .Bit16_23/输入模拟量数量SCC1CANMDL .Bit24_31/输出模拟量数量SCC1CANMDH.Bit0_15/产品主标识(软件ID及版本号)SCC1CANMDH.Bit16_31/产品辅标识(非标版本号)2. 产品主标识的定义格式:GXXYY,全部为十进制数字09。G:公司名称,“1”表示汇川公司产品,“2”表示其它公司产品XX:产品分类,“01”表示变频器,“02”表示PLC,“03”表示电梯一体化控制器,“05”表示伺服驱动器。实际是公司产品大类编码(01XX0000项目编码的5、6位)YY:产品系列号,最好根据软件区分,PLC产品实际就是软件编号。产品主标识定义如表3-4所示。表3-4 产品主标识定义公司名称(G)产品分类(XX)产品序列号(YY)备注H2U系列PLC主模块10224H1U系列PLC主模块10226H2U系列远程IO扩展模块10202H2U系列远程通用模拟量扩展模块10251H2U系列远程温度扩展模块10252变频器101XX伺服105XX伺服106XX3.1.2 CAN-LINK命令帧命令帧是需要应答的,除广播(接收站地址为0)命令外,否则需要接收站应答。命令帧格式如表3-5所示。表3-5 命令帧格式仲裁区(29bit)DLCMDLMDH仲裁标识问答标志命令编码目的站号源站号字节数数据1数据2数据3数据44bit1bit8bit8bit8bit0/4/8bit16bit16bit16bit16bitbit28.25Bit24bit2316bit158bit70Bit3116Bit150Bit3116Bit150固定10000:答 1:问仲裁标识:命令帧仲裁标识固定为1000,以区分配置帧、数据帧和远程帧。问答标志:命令帧分为“命令”和:应答“两种方式”,通过问答标志来区分,“命令”时写入“1”,“应答”时写入“0”。命令编码:用以区分各个命令功能的编码。源站号:发送该命令的设备站,问命令编码指的是发送站发出的命令目的站号:接收该命令的站,若为0则表示是广播(不需要应答)。数据区:根据命令不一样而有不同的定义。1. 删除命令删除设备CAN-LINK配置信息,DLC为0,数据区不存在;若目的站号为0表示广播,对所有设备均有效,所有设备配置信息均删除配置,否则仅删除指定设备配置信息。广播帧不能回答。删除命令如表3-6所示。表3-6 删除命令格式命令01h仲裁区(29bit)DLCMDLMDH仲裁标识问答标志命令编码目的站号源站号字节数Bit310Bit310问:1000101hxxxxxxxxyyyyyyyy0hNULLNULL答:1000001hyyyyyyyyxxxxxxxx0hNULLNULL2. 添加命令增加设备CAN-LINK配置信息,DLC为0,数据区不存在;若目的站号为0,所有模块都要做好增加配置信息的准备。添加命令如表3-7所示。表3-7 添加命令格式命令02h仲裁区(29bit)DLCMDLMDH仲裁标识问答标志命令编码目的站号源站号字节数Bit310Bit310问:1000102hxxxxxxxxyyyyyyyy0hNULLNULL答:1000002hyyyyyyyyxxxxxxxx0hNULLNULL3. 读设备配置信息命令读设备CAN-LINK配置信息,目的站号不能为0。接收到该信息的设备必须回复CAN-LINK配置信息。问帧数据区的MDL(32Bit)为配置信息编号,当PLC作为从站时配置信息最多为16条,所以PLC作为从站时配置信息编号为0-15接收站将接收到的配置信息编号所对应的配置信息发送给发送站。读设备配置信息命令如表3-8所示。表3-8 读设备配置信息命令格式命令03h仲裁区(29bit)DLCMDLMDH仲裁标识问答标志命令编码目的站号源站号字节数Bit310Bit310问:1000103hxxxxxxxxyyyyyyyy4h配置信息编号NULL答:1000003hyyyyyyyyxxxxxxxx8hCAN-LINK配置信息,同CAN-LINK配置帧定义4. 读寄存器数据读取站点寄存器数据,DLC为4或8,目的站号不能为0。问帧:若DLC为4,数据区只有MDL有效。MDL 的Bit150表示需要读取的寄存器起始地址,MDL 的Bit3116表示需要读取的寄存器个数;若DLC为8,数据区MDL和MDH均有效,此命令帧可以读取同一站点两组寄存器数据。MDL表示需要读取的第一组数据区,MDL的Bit150表示第一组需要读取的寄存器首地址,MDL 的Bit3116表示第一组需要读取的寄存器个数。MDH表示需要读取的第二组数据区,MDH的Bit150表示第二组需要读取的寄存器首地址,MDH 的Bit3116表示第二组需要读取的寄存器个数。应答帧也分两部分如果读取寄存器的总个数为1,则字节数为4,应答帧只有MDL有效,MDL的Bit150表示读取的寄存器地址,MDL的Bit3116表示读取的寄存器数据。如果读取寄存器的总个数为2,则字节数为8,应答帧只有MDL和MDH均有效。MDL的Bit150表示读取的第1个寄存器地址,MDL的Bit3116表示读取的第1个寄存器数据。MDH的Bit150表示读取的第2个寄存器地址,MDH的Bit3116表示读取的第2个寄存器数据。一条应答帧最多可返回2个寄存器数据,如果问帧的读取寄存器的总个数大于2个,则需要有多条答帧依次进行返回,格式与上面所述相同。读设寄存器数据命令如表3-9所示。下面将举例说明。(1) 问帧:ID:11040102h(2号站读1号站)DLC:4(4个字节)数据区:00010020h(从地址为20h开始读取,读取1个寄存器)答帧:ID:10040201h(1号站返回2号站)DLC:4(4个字节)数据区:00500020h(1号站20h地址数据是50h)(2) 问帧:ID:11040102h(2号站读1号站)DLC:4(4个字节)数据区:00030020h(从地址为20h开始读取,读取20h、21h、22h 3个寄存器,)答帧:此时读取3个寄存器,需要两条答帧返回数据。答帧1:ID:10040201h(1号站返回2号站)DLC:8(4个字节)数据区:00500020 00600021h(1号站20h地址数据是50h,21h地址是60h)答帧2:ID:10040201h(1号站返回2号站)DLC:4(4个字节)数据区:00700022h(1号站22h地址数据是70h)(3) 问帧:ID:11040201h(2号站读1号站)DLC:8(8个字节)数据区:00020020 00020050h(从地址为20h开始读取,读取20h、21h 2个寄存器, 从地址为50h开始读取,读取50h、51h 2个寄存器)答帧:此时一共读取4个寄存器,需要两条答帧返回数据。答帧1:ID:10040201h(1号站返回2号站)DLC:8(8个字节)数据区:00500020 00600021h(1号站20h地址数据是50h,21h地址是60h)答帧2:ID:10040201h(1号站返回2号站)DLC:8(8个字节)数据区:00700050 00800051h(1号站50h地址数据是70h,51h地址数据是80h)表3-9 读寄存器数据命令格式命令04h仲裁区(29bit)DLCMDLMDH仲裁标识问答标志命令编码目的站号源站号字节数Bit3116Bit150Bit3116Bit150问:1000104hxxxxxxxxyyyyyyyy4/8h一组寄存器个数一组寄存器首地址二组寄存器个数二组寄存器首地址答:1000004hyyyyyyyyxxxxxxxx4/8h寄存器1数据 寄存器1地址寄存器2数据寄存器2地址5. 写寄存器命令写站点寄存器数据,D

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论