研选课堂
HOME
研选课堂
正文内容
bosch plc编程教程 CAN总线与计算机实现PLC通信的设计
发布时间 : 2024-10-10
作者 : 小编
访问数量 : 23
扫码分享至微信

CAN总线与计算机实现PLC通信的设计

在现代工业中,PLC 之间或PLC 与计算机之间的通信联网应用日益广泛。PLC 的联网功能越来越强。以欧姆龙CP1、CJ1 和CS1 系列PLC 为例,配合使用各种模块,可以支持工业以太网、Controller Link 等现场总线通信联网功能。但是,应用广泛的CPM1A、CPM2A等中小型PLC 的通信联网一般只能采用工业总线的物理层形式(如RS232 或RS485),通信的稳定性与抗干扰能力并不是很强。

本文选用欧姆龙的CPM2A 机型,配合使用RS232-CAN 适配器,实现了计算机与PLC 的通信联网,方法简单, 实用性强。

2 CAN总线简介

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内部系统软件的限制,最多只能支持32 台PLC 联网)。

RS232-CAN 适配器采用光电隔离,大大提高了系统的抗干扰能力和安全性能。另外,使用RS232-CAN 适配器,并不需改变PLC 系统原有的PLC 通讯协议和上位机监控软件,开发人员无须更改现在使用的串口通信程序,最大限度的节省成本。

4 HOST-LINK 通信协议

采用RS232-CAN 适配器,计算机与PLC 的串口都被配置成CAN 总线。通信方式与上位机监控软件的编程方式与串行通信完全相同。通信协议一般采用OMRON 公司的HOST-LINK 通信协议。

OMRON 公司的HOST-LINK 通信系统是由上位计算机( IBM PC 或兼容机) 通过安装在各台PLC 上的HOST-LINK 单元或串行通信接口连接多台PLC 构成的网络。上位机对系统中的PLC 进行集中管理与监控,通过与HOST-LINK 单元的通信,可以编辑或修改各台PLC 的程序,实时监控其运行过程,实现自动化系统的集散控制。对于小型PLC( 如CPM2A) , 可以通过其RS232 通信端口进行链接。

系统使用HOST-LINK 通信协议进行通信,上位机具有传送优先权, 总是首先发出命令并启动通信,HOST-LINK 单元收到命令交由PLC 执行,然后将执行结果返回上位机, 二者以通信帧为单位, 轮流交换数据。

通信时, 一组传送的数据称为“块”, 它是命令或响应的单位,从上位机发送到HOST-LINK 单元的数据块称为命令块,反过来, 从HOST-LINK 单元发送到上位机的数据块称为响应块。多点通信时,可作为单帧发送的最大数据块为131 个字符,因此当一个数据块含有132 个或更多字符时, 要分成两帧或多帧发送。

每个数据块都以设备号及标题开始,以校验码(FCS)及结束符结束。响应块中还包括反应执行结果的响应码。通信格式如图2 所示。

图2 HOST-LINK 通信帧格式

5 通信实现

用户可以采用通用的组态软件(如组态王)实现计算机与PLC 的通信,也可以编写计算机程序。

要编写计算机通信程序,可以采用VB、VC 等高级语言进行编程,编程可以有多种方式[4]。使用MSComm控件通过串行端口传送和接收数据,实现计算机与PLC之间的数据通信, 编程较简单。

MSComm 控件提供了一种有效的处理串*互作用的方法:事件驱动法。该方法利用OnComm 事件捕获并处理通信及其错误,当CommEvent 属性发生变化时,就产生事件并等待相应处理。每个MSComm 控件都有一个串口相对应。

Visual Basic 6.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 网络建设的主流方向。

CAN编程介绍

14.1 CAN介绍

14.1.1 CAN是什么?

CAN,全称为“Controller Area Network”,即控制器局域网,是国际上应用最广泛的现场总线之一。

最初,CAN被设计作为汽车环境中的微控制器通讯,在车载各电子控制装置 ECU 之间交换信息,形成汽车电子控制网络。比如:发动机管理系统、变速箱控制器、仪表装备、电子主干系统中,均嵌入CAN控制装置。

一个由 CAN 总线构成的单一网络中,理论上可以挂接无数个节点。实际应用中,节点数目受网络硬件 的电气特性所限制。例如,当使用 Philips P82C250 作为CAN收发器时,同一网络中允许挂接110个节点。

CAN可提供高达1Mbit/s的数据传输速率,这使实时控制变得非常容易。另外,硬件的错误检定特性也增强了CAN的抗电磁干扰能力。

14.1.2 CAN的起源

CAN最初出现在 80 年代末的汽车工业中,由德国 Bosch 公司最先提出。当时,由于消费者对于汽车功能的要求越来越多,而这些功能的实现大多是基于电子操作的,这就使得电子装置之间的通讯越来越复杂同时意味着需要更多的连接信号线。

提出 CAN 总线的最初动机就是为了解决现代汽车中庞大的电子控制装置之间的通讯,减少不断增加的信号线。于是,他们设计了一个单一的网络总线,所有的外围器件可以被挂接在该总线上。

1993 年,CAN已成为国际标准ISO11898(高速应用)和 ISO11519(低速应用)。 CAN 是一种多主方式的串行通讯总线,基本设计规范要求有高的位速率,高抗电磁干扰性,而且能够检测出产生的任何错误。

