当前位置:首页 期刊杂志

PROFIBUS-DP主站和从站通讯的设计与实现

时间:2024-08-31

摘要:本文介绍了PROFIBUS现场总线技术的特点并结合SIEMENS公司的S7-300 PLC、通讯模块CP342-5 及ET200M等相关产品组建PROFIBUS-DP网络。讨论了该网络的组态、STEP 7程序的编制以及现场设备GSD文件的建立方法,并详细讨论了PROFIBUS-DP主从站数据交换的实现方法。

关键词:PROFIBUS-DP网络;通讯;可编程序控制器;网络组态

1 引言

PROFIBUS是近年来国际上最为流行的现场总线,也是目前数据传输率最快的一种现场总线(传输率可达12Mbit/s),因此在很多领域内得到了广泛的应用。它由三个兼容部分组成,即PROFIBUS-DP、PROFIBUS-PA和PROFIBUS-FMS。其中,PROFIBUS-DP在数据传输速率、效率和低连接成本方面特别适用于自动化系统与分散外围设备之间的通信。使用PROFIBUS-DP可取代24V(DC)或4~20mA信号传输。

PROFIBUS-DP用于现场的快速数据交换时,以中央自动化设备(如PLC/PC或过程控制系统)为主站,通过串行连接与分散的现场设备(如I/O、驱动器和阀门及测量变送器)组成通信网络。主站周期地读取从站的输入信息并周期地向从站发送输出信息,也可利用PROFIBUS-DP提供扩展的非循环通信服务,用于智能现场设备的参数化、诊断、操作监控和报警处理等,通信方式灵活方便。

2 基于PROFIBUS-DP的主站和从站的通讯

2.1 硬件部分

在综合分析PROFIBUS-DP网络各种典型配置后,本文构建的PROFIBUS-DP网络如下:以研华工控机(插有SIEMENS公司的CP5613通讯卡)作为上位机及一类主站;以S7-300 PLC作为智能从站,为具典型性两个从站选用不同的配置,从站1的CPU为CPU315-2DP(带集成的DP接口)不需要DP通讯模块,从站2的CPU为CPU314(不带DP接口)需要通讯模块CP342-5 ;以ET200M作为从站1的远程I/O从站(选用IM153-1接口模块),用于采集现场数据。以上设备通过PROFIBUS专用电缆连接到PROFIBUS-DP网络上。PROFIBUS总线连接器上带有终端电阻,在网络的终端站点需要将终端电阻开关设置为“ON”,网络的中间站点需要将终端电阻开关设置为“OFF”。

2.2 软件部分

2.2.1 网络组态

使用STEP 7或PROFIBUS专用组态软件COM PROFIBUS均能方便实现网络的组态,但只有STEP 7能对PLC模块编程,因此在较为复杂的应用系统中推荐使用STEP 7软件。上位机中装有SIMATIC STEP 7 及SIMATIC NET 软件。SIMATIC NET用于驱动CP5613通讯卡,设置OPC接口,并组态及监控网络。

PROFIBUS-DP网络的配置相当灵活,网络允许单子网或多子网配置,既可以单主-从网络,又可多主-從网络。用STEP 7进行网络组态时,首先要把设备的GSD文件安装到STEP 7硬件库中,然后才能够在STEP 7的硬件目录中找到该设备,从而实现对其进行组态。因此,掌握GSD文件的编写是非常重要的。

GSD文件是设备数据库文件,为了将不同厂家的PROFIBUS产品集成在一起,必须以GSD文件方式提供这些产品的功能参数。GSD文件包括三个部分:总体说明(厂商和设备名称、软硬件版本、支持的波特率等)、DP主设备相关的规范(如可连接从设备的最多台数或卸载能力)、从设备相关的规范(如I/O通道的数量和类型、诊断测试的规格及I/O数据的一致性信息)。编写GSD文件既可以使用PROFIBUS专用的GSD文件编辑软件,也可以直接在一般的文档编辑软件(如Windows附件中的写字板)中编写。下面介绍的示例有利于读者掌握GSD文件的编写,其中“;”后面为注释语句。

#Profibus_DP ;DP设备的GSD文件均以此关键字开头

GSD_Revision=1 ;GSD文件版本号

Vendor_Name=“SIEMENS” ;设备制造商

Model_Name=“Modular I/O Station” ;DP设备名称

Revision=“V1.0” ;DP设备版本号

Ident_Number=0x0032 ; DP设备识别号

Protocol_Ident=0 ;协议类型(0表示DP协议)

Station_Type=0 ;站类型(0表示DP从站,1表示DP主站)

FMS_Supp=0 ;不支持FMS,纯DP从站

Hardware_Release=“V1.0” ; DP设备硬件版本

Software_Release=“V1.0” ; DP设备软件版本

9.6_Supp=1 ;设备所支持的波特率,1为支持

19.2_Supp=1

MaxTsdr_9.6=60 ; 9.6kbps波特率时的最大从站延迟时间(单位ms)

MaxTsdr_19.2=60

Redundancy=0 ;是否支持冗余传输方式,0为不支持

Implementation_Type=“Software Solution” ; DP设备的实现方案

Freeze_Mode_Supp=1 ;是否支持锁定模式,1为支持

Syn_Mode_Supp=1 ;是否支持同步模式,1为支持

Auto_Baud_Supp=0 ;是否支持自动识别波特率,0为不支持

Max_User_Prm_Data Len=5 ;用户参数数据最大长度(0-237)

Min_Slave_Intervall=10 ;最小从站轮询时间,10表示最小轮询时间为1ms

Modular_Station=1 ;DP设备的类型,0为紧凑型,1为模块型

Max_Diag_Data_Len=10 ;诊断信息的最大长度(6-244)

