基于Labview的CAN总线通信仿真

基于Labview的CAN总线通信仿真
基于Labview的CAN总线通信仿真

基于虚拟仪器的CAN总线通信仿真

控制器局部网(CAN —CONTROLLERAREANETWORK )是BOSCH公司为现代汽车监测和控制领先推出的一种多主机局部网,由于其卓越性能现已广泛应用于工业自动化、多种控制设备、交通工具、医疗仪器以及建筑、环境控制等众多部门。CAN 是一种多主方式的串行通讯总线。一个由CAN 总线构成的单一网络中.理论上可以挂接无数个节点。实际应用中,节点数目受网络硬件的电气特性所限制。CAN 可提供高达1Mbit/s 的数据传输速率.这使实时控制变得非常容易。另外。硬件的错误检定特性也增强了CAN 的抗电磁干扰能力。

CAN 总线有以下特点:

1) CAN 可以是对等结构,即多主机工作方式,网络上任意一个节点可以在任意时刻主

动地向网络上其它节点发送信息,不分主从,通讯方式灵活。

2) CAN 网络上的节点可以分为不同的优先级,满足不同的实时需要。

3) CAN 采用非破坏性仲裁技术,当两个节点同时向网络上传送信息时,优先级低的节

点自动停止发送,在网络负载很重的情况下不会出现网络瘫痪。

4) CAN 可以点对点、点对多点、点对网络的方式发送和接收数据,通讯距离最远

10km(5kb/s),节点数目可达110个。

5) CAN采用的是短帧结构,每一帧的有效字节数为8个,具有CR(校验和其它检测措

施,数据出错几率极小。CAN 节点在错误严重的情况下,具有自动关闭功能,不会影

响总线上其它节点操作。

6) 通讯介质采用廉价的双绞线,无特殊要求,用户接口简单,容易构成用户系统。

1 CAN总线工作机理

1.1 位仲裁要对数据进行实时处理。就必须将数据快速传送,这就要求数据的物理传输通路有较高的速度。在几个站同时需要发送数据时.要求快速地进行总线分配。实时处理通过网络交换的紧急数据有较大的不同。一个快速变化的物理量。如汽车引擎负载,将比类似汽车引擎温度这样相对变化较慢的物理量更频繁地传送数据并要求更短的延时。

CAN 总线以报文为单位进行数据传送.报文的优先级结合在11 位标识符中.具有最低二进制数的标识符有最高的优先级。这种优先级一旦在系统设计时被确立后就不能再被更改。总线读取中的冲突可通过位仲裁解决。

1.2 报文格式

如图所示,在总线中传送的报文,每帧由7 部分组成。CAN 协议支持两种报文格式,其唯一的不同是标识符(ID)长度不同,标准格式为11位.扩展格式为29位。在标准格式中,报文的起始位称为帧起始(SOF).然后是由11位标识符和远程发送请求位(RTR)组成的仲裁场。RTR位标明是数据帧还是请求帧,在请求帧中没有数据字节。

控制场包括标识符扩展位(IDE),指出是标准格式还是扩展格式。它还包括一个保留位(ro),为将来扩展使用。它的最后四个字节用来指明数据场中数据的长度(DLC)。数据

场范围为0?8个字节.其后有一个检测数据错误的循环冗余检查(CRC))应答场(ACK)包括应答位和应答分隔符发送站发送的这两位均为隐性电平(逻辑I )?这时正确接收报文的接收站发送主控电平(逻辑0)覆盖它。用这种方法,发送站可以保证网络中至少有一个站能正确接收到报文报文的尾部由帧结束标出。在相邻的两条报文问有一很短的问隔位?如果这时没有站进行总线存取,总线将处于空闲状态。

1.3数据错误检测

不同于其它总线,CAN协议不能使用应答信息。事实上,它可以将发生的任何错误用信号发出。CAN协议可使用五种检查错误的方法,其中前三种为基于报文内容检查。

1.3.1循环冗余检查(CRC)

在一帧报文中加入冗余检查位可保证报文正确。接收站通过CRC可判断报文是否

有错。

1.3.2 帧检查

这种方法通过位场检查帧的格式和大小来确定报文的正确性,用于检查格式上的错误。

1.3.3应答错误

如前所述,被接收到的帧由接收站通过明确的应答来确认。如果发送站未收到应答,那么表明接收站发现帧中有错误,也就是说,ACK场已损坏或网络中的报文无站接收。CAN协议也可通过位检查的方法探测错误。

1.3.4总线检测

有时,CAN中的一个节点可监测自己发出的信号。因此,发送报文的站可以观测总线电平并探测发送位和接收位的差异。

1.3.5位填充

一帧报文中的每一位都由不归零码表示?可保证位编码的最大效率。然而,如果在一帧报文中有太多相同电平的位?就有可能失去同步。为保证同步?同步沿用位填充产生。在j个生。在五个连续相等位后.发送站自动插人一个与之互补的补码位接收时. 这

个填充位被自动丢掉例如,五个连续的低电平位后,CAN 自动插人一个高电平位CAN 通过这种编码规则检查错误,如果在一帧报文中有6 个相同位,CAN 就知道发生了错误。

2 虚拟仪器技术

2.1 虚拟仪器简介虚拟仪器技术目前已成为测试领域的主流技术,一个虚拟仪器系统主要由仪器硬件、计算机硬件和应用软件组成,应用软件又包括开发环境、应用程序和仪器驱动程序三部分。Labview (LaboratoryVirtualinstrumentEngineering)是Nl 公司推出的虚拟仪器开发平台,采用图形化的编程语言,具有强大的人机界面设计和数据分析处理功能,提供了丰富的仪器驱动程序,便于快速创建灵活可靠的应用系统,主要用于仪器控制、数据采集、数据分析、数据显示等领域。

虚拟仪器的硬件基础为个人计算机,它采用虚拟仪器技术来开发。虚拟仪器充分利用了PC 机的资源(处理器、存储器、显示器等)及插件卡功能(定时器A/D、D/A变换器、高速缓存、数字I/0电路等),通过支持软件来完成数据采集、过程通讯、数据分析处理及仪器界面设计等功能。由于虚拟仪器建立在PC机的基础上,所以它可方便

地通过总线来挂接各类插件卡,从而实现了多种仪器功能的集成化。软件是虚拟仪器的关键,软件设计主要包括仪器面板软件设计和仪器功能软件设计。虚拟仪器的面板软件是利用计算机强大的图形处理能力,在屏幕上建立图形逼真、主体感强的仪器面板来替代传统硬件化仪器面板。虚拟仪器面板上具有与实际仪器面板上相似的旋钮、开关、指示灯及其它控制部件,用户通过鼠标或键盘操作虚拟仪器。与传统的编程语言比较,Labview图形编程方式能够节省85%以上的程序开发时间,其运行速度却几乎不受影响,体现出了极高的效率。

2.2 Labview 应用于仿真

