CANLINK通信手册Word文档下载推荐.docx
《CANLINK通信手册Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《CANLINK通信手册Word文档下载推荐.docx(34页珍藏版)》请在冰点文库上搜索。
满足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-1CAN-LINK网络拓朴示意图
H1U/H2UCAN扩展卡接口定义:
图1-2CAN-LINK接口定义
表1-1CAN-LINK接口引脚定义
管脚号
信号
描述
1
+24Vcc
外接直流24V供电电源正
2
CANH
CAN总线正
3
PGND
屏蔽地线,接通信电缆屏蔽层
4
CANL
CAN总线负
5
0V
外接直流24V供电电源负
组成CAN-LINK网络时,所有设备的以上五根线均要一一对应连在一起。
并且+24Vcc和0V间需要外接24V直流电源。
总线的两端均要加120欧姆的CAN总线匹配电阻。
CAN-LINK接线图如图1-3所示:
图1-3多台设备组成CAN-LINK网络接线图
H1U/H2U远程扩展卡和CAN接口卡均内置了匹配电阻,可通过拨码开关接入或断开。
标准的拨码开关定义如下:
图1-4CAN-LINK拨码开关
表1-2CAN-LINK拨码开关定义
拨码号
地址线A1
此六位拨码开关由高到低组合成一个六位二进制数字,用来标识本机站号(若为PLC主模块,还可以通过D元件设置站号)。
“ON”表示1,“OFF”表示0。
高位在高,低位在低。
按以下方式组合:
A6A5A4A3A2A1。
比如A1=ON,其它位为OFF,即二进制地址为:
000001,十进制为K01,16进制为h01。
若A5,A4都为ON,其它为OFF,即二进制地址为:
011000,十进制为K24,16进制为h18。
地址线A2
地址线A3
地址线A4
地址线A5
6
地址线A6
7
波特率
OFF:
高速模式,波特率500Kbps,ON:
低速模式,波特率100Kbps
8
匹配电阻
若拨码开关为ON,表示接入120欧姆的终端匹配电阻,否则断开
若改变拨码开关,除匹配电阻外,波特率和地址并不能立即生效,需要给系统重新上电才可能使用新的设置参数。
1.2CAN-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.3CAN-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.4CAN-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对外部模块发送一帧数据,等待外部模块响应,若在规定时间(D8281设定,以ms为单位)收到外部模块的正确响应数据,指令执行正常并更新数据,否则报错。
若是超时,M8290将置位。
2.2CAN自由指令
CAN自由指令目的是方便用户与不满足CAN-LINK协议或远程扩展模块访问协议的设备通信用,通过该指令,用户可编写任意CAN通信用户协议。
2.2.1CAN数据发送指令
指令格式:
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的0~12位表示高13位标识符。
发送缓冲区,D元件。
从该D元件开始的最大4个D元件作为发送缓冲区。
n:
发送数据个数,以字节为单位,最大为8。
CAN数据发送指令是立即执行的,若3ms内没有发送成功,将报6380故障;
若CAN忙,将报6382故障。
下面将举例说明CANTX指令应用。
1.10ms发送一组数据,缓冲区为D10~13,D0存发送的字节数。
如图2-1所示。
图2-1CANTX用户指令
若D0=k8,D10=h1234,D11=h5678,D12=h9ABC,D13=hDEF0
发送的数据如表2-1所示:
表2-1发送数据
第一字节
第二字节
第三字节
第四字节
第五字节
第六字节
第七字节
第八字节
h12
h34
h56
h78
h9A
hBC
hDE
hF0
若接收端字节从高到低,CAN接收数据寄存器MDL=h12345678,MDH=h9ABCDEF0
若D0=1,只发送一个字节:
若D0=3,发送前三个字节:
h12,h34,h56
依次类推。
2.通过CANTX配置CAN-LINK网络,假设有7台PLC组成一个CAN-LINK网络,站号从1~7。
有如下要求:
(1)通过CANTX指令来配置CAN-LINK网络。
(2)所有PLC的D110~D179的数据相同,其中D110~D119由1#PLC更新,D120~D129由2#PLC更新,·
·
,D170~D179由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帧数据,即任一台机器需要发送的数据帧总数为5×
6=30帧,CAN-LINK总线上总帧数为30×
7=210帧,使用500K波特率,一帧数据所用时间大约是300us,所以更新一次数据一共需要300us×
210=63ms。
为避免总线过分拥挤,取100ms刷新一次数据比较合理。
1#PLC编程。
配置2#PLC,服务接收站起始寄存器为D120;
服务提供站起始寄存器也是D120,寄存器个数为10,时间间隔为100ms,服务发送站号为2,服务接收站号分别为1,3,4,5,6,7。
取D10~D13作为CANTX发送缓冲区。
即有
MOVK120D10//服务接收站起始寄存器
MOVK120D11//服务提供站起始寄存器
MOVHA06D12//h0a为寄存器个数(10),06为时间间隔高位(h64)
MOVH4042D13//h4为时间间隔低位(h64),h042展开为二进制为0000,01;
00,0010。
分号前的6位表示1#站为服务接收站,分号后的6位表示2#站为服务提供站。
只需要改变服务接收站分别为1,3,4,5,6,7即可。
CANTXH35ffH201D10K8//配置2#站发送数据给1#站
ADDH40D13D13
CANTXH35ffH201D10K8//配置2#站发送数据给3#站
CANTXH35ffH201D10K8//配置2#站发送数据给4#站
CANTXH35ffH201D10K8//配置2#站发送数据给5#站
CANTXH35ffH201D10K8//配置2#站发送数据给6#站
CANTXH35ffH201D10K8//配置2#站发送数据给7#站
同理,配置3#~7#PLC梯形图
MOVK130D10
MOVK130D11
MOVHA06D12
MOVH4043D13
CANTXH35ffH301D10K8
MOVK140D10
MOVK140D11
MOVH4044D13
CANTXH35ffH401D10K8
MOVK150D10
MOVK150D11
MOVH4045D13
CANTXH35ffH501D10K8
MOVK160D10
MOVK160D11
MOVH4046D13
CANTXH35ffH601D10K8
CANTXH35ffH601D10K8
MOVK170D10
MOVK170D11
MOVH4047D13
CANTXH35ffH701D10K8
2#PLC编程
2#PLC负责配置1#PLC,相对简单,程序如下
MOVK110D10
MOVK110D11
MOVH4081D13
CANTXH35ffH102D10K8
为了保证配置信息能发到各PLC,必须要等到所有PLC上电,配置信息发送需要等待一定时间,建议为3秒。
即3秒后1#PLC、2#PLC发出以上信息。
2.2.2CAN数据发送指令
CANRX(Addr1,Addr0,D,n)
接收缓冲区,D元件。
从该D元件开始的最大4个D元件作为接收缓冲区。
接收数据个数,以字节为单位,最大为8。
CANRX特别说明:
M8291:
OFF表示CAN接收处于空闲状态,ON表示CAN处于接收等待状态。
若CAN接收处于空闲状态,且接收指令被驱动,开始CAN数据接收并置M8291为ON,正常接收完成后M8291自动置为OFF,并从此条指令位置开始扫描下一条被驱动的指令开始执行接收数据。
从指令被驱动起计时,若接收等待时间超过D8241(毫秒为单位),报超时故障,M8290置位,指令执行完成。
M8290自动置为OFF,并从此条指令位置开始扫描下一条被驱动的指令开始执行接收数据。
指令被驱动,并不代表马上可以开始接收数据,先要看是否有CANRX处于接收等待状态。
该指令可以用沿驱动。
为避免与CAN-LINK冲突,11位标识符需要小于1023。
下面将举例说明CANRX的应用。
1.接收发给1号站的数据,如图2-2所示。
图2-2CANRX用户指令
若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.3PLC编程参考
对与H1U/H2U系列远程扩展模块,默认启动CAN-LINK的,只需要把硬件配置好,即把拨码开关拨好就可以了。
对于PLC主机,在用户程序编程上还需要做一些配置处理,特别是使用到CAN自由指令时。
请参照表2-2、2-3、2-4。
表2-2CAN通信相关特殊变量表(VEL1.00)
D8199
扩展卡类型号,H2U为自动识别,D8199显示此卡的类型号;
H1U不能自动识别,需要通过D8199设定扩展卡类型。
扩展卡类型如下:
1RS232扩展卡
2RS422/485通讯扩展卡
3AD扩展卡
4DA扩展卡
56A_6B_3A_BD1扩展卡
6高速扩展卡
7CAN扩展卡
D8240.0
启动CAN同步主站功能
D8240.1
0:
拨码设定CAN_LINK地址,D8242显示地址
1:
D8242设定CAN_LINK地址
D8240.2
拨码设定波特率,D8243显示波特率
由D8240.3决定波特率设置
D8240.3
波特率分档设定
波特率由D8243,D8244组成的32位寄存器自由设定(参见CAN波特率设置寄存器规则,选择该设置,可能造成通信异常,请慎重)
D8240.4
允许保存网络设备信息(用户设定保存网络设备信息地址)
D8241
CAN接收超时设定(ms)
D8242
CAN_LINK地址设定/显示地址
D8243
波特率设定,或显示拨码设定的波特率
D8244
D8240.2=1,D8240.3=0时
D8244=其它值,800K
D8244=6,600K
D8244=5,500K
D8244=4,400K
D8244=3,300K
D8244=2,200K
D8244=1,100K
D8244=0,10K
D8245
D8240.4=1,设定网络设备信息保存起始寄存器,寄存器个数为6×
网络设备个数,最多384个寄存器,用户需要留出足够的空间,避免冲突
D8246.0
启动CAN_LINK发送一次功能
D8246.1
重新配置CAN-LINK网络
D8246.2
添加CAN-LINK网络配置信息
D8246.3
启动网络设备搜索
D8246.8
或M8192
CAN接收超时
D8246.9
或M8193
自由CAN指令接收完成或空闲
自由CAN指令接收状态
D8246.A
或M8194
CAN自由指令发送失败
D8247
同步时钟计数器L
D8248
同步时钟计数器H
D8249
网络设备个数
D8250
CAN中断错误
D8251
CAN接收到的数据长度(MCFL)
D8252
MDLL
D8253
MDLH