用户中心

贝加莱自动化社区

+加入社区 社区登录 成员注册

施耐德电气工业社区

+加入社区 社区登录 成员注册

您的位置:控制工程网 -贝加莱自动化社区

可编程计算机控制器的CAN 总线通信

作者:作者:胡 江 上海电机学院电气学院 发布时间:2009-02-19

摘要: 介绍了可编程计算机控制器( Programmable Computer Controller , PCC) CAN总线通信的特点;给出了PCC利用CAN总线实现单变量传输以及变量表传输方法。研究方法可用于PCC多点多变量通信。

  现代的可编程计算机控制器(PCC)已经发展到以微处理器为基础、高度集成化的工业控制装置。它是计算机技术与工业控制技术相结合的控制设备,可广泛应用于各种机械,如金属切削机床、金属成型机床、装配机械、机器人和电梯以及与工业计算机、以太网等相连构成整个工厂的自动控制系统[1,2] 。从广义上来说, PCC也是一种计算机控制系统,只不过它比一般的计算机具有更强的与工业过程相连接的接口和更直接的适用于控制要求的编程语言。同时,PCC也具有一般可编程控制器的特点。也可采用面向控制过程,面向问题的简单而直观的控制型语句,直接表达被控对象的动作及输入输出关系。
  1  可编程计算机控制器
  20世纪90年代,可编程控制器技术随着计算机技术、网络通信技术、自动控制技术的飞速发展而不再是传统意义上的可编程控制器,由于其数学处理能力、网络通信能力、智能控制能力等得到发展,因此, 1994年开始被称为可编程计算机控制器(PCC)。随着PCC的不断发展,它与3C(Comput-er ,Control ,Communication) 逐渐融为一体。目前的PCC已从小规模的单机顺序控制,发展到包括过程控制、位置控制等场合的所有控制领域,并能组成工厂自动化的PCC综合控制系统[3]。
  2  PCC的CAN总线
  传统的串行通信传输方式包括RS-232 、RS-485等。RS-232是点对点的通信方式,传送速度比较慢,距离比较短; RS-485的数据信号采用差分传输方式,传送速度较快,但由于通信结构采用单主站总线访问形式,应用有一定的局限性[4]。CAN的应用范围现已遍及工厂自动化、机床、医疗设备、建筑环境控制,从高速网络到低成本的多线路网络。CAN总线具有强有力的错误检测能力及差分驱动功能,速度快、传送距离长等优点。CAN具有下列主要特性:多主站依据优先权进行总线访问;无破坏性的基于优先权的仲裁;借助接收滤波的多地址帧传送;远程数据请求;配置灵活性;全系统数据相容性;错误检测和出错信息;发送期间若丢失仲裁或由于出错而遭破坏的帧可自动重发送;暂时错误和永久性故障节点的判别以及故障节点的自动脱离[5]205 。相对传统传输方式, PCC中采用CAN总线实现变量传输,具有的传输距离远、准确率高以及传送速率快等特点,编程简单,修改容易,十分利于工程应用。
  3  PCC实现单变量的传输
  CAN总线进行数据通信时,用CANopen( )进行初始化,用CANwrite( )以及CANread( )实现两个站点间单变量的传输[5]207 。
  两个PCC站点的站号分别为100 ,200;波特率为50 。站点200为写数据, 站点100为接收数据,在循环程序部分对CAN 接口进行编程如下:
  CANopen(1,50,8,adr(error - adr),"CAN",0,us-ident,rc-open)
  CANwrite(1,us-ident,200,adr(wr-dat),8,rc-write)
  CANread(1,us-ident,100,adr(rd-dat),rd-len ,rc-read)
  在WA TCH 窗口进行变量调试。当站点200里面发送单变量数据时,站点100里面就能马上读到该变量数据,这样就实现了单变量的传输。
  4  PCC实现变量表的传输
  CAN总线实现变量表传输,需先在数据文件中进行变量表的定义,定义每个变量的变量地址、变量名、变量使能以及读写标志。
  在初始化程序部分先给变量表中的变量以及使能变量赋初值(初值皆为0),然后对CAN接口进行初始化,处理方法与传输单变量一致,在初始化程序中调用CANopen()既可。使用DA-ident 函数,获得变量表cantable 的地址,如果地址为0(使用ifendif 语句实现) 则执行DA-info函数,获得变量表的相关信息(如首地址,数据长度,内存变量类型等)用CANdftab()[5]210 创建一个包含CAN总线数据的变量列表,用户可以通过事件变量(事件过程变量) 来进行数据读写。在写数据时,如果事件变量设为1 ,则发送变量数据;在CAN信息发送后,事件变量复位为0。当读数据时,此事件变量值设为1 。为了避免循环时间的问题,该功能仅在任务的初始化子程序中调用。周期性的读、写操作是由功能函数CANrwtab()[5]214进行处理的。
  在循环程序部分将本站点的使能变量置1 ,用CANrwtab()对CAN接口进行读写操作,实现变量表传输。该功能处理由上一个功能函数定义的变量列表,且必须对其在循环任务中进行调用。如果总线没有准备好,则CAN控制器在每一次调用次功能时,重新初始化。
  CAN总线实现两个站点间变量表的传输。其中,两个站点的站号分别为100 ,200;波特率50;
  定义变量表由2个整型变量构成。
  (1)变量表数据文件(以2个整型变量的定义为例) :
  $0000 0100 ," can-01-int-1   " ," ev-can-01-int-1   " , $0000001
  $0000 0101 ," can-01-int-2   " ," ev-can-01-int-2   " , $0000001
  $0000 0200 ," can-02-int-1   " ," ev-can-02-int-1   " , $0000000
  $0000 0201 ," can-02-int-2   " ," ev-can-02-int-2   " , $0000000
  (2) 初始化程序:
  ①给变量表中的所有变量以及使能变量赋初值(初值皆为0)
  can-01-int-1= 0
  ev-can-01-int-1= 0
  ②加入CANopen 函数打开CAN 总线
  CANopen(1,50,8 , adr(error-adr) ,"CAN",0,us-ident,rc-open)
  ③加入DA-iden 函数,获得变量表cantable的地址,返回到rc-ident中
  rc-ident= DA -ident("cantab",0 ,adr(mo-ident))
  ④如果rc-ident=0(if endif ) 则执行DA-info函数,获得变量表的相关信息(如首地址,数据长度,内存变量类型等),返回到rc-info 中
  if rc-ident =0 then
  rc-info= DA-info(mo-ident,adr(start-adr ),adr (da-len),adr(memory-type) )
  endif
  ⑤加入CANdftab函数,定义变量表相关信息(如变量个数8个,错误返回值rc-tab-ident 等) 。
  (3) 循环程序:
  ①本站点的使能变量置1 。
  ev-can-01-int-1 =1
  ev-can-01-int-2 =1
  ②如果rc-tab-ident= 0(if endif ) 则执行CANrwtab 函数,使得变量表能够在两个站点间进
  行读写操作
  If rc-tab-ident= 0 then
  CANrwtab(1,us-ident,start-ad ,32,tab -ident ,rc-tab-ident)
  endif
  在WA TCH 窗口进行变量调试。给站点100的两个变量can-01-int-1,can-01-int-2 赋值10
  与20 , 站点200里面的参数can-02-int-1,can-02-int-2 马上可读到10与20 这个两个数,反之亦
  然,这样就实现了变量表的传输。
  5  结 语
  PCC在CAN总线的通信中具有强大的功能,本文针对两台PCC之间变量的传递进行了研究,其
  研究方法可扩展到多站点多变量的参数传递。另外,PCC还可以自行编写通讯协议来实现数据的传
  输。
  参考文献
  [1]  贝加莱工业自动化有限公司. 贝加莱工业自动化B &R2000 可编程计算机技术AU TOMATION STUDIO 培训手册[M] . 2001 :2-5.
  [2 ]  贝加莱工业自动化有限公司. 贝加莱工业自动化软件及硬件技术手册[M] . 2001 :3-10.
  [3 ]  齐蓉,肖维莱. 可编程计算机控制技术[M] .北京:电子工业出版社,2005 :2-3.
  [4 ]  齐蓉. 可编程计算机控制器原理及应用[M] .西安:西北工业大学出版社,2002 :8210.
  [5 ]  邬宽明. CAN 总线原理和应用系统设计[M] .北京:北京航空航天大学出社,1996 :205-215.
  作者简介:胡 江(1975) ,男,助理实验师,专业方向:电气控制及自动化。