Labview是一种基于图形编程语言的开发环境G语言。使用这种语言编程时,

基本上不写程序代码,取而代之的是流程图或流程图。它尽可能利用了技术人员、科学家、工程师所熟悉的术语、图标和概念,因此,Labview是一个面向最终用户的工具。

它可以增强你构建自己的科学和工程系统的能力,提供了实现仪器编程和数据采集系统的便捷途径。简言之,Labview 功能强大、灵活方便。它与传统编程语言有着诸多相似之处,如相似的数据类型、数据流控制结构、程序调试工具等,但二者最大的区别在于:传统编程语言是用文本语言编程,而Labview 用图形语言(即各种图标、图形符号、连线等)编程。用Labview 编程无需太多编程经验,界面非常直观形象,都是工程师们熟悉的旋钮、开关、图形等,因此LabVlEW 对于没有丰富编程经验的工程师们来说无疑是个极好的选择。再者,Labview也提供传统程序语言(如C语言)的接口,对于其自身不易或不擅长完成的任务(如数据处理)可通过利用其它编程语言来实现,从而最终增强了Labview的整体功能。一个Labview程序分为三部分:前面板、框图程序、图标/接线端口。前面板是用于模拟真实仪器的前面板;框图程序则是利用图形语言对前面板上的控件对象(分为控制量和指示量两种)进行控制;图标/接线端口用于把Labview程序定义成一个子程序,从而实现模块化编程。

与传统的编程语言比较,LabVIEW图形编程方式及其集成的丰富的函数模块使其在将仿真程序化时效率非常高,可以用它进行仿真、实时控制或者同时执行这两种工作。LabVlEW具有:(1)可以方便地将仿真任务译为程序语言;(2)出色的数据可视化能力;(3)有适合仿真计算的数据结构范围;(4)通过简单的操作即可变量计算和参数设定;(5)精心构建于数学、信号理论上;(6)与现实世界有良好的互联性。

3 Labview 仿真CAN!信

用Labview模拟CAN通讯,主要是对CAN总线的数据链路层的数据传输进行仿真,CAN 总线的标准为CAN2.0A/B,数据格式为标准数据帧或扩展数据帧。

3.1仿真内容

一个典型的CAN结构可以用下图表示。

由于时间有限,因此本人选择了用Labview实现CAN总线通信的基本的收发功能。具体的就是下面两个模块,数据发送模块和数据接收模块,发送模块包括了数据生成模块,CAN节点地址定义模块,数据分割模块和转化帧模块。本人对仿真信号通信格式做了简化,对帧传输格式重新进行了定义,用Labview中的数组元素表示帧传输过程中的位,首位是帧开始位,1为开始,用一个数组元素表示,接着是RTR位,这代表了帧的类型,0表示是数据帧(远程帧),接着是地址位,实际上地址位和数据为并不止一位,但是为了简化起见,均将其作为一个元素处理,然后是数据,每帧的数据量最大是8个字节,用最多8个元素来表示,这8个元素每个为一个字节,最后还省略了数据校验部分,直接用了一个结束符元素来结束帧。

3.2程序结构

使用Labview仿真CAN通信主要两大部分:接收数据模块和发送数据模块。数据生成模块仿真数据采集卡采集到后的数据,在本次仿真中,需发送的数据可以做一个数据发生器来模拟经

采集到的的数据进行通信;CAN节点地址定义模块主要是为了定义

CAN节点的位置,处理后的数据能够识别CAN节点控制器的位置,这样才能在控制系统中进行控制;数据分割模块是为了将数据发生器中的数据进行分割成不超过8字节的

单帧数据;转化帧模块主要功能是转载控制码和地址码在帧数据两端,在数据传输过程中,接收模块才能识别发送的数据并进行重组解码;地址识别模块是根据帧判断地址优先级来决定如何接收数据,接收的数据再经过帧转化模块转化成原来的数据格式。一般地,还应包括数据存储模块,数据存储完成数据的记录,以便在需要进行数据回放以进一步分析时,可以将程序保存的数据记录文件读出。

在一个CAN工作周期,其工作流程图如图1所示。

3.3程序及面板

3.3.1数据发生模块

数据发生器是一个可以根据具体要求任意更改随机输入的程序,在本次仿真中,用了随机数发生器随机产生字符串作为输入数据处理后发送。

图4数据发生器

3.3.2数据发送模块

数据发送模块如图3.2所示。当CAN工作的时候,将输入字符串数据处理为数组再进行数组分割加载控制码和地址码,分割循环次数及加载控制码、地址码位置与数据长度有关。

图5数据发送模块

3.3.3接收模块

接收模块前端为地址识别程序,当寄存器存在数据时,地址识别模块不断重复判断每帧数据的地址码,并判断优先级,将优先级最高的数据转入帧转化程序模块,帧转化模块将帧数据提取出来并判断数据时候完整,若不完整将已提取的数据存入发送寄存器并继续转化接收寄存器中的数据。

i 、

3.3.4

前面板 前面板分为三个部分,每部分的空间完全相同,不过其后台程序略有不同,这是因 为CAN1作为主控制模块不但可以接收 CAN2发送过来的数据,也可以接收 CAN3发 送的数据。

nOMIQt MU. 3

图7程序前面板

图6数据接收模块

ip ■ 11 V

3

| MQB9 191

* — -J

CAN总线通信接口及程序设计毕业设计

机电工程学院 毕业设计说明书设计题目: CAN总线通信接口及程序设计 2012 年 5 月21 日

目次

1 CAN总线介绍 1.1 CAN总线的发展背景 随着汽车产业的发展,需要一种更利于信息数据传输交换的通信协议。汽车中的各种电子控制系统需要较高的技术支持,而随着汽车的发展,汽车是否安全、是否便利、成本是否低、是否舒适都已成为人们首要考虑的事情。但是传统的汽车控制技术已不足以满足人们越来越高的要求,也已不适以汽车的发展方向。20世纪80年代,德国Bosch公司着手研究用于汽车产业的新的通信协议及控制方法,并首先提出了CAN总线控制系统。这一崭新的网络协议使得汽车产业得到了飞速的发展。 CAN总线最明显的特点是最大程度地减少了汽车控制系统中的线束的数量及长度,另外还大大提高了系统控制的可靠性和稳定性。在没有CAN总线协议之前,一辆汽车中用于各种控制通信的线束的总长度达3公里之长,严重影响了汽车的通信速度和通信精度。并且还使汽车的整体结构繁冗复杂,可靠性低,成本高,难以维护。因此CAN总线的出现无疑具有重大的意义和作用。作为一种新的网络通信协议,CAN总线不仅减少了汽车中线束的长度,还提高了汽车的整体性能,极大的促进了汽车产业的发展。 CAN总线刚被提出的时候,仅仅应用于汽车产业上,但CAN总线通信协议的性能和可靠性经过多年的检验,已被应用于越来越多的产业,比如航空、船舶、机床等产业设备方面。仅仅二十多年的发展,CAN总线便已成为自动化领域技术的潮流。 CAN总线是串行通信网络。传统运用的是基于R线构建分布式控制系统,这种传统的控制系统是基于通信节点的地址编码的,因此其结构复杂,直接导致系统的通信效率不高,并且控制的可靠性能低。CAN总线通过每个网络节点进行数据通信,每个节点可以互相收发数据,CAN总线协议对通信数据编码,不对节点地址编码,使各个节点可以同时接收到相同的数据,大大增强了数据通信的实时控制及传输性能。另一方面CAN总线使用起来非常方便。CAN总线的结构十分简单,仅有2根线(CANH和CANL)和外部设备相连,但CAN总线的内部却有非常复杂和智能的通信模块,可以方便快捷准确无误的进行数据

