力控中截报文的方法
- 格式:doc
- 大小:123.50 KB
- 文档页数:3
电动汽车充电桩CAN应用层报文截取器的原理与实现摘要针对电动汽车充电桩产品验收时,CAN应用层协议实现是否正确完整,本文给出一种基于PCI总线的CAN报文实时截取器。
该截取器可在不影响原系统工作的情况下实现对CAN总线报文长时间、高速、海量的实时采集,采集的数据经分析处理,达到了对充电桩CAN协议验收的目的。
该方法也可广泛用于各类CAN总线控制系统的研发,为其测试与诊断提供良好的技术手段。
关键词电动汽车;充电桩;CAN 报文;截取器;PCI 接口0 引言电动汽车充电站监控管理系统负责对站内各交直流充电设备进行监控管理。
在研发充电站监控管理系统的过程中,涉及到对交直流充电设备的验收检测工作,包括设备工作的安全性、可靠性、实时性、CAN应用层协议的完整与正确性等;本文设计的CAN应用层报文截取器,目的在于解决充电设备CAN应用层报文的验收问题。
1概述1.1 CAN协议特点CAN 是一种多主方式的串行通讯总线,具有低成本、极高总线利用率、远距离(10Km)、高速率(1Mb/s)、广播发送、可选择性接收、抗电磁干扰性强,可靠的错误处理和检错机制,发送的信息遭到破坏后,可自动重发,节点在错误严重的情况下具有自动退出总线的功能等。
由于其高性能、高可靠性及独特的设计,目前CAN总线已广泛应用于各类工业现场控制如汽车、铁路、煤矿安全、航空工业、水下机器人探测、GPS定位等领域中。
CAN协议与OSI模型对应,考虑到实时性等因素,规范只定义了模型的最下面两层:数据链路层和物理层(CAN硬件接口一般都已实现了这两层),应用层可以由用户定义,由于CAN总线的广泛应用,CAN应用层协议也多种多样,目前电动汽车以及充电设备的CAN应用层协议[6]大多有各企业自行设计,各类CAN应用层协议尚未统一。
1.2 充电站监控系统的通信结构示意图2 CAN应用层报文自动截取器的实现原理2.1 硬件本文采用工业级PCI总线接口卡PCI9820I实现CAN应用层报文的自动截取,该卡插入主机PCI插槽中,安装驱动和截取程序后,即可实现对CAN报文的截取。
电动汽车充电桩CAN应用层报文截取器的原理与实现摘要针对电动汽车充电桩产品验收时,CAN应用层协议实现是否正确完整,本文给出一种基于PCI总线的CAN报文实时截取器。
该截取器可在不影响原系统工作的情况下实现对CAN总线报文长时间、高速、海量的实时采集,采集的数据经分析处理,达到了对充电桩CAN协议验收的目的。
该方法也可广泛用于各类CAN总线控制系统的研发,为其测试与诊断提供良好的技术手段。
关键词电动汽车;充电桩;CAN 报文;截取器;PCI 接口0 引言电动汽车充电站监控管理系统负责对站内各交直流充电设备进行监控管理。
在研发充电站监控管理系统的过程中,涉及到对交直流充电设备的验收检测工作,包括设备工作的安全性、可靠性、实时性、CAN应用层协议的完整与正确性等;本文设计的CAN应用层报文截取器,目的在于解决充电设备CAN应用层报文的验收问题。
1概述1.1 CAN协议特点CAN 是一种多主方式的串行通讯总线,具有低成本、极高总线利用率、远距离(10Km)、高速率(1Mb/s)、广播发送、可选择性接收、抗电磁干扰性强,可靠的错误处理和检错机制,发送的信息遭到破坏后,可自动重发,节点在错误严重的情况下具有自动退出总线的功能等。
由于其高性能、高可靠性及独特的设计,目前CAN总线已广泛应用于各类工业现场控制如汽车、铁路、煤矿安全、航空工业、水下机器人探测、GPS定位等领域中。
CAN协议与OSI模型对应,考虑到实时性等因素,规范只定义了模型的最下面两层:数据链路层和物理层(CAN硬件接口一般都已实现了这两层),应用层可以由用户定义,由于CAN总线的广泛应用,CAN应用层协议也多种多样,目前电动汽车以及充电设备的CAN应用层协议[6]大多有各企业自行设计,各类CAN应用层协议尚未统一。
1.2 充电站监控系统的通信结构示意图2 CAN应用层报文自动截取器的实现原理2.1 硬件本文采用工业级PCI总线接口卡PCI9820I实现CAN应用层报文的自动截取,该卡插入主机PCI插槽中,安装驱动和截取程序后,即可实现对CAN报文的截取。
DTU常见问题及处理办法1.用dtu(如宏电)时在力控里面应该选择什么驱动?在力控里面选择驱动时,跟dtu无关,dtu的连接的是什么设备,就在力控里面选择什么样的驱动。
如底下是西门子200,用ppi电缆连接dtu,那在力控里面就选择西门子200ppi协议,然后通讯方式那快由原来的串口改成网桥。
然后在下一步中选择dtu的型号。
2.驱动第二步各个参数的解释通讯方式分为tcp、UDP,这连个的选择跟据dtu软件的配置。
设备厂家就是模块的厂家,里面有一些,如果没有客户询问的型号,如果客户支持透明传输的话,可以用咱们的多端口。
终端编号,这个是在力控网桥里面区分的一个编号,可以任意填写,但是不能重复,如果重复了,会造成重复的编号只能一个能够正常登入,其它的则登入不上。
本机ip 就是在本地连接的属性里面的ip地址,注意不是,你的外网的ip。
端口号(UDP端口):这个根据在dtu配置软件中设置的端口,填到这块,如果用有硬件防火墙(网管)之类的,一定要映射通。
否则会造成不能正常通信,查看此端口有没有问题可以用telnet命令测试。
终端id号,这个是区分dtu的号码,大部分是11位的,有的是8位的,这个也是根据在dtu软件中的配置进行填写。
这个也具有唯一性。
3.标准tcp/ip单端口跟标准tcp/ip多端口的区别。
共性:它俩都是走的透明的协议。
区别:标准tcp/ip单端口需要加入力控的登入包即网桥通过判断登入包正确与否来显示是否登入,当有多个设备时,它们的端口通过设置可以是相同的。
登陆包(共14字节):报文头两字节(0xAA 0x01)+11字节长度的终端ID号(ASCII)+报文尾一字节(0x0D)举例:终端ID号为:,登陆包就应该为:AA 01 31 33 39 31 31 36 31 30 30 30 30 0D而tcp/ip多端口是不许要判断登入包的,而是根据每个的端口去登入。
因此必须给每个设备一个端口。
否则会造成冲突。
一、主控系统用Ethereal截取报文的简单方法:A)启动Ethereal软件,在Ethereal的用户界面上点击主菜单下的Capture (抓取)选项,在接下来的下拉菜单中选择Interfaces…(网络接口)选项,如下图所示:B)观察有数据包活动的网卡,并记下它的IP地址,如下图所示:C)在Ethereal的用户界面上点击主菜单下的Capture (抓取)选项,在接下来的下拉菜单中选择Options…(抓包选项)选项,如下图所示:D)在弹出来的选项设置框中选择刚才有数据包活动的网卡,在它下边会它的IP地址,如下图所示;并选择Update list of packets in real time(实时更新数据包列表窗格)选项,则可以边截取报文边读报文,其他选项默认设置,按Start选项开始抓包,如下图所示:注:Update list of packets in real time:允许在抓包同时,实时更新数据包列表窗格。
如果不选择此项,抓包过程中不显示数据包列表,直到停止抓包。
Automatic scrolling in Live capture(抓包时数据包列表自动滚动):抓取最新数据包排在列表最后,并显示出来。
Hide capture info dialog(抓包信息窗口不显示):抓包时不显示抓包信息窗口。
Capture packets in promiscuous mod(混杂模式抓包):允许设置使用混杂模式抓包。
如果你没有选择混杂模式,Ethereal仅仅抓取本机的进出数据包。
Enable MAC Name resolution(链路层名称解析):允许将MAC地址翻译成名称,如IP地址。
Enable network Name resolution(网络层名称解析):允许将网络地址翻译成名称,例如IP 地址翻译为域名。
Enable transport Name resolution(传输层名称解析):允许将传输端口翻译成对应的协议名称。
力控中截报文的方法
截取报文的方法
首先,力控运行起来以后,点击电脑的右下角“IO监控器”这个图标。
弹出下图:
看到杰曼的四个设备占用四个“Channel”,把这四个设备的报文都分别截一下。
现在以其中一个为例来详细说明,其他三个雷同。
鼠标选中“Channel0”,Channel0变成蓝色说明选择成功了,然后点击鼠标右键。
如下图:
点击“查看信道信息”,弹出如下图:
选择“按十六进制显示”
就在我画红框的里面应该有报文更新,在红框内点击鼠标右键,弹出
点击“导出列表”,导出一个名字为“message.txt”的文件,请把这个文件用邮件附件的形式发给我。
剩下三个Channel用同样的方法,分别命名为message1、message2、message3。
力控与力控之间通讯总结通过测试,力控与力控之间的通讯方式有commsever、datesever、netsever和opc,现将这四种方法的测试步骤和在测试过程中要注意的事项做了如下说明,以下测试都是在局域网中搭建的,在广域网中搭建的话有说明,广域网举例附图:msever测试方法:1.在作为服务器的计算机中打开力控数据库组态建点tag1.pv,运行commsever。
2.在设置中选择“通讯设置”,以网络通讯方式(被动方式)为例:本机IP 和端口输入作为服务器的计算机IP和端口,本机地址默认为0然后确定,提示重新启动commsever 。
3.在测试机(作为客户端)中新建IO驱动(力控-数据库-commsever通讯),服务器以网络通信方式为例所以客户端通信方式选择tcp/ip 设备地址与服务器本机地址相同填0 ,点击下一步。
一步。
5.勾选允许同步历史,完成IO配置。
6.进入数据库组态建点a.pv,连接IO设备,增加。
7.参数是服务器端的点,以tag1.pv为例,参数填写tag1.pv 。
8.运行力控,将服务器端的tag1.pv在实时数据库中赋值,客户端a.pv的值与tag1.pv相同,commsever通讯正常。
(注:当设置客户端IO驱动时,设置的IP、端口、本机地址要与服务器相同。
以上为局域网内commsever测试,当在广域网中搭建commsever 时,服务器的IP和端口为作为服务器计算机的IP和端口,客户端填写的IP是作为服务器的计算机的公网IP,端口为路由器映射出的作为服务器的计算机的端口)。
2.opc测试方法:1.组件配置(开始-运行-dcomcnfg 进入组件服务)。
2.配置我的电脑(右键-属性配置COM安全)选择访问权限:编辑限制:添加everyone和ANONYMOUS LOGON 将访问权限全部选择允许,选择编辑默认值:添加everyone和ANONYMOUS LOGON 将访问权限全部选择允许。
截取报文的方法
首先,力控运行起来以后,点击电脑的右下角“IO监控器”这个图标。
弹出下图:
看到杰曼的四个设备占用四个“Channel”,把这四个设备的报文都分别截一下。
现在以其中一个为例来详细说明,其他三个雷同。
鼠标选中“Channel0”,Channel0变成蓝色说明选择成功了,然后点击鼠标右键。
如下图:
点击“查看信道信息”,弹出如下图:
选择“按十六进制显示”
就在我画红框的里面应该有报文更新,在红框内点击鼠标右键,弹出
点击“导出列表”,导出一个名字为“message.txt”的文件,请把这个文件用邮件附件的形式发给我。
剩下三个Channel用同样的方法,分别命名为message1、message2、message3。