社区公告

贝加莱是一个总部位于奥地利并拥有遍布全球分支机构的创新驱动型自动化企业,2017年7月,贝加莱成为ABB集团的一个业务单元。作为全球工业自动化领域的领导者,贝加莱融合了前沿技术与先进的工程能力,为各个产业客户提供机器与工厂自动化、运动控制、HMI以及集成安全技术的完整解决方案。贝加莱保持持续的创新精神,为客户提供更为简化以及超出预期的工业自动化领域前沿技术与方案。

联系贝加莱

贝加莱工业自动化(中国)有限公司
联系人:王琳
地址:上海市田林路487号宝石园21号楼
邮编:200233
电话:021-54644800
传真:
公司网址:http://www.br-automation.com/zh

扫我吧,即刻关注贝加莱微信公众号
扫我吧,即刻关注贝加莱视频号
扫一扫,进入贝加莱问答社区小程序

网友留言反馈

  • 网友反馈
  • 王民 在2024/11/4 10:48:00留言
  • 留言类型: 得到贵公司产品详细资料,贵公司技术支持人员联系我,
  • 详细留言: 8LSA35.EA030D000-3 8LSA35.EA030D000-0的区别
  • Mr li 在2024/10/29 20:39:00留言
  • 留言类型: 得到贵公司产品详细资料,
  • 详细留言: 我想得到贵公司X20系列产品的EPLAN部件数据
  • 汪先生 在2024/10/25 10:06:00留言
  • 留言类型: 贵公司产品销售人员联系我,
  • 详细留言: 贝加莱电源模块8BVP0880HW00.004一1
  • 李茂 在2024/10/23 12:55:00留言
  • 留言类型: 我让贵公司产品销售人员联系我,
  • 详细留言: Panel PC 800
  • 魏志良 在2024/8/15 8:45:00留言
  • 留言类型: 贵公司产品销售人员联系我,
  • 详细留言: 你好! 需采购贵公司X20CP1586,数量:1,请报价及交货期,谢谢! 北京江河同辉水利水电设备有限责任公司 魏志良 13911359212 2024年8月15日

更多请进入空间管理中心查看

互动反馈

1、请选择你的需求:


2、请填写详细需求:

  • 姓名:
  • 公司:
  • 电话:
  • 邮箱:

如果您是本站注册会员,请登录后提交反馈。非注册会员,请直接填写以上个人信息。

关于我们 | 网站地图 | 联系我们
© 2003-2018    经营许可编号:京ICP证120335号
公安机关备案号:110102002318  服务热线:010-82053688