您现在的位置:智能制造网>技术首页>应用案例

基于CAN总线的计算机与PLC通信

2011年02月17日 10:01来源: 人气:2816

  1引言
  
  在现代工业中,PLC之间或PLC与计算机之间的通信联网应用日益广泛。PLC的联网功能越来越强。以欧姆龙CP1、CJ1和CS1系列PLC为例,配合使用各种模块,可以支持工业以太网、ControllerLink等现场总线通信联网功能。但是,应用广泛的CPM1A、CPM2A等中小型PLC的通信联网一般只能采用工业总线的物理层形式(如RS232或RS485),通信的稳定性与抗*力并不是很强。
  
  本文选用欧姆龙的CPM2A机型,配合使用RS232-CAN适配器,实现了计算机与PLC的通信联网,方法简单,实用性强。
  
  2CAN总线简介
  
  CAN总线由德国BOSCH公司首先提出来的,CAN总线是目前工业界广泛应用的总线。
  
  CAN控制器工作于多主站方式,网络中的各节点都可根据总线访问优先权采用无损结构的逐位仲裁的方式竞争向总线发送数据。CAN协议废除了传统的站地址编码,可使网络内的节点个数在理论上不受限制,通信实时性强,提高系统的可靠性和系统的灵活性。
  
  报文采用短帧格式,传输时间短,受干扰概率低,保证了数据出错率极低。CAN的每帧信息都有CRC校验及其他检错措施,具有*的检错效果。CAN的通讯介质可以为双绞线、同轴电缆或光纤,选择灵活。CAN节点在错误帧的情况下具有自动关闭输出功能,而总线上其它节点的操作不受影响。CAN总线通过两个输出端CANH和CANL与物理总线相连,不会出现损坏某些节点的现象。CAN节点在错误严重的情况下具有自动关闭输出功能,以使总线上其他节点的操作不受影响,不会出现象“死锁”状态。
  
  3通信结构
  
  通信系统组成如图1所示,上位计算机运行监控软件与OMRON的PLC编程及配置软件,并将计算机串口连接到RS232-CAN适配器,配置为CAN总线。下位PLC采用多台OMRON的CPM2A型PLC,将CPM2A的串口连接RS232-CAN适配器,实现CAN总线通信。
  
  图1通信系统结构
  
  通过适配器,计算机与PLC成为CAN总线的节点。
  
  节点之间通过双绞屏蔽线进行总线式连接,首尾节点需要接120R的匹配电阻。上位计算机可以通过CAN总线实时监控PLC系统的运行。
  
  此方案是现场总线技术与集中控制技术的有机结合,联网后的PLC网络可以构成一个DCS系统。用户在计算机上可以远程监控、配置任何一台PLC的程序或状态。并能够在投入较低硬件成本的基础上,实现良好的系统运行性能。这个方案充分发挥了CAN总线的通信特点:实时、可靠、高速、远距离、易维护等。
  
  使用RS232-CAN适配器后,通信距离扩大到5公里(9600bps时),组网的PLC可增至110台(实际上受PLC内部系统软件的限制,zui多只能支持32台PLC联网)。
  
  RS232-CAN适配器采用光电隔离,大大提高了系统的抗*力和安全性能。
  
  另外,使用RS232-CAN适配器,并不需改变PLC系统原有的PLC通讯协议和上位机监控软件,开发人员无须更改现在使用的串口通信程序,zui大限度的节省成本。
  
  4HOST-LINK通信协议
  
  采用RS232-CAN适配器,计算机与PLC的串口都被配置成CAN总线。通信方式与上位机监控软件的编程方式与串行通信*相同。通信协议一般采用OMRON公司的HOST-LINK通信协议。
  
  OMRON公司的HOST-LINK通信系统是由上位计算机(IBMPC或兼容机)通过安装在各台PLC上的HOST-LINK单元或串行通信接口连接多台PLC构成的网络。上位机对系统中的PLC进行集中管理与监控,通过与HOST-LINK单元的通信,可以编辑或修改各台PLC的程序,实时监控其运行过程,实现自动化系统的集散控制。对于小型PLC(如CPM2A),可以通过其RS232通信端口进行链接。
  
  系统使用HOST-LINK通信协议进行通信,上位机具有传送优先权,总是首先发出命令并启动通信,HOST-LINK单元收到命令交由PLC执行,然后将执行结果返回上位机,二者以通信帧为单位,轮流交换数据。
  
  通信时,一组传送的数据称为“块”,它是命令或响应的单位,从上位机发送到HOST-LINK单元的数据块称为命令块,反过来,从HOST-LINK单元发送到上位机的数据块称为响应块。多点通信时,可作为单帧发送的zui大数据块为131个字符,因此当一个数据块含有132个或更多字符时,要分成两帧或多帧发送。
  
  每个数据块都以设备号及标题开始,以校验码(FCS)及结束符结束。响应块中还包括反应执行结果的响应码。通信格式如图2所示。
  
  图2HOST-LINK通信帧格式
  
  5通信实现
  
  用户可以采用通用的组态软件(如组态王)实现计算机与PLC的通信,也可以编写计算机程序。
  
  要编写计算机通信程序,可以采用VB、VC等语言进行编程,编程可以有多种方式[4]。使用MSComm控件通过串行端口传送和接收数据,实现计算机与PLC之间的数据通信,编程较简单。
  
  MSComm控件提供了一种有效的处理串*互作用的方法:事件驱动法。该方法利用OnComm事件捕获并处理通信及其错误,当CommEvent属性发生变化时,就产生事件并等待相应处理。每个MSComm控件都有一个串口相对应。
  
  VisualBasic6.0(以下简称VB)是一种功能强大、简单易学的程序设计语言,利用ActiveX控件MSComm能十分方便地开发出使用计算机串口的计算机通信程序。本文在VB中使用MSComm控件实现上位机与PLC的串行通信。
  
  VB程序由串口初始化、数据发送、数据接收等几大部分组成。主要的程序段如下所示。
  
  Rem程序加载时进行串口初始化
  
  以上给出了计算机与PLC通信的主要程序段。需要注意的是,如果传送的数据大于132个字符,可以将数据分成起始帧、若干中间帧、结束帧进行传送。起始帧必须包含设备号,命令码等,否则通信的过程中将会有错误发生。上位机每发送完一帧时,在收到PLC返回的分界符(即“↙”)后再发送下一帧,只有当结束帧数据发送完毕时才返回响应代码。
  
  6结束语
  
  本文基于VB利用MSComm控件实现了上位机与欧姆龙PLC的串行通信,充分发挥了CAN总线实时、可靠、高速、远距离、易维护的特点。计算机能够深入地配合PLC厂商提供的各种软件,从而实现更多强大的功能,比如系统配置、人机界面、组态开发等。
  
  通常,计算机与PLC通过串口连接,实现各种通信功能。但串口的通信距离、节点数量都受到了串口本身的性能限制。比如,RS-232标准只可以实现1:1通信,RS-422/485标准能够实现32个节点以内的通信,通信距离、抗*力都比较弱,并不能够满足实际工业现场多台PLC联网应用的需求。即使借助RS232/RS485-CAN适配器也很难突破串行通信本身的功能限制[5]。
  
  针对这一情况,可以采用计算机内置PC-CAN接口卡,可以建立起1条或者多条CAN总线网络,并通过连接在CAN总线网络中的RS232/RS485-CAN适配器,借助于CAN总线网络配套的虚拟串口软件,建立多达2047个标准的串行通信端口,从而连接多达2047条串行网络[6]。也就是说,可以在同1条普通双绞线上连接多达2047台PLC设备,工控PC访问连接在这条CAN总线网络上的PLC设备,也与操作标准串口*一致。
  
  这种方式可以充分发挥工控PC的作用,通信效率比较高,应用灵活,是一般PLC网络建设的主流方向。