一文看懂汽车CAN总线技术原理

一文看懂汽车CAN总线技术原理 随着现代汽车技术的不断发展,CAN总线逐渐成为现代汽车上不可缺少的技术,并大大推动了汽车技术的高速发展。本文将对汽车CAN 总线技术的工作原理、特点及优点,CAN总线在汽车制造中的应用及发展趋势做了简单介绍,具体的跟随小编一起来了解一下。 CAN总线的由来由于现代汽车的技术水平大幅提高,要求能对更多的汽车运行参数进行控制,因而汽车控制器的数量在不断的上升,从开始的几个发展到几十个以至于上百个控制单元。控制单元数量的增加,使得它们互相之间的信息交换也越来越密集。为此德国BOSCH 公司(和inter 公司共同)开发了一种设计先进的解决方案-CAN 数据总线,提供一种特殊的局域网来为汽车的控制器之间进行数据交换。 CAN 是ControllerAreaNetwork 的缩写,称为控制单元的局域网,它是车用控制单元传输信息的一种传送形式。 CAN总线技术简介CAN总线又称作汽车总线,全称为“控制器局域网(Controller Area Network)”,意思是区域网络控制器,它将各个单一的控制单元以某种形式(多为星形)连接起来,形成一个完整的系统。在该系统中,各控制单元都以相同的规则进行数据传输交换和共享,称为数据传输协议。CAN总线最早是德国Bosch公司为解决现代汽车中众多的电控模块(ECU)之间的数据交换而开发的一种串行通讯协议。 在工程实际中CAN总线是对汽车中标准的串行数据传输系统的习惯叫法。随着车用电气设备越来越多,从发动机控制到传动系统控制,从行驶、制动、转向系统控制到安全保证系统及仪表报警系统,使汽车电子系统形成一个复杂的大系统,并且都集中在驾驶室控制。另外,随着近年来智能运输系统(ITS)的发展,以3G(GPS、GIS和GSM)为代表的新型电子通讯产品的出现,它对汽车的综合布线和信息的共享交互提出了更高的要求。CAN 总线正是为满足这些要求而设计的。 CAN总线主要有四部分组成:导线、控制器、收发器和终端电阻。其中导线为由两根普通铜导线绞在一起的双绞线。控制器的作用是对收到和发送的信号进行翻译。收发器负责

CAN总线在多机通信中的应用

CAN总线在多机通信中的应用 随着微处理器的发展,利用微处理器对工业生产过程进行控制已成为趋势。在工业控制过程中,由于大量数据信息的共享和传输,传统的串行通信模式已不能满足要求。在工业控制领域中,需要一种抗干扰性强、可靠性高、传输速度快和传输距离长的总线结构。CAN总线技术不仅满足上述要求,而且还能实现多点间的信息传递。本文使用PCI9810-cAN适配卡上的CAN总线组成局域网络,实现多微处理器间的信息传递和PC机对多处理器的检控、通信。 1 CAN总线简介 CAN(Controller Area Networks)总线,最早是由德国Bosch公司开发用于局域网控制的总线技术。CAN总线采用传统的双线串行通信方式,具有诊断能力,抗电磁干扰,其最陕传输速率可达1 Mb·s-1,最长通信距离可达10 km(此时的传输速率大约为40 kb·s-1)。在CAN总线组成的局域网络中,通信节点之间不采用主从方式,而是具有总线访问优先权,通信方式灵活,可实现点对点,一点对多点及广播方式传输数据。 2 系统通信模块的硬件设计 CAN总线是由PCI9810-CAN适配卡提供,本文主要完成通信节点的设计。通信节点不仅可以和PC机进行信息交换,还可独立与其他各节点通信。微处理器在需要和主机或其它节点通信时,其通过P0口向SJA1000T的寄存器发送信息,再由PCA82C250把信息传递到CAN总线上。主机和其他通信节点判断接收报文的标识符,将对接收到的信息作相应的处理,从而实现通信功能,。 在设计过程中,为了满足多微处理器间通信的实时性和可靠性要求,结合CAN控制器的特点,对图1作简单介绍: (1)收发器PCA82C250的引脚8(Rs)有3种工作方式:高速,斜率控制和待机。斜率控制方式具有抗射频干扰的功能,所以采用47 kΩ的电阻连接引脚8,实现斜率控制方式。 (2)图1中应为两个高速光电耦合隔离器件6N137,由于6N137输出引脚的驱动能力不够,需要连接一个约390 Ω的上拉电阻,以增加输出引脚的驱动能力。两个光电耦合隔离器件6N137的电源信号采用5 V的DC-DC隔离模块WRA0505P,以增强系统的抗干扰能力。 (3)收发器PCA82C250的CANH和CANL引脚各自由通过一个5 Ω的电阻与CAN总线相连,电阻起到一定的限流作用,保护PCA82C250免受CAN总线上的过流冲击。 (4)收发器PCA82C250的CANH和CANL引脚与电源地之间分别反接一个保护二极管和30 pF的电容,可以起到CAN总线的过压保护作用和过流冲击。 (5)CAN控制器SJA1000T输入方式有2种:Intel输入方式和Motorola输入方式。在此采用Intel输入方式,所以SJA1000T的MODE引脚接高电平。 (6)设计仅用到TX0和RX0引脚,根据SJA1000T 通信协议所要求的输入/输出逻辑电平关系,SJA1000T的TX1脚悬空,RX1引脚的电位必须维持在0.5 Vcc以上,所以在TX1引脚接上约6.8 kΩ和3.6 kΩ分压电阻。 (7)微处理器C51的引脚P2.7接CAN控制器SJA1000T的片选信号/CS,可知CAN控制器SJA1000T 的寄存器首地址为8000H。处理器C41和CAN控制器SJA1000T共用12 MHz的晶振,以提高通信速率。通过上述分析,设计的电路原理图,。 3 系统通信模块的软件设计通信模块的软件由3部分组成:初始化程序,发送程序和接受程序。仅这3部分程序,就能完成通信节点间信息的传递。要将CAN总线应用于更复杂的通信系统中,还要考虑CAN总线的错误处理,超载处理等功能和节点间的计算方法。由于每个通信节点都有自己的MCU,所以它们之间可以自由通信。通过CAN收发器PCA82C250的引脚CANH和CANL对总线输出,使总线表现“显性”,这时可发送信息。判断总线表现为“显性”时,就要为接受信息做好准备。3.1 CAN控制器SJA1000T初始化程序该程序首先进入复位状态,设置SJAl000T的模式寄存器MR为Basic CAN模式,验收码寄存器ACR和屏蔽码寄存器AMR,再设置定时器0和定时器1,输出控制寄存器OCR,

