资源描述
(9)S7-300通信基础
第9章 S7—300的通信基础
S7-300的通信分三层网络结构。现场设备层(现场层)的功能是连接现场设备。这一层主要使用AS—I(执行器—传感接口)网络。车间监控层(单元层)的功能是用来完成车间 主设备之间的连接,实 现车间级设备的监控。工厂管理层(管理层)的功能是用来汇集各车间管理子网,通过网桥或路由器等连接的厂区骨干网的信息于工厂管理层。
9。1 S7-300的通信网络
1 MPI的通信网络
MPI是多点接口的简称.S7-300/400 CPU都集成了MPI通信协议和MPI的物理层RS—485接口。PLC通过MPI能同时连接STEP 7 的编程器、 计算机、 人机界面(HMI) 及其它 S7 、 M7和C7。STEP 7用户界面提供了PLC硬件组态功能,使得PLC硬件组态很简单。STEP 7用户界面提供了通信组态功能,使通信组态也变得简单.
联网的CPU可以通过MPI接口实现全局数据(GD)服务,周期性地相互进行数据交换。每个CPU可以使用的MPI连接总数与CPU的型号有关.通过全局数据通信,一个CPU可以访问另一个CPU的位存储器、输入输出映像区、定时器、计数器和数据块中的数据。对S7、M7和C7的通信服务可以用系统功能块来建立。
MPI的通信网络可以用来完成车间主设备之间的连接
2 PROFIBUS通信网络
PROFIBUS是用于车间级监控和现场层的通信系统。S7—300/400 PLC可以通过通信处理器或集成在CPU上的Profibus-DP接口连接到Profibus—DP网上。带有Profibus-DP主站/从站接口的CPU能实现高速和使用方便的分布式I/O控制.Profibus 的物理层是RS- 485接口。最大传输速率为12M Bit/S,最多可以与127个节点进行数据交换.网络中可以串接中继器,用光纤通信距离可达90Km。可以通过CP342/343通讯处理器将S7—300与PROFIBUS-DP或工业以态网系统相连。
主站设备为带有PROFIBUS—DP接口的S7-300/400的CPU 、 CP443-5和IM467;CP342—5;CP343-5;带有DP接口或DP处理器的C7;以及西门子某些老型号PLC 、 PG和OP。
从站设备 为分布式I/O设备ET200;通过通信处理器CP342—5的S7—300 、带有DP接口的S7-300 、 S7-400和带有EM277通信模块的S7-200。
PROFIBUS通信网络可以用来完成车间主设备和现场层之间的连接。
3 工业以态网
工业以态网用于工厂管理层和单元层的通信系统。用于对时间要求不太严格,需要传送大量数据的场合。西门子的工业以态网的传输速率为10M /100M Bit /S,最多可以达到1024个网络节点,网络的最大范围为150Km。
图9-1 MPI网络的连接
4 点对点连接
点对点连接可以连接两台S7 PLC和S5 PLC 、以及计算机、打印机和条码阅读器等。可通过CPU 313C—2ptp和CPU 314C—2ptp集成的通信接口建立点对点连接。
点对点连接的接口可以是20MA(TTY)、 RS—232C、 RS—422和RS-485。全双工模式(RS—232C)最高传输速率19.2 KBit/S,半双工模式(RS-485)最高传输速率38.4 KBit/S.
5 AS-I的过程通信
AS—I为执行器-传感器接口,是位于自动控制系统最底层的网络,用来连接有AS-I接口的现场二进制设备.CP342—2通信处理器是S7—300和分布式I/O ET200M的AS-I主站。AS-I主站最多可以连接64个数字量或31个模拟量AS—I从站。通过AS—I接口,每个CP最多可访问248个数字量输入和184个数字量输出。
9。2 MPI通信技术
1 MPI网络结构
每个S7—300/400 CPU 都集成了MPI接口通信协议和RS—485通信接口.每个CPU可以使用的MPI连接总数与CPU的型号有关(CPU312为6个,CPU418为64个)。联网的CPU可以通过MPI接口实现全局数据(GD)服务,周期性地相互交换少量的数据。最多可以与一个项目中的15个CPU建立全局数据通信。
每个MPI 节点都有自己的MPI 地址(0~126),PG、HMI和CPU的默认地址分别为0、 1、 2。见图9-1.
MPI默认的传输速率为187。5 k bit/s或1。5 M bit/s,与S7-200通信时只能指定为19 。2 k bit/s.两个节点间最大距离为50m,加中继器后为1000m。
2 MPI网络的组建
图9-2 插入网络的站
建立了一个项目,并且进行了一个站(含一个CPU)的硬件组态,还不能组建PLC网络。为了建立MPI网络,必须建立多个站,由这些站组建MPI网络.具体操作需要如下步骤。
1) 插入MPI网络的站
激活要建立MPI网络的项目,选择菜单栏的插入选项(Insert),在插入子菜单中选择建站选项(Station),这样在该项目中就插入了一个站。经过硬件组态就完成了一个建站任务。同样方法可以其余所需站的建立工作。见图9-2.
2)插入MPI网络
图9—3 插入子网络
激活要建立MPI网络的项目,选择菜单栏的插入选项(Insert),在插入子菜单中选择组建子网络选项(Subnet)中的MPI网络,这样在该项目中就插入MPI网络,见图9-3.
插入MPI网络后的项目见图9-4。
图9—4 项目插入的站和网络
进行网络组态,要在激活要建立MPI网络的项目中,双击要组态的MPI网络,进入网络组态(NetPro)界面。
3)网络的连接和修改通信参数
图9—4 MPI网络
建立连接的方法是在网络组态(NetPro)界面中,用鼠标左键压住站的红点,并拖到MPI网线上,从而建立了一个连接。用同样方法建立其它站的连接。见图9-4。
修改通信参数的方法是用鼠标右键点击各站,打开“PROPERTIES-MPI INTERFACE”界面。可以设置修改该站的通信参数。修改后要注意存盘。
3 关于全局数据
在MPI网络中,参与全局数据交换的CPU构成了全局数据环(GD DIRCLE).
同一个GD环中的CPU应该是相同的。各CPU可以向环中其它的CPU发送数据(用“>”表示)或接收数据(无“>”符号),在一个MPI网络中,可以建立多个GD环.
如表9-1中GD环1是由CPU314和CPU313组成,GD环2是由CPU314、CPU313和CPU315组成,GD环3是由CPU314和CPU315组成。
具有相同的发送者和接收者的全局数据可以集合成一个全局数据包(GD PACKET)。如GD环1中有两个数据包有数据包,GD环2和GD环3各有一个数据包。中的变量有变量的编号。
一个数据包中可以有多个数据。如GD 3。1.2 表示3号GD环、1号GD包中的2号数据。
表9-1 MPI网络的全局数据GD环
GD ID
SIMATIC 300(1)\
CPU314
SIMATIC 300(2)\
CPU313
SIMATIC 300(3)\
CPU315
1
GD 1。1。1
〉 MW0
QW0
2
GD 1.2。1
QW0
〉 IW0
3
GD 2。1。1
> MB10:2
MB20:2
MB30:2
4
GD 3。1.1
MW20:2
> DB2.DBW0:2
5
GD 3。1。2
MB30:2
> QB0:2
如果采用MPI全局数据通信CPU314中MW0中的数据可以通过GD环1传送到CPU313的QW0中。CPU313中IW0中的数据可以通过GD环1传送到CPU314的QW0中。
1)生成全局数据表
全局数据是MPI通信数据表,它设定了在MPI通信中哪些PLC之间可以构成通信的数据环。生成全局数据需要如下操作。
· 生成空GD表
在“NetPro"窗口,选重MPI网络线(变粗).执行菜单“Options”中的Define Global Data(定义全局数据)命令,打开MPI的GD表.
· 填写CPU
图9-6 生成空GD表
在打的GD表中,双击 “GD ID”右边的方格,在出现的“Select CPU”对话框中双击站1的CPU图标,该CPU就出现 在“GD ID”右边的方格中。用同样方法将站2的CPU和站3的CPU 放到对应的方格中。如图9—6。
· 填写GD包
在CPU下面的一行中生成1号GD环1号GD包中的1号数据。用鼠标右键点击CPU314下面的方格,在出现的菜单中选择“Sender”(发送区),该方格变深色,且在左端出现“>”符号。这时输入要发送的全局数据的地址(MW0)。点击CPU313下面的方格单元,输入要接收的全局数据的地址(QW0)。该方格的背景为白色,表示在该行中CPU313是接收站(Receiver)。用同样方法可以填写其余的GD数据.
每行中应定义一个并且只能有一个CPU作为数据的发送方,要输入数据的绝对地址.变量的复制因子(冒号后面的数据)是用来定义数据区的长度的。如MB20:8 表示数据区是从MB20开始的连续8个字节,加上 两个说明字节,共占10个字节的区域。MW0:11表示数据区从MW0开始的连续11个字,加上两个说明字节,共占24个字节的区域。S7-300 CPU可以发送和接收的GD包个数与CPU的型号有关(4到8个),每个GD包最多22B数据。最多16个CPU可以参与GD数据交换。
2)编译GD表
· 第一次编译GD表
执行菜单命令GD Table的选项Compile…则生成GD环,并进行第一次编译。
第一次编译GD后,执行“View”的“Status”。在出现的GDS行中可以给每个数据包指定一个用于状态双字的地址。其中GST是各GDS行中的状态双字相“与”的结果。状态双字使用户程序能及时了解通信的有效性和实时性,增强了系统的诊断能力。
图9-7 经编译后的GD表
第一次编译GD以后,执行“View”的“Scan Rates”.每个数据包将增加标有“SR”的行,用来设置该数据包的扫描速率(1~255)。S7-300默认值为8,S7—400默认值为22。扫描速率可重新设置。经编译后的GD表如图9-7所示.
· 第二次编译GD表
设置GD包状态双字的地址之后,可以进行第二次编译GD并保存.在CPU在STOP下,将GD包下载. 当CPU转为RUN时,各CPU之间开始自动地交换全局数据。
4 MPI网络通信方式
1)需要GD环组态的MPI通信
建立了GD环,就可以使用GD环在各个CPU之间进行通信.这种通信的关键是CPU把要读取的数据从GD环上摘下来,把要发出的数据挂到GD环上就可以了。
· 在CPU315—2DP的OB1中编写程序
Network1:
A M 0。0
= L 20。0
A L 20。0
JNB _001
L PIW 256
T MW 100
_001: NOP 0
A L 20.0
JNB _002
L PIW 258
T MW 102
_002: NOP 0
该程序表明,如果CPU315-2DP的M0.0=1,CPU315—2DP中的PIW256和PIW258的数据被传送到CPU314的MW100和MW102中。
· 在CPU314-的OB1中编写程序
Network1:
A M 0。0
= L 20.0
A L 20。0
JNB _001
L IW 0
T MW 100
_001: NOP 0
A L 20。0
JNB _002
L QW 4
T MW 102
_002: NOP 0
该程序表明,如果CPU314的M0.0=1,CPU314中的IW0和QW4的状态被传送到CPU315—2DP的MW100和MW102中。这是需要组态的MPI通信方式。
2)不用GD环组态的MPI通信
不用GD环组态的MPI通信用于S7—300/400之间和S7—300/400与S7—200之间.是一种应用广泛、经济的通信方式。
(1)需要双方编程的S7-300/400之间的通信
首先要建立一个项目,对两个PLC的MPI网络组态。假设A站和B站的MPI地址分别为2和3。使用 SFC65 “X_SEND” 和 SFC66 “X_RCV” 发送和接收数据。
发送程序可以放于循环中断组织块OB35中,接收程序可以放于循环组织块OB1中。
例:在A站(2号站)的PLC的定时循环中断组织块OB35中编写发送程序,把A站中的MB20~MB24发送到B站(3号站)中的MB30~MB34中。在B站(3号站)的OB1中编写接收程序,把A站(2号站)发送到的数据存入B站(3号站)的MB30~MB34中.
· A站(2号站)PLC的OB35中的发送程序:
Network1:通过MPI发送数据
CALL ”X_SEND” //调用发送功能SFC 65
REQ :=TRUE //激活发送请求(BOOL 1有效)
CONT :=TRUE //发送完成后保持连接(BOOL 1连续)
DEST_ID:=W#16#3 //接收方的MPI地址(WORD)
REQ_ID :=DW#16#1 //任务标识符 (WORD)
SD :=P#M 20。0 BYTE 5 //本地PLC发送区(ANY)为M20~ M24的5个字节
RET_VAL:=LW0 //返回的故障信息(WORD)
BUSY :=L2。0 //发送状态(ANY 1为发送中)
· B站(3号站)PLC的OB1中的接收程序:
Network1:从MPI接收数据
CALL ”X_RCV" //调用接收功能SFC66
EN_DT :=TRUE //激活接收功能(BOOL 1有效)
RET_VAL:=LW0 //返回的故障信息(WORD =W#16#7000为无错)
REQ_ID :=LD2 //SFC 65标识符 (DWORD)
NDA :=L6.0 //排队数据(BOOL 0没有新的排队数据)
RD :=P#M 30。0 BYTE 5 //本地PLC接收区(ANY)为M30~M34的5个字节
也可以用梯形图编写通信程序。在STEP 7编程环境中,用语句表编程调用系统功能和系统功能块时,只要输入调用指令即可。用梯形图编写调用系统功能和系统功能块时,首先要生成所需要的系统功能和系统功能块。生成所需要的系统功能和系统功能块的方法如下所述。
点击指令树的程序库(Libraries),打开子库。点击子库的标准库(Standar Library),打开标准库。点击标准库中的系统功能块(System Function Blocks),打开系统功能块目录.在系统功能块目录中,双击需要的系统块(如SFC 65…),生成所需要的系统块。
(2)只需要一个站编程的S7-300/400之间的通信
首先要建立一个项目,对两个PLC的MPI网络组态。假设A站和B站的MPI地址分别为2和3.使用 SFC68“X_PUT" 和 SFC67“X_GET" 发送和接收数据。
发送和接收程序可以放于一个站的循环中断组织块OB35中, 或者发送程序放于OB35中,接收程序放于OB1中。
· 例如在A站(2号站)的PLC的定时循环中断组织块OB35中编写发送程序和接收程序.首先利用SFC 68 把A站中的MB40~MB49中的10B数据发送到B站(3号站)中的MB50~MB59中。完成A站向B站写入数据。然后利用SFC 67 把B站中的MB60~MB69中的10B数据读入到A站中的MB70~MB79中。完成A站读取B站的数据.
注意:SFC 69 “X_ABORT” 可以中断一个由“X_PUT” 、 “X_GET”建立的连接.如果SFC 68、SFC 67的工作已经完成(BUSY=0),调用SFC 69 “X_ABORT”后,通信双方的连接资源被断开。
· OB35中的程序:
Network1:用SFC 68发送数据本站(A站)的数据到对方(B站)
CALL "X_PUT" //调用SFC 68
REQ :=TRUE //激活发送请求(BOOL 1有效)
CONT :=TRUE //发送完成后保持连接(BOOL 1连续)
DEST_ID :=W#16#3 //接收方的MPI地址(WORD)
VAR_ADDR:=P#M 50。0 BYTE 10 //对方的数据接收区(ANY)为M50~M59的10个字节
SD :=P#M 40。0 BYTE 10 //本地的数据发送区(ANY)为M40~M49的10个字节
RET_VAL :=LW2 //返回的故障信息(WORD)
BUSY :=L2.1 //发送状态(ANY 1为发送中)
Network2:用SFC 67 读取对方(B站)的数据到本站(A站)
CALL ”X_GET” //调用SFC 67
REQ :=TRUE //激活读取请求(BOOL 1有效)
CONT :=TRUE //接收完成后保持连接(BOOL 1连续)
DEST_ID :=W#16#3 //对方(B站)的MPI地址(WORD)
VAR_ADDR:=P#M 60。0 BYTE 10 //要读取的对方的数据接收区(ANY)为M60~M59的10个字节
RET_VAL :=LW4 //返回的故障信息(WORD)
BUSY :=L2.2 //发送状态(ANY 1为发送中)
RD :=P#M 70。0 BYTE 10 //本地的数据接收区(ANY)为M70~M79的10个字节
9。3 PROFIBUS通信技术
PROFIBUS是不依赖生产厂家的、开放式的现场总线。各种各样的自动化设备都可以通过同样的接口交换信息.
PROFIBUS由三部分组成,PROFIBUS-FMS﹑PROFIBUS-PA和PROFIBUS-DP。其中PROFIBUS-FMS(现场总线报文规范)定义了主站与从站之间的通信模型,PROFIBUS—PA(过程自动化)用于过程自动化的现场传感器和执行器的低速数据传输,PROFIBUS—DP(分布式外围设备)用于自动化系统中单元级控制设备与分布式I/O的通信.
PROFIBUS每条总线区可以连接32个设备,不同区段可以用中继器连接。PROFIBUS的传输速率可以在9。6kbps~12Mbps选择。PROFIBUS提供244B报文格式,提供通信接口的故障安全模式.
1 PROFIBUS网络的特点
PROFIBUS网络保证了高速数据传输,特别适合于PLC与现场级分布式I/O(ET200)设备之间的通信.
PROFIBUS网络主站之间的通信为令牌方式,主站与从站之间为主从方式,以及这两种方式的组合。
S7—300/400系列PLC有的配有集成的PROFIBUS—DP接口, S7—300/400也可以通过通信处理器(CP)连接到PROFIBUS网络.在危险区每个DP链路可以连接15个现场设备,在非危险区每个DP链路可以连接31个现场设备.
图9—8 PROFIBUS网络的构成
PROFIBUS可以使用多种通信介质.使用屏蔽双绞线电缆时最长通信距离为9。6KM,使用光缆时最长通信距离为90KM,最多可以接127个从站。见图9—8.
PROFIBUS网络传输速率9.6kbit/s~12Mbit/s, 一个总线段最多可以接27个站,带中继器最多可以接127个站,中继器一般不超过3个。一个总线段的两端要有总线终端电阻。
PROFIBUS的RS-485总线采用半双工、异步的传输方式,1个字符帧由8个数据位、1个起始位、1个停止位和1个校验位组成(共11位),PROFIBUS标准总线推荐总线站与总线的相互连接使用9针D型连接器。几乎所有标准的PROFIBUS总线连接器上都集成了总线终端器,可以由跳接器或开关来选择使用它.
2 PROFIBUS的设备
1) 主站设备
一类主站是系统的中央控制器.如:CPU 315-2DP、 CPU 316-2DP等等.
另一类主站是DP网络中的编程、诊断和管理设备.如:以PC为操作平台的主站、操作员面板/触摸屏(OP/TP)。
2)从站设备
DP从站是进行输入信息采集和输出信息发送的外围设备。如:分布式I/O(ET200…),PLC智能DP从站(CPU 315—2DP、 CPU 316—2DP),具有PROFIBUS—DP接口的其它现场设备。见图6-34。
· 紧凑型DP从站
紧凑型DP从站具有固定的输入/输出区。如:ET200B。 ET200B模块系列提供不同电压范围和不同数量的I/O 通道的模块。
· 模块型DP从站
模块型DP从站具有可变的输入/输出区,可以用S7组态软件HW Config 定义它们。如ET2OOM.ET200M是典型的模块化的分布式I/O。S7-300可以接8个模块,连接256个I/O通道。它需要一块ET200M接口模块(如IM153)与主站通信。
在组态时,紧凑型DP从站和模块型DP从站的I/O地址由主站统一编址。主站的CPU访问各个从站的I/O模块就象访问主站自己内部的I/O模块一样,通过统一的I/O地址直接访问它们。
· 智能从站(I从站)
在PROFIBUS网络中,某些PLC可以做DP接口的从站,称为智能从站。主站不能直接访问智能从站的I/O模块,而是通过主站和智能从站的空间传输区实现的。例如主站可以通过Q2000~Q2009向智能从站I2000~I2009写入数据。主站也可以通过I1000~I1009读入智能从站Q1000~Q1009提供的数据。则主站的空间传输区为Q2000~Q2009和I1000~I1009。智能从站的空间传输区为Q1000~Q1009和I2000~I2009.这种传输方式称为主从(Master/Slave)方式。应该指出的是空间传输区不应该占用I/O的物理区。
3)PROFIBUS通信处理器
· CP342-5通信处理器
CP 342-5是将SIMATIC S7—300和S7系列PLC连接到PROFIBUS—DP总线的DP主/从站接口模块。通过接口模板IM360/361,CP342—5可在主机架和扩展机架上。CP342-5可以作为主站自动处理数据传输,也可以为从站允许S7—300与其它PROFIBUS主站交换数据。CP342-5的S7通信功能用在S7系列PLC之间、PLC与PC机和OP之间的通信。
· CP443-5通信处理器
CP443-5用于PROFIBUS-DP总线的通信处理器,提供S7通信,S5兼容通信,与PC机、PG/OP的通信和PROFIBUS—FMS。PC443-5分基本型和扩展型,扩展型作为DP主站运行。
3 基于组态的PROFIBUS—DP通信
PROFIBUS—DP是用于自动化系统中单元级控制设备与分布式I/O的通信。S7—300/400系列PLC不少都有集成的PROFIBUS-DP接口,加上由ET200B构成的大量固定的I/O模块和由ET200M构成的大量可变的I/O模块,使得S7-300/400系列PLC非常方便地组成分布式控制系统。
1)设置PROFIBUS-DP网络
· 生成PROFIBUS—DP网络
用鼠标右键点击管理器左上方的“项目”对象,选择菜单栏的插入选项(Insert),在插入子菜单中选择组建子网络选项(Subnet)中的PROFIBUS网络,这样在该项目中就插入PROFIBUS网络。
· 设置PROFIBUS—DP网络参数
双击PROFIBUS网络线,打开“Properties-PROFIBUS”窗口,选择“Network Settings”选项,设定参数。如,传输速率=1.5 Mbit/s、总线行规(PROFILE)=DP 、最高站地址=126(单主站)等等。见图9—9。
图9-9设置PROFIBUS-DP网络参数
2)设置PROFIBUS-DP主站
· 生成一个主站
打开SIMATIC MANAGER(管理器)建立一个新的项目,选择一个主站的CPU(如CPU 315-2DP).在管理器中选择已经生成的主站“SIMATIC 300 Station”。双击“Hardwre”图标,进入“HW Config"硬件组态窗口。在CPU的机架中添加相应的模块.
· 设置主站通信属性
选择SIMATIC 300站,双击“Hardwre” 图标,打开“HW Config" 硬件组态窗口,生成网络组态图(NetPro)。双击DP所在的行,打开DP接口对话框。利用GENERAL设置NAME.
图9—10设置PROFIBUS—DP主站/从站参数
利用“General”选项卡设置名称。利用“Operating Mode”选项卡设定主站(Master)或从站(Slave)。利用“Configuration”选项卡设定通信参数区.见图9-10。
3)设置PROFIBUS-DP从站
(1) 组态DP从站ET200B
回到网络组态(NetPro)窗口,激活主站CPU图标。点击“Catalog”图标,打开PROFIBUS—DP文件夹的ET200B中的“B—16DI/16DO”。选择完参数,按确定。则ET200B从站被接入网络。右击B—16DI/DO图标,打开B—16DI/DO属性页,可以查阅或修改参数.其中“SYNC/FREEZE CAPABILITIES”指出DP从站能否执行由DP主站发出的SYNC(同步)和FREEZE(锁定)控制命令。诊断地址“DIAGNOSTIC ADDRESS”用于OB 86 ,通过它读出诊断信息。监控定时器功能选择,可以在预定时间内没有数据通信,DP从站将切换到安全状态,所有输出被置为 0 状态。
在PROFIBUS网络系统中,各站的输入/输出自动统一编址。例如本例中,CPU315-2DP的16点DI模块的输入地址为IB0和IB1,16点DO模块的输出地址为QB0和QB1。
而ET200B(16DI/16DO)模块的输入地址为IB2和IB3,16点DO模块的输出地址为QB2和QB3。
(2) 组态DP从站ET200M
组态ET200M与ET200B的方法基本相同。在NETPRO中,打开ET200M文件夹,选择接口模块“IM 153”,生成ET 200M从站。在CPU 315—2DP的硬件组态中,激活IM 153的机架结构,在4~11行插入S7—300系列模块,如,SM 334(AI4/AO2)插入槽4,SM 323(DI16/DO16)插入槽5。则SM 334(AI4/AO2)的地址为AIW256~AIW262和AQW256~AQW258。SM 323的地址为IB4~IB5和QB4~QB5.
(3) 组态一个带DP 接口的智能DP从站
· 建立一个S7-300站对象:进入SIMATIC管理器,用鼠标右键点击项目对象,在打开的菜单中选择“INSERT NEW OBJECT” →“SIMATIC 300 STATION”,插入新的站。
· 对站的硬件组态:双击新站的“HW CONFIG"图标,对站进行硬件组态。生成机架,插入CPU 316—2DP(V0~V2型),PS 307 5A、SM 334 AI 4/AO 2(第4槽)、 SM323 DI 16/DO 16(第5槽).
· 修改站的属性:双击 DP 所在的行,在打开的“Operating Mode"中将该站设为从站(DP Slave)。
· 组建PROFIBUS子网络:进入子网络组态(NetPro),激活主站CPU 315-2DP,将从站CPU 316-2DP接入PROFIBUS子网络。(或双击CPU316-2DP的DP图标,进入DP网设置,选择DP网号)见图9—11。
4)PROFIBUS—DP通信的组态
(1) DP主站与“标准"的DP从站的通信
图9-11 PROFIBUS-DP网络的组态
DP主站可以直接访问“标准”的DP从站(如,紧凑型DP从站ET200B和模块式DP从站ET 200M)的分布式输入/输出地址区。
(2) DP主站与智能DP从站的通信
DP主站不能直接访问智能DP从站的输入/输出,而是访问CPU的输入/输出地址空间。由智能从站处理该地址与实际的输入/输出之间的数据交换。组态时指定的用于主站和从站之间交换数据的输入/输出区不能占据I/O模块的物理地址区。
· DP主站与智能DP从站的通信的组态
主站与从站之间的数据交换是由PLC操作系统周期性自动完成的,不需要用户编程。但是,用户必须对主站和智能从站之间的通信连接和数据交换区组态。这种通信方式叫MS方式。
MS通信方式的组态方法如下。
打开网络组态(Netpro)并激活主站,打开PROFIBUS—DP中的“Configured Stations”项,双击“CPU 31X—2 DP”图标,弹出从站属性对话框。由“通项"选从站(如“S7—300 CPU 31X-2DP”设为“S7-300 CPU 316—2DP”。“连接项”在确定PROFIBUS网络、从站节点号、等没有问题时点击“Connect"给予确认.组态项要求填好组态表.如通信方式为“主从方式(MS)”,从站的输入/输出通信区为“I 1000、Q 2000”,主站(PROFIBUS-DP Partner)的输入/输出通信区为“Q 6、I 4”,以及数据长度和单位等等。最后点击“OK”给予确认。智能DP从站的通信的组态见图9—12.
图9-12 DP主站与智能DP从站的通信的组态
· 系统功能SFC 14和SFC15用于DP通信
主站访问智能从站不是直接读取智能从站的I/O地址,而是通过双方的通信映像区(MS方式)来实现的.实际的I/O区与I/O通信映像区是不同的.用装载(L)指令和传送(T)指令传送实际的I/O区和I/O通信映像区数据时,只能读取4个连续的字节(一个双字)。
图9-13 系统功能在DP主站与智能DP从站的通信过程
如果用系统功能SFC 14“DPRD—DAT”和系统功能SFC 15“DPWR-DAT” 传送实际的I/O区和I/O通信映像区的数据,可以读取多个(与CPU型号有关)连续数据。
下面是用SFC 14 “DPRD-DAT"读取通信映像区的连续数据到实际的I/O区和用SFC 15 “DPWR-DAT"写出实际的I/O区的连续数据到通信映像区的例子如图9—13所示。
PROFIBUS DP主站(Master)和智能从站(Slave)的数据传送由PROFIBUS通信组态设定。
本例要求把主站DB10的10个字节数据发送到智能从站的MW100为起始地址的数据区.主站把智能从站的M200为起始地址的10个字节数据读如自己的DB20中。当然要先生成这些块。
主站的通信映像区为I1000和Q2000,智能从站的通信映像区为I1000和Q2000,
· 主站OB1的程序:
CALL ”DPRD_DAT" //调用SFC 14。
LADDR :=W#16#3E8 //(IN WORD类型)输入映像区的起始地址(1000)。
RET_VAL:=MW300 //(OUT INT类型)SFC的返回值。
RECORD := P#DB20.DBX 0.0 BYTE 10//(OUT ANY类型)读入数据的目的数据区,使用BYTE数据类型。
CALL "DPWR_DAT” //调用SFC 15。
LADDR :=W#16#7D0 //(IN WORD类型)输出映像区的起始地址(2000).
RECORD := P#DB10.DBX 0.0 BYTE 10//(OUT ANY类型)写出数据的源数据区,使用BYTE数据类型。
RET_VAL:=MW400 //(OUT INT类型)SFC的返回值。
智能从站OB1的程序:
CALL "DPRD_DAT" //调用SFC 14.
LADDR :=W#16#3E8 //(IN WORD类型)输入映像区的起始地址(1000)。
RECORD := P#M 100.0 BYTE 10 //(OUT ANY类型)读入数据的目的数据区,使用BYTE数据类型。
CALL "DPWR_DAT" //调用SFC 15。
LADDR :=W#16#7D0 //(IN WORD类型)输出映像区的起始地址(2000)。
RECORD := P#M 200.0 BYTE 10 //(OUT ANY类型)写出数据的源数据区,使用BYTE数据类型.
RET_VAL:=MW400 //(OUT INT类型)SFC的返回值。
4 MPI和PROFIBUS—DP的通信举例
1)通信网络结构
例子中的通信网络由两台S7—300和两分布式I/O构成。其中CPU315-2DP和CPU316—2DP组成MPI网络,而CPU315-2DP、E200B(B-16DI/16DO)和E200M(IM 153)组成PROFIBUS网络.如图9-14所示。
图9-14通信网络结构
2)MPI通信
· MPI网络通信组态
MPI网络由CPU315-2DP(站2)和CPU316-2DP(站3)组成。其MPI通信的全局数据表如表9—2所示。
表9—2 MPI全局数据表
GD ID
SIMATIC 300(1)\CPU31
展开阅读全文