




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第3部分: SIMATIC PLC之间以及PLC与从站通讯任务学习第3部分之后,学员将 . . 了解SIMATIC 通讯网络与服务 . 熟悉PLC 与PLC之间MPI . 掌握使用 SFC 进行 S7 基本通信 . 掌握使用 SFB 进行 S7 扩展通信 . 了解主站系统的FDL . 掌握PROFIBUS-DP主从通讯 . 了解西门子驱动通讯PPO的概念 . 掌握PROFIBUS与驱动装置的通讯自动化系统网络体系执行器-传感器级设备级车间级工厂级AS-I程序控制使用MPI、K-Bus、Profibus 或工业以太网程序控制使用MPI 或 K-Bus面向 S7-300/400 的 S7 通信服务
2、全局数据无需组态连接的基本通信使用组态连接的扩展通信CPU 的 操作系统CPU 的 操作系统 循环和/或程序控制使用 MPI 或者 K-BusSFCSFCSFBSFBPG 和 HMI 的功能CPU 的 操作系统由操作系统控制使用 MPI、K-Bus、Profibus 和工业以太网使用以太网的 S7 连接使用 MPI 的 PG 连接 S7-400S7-300使用 PROFIBUS的 OP 连接 通信各方之间的连接CP CPU 1CPPROFIBUSIndustrialEthernet 工业以太网MPIPROFIBUS工业以太网CP CPU 2使用 MPI的 S7 连接使用 PROFIBUS的 S
3、7 连接全局数据:概述全局数据CPU 1MW 10CPU 2MW 20CPU 3MW 30 硬件成本低; 使用简单,不需要编程; S7-400可以实现事件驱动的全局数据通讯; 传输数据量少,22B/54B; 广播方式传输数据。2全局数据循环CPU1CPU2CPU3CPU4CPU5全局数据循环13456S=发送方;R=接收方;GD x.y=全局数据循环 x 中的全局数据包 y S GD 1.1R GD 1.2R GD 1.1S GD 1.2R GD 2.1S GD 2.1R GD 2.1R GD 2.1R GD 2.1S GD 3.1R GD 3.2R GD 3.1S GD 3.2R GD 4.
4、1S GD 4.1R GD 4.1S GD 5.1R GD 5.1R GD 5.1R GD 6.1S GD 6.1R GD 6.1全局数据:组态过程在项目内创建硬件站点 使用SIMATIC Manager创建和下载每个 CPU 的组态数据 (MPI 地址) 使用“HW Config” 工具组态全局数据表使用“Defining Global Data” 工具全局数据:配置硬件设置 MPI 地址CPU 的逻辑网络创建站点可访问节点编辑全局数据表打开全局数据表选择 CPU复制因子定义全局数据设置扫描速率扫描速率的单位是CPU的扫描周期,S7-300默认为8,S7-400默认为22,可以修改1-255
5、;如果S7-400扫描速率为0,表示事件驱动的GD数据传输。发送器的扫描速率22,表示每22个扫描周期发送一次GD包,接收器的扫描速率8,表示每8个扫描周期接收一次GD包。一般采用默认速率,以免网络通讯超载。GD状态双字给每个数据包指定一个用于状态双字的地址。状态双字使用户程序能及时了解通讯的有效性和及时性,增强了系统的故障诊断能力。状态字位 对应的错误状态 状态字位 对应的错误状态 第1位发送区长度错误第7位发送区与接收区数据对象长度不一致第2位发送区数据块不存在第8位 接收区长度错误第4位全局数据块丢失第9位接收区数据块不存在第5位全局数据块语法错误第12位发送方重新启动第6位全局数据块数
6、据对象丢失 第32位接收区接收到新数据编译全局数据表(1)参与收发全局数据的CPU组成了全局数据环(GD Circle),CPU可以向同一个环内的其他CPU发送或接收数据,在一个MPI网络中,可以建立16个全局数据环(GD Circle),每个环最多15个CPU参与。具有相同发送站和接收站的全局数据字节数值和称之为一个全局数据包。GD 1.1.1: 1号GD环的1号GD包中的1号数据。编译全局数据表(2)下载 GD 组态数据下载 GD 组态数据GD_MPI_1 例程事件驱动的GD数据通讯事件触发的数据传送:如果需要控制数据的发送与接收,比如在某一事件或某一时刻,接收和发送所需要的数据,这时将用
7、到事件触发的数据传送方式。这种通信方式是通过调用CPU的系统功能SFC60(GD_SND)和SFC61(GD_RCV)来完成的,而且只支持S7-400的CPU,并且相应设置CPU的SR(扫描频率)为0。系统功能SFC60(GD_SND)和SFC61(GD_RCV)可以在用户程序中任何一点被调用,在GD数据表中的扫描速率不受系统功能SFC60(GD_SND)和SFC61(GD_RCV)的影响。系统功能SFC60(GD_SND)和SFC61(GD_RCV)可能被更高优先级的程序块中断,为了保持GD数据的连续性,在调用SFC60之前,调用SFC39 “DIS_IRT”或SFC41 “DIS_AIRT
8、”来禁止或延迟更高优先级的中断和异步错误。执行完SFC60后,调用SFC 40 “EN_IRT”或SFC 42 “EN_AIRT”允许更高优先级的中断和异步错误。 事件驱动的GD数据通讯的编程站点3站点2GD环编号 1GD包编号 1I 0.0上升沿才发送接收数据。MPI_GD_B例程全局数据通讯的练习组态3个站之间的全局数据通讯:CPU400/ CPU300/CPU300 (2/3/4)要求:站点3的ID0,传输给站点4的QD4;站点2的QD0传给站点4的ID0;站点3的DB2.DBB0开始的10个字节传给站点4的DB1,从DBB0开始存放数据;站点3的MB10开始的10个字节传给站点4的DB
9、1,从DBB10开始存放数据;站点3的数据DB1.DBB0开始22个字节,传送给站点2,和站点4的DB2,从DBB0开始存放数据。建立硬件组态,GD组态表。 使用 SFC 进行 S7 基本通信:概述使用 MPI 子网内进行数据交换与 SFB 通信相比,无需组态连接动态建立和断开与对方的连接 可传输多达 76 个数据字节可以用于所有的 S7-300/400 CPU在 S7-200 中可通过 MPI 接口读写变量 (X_GET、X_PUT) 也可在另一个 S7 项目中找到通信伙伴使用 SFC 进行 S7 基本通信:块概述SFCSFC 65名称X_SENDSFC 66X_RCVX_GETSFC 67
10、X_PUTSFC 68X_ABORTSFC 69I_GETSFC 72I_PUTSFC 73I_ABORTSFC 74简介发送块,向 X_RCV (客户端) 块发送数据接收块,接收 X_SEND 块的数据从伙伴 PLC 读数据向伙伴 PLC 写数据中止现有连接从伙伴 CPU 读数据向伙伴 CPU 写数据中止与伙伴 CPU 的连接使用 SFC 进行 S7 基本通信:X_SEND (SFC 65) 块带参数赋值示例CALL SFC 65 REQ:= M4.0/触发器,通过REQ=1来触发数据传送作业 CONT:= FALSE/数据传送作业传送结束之后是否保持与通讯伙伴的连接 DEST_ID:= W
11、#16#4/接收数据站点的MPI_addr REQ_ID:= DW#16#1/用于标识数据作业的标识符,用于识别通讯伙伴的数据 SD:= P#M20.0 BYTE 10/变量,指向发送区域的一个指针 RET_VAL:= MW40/出错码 BUSY:= M 4.1/=1SFC 激活,=0发送作业已经结束或者不存在激活的发送作业说明使用 SFC 65 (X_SEND),可以向不在同一个本地 S7 站内的通信伙伴发送数据。通信伙伴方的数据接收通过 SFC 66 (X_RCV) 实现。可以用输入参数 REQ_ID 标识要发送的数据。该作业标识符也将被传递,可以在通信伙伴方检测该标识,以便确定数据的起始
12、位置。通过 REQ=1 调用 SFC 之后,开始发送操作。必须确保通过参数 SD 定义的发送区域 (位于发送 CPU 上) 小于或等于由 RD 参数定义的接收区域 (位于通信伙伴方)。使用 SFC 进行 S7 基本通信:X_RCV (SFC 66) 块带参数赋值示例CALL SFC 66 EN_DT:= TRUE/触发数据传输,=1,复制队列中最早的数据块到RD指定的工作存储区域。 RET_VAL:= MW 50/出错码 REQ_ID:= MD52/作业 ID,接收到的数据包的标识符 NDA:= M40.0/数据存在,指示是否有新的数据到达 RD:= P#M20.0 BYTE 10/变量,指向
13、接收区域的指针通过SFC66 “X_RCV”,接收本地S7站以外的一个或多个通讯伙伴通过SFC65 “X_SEND”发送的数据。说明 通过 SFC 66 (X_RCV) 可以接收一个或者多个通信伙伴使用 SFC 65 (X_SEND) 发送的数据。该 (这些) 通信伙伴不在当前 S7 站内。使用 SFC 66 (X_RCV) 可以: 确定此时发送数据是否可用。必要的话,操作系统可以将这些数据放到一个内部队列中。 从队列中将最早的数据块复制到一个指定的输入区域中。通过输入参数 EN_DT (使能数据传输) 进行选择。发送接收数据程序 CALL X_SEND /调用SFC 65 REQ :=M1.
14、0 /发送请求,该参数为1时候发送 CONT :=TRUE /发送完成后保持连接 DEST_ID:=W#16#3 /接收方的MPI地址 REQ_ID :=DW#16#1 /数据包标识符 SD :=P#DB1.DBX0.0 BYTE 76 /存放要发送的数据的地址区域 RET_VAL:=MW12 /通讯状态字,返回的故障信息 BUSY :=M1.1 /为1时正在发送,为0时完成发送CALL “X_RCV” /调用SFC 66 EN_DT :=M0.0 /接收使能位 RET_VAL:=MW2 /接收状态字,返回状态信息 REQ_ID :=MD4 /接收到的数据包的标识符 NDA :=M0.1 /为
15、1时表示有新的数据包 RD :=P#DB3.DBX0.0 BYTE 76 /存放接收的数据的地址区域MPI_UC_1例程双边通讯数据流通讯的S7编程练习组态2个站之间的全局数据通讯:CPU400/ CPU300 (2/3)要求:站点3的ID0,控制站点2的QD4; 站点3的DB2.DBB0开始的76个字节传给站点2的DB1,从DBB0开始存放数据。S7-300之间通过SFC67_68实现MPI通讯S7-300与S7-300之间采用MPI通讯方式时,其中一台CPU不需要编写任何与通讯有关的程序,只需将交换的数据整理到一个连续的DB块中存储即可;而另外一台S7-300中需要在OB1(也可以在OB3
16、5循环中断组织快)中调用SFC67 X_GET和SFC68 X_PUT,实现两台CPU之间的通讯。调用SFC67 X_GET和SFC68 X_PUT时,VAR_ADDR参数填写通讯伙伴的数据地址区,这里需要填写:P#DB1.XXX BYTE n对应的就是对方CPU的DB存储区域中的数据区。通过SFC67 “X_GET”,可以从本地S7站以外的通讯伙伴中读取数据。在通讯伙伴上没有相应SFC。在通过REQ=1调用SFC之后,读作业被激活。此后,可以继续调用SFC,直到BUSY=0指示数据接收为止。然后,RET_VAL便包含了以字节为单位的、已接收的数据块的长度。必须要确保由RD参数定义的接收区(在
17、接收CPU上)至少和由VAR_ADDR参数定义的要读取的区域(在通讯伙伴上)一样大。RD的数据类型还必须和VAR_ADDR的数据类型相匹配。单边通讯的编程组态(1)单边通讯的编程组态(2)Active客户机/服务器MPI_UC_2 例程SFC67/SFC68编程调用用SFC 68写对方的数据区CALL X_PUT /SFC 68 REQ :=M0.0 /写数据使能信号 CONT :=TRUE /发送完成后保持连接 DEST_ID :=W#16#3 /对方的MPI地址 VAR_ADDR:=P#DB2.DBX0.0 BYTE 76 /通信伙伴要写入数据的地址区域 SD :=P#DB1.DBX0.0
18、 BYTE 76 /存放本站要发送的数据的地址区域 RET_VAL :=MW2 /通讯状态字,返回错误信息 BUSY :=M0.1 /为1时写数据未完成用SFC 67读对方的数据区 CALL X_GET /SFC 67 REQ :=M0.2 /读数据使能信号 CONT :=TRUE /读数据完成后保持连接 DEST_ID :=W#16#3 /对方的MPI站地址 VAR_ADDR:=P#DB1.DBX0.0 BYTE 76 / 要读取的通讯伙伴的地址区域 RET_VAL :=MW4 /通讯状态字,返回错误信息 BUSY :=M0.3 / 为1时写数据未完成 RD :=P#DB2.DBX0.0 B
19、YTE 76 / 本站存放读取的数据的地址区域 L DB2.DBD 2 T QD 0SFC67/SFC68单边编程的练习任务:组态2号站和3号站,M4.0为1则2号站点的DB10.DBD10的数据传送给3号站点的MD50;如果M5.0为1,读取3号站点的MW40内的数据,并存放在2号站点的DB20.DBW10内。扩展 S7 通信:概述 使用 MPI、K-Bus、Profibus 或工业以太网进行数据交换通过连接表组态连接连接在暖启动时建立组态并永久存在 (即使是 STOP 模式) 用户数据大小高达 64 K 字节通信服务也可用于控制 (停止、启动) 通信伙伴SFB只存在于S7-400-CPU
20、,S7-300-CPU可使用库中的同号码的FB(仅支持Profibus 或工业以太网)可使用GET/PUT 对S7-300进行数据的读和写 通过一个连接可以处理不同的任务用户数据用户数据的大小取决于使用的块和通信伙伴: PUT/GET:160 字节 (与 S7-31X 通信);180 字节 (与 S7-31XC 通信); 400 字节 (与 S7-400/M7 通信)。 USEND/UREC:最多 440 字节 BSEND/BRCV:最多 64K 字节SFB 通信:块概况SFB/SFCSFB 8名称USENDSFB 9URCVBSENDSFB 12BRCVSFB 13GETSFB 14通信类型
21、双向双向双向双向单向PUTSFB 15单向PRINTSFB 16单向STARTSFB 19单向STOPSFB 20单向RESUMESFB 21单向STATUSSFB 22单向USTATUSSFB 23单向CONTROLSFC 62-简述发送块,用于向 URCV (客户端) 块发送数据 接收块,接收 USEND 的数据发送块,用于向 BRCV 块发送较大数据块 (最多 64K 字节) 接收块,用于接收较大数据块 (最多 64K 字节) 从伙伴 PLC 读数据向伙伴 PLC 写数据向远程打印机发送数据在通信伙伴上执行完全重启动将通信伙伴置为 Stop 状态在通信伙伴上执行重启动通信伙伴的状态扫描
22、(RUN、STOP、start-up、hold) 接收通信伙伴的状态信息扫描 S7 连接 + SFB 的内部状态用于S7通讯数据交换的SFB/FB以及支持通讯的功能编号助记符号可传输字节描述S7-400S7-300S7-400S7-300SFB8FB8U_SEND440B160B与接收方通信功能U_RCV执行序列无关的快速的无需要确认的数据交换,对方接收到的数据可能被新的数据覆盖。SFB9FB9U_RCVSFB12FB12B_SEND64KB32KB将数据块安全的传输到通讯伙伴,直到通信伙伴的接收功能B_RCV接收完数据,数据传输才结束。SFB13FB13B_RCVSFB14FB14GET40
23、0B400B程序控制读取远方CPU的变量,通讯伙伴不需要编写通讯程序。SFB15FB15PUT程序控制把变量写到远方的CPU,通讯伙伴不需要编写通讯程序。不同DP口之间允许的S7通讯功能S7-300集成DP口S7-400集成DP口CP-342-5的DP口CP-443-5 Ext的DP口S7-300集成DP口不支持单向通讯单向通讯单向通讯S7-400集成DP口单/双向通讯单/双向通讯单/双向通讯CP-342-5的DP口单/双向通讯单/双向通讯CP-443-5 Ext的DP口单/双向通讯使用 NETPRO 组态网络双击插入硬件站点双击双击组态 S7 连接插入连接远程站点远程 CPU选择建立连接属性
24、编译和下载组态数据下载保存并编译测试连接状态连接状态使用 S7 连接进行单向通信服务S7-400MPI=3S7-300/400逻辑 S7 连接 (单向或双向) MPI=2 CPUMPI=2 CPUMPI=21本地 ID物理连接,如 MPISFB:- GET- PUT- STOP- START- STATUSCPU 的操作系统1单向 S7 通信 从 S7-400 到 S7-300 的单向 S7 连接可通过组态工具自动地设置。对于单向连接,只需在 S7-400 上分配一个本地连接 ID 来标识该连接,即通信伙伴和传输介质。不需要在 S7-300 上分配连接 ID,因为用于寻址通信连接的 SFB 不
25、在 S7-300 CPU 的操作系统中。S7单向通讯的组态(1)S7单向通讯的组态(2)默认连接为单向,在调用SFC时候,会使用“块参数”中的“本地ID”的值。S7-300/S7-400集成的DP口只能建立单向的连接,所以没有通讯伙伴的ID。S7单向通讯的编程(1)单向通讯只需要通讯的一方编写通讯程序,编写程序的一方的CPU为客户机,不需要编写程序的一方的CPU为服务器,客户机是向服务器请求服务的设备,是主动的,需要调用通讯块对服务器的数据进行读写操作。服务器是提供特定服务的设备,是被动的。S7-400作为客户机,调用GET, PUT程序块读写服务器的存储区。S7-400的S7通讯块S7-30
26、0的S7通讯块S7单向通讯的编程(2) CALL GET , DB14 /SFB14 REQ :=M8.1 / 上升沿时激活数据传输,每200ms读取一次 ID :=W#16#1 /S7的连接ID号 NDR :=M0.1 /每次读取完,产生一个脉冲 ERROR :=M0.2 /错误标志,出错时为1 STATUS:=MW2 /状态字,0为没有错误和警告 ADDR_1:=P#DB1.DBX0.0 BYTE 20 /要读取的通讯伙伴的1号地址区域 ADDR_2:=P#DB3.DBX0.0 BYTE 20 /要读取的通讯伙伴的2号地址区域 ADDR_3:=ID0 /要读取的通讯伙伴的ID0双字 ADD
27、R_4:=P#M 40.0 BYTE 20 /要读取的通讯伙伴的4号地址区域 RD_1 :=P#DB2.DBX0.0 BYTE 20 /本站存放读取的数据的1号地址区域 RD_2 :=P#DB4.DBX0.0 BYTE 20 /本站存放读取的数据的2号地址区域 RD_3 :=QD0 /通讯伙伴的ID0控制本站的QD0 RD_4 :=P#M 20.0 BYTE 20 /本站存放读取的数据的4号地址区域 CALL PUT , DB15 /SFB15 REQ :=M10.0 / 上升沿时激活数据传输,每200ms读取一次 ID :=W#16#1 /S7的连接ID号 DONE :=M10.1 /每次读
28、取完,产生一个脉冲 ERROR :=M10.2 /错误标志,出错时为1 STATUS:=MW12 /状态字,0为没有错误和警告 ADDR_1:=P#DB2.DBX0.0 BYTE 20 /要写入数据的通讯伙伴的1号地址区域 ADDR_2:=P#DB4.DBX0.0 BYTE 20 /要写入数据的通讯伙伴的2号地址区域 ADDR_3:=QD4 /要控制通讯伙伴的QD4双字 ADDR_4:=P#M 20.0 BYTE 20 /要写入数据的通讯伙伴的4号地址区域 SD_1 :=P#DB1.DBX0.0 BYTE 20 /存放本站要发送的数据的1号地址区域 SD_2 :=P#DB3.DBX0.0 BY
29、TE 20 /存放本站要发送的数据的1号地址区域 SD_3 :=ID0 /用本站的ID0控制通讯伙伴的QD4 SD_4 :=P#M 40.0 BYTE 20 /存放本站要发送的数据的1号地址区域PB_S7_A例程S7编程单向连接练习任务:组态实现CPU413-2DP(2号站)与CPU315-2DP(3号站)CP342-5(4号站)的单向S7通讯。要求:2号站点读取通讯伙伴的地址区域DB1.DBX0.0 开始20个字节,存放到MB0开始的20个字节中;2号站把DB1.DBX0.0开始20个字节写入数据到通讯伙伴的地址区域DB2.DBX0.0开始的20个字节。在程序中必须初始化数据块。使用 S7
30、连接进行双向通信服务S7-400MPI=3S7-400逻辑 S7 连接 (双向) MPI=2 CPUMPI=2 CPUMPI=22本地 ID物理连接,如 MPI1SFB:- USEND- URCV- BSEND- BRCVSFB:- URCV- USEND- BRCV- BSEND21在两个 S7-400 CPU 之间组态 S7 连接时,自动建立双向 S7 连接,双向连接中的连接双方都分配有一个连接 ID,因而双方都可以使用这个 ID 来指向这个连接。伙伴双方的任何一方都可以作为通信服务的发起者 (客户机)。USEND/URCV双向通讯组态使用USEND/URCV,可以进行快速、不可靠的数据传
31、输,比如事件消息或报警消息的传送,通讯双方都需要调用通讯功能。PB_S7_B例程在进行实际数据传送之前,必须通过两个伙伴中的一个建立(初始化)连接。始终为本地方激活建立激活连接复选框,并自动在伙伴方取消激活该复选框。USEND/URCV双向通讯编程 CALL USEND , DB8 /SFB 8 REQ :=M8.0 /100ms时钟脉冲上升沿时发送 ID :=W#16#1 /S7连接ID号 R_ID :=DW#16#1 /发送与接收请求号,用于区分同一连接中不同的SFB/FB调用,发送方 与接收方的R_ID应相同。 DONE :=M10.1 /任务被正确执行为1 ERROR :=M10.2
32、/错误标记位,1为出错 STATUS:=MW12 /状态字 SD_1 :=P#DB1.DBX0.0 BYTE 20 /存放要发送的数据的1号地址区域 SD_2 :=P#M 40.0 BYTE 20 /存放要发送的数据的2号地址区域 SD_3 :=ID0 /用本站的ID0字节控制通讯伙伴的QD0 SD_4 :=CALL URCV , DB9 /SFB9 EN_R :=M0.0 /为1时接收 ID :=W#16#1 /S7连接ID号 R_ID :=DW#16#2 /发送与接收请求号,用于区分同一连接中不同的SFB/FB调用,发送方 与接收方的R_ID应相同。 NDR :=M0.1 /任务被正确执行
33、为1 ERROR :=M0.2 /错误标记位,1为出错 STATUS:=MW2 /状态字 RD_1 :=P#DB2.DBX0.0 BYTE 20 /存放接收的数据的1号地址区域 RD_2 :=P#M 20.0 BYTE 20 /存放接收的数据的1号地址区域 RD_3 :=QD0 /用通讯伙伴的ID0控制本站的QD0 RD_4 :=站点3的程序基本相同BSEND/BRCV的S7通讯使用BSEND/BRCV,可以进行快速的、可靠的数据传送。 L ID 0 T DB1.DBD 2 /用本站的ID0控制通讯伙伴的QD0CALL BSEND , DB12 /SFB12 REQ :=M8.0 /100ms
34、时钟脉冲上升沿时发送 R :=M10.1 /上升沿时中断正在进行的数据交换 ID :=W#16#1 /S7连接ID号 R_ID :=DW#16#1 /发送与请求号 DONE :=M10.2 /任务正确执行为1 ERROR :=M10.3 /错误标记位 STATUS:=MW12 /状态字 SD_1 :=P#DB1.DBX0.0 BYTE 200 /存放要发送的数据的地址区域 LEN :=MW14 /要发送的数据字节数200CALL BRCV , DB13 /SFB13 EN_R :=M0.0 /为1时接收 ID :=W#16#1 /S7连接ID号 R_ID :=DW#16#2 /发送与请求号 N
35、DR :=M0.1 /任务正确执行为1 ERROR :=M0.2 /错误标记位 STATUS:=MW2 /状态字 RD_1 :=P#DB2.DBX0.0 BYTE 200 /存放接收的数据的地址区域 LEN :=MW4 /已经接收的数据字节数 L DB2.DBD 2 T QD 0 /用对方的ID0控制本站的QD0站点3的程序基本相同PB_S7_C例程S7通讯双向编程的练习要求进行快速、可靠的数据传输,站点CPU413-2DP分别为2号站点和3号站点。任务:建立组态,通过调用程序块实现通讯。2号站点的数据DB1.DBX0.0开始的10个字节,发送到3号站点的数据块DB2,从DBB0开始存储。通过
36、S7连接控制和监视远程PLC的运行模式调用SFB19 “START”使远程设备热启动或冷启动,如果在SFB 19START的控制输入REQ上有上升沿,则这将激活由ID寻址的远程设备上的暖启动或冷启动。远程PLC必须满足条件:CPU必须处于STOP模式;CPU的钥匙开关必须设置为“RUN”或“RUN-P”。一旦完成暖启动或冷启动,设备切换到RUN模式,并发送一个肯定执行应答。接收到肯定应答之后,状态参数DONE置位为1,如果发生任何错误,则通过状态参数ERROR和STATUS来指示这些出错。调用SFB20”STOP”将远程设备切换到STOP模式如果在SFB 20“STOP”的控制输入REQ上有上
37、升沿,则将由ID寻址的远程设备切换到STOP模式。当设备处于RUN、HOLD或STARTUP模式时,可以进行模式切换。PI_NAME参数指向存储要启动的程序的名称(ASCII代码)的存储区域。此名称所包含的字符不能超过32个。 对于S7 PLC,名称必须是P_PROGRAM。IO_STATE参数,如果通讯伙伴是S7可编程控制器,则不给这个参数分配任何数值。SFB19-SFB23可以用于MPI、PROFIBUS-DP、工业以太网的远程站点监控。PB_CTRL例程远程将设备切换到RUN/STOP将远程设备切换到RUN模式 CALL “START” , DB19 /调用SFB19 REQ :=M20
38、.6 /请求通讯,上升沿时激活SFB ID :=W#16#1 /S7连接号 DONE :=DB1.DBX10.1 /操作正确完成后为1 ERROR :=DB1.DBX10.2 /错误标志 STATUS :=DB1.DBW14 /状态字 PI_NAME :=data.pi_name /字符串P_PROGRAM ARG := /未设置该参数为热启动,分配C为冷启动 IO_STATE:= /S7 PLC未使用此参数将远程设备切换到STOP模式 CALL STOP , DB20 /调用SFB20 REQ :=M20.7 /请求通讯,上升沿时激活SFB ID :=W#16#1 /S7连接号 DONE :
39、=DB1.DBX17.1 /操作正确完成后为1 ERROR :=DB1.DBX17.2 /错误标志 STATUS :=DB1.DBW20 /状态字 PI_NAME :=data.pi_name /字符串P_PROGRAM IO_STATE:= /S7 PLC未使用此参数 OB100 L P_ T data.pi_name1 L PR T data.pi_name2 L OG T data.pi_name3 L RA T data.pi_name4 L M T data.pi_name5查询远程伙伴的状态/接收操作模式变换信息查询远程伙伴的状态 CALL “STATUS” , DB22 /调用S
40、FB22 REQ :=M21.1 /通讯请求,上升沿激活SFB ID :=W#16#1 /S7连接号 NDR :=DB1.DBX30.1 /操作正确完成后为1 ERROR :=DB1.DBX30.2 /错误标志 STATUS:=DB1.DBW32 /状态字 PHYS :=DB1.DBB34 /物理状态,10H为正在执行功能,13H为服务请求 LOG :=DB1.DBB36 /逻辑状态,00H为允许状态改变 LOCAL :=DB1.DBW38 /第一个字节是通讯伙伴的当前状态接收远程设备的状态变化 CALL USTATUS , DB23 /调用SFB23 EN_R :=M21.2 /为1时,准备
41、接收控制参数 ID :=W#16#1 /S7连接号 NDR :=DB1.DBX40.1 /操作正确完成后为1 ERROR :=DB1.DBX40.2 /错误标志 STATUS:=DB1.DBW42 /状态字 PHYS :=DB1.DBB44 /物理状态,10H为正在执行功能,13H为服务请求 LOG :=DB1.DBB46 /逻辑状态,00H为允许状态改变 LOCAL :=DB1.DBW48 /第一个字节是通讯伙伴的当前状态LOCAL 工作模式相应标识符 STOP00H热启动01HRUN02H热启动03H工作模式相应标识符HOLD04H冷启动06HRUN_R09HLINK-UP0BHUPDAT
42、E0CH同一DP主站系统的FDL通讯组态FDL是PROFIBUS的第2层现场总线数据链路层,用于实现PROFIBUS主站之间的通讯,是由硬件发起、安全系数非常高的发送/接收双向通讯。只有PROFIBUS通讯处理器CP(CP342-5, CP343-5, CP443-5)才支持FDL的数据通讯。FDL通讯传输速度快,数据量小(240B)。CP可以同时与多个主站建立通讯连接,大多数通信处理器CP的FDL连接个数最多16个。LADDR地址与CP342-5槽号有关同一DP主站系统的FDL通讯的编程(1)S5兼容通讯的双方通过调用标准库:SIMATIC_NET_CP中的FC5 AG_SEND, FC6
43、AG_RECV来实现FDL服务,S7-300,S7-400分别使用CP300和CP400中的FC,不能混用。FC5 AG_SEND用于将用户数据区域的数据传送给PROFIBUS CP,再发送出去, FC6 AG_RECV用于将PROFIBUS CP接收的数据存放到用户区域中。CALL AG_SEND /FC 5 ACT :=TRUE /发送使能位 ID :=1 /连接ID号 LADDR :=W#16#7F8 /CP443-5 EXT的起始地址 SEND :=P#DB1.DBX0.0 BYTE 240 /存放要发送的数据的地址区域 LEN :=240 /发送数据的字节数 DONE :=M10.2
44、 /每次发送成功产生一个脉冲 ERROR :=M10.3 /错误标志位 STATUS:=MW12 /状态字ACT参数状态为1时发送数据,为了实现周期性的数据发送,ACT为TRUE,若在OB1中调用FC5,则每个扫描周期发送一次数据,这过于频繁,因此在OB35中调用,每100ms发送一次数据。OB35中调用FC5同一DP主站系统的FDL通讯的编程(2) CALL AG_RECV /FC 6 ID :=1 /连接ID号 LADDR :=W#16#7F8 /CP443-5 EXT的起始地址 RECV :=P#DB2.DBX0.0 BYTE 240 /存放接收的数据的地址区域 NDR :=M0.1 /
45、每次发送成功产生一个脉冲 ERROR :=M0.2 /错误标记位 STATUS:=MW2 /状态字 LEN :=MW4 /接收的字节数CPU300的程序大体相同FDL_1例程FDL通讯 的AG_SEND (FC5)通讯功能块出现状态 0 x8302 ;意味着接收端的通讯进程没有收到任何接收信息。如果S7-300 或者S7-400的循环周期不同(比如,发送端的扫描周期比接收端短),AG_SEND (FC5)就可能发生上述状态,因为FDL通讯不包括流量控制器,这是FDL通讯的正常运行模式。基于这一点,程序中通讯模块(AG_SEND或者AG_RECV)的输出参数并不报告错误状态。因此也不会有相应的响
46、应,例如,甚至在触发动作没有终止或者忙于处理错误的时候,它将都不断的被发送。 这个动作在FC5 AG_SEND将显示为STATUS=0 x8302。因此这个动作肯定会在程序中重复,要使这个状态尽量少发生,A G_SEND应该比接收端的AG_RECV (FC6)多调用一个时钟周期。 OB1中调用FC6不同DP主站系统的FDL通讯指定为5不是默认FDL通讯的练习任务:实现两台CPU315-2DP之间的FDL通讯,站点为2号站和3号站,通讯模块CP-342-5;要求:生成硬件组态,并调用程序; 2号站点的数据DB1.DBX0.0开始的10个字节,发送到3号站点的数据块DB2,从DBB0开始存储。S7
47、-300/400之间的PROFIBUS-DP通讯由带集成DP接口的CPU作主站连接智能从站不打包通讯可以直接利用传送指令实现数据读写,但是每次最大只能读写4BYTE。一次传送的字节大于4个byte,通过SFC14/SFC15来完成,称为打包通讯。DP主站不是直接访问智能从站的物理I/O区域,而是通过从站组态时指定通讯双方的I/O区域来实现数据交换,该I/O区域不能占用分配给I/O模块的物理I/O地址区域。主从站点之间的数据交换是由PLC的操作系统周期性自动完成的,不需要用户编程,但必须对主从站点之间的通讯连接和数据交换地址区域进行组态。具有集成DP接口的CPUMPIMPI/DPDPDPCPU
48、31X PN/DPCPU 31X-2DPCPU 41X-2MPI/DP从站参数设置参数设置好之后:原则上是要先定义从站定义从站定义从站通信接口区选择“Configuration”标签,打开I/O通信接口区属性设置窗口,点击“New”按钮新建一行通信接口区,注意,当前组态模式为主从(MS,Master-slave configuration)。此时只能对本地(从站)进行通信数据区的配置。Address type: 选择“Input”对应输入区,“Output”对应输出区。Address: 设置通信数据区的起地址。Length: 设置通信区域的大小,最多32字节。Unit: 选择是按字节(byte
49、)还是按字(word)来通信。Consistency: 选择“Unit”是按在“Unit”中定义的数据格式发送,即按字节或字发送;若选择“All”表示是打包发送,每包最多32字节。此时通信数据大于4个字节时,应用SFC14,SFC15。设置完成后点击“Apply”按钮确认。同样可根据实际通信数据建立若干行,但最大不能超过244字节。在本例中分别创建一个输入区和一个输出区,长度为4字节,设置完成后可在“Configuration”窗口中看到这两个通信接口区。 组态从站通讯区(1)组态从站通讯区(2)可以看到每行的通讯区域只有从站的,从站通讯伙伴的配置还是虚线,因为主站到目前为止还没有进行组态。组
50、态主站(1)组态主站(2)组态主站(3)主站 从站发送区域QW12 - IW11 接收区域接收区域 IW12 - QW11发送区域主站侧的编程主站的程序功能用于将内部M存储区域MW0的数据传送给输出过程映像区QW12,然后经过组态的通讯网络自动将QW12传送给从站的过程映像区IW11;同时将接收缓冲区IW12中的数据读取过来,并且存入到MW2中,IW12的数据是从从站发送过来的数据。从站侧的编程从站中的程序用于将内部存储区域MW10的数据传送给输出缓冲区QW11,并且经过通讯网络自动将QW11的数据传送给主站的IW12;同时将接收缓冲区IW11中的数据读取过来并且存储到MW12中,IW11内存
51、储的是主站发送过来的数据。智能从站不打包编程的练习任务:组态400站点2,300站点3,300作为从站;利用本站的ID0控制从站的QD0,但是要求通讯双方的数据发送区域QD100,数据接收区域为ID100。 L ID 0 T QD 100 L ID 100T QD 0SFC14解包/SFC15打包使用SFC14 “DPRD_DAT”读取DP标准从站的连续数据,需要SFC14 “DPRD_DAT”的原因是使用用于访问I/O或过程映像输入表的装载指令最多只能读出四个连续字节。使用SFC15 “DPWR_DAT”将连续数据写入到DP标准从站,需要SFC15 DPWR_DAT”的原因是使用用于访问I/
52、O或过程映像输入表的传送指令最多只能写入四个连续字节。PB_MS_3例程SFC14/SFC15传输数据一致性组态与编程在主程序中调用SFC15打包数据,进行发送;调用SFC14将接收到的数据解包存放。主站点的程序 CALL DPRD_DAT /调用SFC14 LADDR :=W#16#64 /接收通讯数据的PII起始地址区域IB100 RET_VAL:=MW2 /返回值 RECORD :=DB2.ARAY /存放接收到的用户数据的目的数据区域 CALL DPWR_DAT /调用SFC15 LADDR :=W#16#64 /发送数据的PIQ的起始地址区域QB100 RECORD :=DB1.AR
53、AY /存放要发送的用户数据的源数据区域 RET_VAL:=MW4 /返回值从站的程序CALL DPRD_DAT /调用SFC14 LADDR :=W#16#64 RET_VAL:=MW2 RECORD :=DB2.ARAYCALL DPWR_DAT /调用SFC15 LADDR :=W#16#64 RECORD :=P#DB1.DBX0.0 BYTE 20 RET_VAL:=MW4SFC14/SFC15主/从站的编程的练习任务:组态300站点2,300站点4,300(4)作为从站;利用本站的IB0-IB7控制从站的QB0-QB7,但是要求通讯双方的数据发送区域QB256开始,数据接收区域为I
54、B256开始,使用数据一致性传输。 设置PROFIBUS-DP地址 (ET200S)6432168421实例:DP地址=3关 开组态 DP 主站系统DP 主站系统组态紧凑式和模块式的 DP 从站DP主站系统DP 从站根据LED显示进行诊断(ET 200S)LEDS含义SFBFON接口模块未通电?接口模块已通电?参数未赋值或赋值不正确。应检查硬件组态。?波特率搜索,非法PROFIBUS地址,连线断开设定值与实际组态不符正进行数据交换,一切正常。LED不亮LED常亮LED闪烁?与LED无关?从站设备发生故障时的硬件诊断组态DP系统组态 DP 系统 (ET 200S)的练习PROFIBUS DP的驱
55、动通讯PROFIBUS 模块PROFIBUS 通信模块:设置地址12347651248643216开关编号添加到地址示例 1:地址 = 6offononoffoffoffoff示例 2:地址 = 88offoffoffoffononon地址含义0通过参数 P0918 指定 PROFIBUS 地址 1 至 125有效的 PROFIBUS 地址126,127无效的 PROFIBUS 地址有些地址具有“特殊”的含义组态 MicroMaster,PPO 类型PPO2PPO3任意MM420 的最大值PKWPKE1.WordIND2.Word3.Word4.WordPWEPCDPCD1STW1ZSW11.
56、WordPCD2MSMAV2.WordPCD33.WordPCD99.WordPCD88.WordPCD77.WordPCD66.WordPCD55.WordPCD44.WordPCD1010.WordPCD1515.WordPCD1414.WordPCD1313.WordPCD1212.WordPCD1111.WordPCD1616.WordPPO 类型 1:所有参数可更改PPO 类型 3:只能更改设定值通过加载和传输指令访问只能通过 SFC 访问PKW = 参数索引值PKE = 参数标识PWE = 参数值STW = 控制字ZSW = 状态字MS = 主设定值MAV = 主实际值使用 PPO
57、 Type 3 通信控制字主设定值CPUMM 420QD 42ID 42状态字主实际值PROFIBUS-DPT QW 42T QW 44L IW 42L IW 44控制字的结构QB 43QB 420123456789101112131415位ON/OFF 1OFF 2OFF 3脉冲使能RFG 使能RFG 开始设定值使能故障确认点动向右点动向左PLC 控制反向 (设定值取反)- - -电机电位计 (MOP) 增大电机电位计 (MOP) 减小CDS 位 0功能状态字的结构IB 43IB 42驱动就绪驱动就绪,准备运行驱动正在运行驱动故障OFF2 激活OFF3 激活激活禁止合闸状态驱动警告激活设定值/实际值偏差PCD 控制达到最大频率电机最大电流警告电机保持制动激活电机过载电机顺时针运行变频器过载功能0123456789101112131415位通过 Monitor/Modify Variables 控制 MicroMaster实际值 (十六进制)实际值 (十进制)实际值 (频率)额定负载下的转速 (rpm)400016384501,35030001228837.51,012.52000819225675
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 装修设计全案合同协议
- 门卫消防考试题及答案
- 西安物业服务合同协议
- 鹰眼技术考试题及答案
- 自用钓鱼船转让协议合同
- 苗木打包转让协议合同
- 蔬菜大棚出售合同协议
- 荷载委托检测合同协议
- 蛏子苗种买卖合同协议
- 菜籽油工厂供货合同协议
- GB/T 45399-2025信息技术云计算超融合系统通用技术要求
- 台球助教培训流程
- 湖南能源集团有限公司招聘笔试题库2025
- 沪科版2025年八年级(下)期中数学试卷(一)(考查范围:第16~18章)
- 智能座舱试题解析及答案
- 生态管理考试题及答案
- 2025春季学期国开电大本科《人文英语3》一平台在线形考综合测试(形考任务)试题及答案
- 脱敏算法在医疗健康领域的应用-全面剖析
- 三人养殖合作合同范本与三人合伙协议书8篇
- 八大特种作业试题及答案
- 龙门吊安装、拆卸工程安全监理实施细则
评论
0/150
提交评论