全年征稿/资讯合作 联系邮箱:1271141964@qq.com
  • 凡本网注明"来源:智能制造网"的所有作品,版权均属于智能制造网,转载请必须注明智能制造网,https://www.gkzhan.com。违反者本网将追究相关法律责任。
  • 企业发布的公司新闻、技术文章、资料下载等内容,如涉及侵权、违规遭投诉的,一律由发布企业自行承担责任,本网有权删除内容并追溯责任。
  • 本网转载并注明自其它来源的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品来源,并自负版权等法律责任。
  • 如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。


编辑精选

更多


宣传样本推荐图书

旗下子站

工控网机器人仪器仪表物联网3D打印工业软件金属加工机械包装机械印刷机械农业机械食品加工设备制药设备仓储物流环保设备造纸机械工程机械纺织机械化工设备电子加工设备水泥设备海洋水利装备矿冶设备新能源设备服装机械印染机械制鞋机械玻璃机械陶瓷设备橡塑设备船舶设备电子元器件电气设备



关于我们|本站服务|会员服务|企业建站|旗下网站|友情链接| 兴旺通| 产品分类浏览|产品sitemap

智能制造网 - 工业4.0时代智能制造领域“互联网+”服务平台

Copyright gkzhan.comAll Rights Reserved法律顾问:浙江天册律师事务所 贾熙明律师

客服热线:0571-87756395加盟热线:0571-87759904媒体合作:0571-89719789

客服部:编辑部:展会合作:市场部:

关闭