汽车CAN总线基本原理及应用

汽车CAN总线基本原理

1、CAN总线简介 2、CAN总线通信模式 3、CAN总线的性能特点 4、CAN总线应用实例

1、CAN总线简介 控制器局域网络(Controller Area Network简称CAN)主要用于各种过程(设备)监测及控制。CAN最初是由德国的Bosch公司为汽车的监测与控制设计的,但由于CAN总线本身的突出特点,其应用领域目前已不再局限于汽车行业,而向过程工业、机械工业、机器人、数控机床、医疗器械及传感器等领域发展。由于其高性能、高可靠性及独特的设计,CAN 总线越来越受到人们的重视,国际上已经有很多大公司的产品采用了这一技术。CAN已经形成国际标准(ISO11898),并已成为工业数据通信的主流技术之一。

第一,“载波监测,多主掌控/冲突避免 这就允许在总线上的任一设备有同等的机会取得总线的控制权来向外发送信息。如果在同一时刻有两个以上的设备欲发送信息,就会发生数据冲突,CAN总线能够实时地检测这些冲突情况并作出相应的仲裁而不会破坏待传之信息; 第二,信息报文在传送时不是基于目的站点地址; 这就允许不同的信息以“广播”的形式发送到所有节点并且可在不改变信息格式的前提下对报文进行不同配置; 第三,CAN总线是一种高速的,具备复杂的错误检测和恢复能力的高可靠性强有力的网络。

一、CSMA/CD—载波监测,多主掌控/冲突避免 “载波监测”的意思是指在总线上的每个节点在发送信息报文前都必须监测到总线上有一段时间的空闲状态。 “多主掌控”的意思是一旦此一空闲状态被监测到,那么每个节点都有均等的机会来发送报文。 “冲突避免”是指在两上节点同时发送信息时,节点本身首先会检测到出现冲突,然后采取相应的措施来解决这一冲突情况。此时优先级高的报文先发送,低优先级的报文发送会暂停。在CAN总线协议中是通过一种非破坏性的仲裁方式来实现冲突检测。这也就意味着当总线出现发送冲突时,通过仲裁后原发送信息不会受到任何影响。所有的仲裁判别都不会破坏优先级高的报文信息内容,也不会对其发送产生任何的时延。

CAN总线的编码方式

对CAN总线的常见编码格式解析 我们在进行CAN总线的通讯设计过程中,对于通讯矩阵的建立,我们常常会选择一种编码方式,最常见的编码格式是Intel格式和Motorola格式。但是往往人们都是以一种习惯去选择,究竟两种格式具体的区别在哪里呢?我们需要明白两种格式对信号是如何排布的,又是按照什么顺序进行正确解析的。本篇文章就是作者根据在整理通讯矩阵和dbc文件中遇到的一些问题,提出的自己的一些体会和见解,希望大家通过此篇文章对两种格式有更加深刻的理解。 我们在设计初期,都会首先选择一种编码格式,这种选择大多都是根据设计者自己的习惯,具体Intel格式和Motorola格式哪个更有优势的问题,在这里没有区别。但是就使用者而言,需要对接收到数据帧进行正确的解析,否则就无法得到想要的信号。下面我们就来说一下两种格式的区别。 首先我们需要明确一点,无论是Intel格式还是Motorola格式,在每个字节中,数据传输顺序都是从高位(msb)传向低位(lsb)。如下图所示。 byte x bit(8*x+7) bit(8*x) msb lsb 注:x=0,1,2,3 (7) 图1 一般主机厂设计人员在设计初期都会定义好字节的发送顺序,定义Byte0为LSB,Byte7为MSB。第一种情况:先发送Byte0,然后Byte1到Byte7;第二种情况:先发送Byte7,然后Byte6到Byte0。根据我了解到的大部分主机厂都会采取第一种发送方法,很少会采取后者。我们在用CANoe中的CANdb++编辑数据库时,肯定会用到如下图所示的编辑界面。

图2 结合工作中的出现的问题,有的网络设计者会在排布信号的时候出现误区。上图中用的是比较常规的排布方式,即位在字节中的索引是从右至左,还有一种是颠倒过来的,即从左至右。如下图所示。 图3 我们现在以第一种矩阵模式进行说明。在这种情况下,如果主机厂在初期定义先发送LSB,再发送的MSB的形式,那么数据信号可以按照从上到下,从左到右的顺序发送,非常方便,接收器解析起来也比较容易。如果主机厂定义先发送MSB再发送LSB的形式,那样数据传输比较复杂,所以一般都不建议用这种方案。至于设计者常出现的错误我们在下文中会重点说明,下面我们先了解一下Intel 格式和Motorola格式在CANdb++中的区别。

基于STC89C51的CAN总线点对点通信模块设计

基于STC89C51的CAN总线点对点通信模块设计 [导读]随着人们对总线对总线各方面要求的不断提高,总线上的系统数量越来越多,继而出现电路的复杂性提高、可靠性下降、成本增加等问题。为解决上述问题,文中阐述了基于SJAl000的CAN总线通信模块的实现方法,该方法以PCA82C250作为通信模块的总线收发器,以SITA-l000作为网络控制器。并以STCSTC89C5l单片机来完成基于STC89C5l的CAN通信硬件设计。文章还就平台的初始化、模块的发送和接收进行了设计和分析。通过测试分析证明,该系统可以达到CAN的通信要求,整个系统具有较高的实用性。 0 引言 现场总线是应用在生产最底层的一种总线型拓扑网络,是可用做现场控制系统直接与所有受控设备节点串行相连的通信网络。在工业自动化方面,其控制的现场范围可以从一台家电设备到一个车间、一个工厂。一般情况下,受控设备和网络所处的环境可能很特殊,对信号的干扰往往也是多方面的。但要求控制则必须实时性很强,这就决定了现场总线有别于一般的网络特点。此外,由于现场总线的设备通常是标准化和功能模块化,因而还具有设计简单、易于重构等特点。 1 CAN总线概述 CAN (Controller Area Network)即控制器局域网络,最初是由德国Bosch公司为汽车检测和控制系统而设计的。与一般的通信总线相比,CAN总线的数据通信具有突出的可靠性、实时性和灵活性。其良好的性能及独特的设计,使CAN总线越来越受到人们的重视。由于CAN总线本身的特点,其应用范围目前已不再局限于汽车行业,而向自动控制、航空航天、航海、过程工业、机械工业、纺织机械、农用机械、机器人、数控机床、医疗器械及传感器等领域发展。目前,CAN已经形成国际标准,并已被公认为几种最有前途的现场总线之一。它的直线通信距离最大可以达到l Mbps/30m.其它的节点数目取决于总线驱动电路,目前可以达到110个。 2 CAN系统硬件设计 图1所示是基于CAN2.0B协议的CAN系统硬件框图,该系统包括电源模块、MCU部分、CAN控制器、光电耦合器、CAN收发器和RS232接口。硬件系统MCU采用STC89C5l,CAN控制器采用SJAl000,CAN收发器采用PCA82C250,光耦隔离采用6N137。

