微波EDA网,见证研发工程师的成长!
首页 > 通信和网络 > 通信网络技术文库 > 采用Profibus-DP实现控制系统通信的方法

采用Profibus-DP实现控制系统通信的方法

时间:12-08 来源:互联网 点击:
当前在国际上有影响的现场总线标准很多,其中,Profibus-DP主要用于中央处理器与分散外围设备之间的高速数据通信,解决自动控制系统(如PLC、PC等)通过高速串行总线与分散的现场设备(I/O、驱动器、阀门等)之间的通信问题。本文采用Profibus-DP实现了西门子公司S7系列的PLC系统和和利时公司的CPU24x和CPU21x系列PLC的通讯互连。



图1 主-从通信系统配置



图2 在从站模式下CPU和CP数据交换原理示意图

系统设计

和利时的CPU24x和CPU21x一般作为主站设备,而西门子S7-300 PLC的CPU 315-2DP、CP342-5等既可做主站也可做从站。当它们做从站时,可设计为被动从站或主动从站。被动从站执行简单的DP协议功能,相当于简单从站;主动从站在总线中可以取得令牌,然后在确定的时间窗口中可以与从站通信,它除了支持简单的DP协议功能外,还支持一些其它的服务,如支持FDL服务、S7、PG等。另外,CP342-5和带CP5611卡的PC站还可实现二类DP主站、用于编程、诊断等功能。

因和利时公司的CPU24x和CPU21x的 PLC为主站设备,在系统中只能做主站,因此本设计把西门子的设备S7-300和S7-200 PLC作为从站,利用Profibus-DP的主-从通信原理实现他们的通信。系统配置如图1所示。

在图1中,和利时 PLC使用Profibus-DP通信模块FM208连接到Profibus-DP网络,FM208通信模块为DP主站模块,在DP网络中做DP主站。所有的西门子DP从站设备都可以作为FM208的从站连接到DP网络中,并通过使用DP通信协议实现相互间的直接数据通信。在此,西门子的S7-300、S7-200 PLC和变频器分别通过Profibus-DP通信模块CP 342-5、EM 277和CBP2做为和利时PLC的FM208的从站,并实现相互通信。

通信编程

用于DP主站的用户程序

用于DP主站的用户程序都已集成在Profibus-DP通信模块FM208中,用户只需完成以下几个方面的组态及设置即可完成主站的用户编程。

(1) DP网络组态,用WinNCS软件完成。

① 启动WinNCS软件,网络类型选取Profibus。然后在Profibus网络中插入主站,系统默认CPU24x为主站,指定其DP主站地址为2,总线网络的传输速率为1.5Mbps。

② 在FM208主站中插入DP从站CP342-5、EM277和CBP2,对应的DP网络地址为3、4、5。CP342-5的I/O数据选择16个字进16个字出,EM277的I/O数据模块选择8个字进8个字出,CBP2的数据类型选择PPO3。各从站的I/O数据在主站FM208中按顺序自动指定相应的地址。

③ 编译并保存文件,然后下载到通信处理器FM208中。

(2)FM208配置的从站I/O数据地址在CPU241中的地址分配。

根据用WinNCS配置的从站数及设定的I/O数据起始地址和长度,可以在PLC程序的数据块DB1中为其指定数据寻址地址。例如上述从站I/O起始地址都是从0开始,数据总长度各为28个字,在DB1中加入地址配置指令:

KC='UAT: 0 28 0 28 ;END'

在PLC用户程序中,直接根据上述设定的地址就可寻址从站的过程数据,不需要额外的通信编程。

用于DP从站S7-300的用户程序

S7-300 PLC通过CP342-5作为主站和利时PLC的从站,为确保数据通信的实现,需完成以下工作。

① 组态CP342-5做从站。

② 编写从站用户程序,并下载到S7 PLC。

③ 启动和调试DP从站和DP主站。

④ 通信异常诊断。

(1)CP功能

CP342-5用作DP从站可以被DP主站组态为智能从站或模块化主站,做从站时可以组态为被动从站或主动从站,但不允许在组态为从站的同时组态为主站。用作主动从站时除了提供从站服务功能外,还可以提供如FDL连接服务等其它的通信服务。CP342-5的主要功能有:

① 从主站接收用于配置和组态的参数,包括过程输出数据和传递到CPU的数据。

② 从CPU的DP数据域接收输入数据,为DP主站准备数据。

③ 给DP主站准备拾取和*估的诊断数据。

④ 给2类主站准备读取的I/O数据。

(2)数据交换原理

DP主站与DP从站的数据交换采用轮循方式,使用DP数据域中的接收缓冲区与发送缓冲区来完成。DP主站启动数据交换,将数据输出到输出缓冲区,并从输入缓冲区将数据取回,其原理如图2所示。

CPU和CP间的数据交换是通过在CPU循环中调用S7的DP_RECE和DP_SEND功能来实现的。其中,DP_RECE功能是接收由DP主站发送到从站CP的接收缓冲区的数据,然后把数据输出至CPU指定的DP数据域。而DP_SEND则是把CPU中指定的DP数据域中需传输的数据传送至CP的发送缓冲区,然后传输到DP主站。

(3)用户程序

在S7 PLC中,CPU中的用户数据域可以为过程映像、位寄存器以及数据块,在本用户程序中使用了数据块。在S7用户程序的Blocks目录下,定义两个数据块DB1和DB2,分别用于存放接收和发送的数据,然后在循环执行的组织块OB1中调用DP_RECE和DP_SEND功能。

当DP主站改变运行模式或崩溃时,操作系统通过调用从站上的某个OB作出反应。如果从站上的这些OB丢失,则CPU会立即自动地切换到STOP。因此为了防止这种情况,需在从站建立相关的OB。

当主站的CPU从RUN转换到STOP时,在从站的组织块OB82(诊断中断)将被调用。为防止CPU由于不存在OB82而停止,需在S7-300站的Blocks文件夹中插入组织块OB82。

同理,当DP主站崩溃时,在从站上将调用组织块OB86(机架故障)。为了防止S7-300从站的CPU在这样的情况下进入STOP,需在S7-300站的Blocks文件夹中插入组织块OB86。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top