Slave_Family=3 ;从站类型,3为I/O型

Module=“2 Byte In, 2 Byte Out”0x11,0x21 ;DP站的输入输出接口描述

EndModule

本系统由SIEMENS公司STEP 7软件组成的网络配置如图1。系统具体配置过程如下:

1) 通过STEP 7组态网络,设置网络波特率、主从站地址,给从站模块在主站内存区分配映射缓冲区,确定映射区起始地址及大小。

2)注意组态ET200M接口模块IM153-1的站地址必须与IM153-1上拨码开关设定的站地址相同。

3) 在“Set PG/PC Interface”中将CP5613的MPI改为PROFIBUS接口,并设置CP5613的传输速率与已组态的PROFIBUS网络的传输速率一致。

4) 在STEP 7软件诊断模式下测试整个网络,查看从站激活情况。

5) 硬件组态完成后下载至CPU中。

2.2.2 通讯编程

对网络编程主要目的是配置数据输入/输出通道缓冲区,建立CPU与现场设备之间的联系通道。SIMATIC 300系列CPU提供的数据存贮区域有3类:位存储区、过程映像区和数据块区。在数据流量较小的场合使用位存储区和输入/输出映像区能够建立CPU与外设的直接快速连接;当数据流量较大时,使用数据块存储区可以保证数据流通不紊乱。

PROFIBUS-DP主站建立网络,经初始化启动PROFIBUS-DP从站,主站将参数赋值信息和I/O配置写入到从站,然后主站从从站读取诊断信息,并验证从站已接收参数和I/O配置,接着主站开始与从站交换I/O数据。如有例外事件,从站会通知主站,然后主站从从站读取诊断信息。

对于从站1(使用CPU上集成的DP接口),对应的通信接口区是主站的I区和Q区,需要调用SFC14“DPRD_DAT”来读取PROFIBUS从站的数据,调用SFC15“DPWR_DAT”将数据写入PROFIBUS从站。SFC14及SFC15程序如下,其中“;”后面为注释语句。

CALL"DPRD_DAT"

LADDR: = W#16#0 ;输入区起始地址

RET_VAL: = MW2 ;状态字

RECORD: = P# I0.0 BYTE 10 ;输入数据区,最大240字节

CALL"DPWR_DAT"

LADDR: = W#16#0 ;输出区起始地址

RECORD: = P# Q0.0 BYTE 10 ;输出数据区,最大240字节

RET_VAL: = MW4 ;状态字

对于从站2(使用CP342-5通讯模块),它与CPU上集成的DP接口不一样,对应的通信接口区不是主站的I区和Q区,而是主站的虚拟通信区,须调用FC1“DP_SEND”来发送数据,调用FC2“DP_RECV”接收数据。FC1及FC2程序如下,其中“;”后面为注释语句。

CALL"DP_SEND"

CPLADDR: = W#16#100 ;CP模块的起始地址

SEND: = P# M10.0 BYTE 10 ;發送数据存储区

DONE: = M1.0 ;发送完成一次产生一个脉冲

ERROR: = M1.1 ;错误位

STATUS: = MW2 ;调用FC1时产生的状态字

CALL"DP_RECV"

CPLADDR: = W#16#100 ;CP模块的起始地址

RECV: = P# M50.0 BYTE 10 ;接收数据存储区

NDR: = M1.2 ;接收完成一次产生一个脉冲

ERROR: = M1.3 ;错误位

STATUS: = MW4 ;调用FC2时产生的状态字

DPSTATUS: = MB6 ;PROFIBUS-DP的状态字节

FC1(对于从站1为SFC15)用于将数据从DP主站传送到DP从站,FC2(对于从站1为SFC14)用于将数据从DP从站传送到DP主站。在编制程序时,必须保证在每个主程序循环(OB1)中FC1和FC2至少被调用一次,以保证程序正确执行。程序结构如图2所示。

将整个项目分别下载到主站和从站的CPU中,系统正常启动后,可以进行DP主站和从站的通讯。

3 结束语

本文结合具体的实验系统介绍了实现PROFIBUS-DP网络主从通讯的具体方法,并已通过实验证明该系统通信稳定、可靠,取得了良好的控制效果。在本文所论述方法的基础上,通过修改应用程序可以很好的满足实际工程中主从站数据通讯及主站对从站的监控等要求,具有广泛的通用性和实用参考价值。由于PROFIBUS-DP的协议开放、实时性好,数据传输速度快,系统实现简单,可靠性高,符合现代工业网络发展的趋势,必将在未来一段时间内得到广泛的应用。

本文作者创新点:本文根据目前工业实际生产中PROFIBUS-DP网络通讯采用的各种实现方法,总结出了一套实现起来方便快捷、简单易行的PROFIBUS-DP网络通讯方法。本文深入浅出、条理清晰、内容完整并配有例图与程序,详细叙述了PROFIBUS-DP网络通讯的设计与实现方法。同时在本文所论述方法的基础上,只需修改应用程序就可以很好的满足实际工程的需要,具有广泛的通用性和实用参考价值。

参考文献

[1] 崔坚,西门子工业网络通讯指南,机械工业出版社,2005.

[2] 潘笑,潘婧,基于PC的PROFIBUS-DP监控系统设计,微计算机信息,2005年第21卷第9-1期17-18页.

[3] SIEMENS Device Description Data Files GSD,2002.

[4] SIEMENS Corporation.Fieldbus Technology Handbook on PROFIBUS-DP[M],1999.

Biography:

Wangyichao, 1984, male, han, engineer, Engage in the electricity automation technique .

作者简介:

王沂超(1984—)男,汉,工程师。主要从事电气自动化技术工作

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!