技术频道

利用Hilscher通用网关实现PROFIBUS总线和串口仪表之间的通讯

摘要:本文介绍了如何利用协议转换网关实现PROFIBUS现场总线和由智能控制仪表组成的串行通信网络间的通讯。
关键词:现场总线 PROFIBUS-DP RS485 MODBUS-RTU 协议转换 网关
Abstract:This paper introduces how to use the Protocol conversion gateway to realize the communication between PROFIBUS field bus and serial communication networks that are consist of intelligent controlling instrument.
Key words:FieldBus PROFIBUS-DP RS485 MODBUS-RTU Protocol conversion Gateway
1引言
智能控制仪表是工业控制中最常用的控制器之一,其主要是针对某一特定的参数(如压力、温度、流量等),采用先进的控制算法(如PID、自适应PID、模糊逻辑等)来达到精确控制被控参数的目的,具有专业性强、智能化高、控制算法先进、使用方便等特点。可编程逻辑控制器(简称PLC)以其运行可靠、集成度高、可扩展性强而在工业控制中得到广泛的应用。在当今现场总线技术极大发展的今天,世界上各大PLC厂商所推出的现场总线也各不相同,目前国际上流行的现场总线协议就有10几种之多;但由于这些仪表一般只支持串口通讯协议,如何通过现场总线把智能控制仪表的数据传入PLC中,就比较难以实现。为此德国赫优讯公司推出了netTAP系列通用网关,它支持各种现场总线从站到串口协议的转换。下面我们以PROFIBUS-DP从站到ASCII协议的转换来说明。
2 通信系统的构成以及实现方法
2.1 系统配置
SIEMENS公司的315-2 DP CPU作为一个DP Master,总线地址设为2;Hilscher公司的netTAP网关作为PROFIBUS-DP从站,总线地址设为3;控制仪表我们采用目前使用比较广泛的Eurotherm公司的2416仪表(4块)。系统配置简图如下:
图1:系统配置图
2.2 netTAP网关的参数设置
netTAP系列网关中的有一种支持PROFIBUS-DP从站到Modbus RTU或ASCII或3964R协议转换的NT30-DPS网关,只要加载不同的固件就可以实现PROFIBUS-DP和相应协议之间的转换。在这里我们选用PROFIBUS-DP从站到ASCII协议。选择完后将固件下载到网关中去。
下面要对网关进行相应的配置:
2.2.1 ASCII其它参数采用默认设置
接口/RTS
RS485/RTS启用
波特率
9600
数据位
8
停止位
1
奇偶校验
偶校验
模式
主站
结束模式
仅时间控制
校验和模式
校验和区域
仅在用户数据中
字符过滤
字符[16进制]
报文间隔
100毫秒
表1:ASCII相关参数的设置
2.2.2 MODULES注意要和DP主站的设置保持一致
模块类型
模块长度
in byte con
2
in byte con
64
out byte con
2
out byte con
64
表2:MODULES相关参数的设置
参数组态完成后,将组态信息也下载到网关中去。
2.3 2416仪表的通讯参数设置
参照欧陆2000系列仪表通讯说明书,来对通讯参数进行设置。
2416仪表支持2种通讯协议:MODBUS PROTOCOL和EI-BISYNCH PROTOCOL,我们选择MODBUS PROTOCOL协议进行通讯。根据网关中已经配置好的组态信息,将4块仪表通讯参数设置为:地址依次为1-4;波特率设为9600;8位数据位;1位停止位;偶校验;其它参数用默认值。(相关操作请参见仪表操作说明书)
2.4 DP主站中进行组态和编程
打开STEP7编程软件将NT3-DPS的GSD文件安装到STEP中,然后通过GSD文件对NT30-DPS进行组态,见图2。
图2:主站中网关的组态
组态完成后,进行编译保存。
下面将进行代码的编写,由于要采用CRC检验,所以我们需要编写一个CRC检验的程序;具体代码编写请参照2000系列仪表通讯说明书,在程序中我们编写了一个功能FC和一个用来存放数据的数据块DB3,在DB3内建一个数组元素类型为BYTE长度为32的数组。
读仪表数据时, 我们采取读N WORDS的方法,命令格式见图3:
图3:读取N个字的命令格式
返回的应答信息格式见图4
图4:读取N个字命令的应答信息格式
我们需要读取的数据为仪表的PV值、OP值和SP值。根据通讯说明书它们的MODBUS参数地址分别为1、3和2。因此要读取这三个值的命令应该为(MODBUS地址为1的仪表为例):010300010003CRC,在返回的数据中,我们就可以得到PV、SP和OP的值。
在PROFIBUS的输入和输出映像区的第一个字节本例中为(PQB256和PIB256)是用于控制和监控通讯状态的握手字节
下面为STEP程序的部分代码:
将MB20值设为1;读取MODBUS地址为1的仪表的数据。根据上面的应答格式,我们知道在返回的数据中PIW261为仪表的PV值;PIW263为仪表的SP值;PIW265为仪表的OP值。在变量表里进行监控并和仪表进行比较,我们发现数值是正确的。
要对多块仪表进行通讯,只要通过程序来改变MB20的值,因此我们可以每隔100MS将相应仪表的站地址送到MB20中去,等数据返回后,再将下一块仪表的站地址送到MB20中直到最后一块,然后重新从第一块仪表开始。由于返回的数据中包含了站地址信息,因此我们只要根据站地址将得到的数据送到相应的存储区域中即可。当然我们也可以对仪表进行写操作,需要注意的是读写转换的控制问题。
3 结束语
我们在未来相当一段时间内将面对多种网络协议并存的现实,因此用于协议转换功能的网络部件将在未来自动化系统中发挥重要作用。 拥有多种网络接口的自动化设备也必然具有更强的市场竞争力。NetTAP作为一种通用的协议网关,它支持多种协议间的转换,已经在很多场合中得到了实际应用,在未来也必将拥有广阔的市场前景。
参考文献
[1] 2000 comms man. Eurotherm Company(欧陆工业自动化有限公司)
[2] NtDpsAsc.en. Hilscher Company.(德国赫优讯自动化系统有限公司)
作者简介
雷浩(1983--) 男 助工/学士 无锡市北辰自动化技术有限公司,从事工业自动化行业系统集成和联网<

文章版权归西部工控xbgk所有,未经许可不得转载。