汽车CAN总线系统简介论文

论文 汽车CAN总线系统简介

摘要 CAN(Controller Area Network)即控制器局域网,是德国Bosch公司20世纪80年代最初动机是为了解决现代汽车中庞大的电子控制装置之间的通讯,减少不断增加的信号线而应用开发的一种通信协议。因其良好的性能价格比和可靠性,如今已得到广泛应用。传输速率为83.3~500kbit/s。 LIN总线:是车内最新且运用最广泛的低成本串行通讯系统。开发这种是为了产生一种开放的标准“低成本”CAN,用在CAN难于实现或使用成本过高的位置。使用LIN后,无需增加CAN的带宽和灵活性,即可实现与智能传感器和执行器之间的通信。通信协议和数据格式均基于单主/多从概念。LIN总线在物理上基于单线制12V总线。通过LIN启动的典型部件包括车门模块(电动车窗、车门锁、后视镜调节),滑动天窗,转向盘上的控制按钮(收音机、电话……),座椅控制器,风挡玻璃雨刮器,照明,雨水/光线传感器,起动机,发电机等等。LIN 总线是一条双向单线接口,最大传输速率为20kbit/s。 与一般的通信总线相比,CAN总线的数据通信具有突出的可靠性、实时性和灵活性,它在汽车领域上的应用最为广泛,世界上一些著名的汽车制造厂商都采用了CAN总线来实现汽车内部控制系统与各检测和执行机构间的数据通信。

绪论 我在汽车销售服务有限公司进行售后维修实习。在来这九个多月的时间里,首先我对汽车4S店的零部件供给、售后服务流程有了相关了解,其次学会了维修设备:举升机、轮胎动平衡机、部分专用工具等的使用,还有掌握了对检测仪器:DAS电脑检测仪、电池测试仪、万用表等的一般使用,以及对车间信息系统软件能熟练运用。 实习期间我主要从事汽车保养工作。汽车保养是很重要的,买的一辆新车,首先要懂得如何保养。汽车保养需求做的几项任务:干净汽车表面,检查门窗玻璃、刮水器、室内镜、后视镜、门锁与升降器手摇柄能否完全有效。检查散热器的水量、曲轴箱内的机油量、油箱内的燃油储量、蓄电池内的电解液液面高度能否符合请求。检查喇叭、灯光能否完全、有效,安装能否结实。检查转向机构各连接部位能否松旷,安装能否结实。检查轮胎气压能否充足,并肃清胎间及胎纹间杂物。检查转向盘的游动间隙能否符合标准;轮毂轴承、转向节主销能否松动。 汽车保养除了换机油外,还要用电脑检测仪检查车各个电控部件能否正常。检查发动机机油液位,发动机冷冻液液位,助力转向油液位,刹车油油位和轮胎气压。谈到轮胎气压,很多车主看到车轮很扁,以为气压不足,而给汽车车胎打气,直至不扁。实际上这是错的。太高的轮胎气压,造成轮胎过早磨损,在高速公路行驶时,简单发作爆胎,非常风险。轮胎气压太低也不好,最好按各车的标准,可查随车手册或油箱盖上的说明标签。

基于labview的TCP网络通讯实现

