SAE J1939(以下简称J1939)是美国汽车工程协会(SAE)的推荐标准,用于为中重型道路车辆上电子部件间的通讯提供标准的体系结构。它是基于德国Bosch公司(Robert Bosch GmbH)开发的控制器局域网络(CAN:Controller Area Network),标准的J1939协议可达到250Kbps的通讯速率。J1939协议是目前在商用车辆、舰船、轨道机车、农业机械,大型发动机和BMS系统中应用最广泛的应用层协议。 对于传统的PLC控制系统而言,J1939协议的接入往往需要另外扩展模块,但受扩展模块的性能限制,只能收发一定数量的数据(一般最多256个字),并且在运行过程中无法修改PGN参数组对象,且大多不支持J1939多包传输协议。另外,如果是第三方的扩展模块,还会涉及到主PLC和该模块的通信工作,对工程师来说又增加了集成的难度,系统的复杂程度也随之增加。 在此种应用场合下,本身集成多种总线接口的HORNER一体化控制器在这种场合就非常适合使用。以下通过一个实际应用为案例,介绍在HORNER控制器上的J1939协议配置方法。 1.某用户的压缩机控制系统上,需要在主PLC上采集GAC EEG6500转速控制器上的发动机转速数据,主PLC根据该转速数据以及一些压力、温度传感器的数值对压缩机系统进行控制。 2.通过查询EEG6500的技术资料,我们发现其具有J1939输出能力,可以把转速信号通过J1939进行输出。 3.综合上述信息,我们为用户选择了HORNER HE-XC1E3控制器。该控制器集成3.5寸触摸屏,1个CAN总线接口,1个以太网接口,1个232接口,1个485接口,内置12DI,12DO,2AI,基本可以满足用户需要。后期如果需要更多的IO点也可以通过总线进行扩展。控制器支持梯形图和IEC61131-3的五种语言,用户编程方便。 4.打开HORNER的编程软件Cscape, 进入Program菜单下的Network Configuration中,可以对控制器的J1939通信进行配置。下图中我们配置J1399总线控制的起始控制器地址为%R1000,其会占用连续的一系列寄存器用于J1939协议的控制。 5.然后,因为我们要接收来自于EEG 6500的转速数据,所以这里我们在Receive PGN上单击右键,选择添加一个Receive PGN。 6.通过查询J1939-71车辆应用层协议文件,我们得知61444参数组的定义如下:该参数组为发动机控制器1参数组。J1939协议对该参数组的定义为数据长度:8字节;数据页:0;PDU格式:240;默认优先级:3;参数组编号:61444。 PGN参数组编号:61444 Priority优先级:3(J1939协议默认) Source Address源地址:26(EEG6500手册中标识) Destination Address目的地址:0(广播接收) Number of Data:8(接收该参数组8个字节的数据) Mapping Resister:1 %R(把接收到的数据放置在HORNER控制器从%R1开始的连续寄存器中) 点击OK确定,完成配置。 7.通过上述操作,我们已经把EEG 6500发送的数据放置在%R1开始的连续8个字节的寄存器中,但是,我们要取的发动机转速数据在哪里呢?这里,我们继续查找J1939-71应用层协议,可以看到该参数组的具体数据定义格式,如下图。 这里我们看到要取的数据在BYTE 4和BYTE 5里,我们据此在HORNER中写入如下程序。 首先给%R1000赋1,启动J1939协议;然后把第4-5个字节的数据传送到%R11这个字中,接着把它变换为浮点数%R13,再除以8,最终结果放置在%R15这个浮点数里。 最后,我们简单的把这个数据放置在屏幕上,供测试。 8.接线,并使用信号发生器测试,HORNER控制器可以读取到转速数据。 作者介绍: 张伟宁,就职于浩纳尔(天津)自动化科技有限公司,负责美国HORNER一体化控制产品的应用和支持工作,对HORNER全系产品有深入了解。 喜欢请打赏!
|
|
来自: 阿明哥哥资料区 > 《67.工控自动化.交流会》