当信号传输距离达到 10Km 时,CAN 仍可提供高达 50Kbit/s 的数据传输速率。由于 CAN 总线具有很高的实时性能,因此,CAN 已经在汽车工业、航空工业、工业控制、安全防护等领 域中得到了广泛应用。

14.1.3 CAN传输模型

CAN 通讯协议主要描述设备之间的信息传递方式。CAN 层的定义与开放系统互连模型(OSI)一致。每 一层与另一设备上相同的那一层通讯。实际的通讯发生在每一设备上相邻的两层,而设备只通过模型物理层的物理介质互连。

CAN 的规范定义了模型的最下面两层:数据链路层和物理层。下表中展示了 OSI 开放 式互连模型的各层。应用层协议可以由 CAN 用户定义成适合特别工业领域的任何方案。已在工业控制和制造业领域得到广泛应用的标准是 DeviceNet,这是为 PLC 和智能传感器设计的。在汽车工业,许多制造商都应用他们自己的标准。

OSI开发系统互联模型

虽然CAN传输协议参考了OSI 七层模型,但是实际上CAN协议只定义了两层“物理层”和“数据链路层”,因此出现了各种不同的“应用层”协议,比如用在自动化技术的现场总线标准DeviceNet,用于工业控制的CanOpen,用于乘用车的诊断协议OBD、UDS(统一诊断服务,ISO14229),用于商用车的CAN总线协议SAEJ1939。

CAN传输协议

14.1.4 CAN网络拓扑

CAN总线是一种分布式的控制总线。CAN总线作为一种控制器局域网,和普通以太网一样,它的网络很多CAN节点构成。其网络拓扑结构如下图所示:

CAN网络的每个节点非常简单,均由一个MCU(微控制器)、一个CAN控制器和一个CAN收发器构成,然后使用双绞线连接到CAN网络中。

14.1.5 CAN物理特性

CAN总线遵循国际标准ISO11898,如ISO11898-1,ISO11898-2,ISO11898-3,ISO11898-4标准。

CAN总线

CAN 能够使用多种物理介质,例如双绞线、光纤等。最常用的就是双绞线。信号使用差分电压传送,两条信号线被称为“CAN_H”和“CAN_L”。静态时CAN_H和CAN_L均是 2.5V 左右,此时状态表示为逻辑“1”,也可以叫做 “隐性”。用 CAN_H 比 CAN_L 高表示逻辑“0”,称为“显形”,此时,通常电压值为:CAN_H = 3.5V 和 CAN_L = 1.5V 。

目前实际常用的CAN收发器有如下几种型号

目前实际常用的CAN控制器有如下几种型号

14.1.6 CAN报文帧

14.1.6.1 CAN报文格式

标准 CAN 的标志符长度是 11 位,而扩展格式 CAN 的标志符长度可达 29 位。CAN 协议的 2.0A 版本 规定 CAN 控制器必须有一个 11 位的标志符。同时,在 2.0B 版本中规定,CAN 控制器的标志符长度可以是 11 位或 29 位。遵循 CAN2.0B 协议的 CAN 控制器可以发送和接收 11 位标识符的标准格式报文或 29 位标识符的扩展格式报文。

标准帧&扩展帧对比

14.1.6.2 CAN报文帧类型

CAN报文类型又分为5种帧类型:数据帧:主要用于发送方向接收方传输数据的帧;遥控帧:主要用于接收方向具有相同ID的发送方请求数据的帧;错误帧:主要用于当检测出错误时向其他节点通知错误的帧。过载帧:主要用于接收方通知其他尚未做好接收准备的帧。间隔帧:主要用于将数据帧及遥控帧与前一帧分隔开来的帧。

其中数据帧是使用最多的帧类型,这里重点介绍一下数据帧。数据帧如下图所示:

数据帧

由上图所示,数据帧包括:

帧起始。表示数据帧开始的段。仲裁段。表示该帧优先级的段。控制段。表示数据的字节数及保留位的段。数据段。数据的内容,一帧可发送0~8个字节的数据。CRC段。检查帧的传输错误的段。ACK段。表示确认正常接收的段。帧结束。表示数据帧结束的段。具体介绍可以查看”CAN2.0A”、”CAN2.0B”详细介绍。

我们主要关注我们编程所需要关注的几个段:ID: CAN报文ID;IDE: 为0是标准帧,为1是扩展帧;RTR: 为0是数据帧,为1是远程帧;DLC: CAN报文数据长度,范围0~8字节;Data:数据,0~8个字节;

未完待续…关于CAN,还有很多内容(70多页),剩下内容:

加微信13923404017,免费获取完整版

相关问答

on档继电器是什么?

on:表示继电器延时工作状态指示灯,灯亮则正在延时计时过程中。继电器触点的工作状态取决于继电器是通电延时还是断电延时。继电器(英文名称:relay)是一种电...

倒车雷达什么牌子比较好?

倒车雷达铁将军这个牌子比较好。江骏汽车电子有限公司位于广东省中山市,主要从事汽车摩托车防盗报警器、汽车倒车雷达、车载GPS导航、汽车音响等电子产品的研...

 黄兆景  三联商社股份有限公司 
王经理: 180-0000-0000(微信同号)
10086@qq.com
北京海淀区西三旗街道国际大厦08A座
©2024  上海羊羽卓进出口贸易有限公司  版权所有.All Rights Reserved.  |  程序由Z-BlogPHP强力驱动
网站首页
电话咨询
微信号

QQ

在线咨询真诚为您提供专业解答服务

热线

188-0000-0000
专属服务热线

微信

二维码扫一扫微信交流
顶部