基于labview的TCP网络通讯实现 (唐山首信自动化信息技术有限公司京唐运行事业部,唐山063000) 摘要:TCP/IP协议是Internet最基本的协议,它由低层的IP协议和TCP协议组成。通过TCP/IP可实 现单个网络内部或互相连通的网络间的通信。各个网络在地理距离上可以相距遥远。TCP/IP将数据在网 络间或因特网上的计算机间传递。多数计算机普遍具有TCP/IP,因而信息能在各种系统上传输。LabVIEW 中,可以采用TCP/IP节点来实现局域网通讯。本文利用NI LabView平台上结合TCP/IP协议进行数据 传输的工作方法,并给出对数据传送与监控的仿真实例。 关键词:labview;tcp;虚拟仪器; TCP network communication based network communication labview (Jingtang Maintenance Department, Tangshan ShouGang Automation & Information Technology Co.,Ltd.,Tangshan 063000) Abstract: TCP / IP protocol is the most basic Internet protocols, which consists flow-level IP protocol and the TCP protocol components.Via TCP / IP to communicate with each other a single internal network or network communication between the. Each network in the geographical distance can be far apart. TCP / IP data transfer over the network or between the Internet between computers. Most computers have a common TCP / IP, so that information can be transmitted in a variety of systems. In LabVIEW, you can use TCP / IP node LAN communications.In this paper,the NI LabView platform combines TCP / IP protocol for data transmission methods of work, and gives the data transmission and monitoring of simulation examples. Key words: labview;tcp;Virtual Instrument 0 前言 在现代仪器系统中,计算机已经与仪器结合得非常紧密,已成为整个系统的核心,许多传统仪器正在逐渐被计算机部分、甚至全部取代。粗略地说这种结合有两种方式:一种是将计算机装入仪器;另一种方式是将仪器装入计算机,即以通用的计算机硬件及操作系统为依托,实现各种仪器功能。虚拟仪器主要是指这种方式,其实质就是一个按照仪器需求组织的数据采集系统。美国NI公司的LabVIEW就是目前在这一领域内使用较为广泛的计算机语言。 随着计算机网络的发展,虚拟仪器与Internet技术的结合为虚拟仪器网络化、工业现场远程测控提供了更好的实现平台[。本文介绍在LabView开发平台上结合TCP/IP技术实现远程数据传输。 1 labview 1.1 简介 LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是一种用图标代替文本行创建应用程序的图形化编程语言。传统文本编程语言根据语句和指令的先后顺

CAN单节点的自通信程序

/****************************************************************************** ******** 项目:基于CAN总线的自收发通信 说明:主程序部分 功能:外部按键每按下一次,计数值加一,同时计数值在数码管1、2上显示。 在计数值加一后,会使CAN总线上重新发送数据,此时接收端的计数值也同步更新显示 在数码管3、4上(为便于观察,接收显示的值比发送值大3)。 // CAN主要参数: PeliCAN模式,扩展帧EFF模式 // 29位标示码结构: // 发送数据结构:计数结果,0x02,0x03,0x04,0x05,0x06,0x07,0x08 // 接收数据结构: 待显示数据+其它7个字节的数据 // 本节点的接收代码寄存器值: 0x11,0x22,0x33,0x44 // 本节点的屏蔽代码寄存器值:0x00,0x00,0x00,0x00;可以接收本节点的数据 // 目的节点地址:0x11,0x22,0x33,0x44;可以被本节点接收 模块:can_self.c 作者:PIAE GROUP 注释修改者:特权 修改时间:08.6.17. ******************************************************************************* *******/ /***感谢PIAE工作组提供的源码,这里特权根据自己的编程习惯做了一些修改并添加详细注释***/ #include #include #include "define.h" /////////////////////////////////////////////// //函数:inter0_key (外部中断INT0) //说明:INT0按键为计数按键 // 每按下一次键,计数值加一 //入口:按键中断 //返回:按键加一 /////////////////////////////////////////////// void inter0_key(void) interrupt 0 { EA = 0; //关闭中断 Txd_data++; //计数结果增1,即待发送的数据增1 TXD_flag = 1; //发送数据标志位置位,即重新发送数据以更新数码管的显示数值 EA = 1; //重新开启中断 } ///////////////////////////////////////////////

CAN总线的工作原理

CAN总线的工作原理 控制器局域网总线(CAN,Controller Area Network)是一种用于实时应用的串行通讯协议总线,它可以使用双绞线来传输信号,是世界上应用最广泛的 现场总线之一。CAN 协议由德国的Robert Bosch 公司开发,用于汽车中各种不同元件之间的通信,以此取代昂贵而笨重的配电线束。该协议的健壮性使其用 途延伸到其他自动化和工业应用。CAN 协议的特性包括完整性的串行数据通讯、提供实时支持、传输速率高达1Mb/s、同时具有11 位的寻址以及检错能力。CAN 总线是一种多主方式的串行通讯总线,基本设计规范要求有高的位速率,高抗电子干扰性,并且能够检测出产生的任何错误。CAN 总线可以应用于汽车电控制系统、电梯控制系统、安全监测系统、医疗仪器、纺织机械、船舶运输 等领域。CAN 总线的特点1、具有实时性强、传输距离较远、抗电磁干扰能力强、成本低等优点;2、采用双线串行通信方式,检错能力强,可在高噪声干 扰环境中工作;3、具有优先权和仲裁功能,多个控制模块通过CAN 控制器挂到CAN-bus 上,形成多主机局部网络;4、可根据报文的ID 决定接收或屏蔽该报文;5、可靠的错误处理和检错机制;6、发送的信息遭到破坏后,可自动 重发;7、节点在错误严重的情况下具有自动退出总线的功能;8、报文不包含 源地址或目标地址,仅用标志符来指示功能信息、优先级信息。CAN 总线的工作原理CAN 总线使用串行数据传输方式,可以1Mb/s 的速率在40m 的双绞线上运行,也可以使用光缆连接,而且在这种总线上总线协议支持多主控制器。CAN 与I2C 总线的许多细节很类似,但也有一些明显的区别。当CAN 总线上 的一个节点(站)发送数据时,它以报文形式广播给网络中所有节点。对每个节 点来说,无论数据是否是发给自己的,都对其进行接收。每组报文开头的11 位字符为标识符,定义了报文的优先级,这种报文格式称为面向内容的编址方

几种总线的总结之CAN 总线

CAN总线 CAN是控制器局域网络(Controller Area Network, CAN)的简称,是由研发和生产汽车电子产品著称的德国BOSCH公司开发了的,并最终成为国际标准(ISO118?8)。是国际上应用最广泛的现场总线之一。在北美和西欧,CAN总线协议已经成为汽车计算机控制系统和嵌入式工业控制局域网的标准总线,并且拥有以CAN为底层协议专为大型货车和重工机械车辆设计的J1939协议。近年来,其所具有的高可靠性和良好的错误检测能力受到重视,被广泛应用于汽车计算机控制系统和环境温度恶劣、电磁辐射强和振动大的工业环境 基本概念 CAN 是Controller Area Network 的缩写(以下称为CAN),是ISO国际标准化的串行通信协议。在当前的汽车产业中,出于对安全性、舒适性、方便性、低公害、低成本的要求,各种各样的电子控制系统被开发了出来。由于这些系统之间通信所用的数据类型及对可靠性的要求不尽相同,由多条总线构成的情况很多,线束的数量也随之增加。为适应“减少线束的数量”、“通过多个LAN,进行大量数据的高速通信”的需要,1986 年德国电气商博世公司开发出面向汽车的CAN 通信协议。此后,CAN 通过ISO11898 及ISO11519 进行了标准化,现在在欧洲已是汽车网络的标准协议。现在,CAN 的高性能和可靠性已被认同,并被广泛地应用于工业自动化、船舶、医疗设备、工业设备等方面。现场总线是当今自动化领域技术发展的热点之一,被誉为自动化领域的计算机局域网。它的出现为分布式控制系统实现各节点之间实时、可靠的数据通信提供了强有力的技术支持。 编辑本段CAN总线优势 CAN属于现场总线的范畴,它是一种有效支持分布式控制或实时控制的串行通信网络。较之目前许多RS-485基于R线构建的分布式控制系统而言, 基于CAN总线的分布式控制系统在以下方面具有明显的优越性: 网络各节点之间的数据通信实时性强 首先,CAN控制器工作于多主方式,网络中的各节点都可根据总线访问优先权(取决于报文标识符)采用无损结构的逐位仲裁的方式竞争向总线发送数据,且CAN协议废除了站地址编码,而代之以对通信数据进行编码,这可使不同的节点同时接收到相同的数据,这些特点使得CAN总线构成的网络各节点之间的数据通信实时性强,并且容易构成冗余结构,提高系统的可靠性和系统的灵活性。而利用RS-485只能构成主从式结构系统,通信方式也只能以主站轮询的方式进行,系统的实时性、可靠性较差; 缩短了开发周期 CAN总线通过CAN收发器接口芯片82C250的两个输出端CANH和CANL与物理总线相连,而CANH端的状态只能是高电平或悬浮状态,CANL端只能是低电平或悬浮状态。这就保证不会在出现在RS-485网络中的现象,即当系统有错误,出现多节点同时向总线发送数据时,导致总线呈现短路,从而损坏某些节点的现象。而且CAN节点在错误严重的情况下具有自动关闭输出功能,以使总线上其他节点的操作不受影响,从而保证不会出现象在网络中,因个别节点出现问题,使得总线处于“死锁”状态。而且,CAN具有的完善的通信协议可由CAN

基于LabVIEW的Socket程序设计

目录 0. 前言 (1) 1. 总体方案设计 (1) 2. LabVIEW下的程序设计 (2) 2.1 软件层次设计 (5) 2.2 程序框图的设计 (6) 3. 调试及结果分析 (7) 3.1运行检验 (7) 3.2调试分析 (8) 4. 结论及进一步设想 (9) 参考文献 (9) 课设体会 (10) 附录基于LabVIEW的Socket程序设计框图 (11)

基于LabVIEW的Socket程序设计 王琳沈阳航空航天大学自动化学院 摘要:本次课程设计主要是以LabVIEW为平台,用datasocket做服务器,设计两个客户端,以正弦波为信号载体,将正弦信号数据发送到指定服务器地址中,再从指定服务器地址中读取数据并显示出来,以此来实现数据传输。 关键字:DataSocket;数据传输 0. 前言 虚拟仪器技术是基于计算机的仪器与测量技术。而DataSocket技术是一种面向测控领域的通过网络实时进行数据交换的编程技术,它包括了DS Server Manager、DS Server和DS函数库等工具,以及数据传输协议DSTP、URL和文件格式等技术规范,可大大简化网络中计算机之间数据交换的编程工作。 DS Server Manager是一个独立运行的程序,它的主要功能是设置DS Server 可连接的客户程序的数目和可创建的数据项的数目,设置用户和用户组,以及设置用户访问和管理数据项的权限。没有权限的用户不能在DS Server上创建或读写数据项,这样可以提高网络通信的安全性。 DS Server也是一个独立运行的程序,它能为用户解决大部分网络通信方面的问题,负责和用户程序之间的数据交换,不需要用户编写有关网络通信的底层程序。DS Server可以和测控应用程序安装在同一台计算机上,也可以分别安装在不同的计算机上。后一种方法可以增加整个系统的安全性,因为两台计算机之间可用防火墙加以隔离,而且DS Server程序不会占用测控应用程序所在的计算机CPU的时间,从而使测控应用程序可以运行的更快。 1. 总体方案设计 设计两个客户端,客户端1和客户端2,以正弦波为信号载体,客户端1将正弦信号数据发送给DS Server,客户机2从DS Server读取数据显示并保存,另设一个VI读取保存的历史数据。 整体框图如图1所示:

CAN 总线通信原理分析

CAN总线通信原理分析 CAN(Controller Area Network)总线,即控制器局域网总线,在工业控制、医疗电子、家用电器及传感器领域都得到了广泛的应用。目前国内外文献中针对CAN总线协议分析的文章主要是针对CAN协议的帧结构以或位时序特性进行分析,如文献鲜有从通信的角度对CAN总线协议进行分析,鲜有从工程应用的角度出发,对CAN总线的通信机制进行深入分 析的文章。 1 CAN应用特性及结构构成 CAN总线协议具有两个国际标准,分别是ISO11898和ISO11519。其中,IS011898是通信速率为125 kbps~1Mbps的高速CAN通信标准,属于闭环总线,总线最大长度为40 m/1Mbps。ISO11519定义了通信速率为10~125kbps的低速CAN通信标准,属于开环总线,最大长度为1 km/40kbps。由于电气特性限制,即总线分布电容和分布电阻对总线波形的影响,CAN总线上最大节点数目为110个。对于应用工程师,只需正确配置收发端 的波特率和位参数即可实现收发节点的数据同步。通过CAN控制器硬件对报文的标示符滤波即可实现点对点、一点对多点及全局广播等几种方式传送接收数据。同时,由于CAN报文采用短帧结构,并且每帧均包含CRC校验部分,保证了数据出错率极低。CAN总线在工 程应用中结构构成如图1所示。 系统实现中的CAN应用层、操作系统(在无操作系统的应用中以后台程序实现)及驱动程序共同实现了ISO参考模型中的应用层功能。其中,CAN应用层定义ID分组、发送数据装包、接收数据处理以及应用层总线安全监测;操作系统/后台程序用于在CAN中断到达后调度CAN驱动程序对数据进行处理;驱动程序包括初始化(控制器工作状态设置、波特率设置、验收滤波器配置)、收发驱动及异常处理程序。 对于传输介质层,需要根据环境干扰噪声、总线长度等来确定。在强干扰噪声的情况下必须采用屏蔽线;由于分布电容造成的总线波形失真及分布电阻造成的总线电平的衰减,总线长度需要考虑采用的传输介质的分布电阻和分布电容特性;同时,若采用高速总线还需通过实验确定总线的匹配电阻值。 对于CAN驱动层和应用层,驱动程序包括CAN初始化(包括硬件使能、波特率设置、控制器工作模式设置及验收滤波器ID表配置)、收/发驱动并向上层提供接口函数,其中需要说明的是验收滤波器的ID表配置需要根据应用层对系统ID的分组来进行;CAN应用层 根据总线上各节点之间的数据收发关系进行数据包的ID分组、发送数据装包、接收数据处

基于tcp的LABVIEW课程设计报告书

虚拟仪器开发与实践 课程设计 题目名称:基于LABVIEW 的TCP/IP通讯设计 学生专业:测控技术与仪器 学生:贾科琼

目录 1 设计背景 0 2 虚拟仪器概述 0 2.1虚拟仪器概念 0 2.2虚拟仪器的优势 (1) 2.3虚拟仪器的构成 (1) 2.4虚拟仪器开发软件 (2) 3 LabVIEW软件的概述 (3) 3.1 LabVIEW编辑界面 (3) 3.2 LabVIEW的特点 (4) 3.3 LabVIEW的应用领域 (5) 4 LABVIEW的TCP/IPD 通讯设计 (5) 4.1 TCP/IP概述 (5) 4.2 LabVIEW中的TCP通讯总流程图 (6) 4.3 LabVIEW中的TCP功能函数 (7) 4.4 LabVIEW中的TCP通讯程序图 (12) 5 软件调试 (14) 设计心得 (18) 参考文献 (20)

1 设计背景 随着电子技术,计算机技术和数字信号处理技术的飞速发展,以及这些技术在测量领域中的广泛应用,仪器技术领域发生了巨大的变化。从最初的模拟仪器到现在的数字化仪器,嵌入式仪器以及智能仪器,新的测试理论,测试方法不断的应用于实践,仪器技术领域的各种创新积累使现代测量仪器的性能发生了质的飞跃,从而使仪器的概念和形式发生了巨大的变化。 测量仪器发展至今,大体经历了四代历程,即模拟仪器、分立元件式仪器、数字化仪器和智能仪器。由于微电子技术、计算机技术、通信技术、网络技术的高度发展及其在电子测量技术与仪器上的应用,新的测试理论、新的测试方法、新的测试领域以及新的仪器结构不断出现,在许多方面已经突破了传统仪器的概念,电子测量仪器的功能和作用已经发生了质的变化,其中计算机处于核心地位,计算机软件技术和测试系统更紧密地结合成一个有机整体,导致仪器的结构、概念和设计观点等也发生了突破性的变化。在这种背景下,美国国家仪器公司在20世纪80年代最早提出虚拟仪的概念,同时推出了用于虚拟仪器开发的工程软件包LabVIEW。NI 公司宣称“The Software is the Instrument”,即“软件就是仪器”。 在这里,计算机是虚拟仪器的核心设备,该仪器的功能是通过软件仿真实现的。它将传统仪器由硬件电路实现的数据分析处理与显示功能,改由功能强大的计算机来执行,所以计算机是其核心;当计算机与适当的I/O接口设备配置完毕,虚拟仪器的硬件平台就被确定,此后软件就成为仪器的关键部分,这也是“软件就是仪器”之说的来由。这意味着只要按照测量原理,采用适当的信号分析技术与处理技术,编制某种测量功能的软件就可构成该种功能的测量仪器。 2.虚拟仪器概述 2.1虚拟仪器概念 虚拟仪器技就是利用高性能的模块化硬件,结合高效灵活的软件来完成各种测试、测量和自动化的应用。自1986年问世以来,世界各国的工程师和科学家们都已将NI LabVIEW图形化开发工具用于产品设计周期的各个环节,从而改善了产品质量、

can总线通信程序

CAN总线通信程序 // CAN <==> UART的协议转换器 // 说明: // 1,单片机使用P89C61X2BA // --晶振11.0592MH Z // --CAN总线中断使用单片机的中断0,外部有上拉电阻,波特率可以设定 // 2,CAN总线发送采用查询方式,接收采用中断方式 // 3,看门狗复位时间1.2S // 4,SJA1000晶振8MHZ,Peil模式 // 5,串口中断接收,查询发送,波特率可设置 // 6,×××当串口收到数据后,每8个数一组打包,通过CAN总线发送出去 // // -----10.16日,重新修改程序完成以下功能----- // ----此功能已经改为,每收到一帧数据,启动一次CAN传输,传输字节数等于串口收到的数据 // ----串行帧的帧间界定通过当前波特率下传输5个字节为时间间隔,具体为当顺序接收到的任意两个数据,它们之间的时间间隔大于5个字节传送时间,认为这两个数据分属于两个不同的帧 // 7,当CAN总线每接收一帧信息后,通过串口发送出去 // 改为可以识别CAN的报文字节长度,即串口只发送CAN报文长度个字节 // 8,看门狗芯片MAX1232CPA,硬件溢出时间1.2S // //------------------------------------------------------- #include #include #include #include "CANCOM.h" unsigned char UART_TX_Data[8] = {0,1,2,3,4,5,6,7}; unsigned char CAN_TX_Data[8] = {0,1,2,3,4,5,6,7};

LabVIEW通过TCP与西门子PLC通信

LabVIEW通过TCP与西门子PLC通信 一、概述 西门子PLC是目前测控领域使用比较广泛的PLC,要使用LabVIEW通过TCP 与西门子PLC通信,必须对PLC进行相应的编程,建立TCP通信接口才能实现。本文介绍了一种完全不需要对PLC进行编程的方法,完全通过LabVIEW编写,包含Siemens_S7_createConn、Siemens_S7_Readbyte[]、Siemens_S7_Writebyte[]3个子VI。子VI由电子发烧友论坛SevenLi8408提供,经过作者二次验证S7-200、S7-200Smart、S7-300、S7-1200、S7-1500均可通信成功。子VI可到电子发烧友论坛输入“破解西门子协议,实现PLC无编程即可直接访问。完全替代落伍的OPC”搜索,找到后自行下载。 二、Siemens_S7_createCon 该子VI用于与西门子PLC建立连接,如图1所示。 1 Siemens_S7_createCon子VI 三、Siemens_S7_Readbyte[] 该子VI可用于读取西门子PLC的数字量输入输出点、M存储区、数据块等,,如图2所示。西门子PLC的输入点8个为一组,count表示有几组。Readdata是一个数组,Readdata[0]表示I0.0-I0.7。 图2 Siemens_S7_Readbyte[]

四、Siemens_S7_Writebyte[] 该子VI可用于写西门子PLC的数字量输入输出点、M存储区、数据块等,如图3所示。写布尔量也是8个一组,所以要写Q0.0-Q0.7和Q1.0-Q1.7时需要使用两个写子VI。 图3 Siemens_S7_Writebyte[] 五、读布尔量 六、写布尔量

CAN的工作原理

一、概述 对于一般控制,设备间连锁可以通过串行网络完成。因此,BOSCH公司开发了CAN总线(Controller Area Network),并已取得国际标准化组织认证 (ISO11898),其总线结构可参照I SO/OSI参考模型。同时,国际上一些大的半导体厂商也积极开发出支持CAN总线的专用芯片。通过CAN总线,传感器、控制器和执行器由串行数据线连接起来。它不仅仅是将电缆按树形结构连接起来,其通信协议相当于ISO/OSI参考模型中的数据链路层,网络可根据协议探测和纠正数据传输过程中因电磁干扰而产生的数据错误。CAN网络的配制比较容易,允许任何站之间直接进行通信,而无需将所有数据全部汇总到主计算机后再行处理。 二、CAN在国外的发展 对机动车辆总线和对现场总线的需求有许多相似之处,即较低的成本、较高的实时处理能力和在恶劣的强电磁干扰环境下可靠的工作。奔驰S型轿车上采用的就是CAN总线系统;美国商用车辆制造商们也将注意力转向CAN总线;美国一些企业已将CAN作为内部总线应用在生产线和机床上。同时,由于CAN总线可以提供较高的安全性,因此在医疗领域、纺织机械和电梯控制中也得到广泛应用。 三、CAN的工作原理 当CAN总线上的一个节点(站)发送数据时,它以报文形式广播给网络中所有节点。对每个节点来说,无论数据是否是发给自己的,都对其进行接收。每组报文开头的11位字符为标识符,定义了报文的优先级,这种报文格式称为面向内容的编址方案。在同一系统中标识符是唯一的,不可能有两个站发送具有相同标识符的报文。当几个站同时竞争总线读取时,这种配置十分重要。 CAN总线的报文发送和接收参见图1。当一个站要向其它站发送数据时,该站的CPU将要发送的数据和自己的标识符传送给本站的CAN芯片,并处于准备状态;当它收到总线分配时, 转为发送报文状态。CAN芯片将数据根据协议组织成一定的报文格式发出,这时网上的其它站处于接收状态。每个处于接收状态的站对接收到的报文进行检测,判断这些报文是否是发给自己的,以确定是否接收它。 由于CAN总线是一种面向内容的编址方案,因此很容易建立高水准的控制系统并灵活地进行配置。我们可以很容易地在CAN总线中加进一些新站而无需在硬件或软件上进行修改。当所提供的新站是纯数据接收设备时,数据传输协议不要求独立的部分有物理目的地址。它允许分布过程同步化,即总线上控制器需要测量数据时,可由网上获得,而无须每个控制器都有自己独立的传感器。 四、位仲裁 要对数据进行实时处理,就必须将数据快速传送,这就要求数据的物理传输通路有较高的速度。在几个站同时需要发送数据时,要求快速地进行总线分配。实时处理通过网络交换的紧急数据有较大的不同。一个快速变化的物理量,如汽车引擎负载,将比类似汽车引擎温度这样相对变化较慢的物理量更频繁地传送数据并要求更短的延时。

相关文档
最新文档