PROFIBUS-DP数据交换原理简析
2008-03-31
作者:李工
Tel : 010-51271179
E-mail: jindingwang@goldtopone.com
摘 要:针对初学者概念不清的特点,本文在分析典型DP通讯配置的基础上,总结出DP通讯数据交换" title="数据交换">数据交换的共性原理和方法。同时给出了组态配置主要步骤的示图,并作了注解。
关键词:PROFIBUS-DP" title="PROFIBUS-DP">PROFIBUS-DP、数据交换、DP通讯、 DP通讯缓冲区
一、前言
随着国内工业化进程的不断深入和发展,工业自动化对网络需求日益广泛。西门子自动化产品在竞争中也逐步显示出她卓越的网络性能及优势。这也不足为奇,因为灵活的组网和高效可靠的通讯正是西门子自动化产品的个性所在。而从国家JB等效采用PROFIBUS欧洲标准以后,我们更是明显感到市场对PROFIBUS及SIEMENS产品认同度的提高。
本人日常工作就是技术支持、培训和产品开发与工程服务,在工作中我深切感觉到许多新用户在PROFIBUS入门时的茫然。其原因就在对PROFIBUS通讯的概念及原理不清。本文试图在分析几种常见通讯的配置和数据交换的基础上,概括说明PROFIBUS的一些原理性的共同特点,希望对您的工作有所帮助。
二、几种典型通讯的实现过程
2.1 概述
粗略数一下PROFIBUS-DP的产品,仅西门子的就有近30种系列,如果算上能够上PROFIBUS=DP网的各种仪表、传感器等就更多了。虽然PROFIBUS-DP产品众多,但概括其工作原理、配置组态内容等特点,主从站主要类别可用如下几种来代表。
PROFIBUS-DP主从站种类概括
序号 |
站点特性描述 |
工作模式 |
典型产品 |
1 |
CPU上集成有通讯口 |
或主或从 |
315-2DP、412-1、414-3 |
2 |
独立的通讯处理器 |
或主或从 |
CP342-5、CP443-5 |
3 |
带CPU的接口模块 |
或主或从 |
IM151/CPU、BM147/CPU |
4 |
普通ET200系列接口模块 |
从 |
IM153、IM151 |
5 |
设备的PROFIBUS网卡 |
从 |
EM277、变频器的Profibus网卡 |
6 |
网关 |
从 |
DP/RS 232C |
上述主从站可以组合实现三种典型通讯。这三种通讯是
⑴、带DP口的CPU主站与从站的通讯;如315-2DP与IM153
⑵、通讯处理器主站与从站的通讯;如CP342-5与EM277
⑶、带DP口的CPU主站与集成DP口配置的从站之间的通讯,如315-2Dp与 315-2DP。
在充分理解上面三种典型通讯的原理和配置组态的基础上,其他众多类型主从站实现要领大都差不多。这几种典型方式的具体实现,请见下文分解。
2.2 CPU315-2DP与IM153的通讯实现
这是最常见的一种DP式的通讯。配置时在将CPU插入槽位后,右键点击DP口首先增加主站,建立网段,最后设置主站的网络参数。随后,将从站IM153挂到网上并赋值网络参数。注意主从站网络参数的一致性。最后,将从站上的模板插入相应槽位即可。硬件配置" title="硬件配置">硬件配置一旦下载到CPU,主从站之间的数据交换即自动进行。在这种配置下,分布I/O" title="I/O">I/O通过IM153直接映射到CPU内存。硬件配置表中的地址内存存放的就是分布I/O的状态,见图三。配置要点见图一所示步骤。
2.3 CPU314+CP342-5与EM277的通讯实现
CP342-5作为主站也是最常见的DP通讯之一。配置过程较复杂,主要步骤参见图4~6。首先,我们将CP342-5放入槽位后需要开通主站,建立网段,相应网络参数的设定是必须的,大多数情况下可以沿用系统默认值。然后就是从站的组态。在硬件目录中找到所用从站EM277,挂接到主站所控制的网段上。从站的参数设置与主站看齐。最后是EM277的数据交换区的定义,见图6。很多用户问,此时硬件配置能组态的都完成了,为什么下载配置后总线故障灯还亮?仔细分析前面的配置,实际上我们只定义了CP342-5与EM277之间通讯必须的网络状态和参数。而分布I/O数据传递到了CP342-5之后,如何与CPU内存的对应没有声明。所以通讯是不通的。这也是FC1(DP_SEND)、FC2(DP_RECV)在通讯中所发挥的作用。以图6示例,如果要实现CPU中DB1与EM277之间I/O双向8Byte数据的交换,我们还需要运行下面这段程序。
CALL 'DP_SEND'
CPLADDR:=W#16#100 ;CP342-5的地址,16进制
SEND :=P#DB1.DBX0.0 BYTE 8 ;DB1的0~7共8个字节发往CP342-5
DONE :=M10.0
ERROR :=M10.1
STATUS :=MW12
CALL 'DP_RECV'
CPLADDR :=W#16#100 ;CP342-5的地址,16进制
RECV :=P#DB1.DBX8.0 BYTE 8 ;将CP342-5发来的8个字节存入DB1的8~15字节,
NDR :=M20.0
ERROR :=M20.1
STATUS :=MW22
DPSTATUS:=MB24
编程到这里,有了FC1、FC2的参与,通讯中数据传递的链路就完整了。CPU与-CP342-5的数据交换,需要调用功能函数,而CP342-5与从站EM277的信息交换是由CP342-5的运行选择开关触发自动进行。因此,概括CPU314+CP342-5与EM277通讯的数据交换过程可以用如下模型来描述。
CPU314 |
CP342-5 |
EM277 | ||
DB1.DBB0 |
—FC1—> |
QB0 |
——> |
VB0 |
. . . . . . |
—FC1—> |
. . . . . . |
——> |
. . . . . . |
DB1.DBB7 |
—FC1—> |
QB7 |
——> |
VB7 |
DB1.DBB8 |
<—FC2— |
IB0 |
<—— |
VB8 |
. . . . . . |
<—FC2— |
. . . . . . |
<—— |
|
DB1.DBB15 |
<—FC2— |
IB7 |
<—— |
VB15 |
2.4 CPU315-2DP与CPU315-2DP的通讯实现
两个315-2DP主站之间的数据交换是DP主站间通讯的典型示例。从硬件配置的过程来看,主站间通讯的组态与前两种有明显不同,图7~图9是组态的主要过程。由于定义主站需要用到从站的组态,所以这里我们必须首先对从站进行配置。首先完成从站的硬件配置,然后按图7所示,定义CPU的DP端口工作模式为 “DP SLAVE”,存盘。在配置好主站的其他硬件后,遵循图8所示,激活CPU端口的主站,建立网段。再在硬件目录中找到/PROFIBUS-DP/Configured Stations/CPU31 X,接入网络。系统马上弹出“DP Slave Properties”窗口,在这里我们就可以看到前面已经初步配置的从站CPU,参见图8。点击“Connect”进入数据交换区的设置。
具体交换区的建立和参数定义是根据实际应用的数据特点、数据量来定的。图9给出了相关参数设置内容,其中参数概念清晰,不再赘言。需要注意的一是在MS(主从)mode下,主站的I内存对应从站的O,主站的O内存对应从站的I。而在DX(直接)mode下,是I对I,O对O,没有交叉。另外需注意数据的一致性。
从上面的组态过程可以看出,DP主站间的数据通讯也是通过缓冲区来实现的。由于缓冲区建立在各自CPU的内存,硬件组态后即完成了通讯所有相关内容的定义。下图描述了主站间通讯的原理过程。
Master |
Mode=MS |
Slave |
Master |
Mode=DX |
Slave | |
O2 |
——> |
I12 |
O0 |
——> |
O20 | |
. . . . . . |
——> |
. . . . . . |
. . . . . . |
——> |
. . . . . . | |
O9 |
——> |
I19 |
O7 |
——> |
O27 | |
I16 |
<—— |
O16 |
I16 |
<—— |
I26 | |
. . . . . . |
<—— |
. . . . . . |
. . . . . . |
<—— |
. . . . . . | |
I31 |
<—— |
O31 |
I31 |
<—— |
I41 |
三、PROFIBUS-DP数据交换原理分析
虽然上文我们只介绍了两种主站和两种从站,但已经描述出DP通讯的共同特点。带CPU的接口模块" title="接口模块">接口模块与带集成端口的CPU的组态基本一样,各种CP之间也没有太大差别,而所有DP从站的不同仅仅在于数据交换区大小和组成上的一点差异,组态中所涉及的概念、方法、原理没有两样。
从配置组态的过程能明显看出DP设备工作遵循共同的原理。如果从机架扩展的角度来看,分布I/O只是本地机架扩展的补充。因此,网络配置中应用的也是类似的概念。如从站的接口模板都是以机架的形式挂接到网络上的,不同从站的差别一是机架上扩展的槽位数不同,二来是不同从站所带的“摸板”种类不同,三是相应槽位上能插接的“摸板”不同。广义上讲,不同类型不同密度的摸板本质上就是不同结构的通讯数据交换区。
尽管主站间通讯配置没有体现机架的概念,但随后数据交换区的定义则形象地体现了槽位和模板的概念。从数据交换的角度看,主站间通讯本质上与普通主从通讯是一样的。差别仅在两者上网的名份不同,主站间通讯的从站是以“站点”的形式,而后者如前所述,是以机架的形式。
因此我们可以用下面的图来表述DP通讯中数据交换的基本原理。
Master |
Slave | |
发送单元1 |
——> |
接收单元1 |
. . . . . . |
——> |
. . . . . . |
发送单元n |
——> |
接收单元n |
接收单元1 |
<—— |
发送单元1 |
. . . . . . |
<—— |
. . . . . . |
接收单元n |
<—— |
发送单元n |
虽然,IM153与主站通讯没有体现对应的两个缓冲区,如果我们将其看成两个缓冲区完全重叠的特例,数据交换的基本原理没有变。
四、小结
通过灵活多变可配置的数据交换区实现DP主从站的数据通讯是DP通讯的的基本原理。明白这个道理后,就可将DP网络的组态配置分为两部分,一是网络参数的设置,主要参数有网段、站号、波特率、协议规程、最高站号。另一方面就是数据交换区的定义。主要内容有输入/输出类型(“模板类型”)、交换区大小(模板I/O密度)、起止地址、数据一致性等几方面。多数情况下,网络正常工作的配置组态内容就已经齐备。当然,如果主站由CP担当,则还需要调用FC1、FC2实现CP与CPU的数据交换。
这些概念和原理、特征和方法不是只针对西门子的产品,因为PROFIBUS是开放的国际标准。只要是遵循PROFIBUS规程的产品,组态配置所面对的问题和办法都是一样的,你所知道、所认识、所掌握的知识和技能也都是适用的。配置时只要沿着原理所指明的方向,概念明确,组网非难事。