科威PLC与第三方设备实现CANBUS通信 点击:1121 | 回复:6



gonkillua

    
  • 精华:5帖
  • 求助:0帖
  • 帖子:77帖 | 128回
  • 年度积分:0
  • 历史总积分:516
  • 注册:2007年8月04日
发表于:2007-12-06 15:43:00
楼主
    科威PLC带CANBUS通信接口,符合CAN2.0A和CAN2.0B协议,支持主从结构CANBUS通信。多台科威PLC之间的CANBUS通信只需要简单设置即可实现。其设置包括链路层设置和应用层设置,链路层设置通过给PLC相关单元填数据实现,应用层设置在PLC作为主站时要使用科威公司开发的工具软件CANSET,详情请见www.kwzk.com/资料下载/PLC编程手册/第九章。科威PLC也可以与第三方设备进行CANBUS通信,此时PLC可以作主站或从站。
    一、科威PLC作主站时如何与第三方设备通信
        主站PLC的设置方式按科威PLC CANBUS主从通信协议中主站方式设置,并下载CAN配置文件。根据第三方设备和科威PLC之间需要交换的数据,在科威公司CANSET软件设备库中建立一个新设备,然后将新设备添加到设备表,具体操作方法见编程手册第九章。每个新设备由多个报文组成,报文号从0开始,每次递增1个。每个报文由发送报文和接收报文组成,发送和接收是针对PLC而言。报文数据长度固定为8个,其有效数据为6个字节,其余2个字节定义为逻辑地址和命令字,报文结构为:
        
         

        逻辑地址和报文号均由PLC组成。逻辑地址对应设备表中每个设备的序号,每个报文号对应一个发送报文和一个接收报文。新设备在编制应用程序时,CANBUS接口设置参数必须和主站PLC一致,参数包括波特率、是否带扩展标识位等。
        当新设备CANBUS接口为11位标识位时,主站PLC只能是不带扩展校验位方式,此时新设备接收报文标识符字节内容(ID10~ID3)应与设备表中的设备地址一致,ID2~ID0设为0。
        当新设备CANBUS接口为29位标识位时,主站PLC必须设为带扩展校验位方式,此时新设备接收报文字节内容(ID28~ID21)与设备表中的设备地址一致,ID20~ID8全部设为0,ID7~ID0必须被屏蔽位屏蔽掉。
        新设备在接收到主站PLC发送的报文后,必须保存逻辑地址和报文号,根据报文号确定如何保留后面6个数据(全部保留,全部不保留或部份保留)。保存接收数据后,必须回送一个报文,头2个字节是刚才接收报文中的逻辑地址和报文号,其余6个是数据字节,若没有有效数据或有效数据不够6个,则发送缓冲区只填充对应的有效数据,但发送报文数据长度必须为8。
        当新设备为11位标识符时,发送报文标识符设为0,当新设备为29位标识符时,发送缓冲区8个字节相加的和填入发送报文标识符的低8位(ID7~ID0),其余ID28~ID8位全部设为0。
   二、科威PLC作从站时如何与第三方设备通信
       从站PLC的设置方式按科威PLC CANBUS主从通信协议中从站方式设置。此时第三方设备为主站,当通信数据量不多时,可设计成定时按顺序发送报文,接收报文以中断方式接收。此时发送报文和接收报文结构仍为:
       
        

       发送和接收是针对第三方设备而言,数据长度固定为8个字节。逻辑地址和报文号由第三方设备生成,逻辑地址可不用设置。根据每台PLC需要与第三方设备(主站)通信的数据量,设计报文个数,报文号从0开始,每次递增1个,每个报文号对应一个报文,每个报文由发送报文和接收报文组成。
       当新设备CANBUS接口为11位标识位时,从站PLC只能是不带扩展校验位方式。此时新设备发送报文标识符字节内容(ID10~ID3)与从站PLC地址一致,ID2~ID0设为0。新设备接收报文标识符为全0。
       当新设备CANBUS接口为29位标识位时,从站PLC必须是带扩展校验位方式。此时发送报文标识符中ID28~ID21与从站PLC地址一致,ID20~ID8全部设为0,将发送缓冲区8个字节的数据相加之后的和填入ID7~ID0。接受报文标识符中ID28~ID8全部设为0,ID7~ID0必须被屏蔽位屏蔽掉。
       发送缓冲区头两个字节是逻辑地址和报文号,后6个字节是数据。从站PLC接收到CAN报文后,根据报文号的内容,将接收到的数据填入相应的D寄存器区,然后回送一个报文,回送报文内容为相应D寄存器内容。对PLC而言,0号接收报文内容填入D6000~D6002,高字节在前,0号发送报文内容为D6003~D6005,同样是高字节在前,其余报文对应的D寄存器地址依此类推。
       新设备接收到报文后,在11位标识位方式下,根据接收报文的报文号将对应的报文数据直接保存。在29位标识位方式下,先将8个接收数据相加,得到的和应与接收报文标识符ID7~ID0一致,否则为无效报文。若一致则保存对应的报文数据。新设备在下一次发送报文时,报文号向上加1,并将相应数据填入发送缓冲区。发送到最后一个报文后,报文号清零,又重新开始新一轮发送。



通讯网

  • 精华:11帖
  • 求助:1帖
  • 帖子:431帖 | 10265回
  • 年度积分:0
  • 历史总积分:24711
  • 注册:2004年7月09日
发表于:2007-12-06 15:46:00
1楼
上次台湾正频企业的jps.rd先生就是要用此功能。

yyght

  • 精华:1帖
  • 求助:0帖
  • 帖子:176帖 | 821回
  • 年度积分:0
  • 历史总积分:1549
  • 注册:2005年3月21日
发表于:2007-12-11 21:41:00
2楼
good

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 16回
  • 年度积分:0
  • 历史总积分:117
  • 注册:2007年12月10日
发表于:2007-12-12 13:25:00
3楼
  使用起来是真的很方便!

yyght

  • 精华:1帖
  • 求助:0帖
  • 帖子:176帖 | 821回
  • 年度积分:0
  • 历史总积分:1549
  • 注册:2005年3月21日
发表于:2007-12-14 21:24:00
4楼
楼上的用过吗?

工控夏夏

  • 精华:0帖
  • 求助:0帖
  • 帖子:13帖 | 140回
  • 年度积分:0
  • 历史总积分:262
  • 注册:2007年8月09日
发表于:2008-01-31 21:34:00
5楼


     我用过啊,速度很快,主要还是抗干扰能力强,稳定!

haijun8888

  • 精华:0帖
  • 求助:0帖
  • 帖子:5帖 | 9回
  • 年度积分:0
  • 历史总积分:56
  • 注册:2003年11月04日
发表于:2008-06-04 21:41:13
6楼

为什么这个PLC在发送每帧数据帧前后都需要发一个远程帧,远程帧做什么的.


热门招聘
相关主题

官方公众号

智造工程师