欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    3.第3部分:SIMATIC PLC之间以及PLC与从站通讯任务.ppt

    • 资源ID:2880154       资源大小:3.41MB        全文页数:97页
    • 资源格式: PPT        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    3.第3部分:SIMATIC PLC之间以及PLC与从站通讯任务.ppt

    第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 通信服务,全局数据,无需组态连接的基本通信,使用组态连接的扩展通信,CPU 的 操作系统,CPU 的 操作系统,循环和/或程序控制使用 MPI 或者 K-Bus,SFC,SFC,SFB,SFB,PG 和 HMI 的功能,CPU 的 操作系统,由操作系统控制使用 MPI、K-Bus、Profibus 和工业以太网,使用以太网的 S7 连接,使用 MPI 的 PG 连接,S7-400,S7-300,使用 PROFIBUS的 OP 连接,通信各方之间的连接,CP,CPU 1,CP,PROFIBUS,IndustrialEthernet,工业以太网,MPI,PROFIBUS,工业以太网,CP,CPU 2,使用 MPI的 S7 连接,使用 PROFIBUS的 S7 连接,全局数据:概述,全局数据,CPU 1MW 10,CPU 2MW 20,CPU 3MW 30,硬件成本低;使用简单,不需要编程;S7-400可以实现事件驱动的全局数据通讯;传输数据量少,22B/54B;广播方式传输数据。,2,全局数据循环,CPU1,CPU2,CPU3,CPU4,CPU5,全局数据循环,1,3,4,5,6,S=发送方;R=接收方;GD x.y=全局数据循环 x 中的全局数据包 y,S GD 1.1,R GD 1.2,R GD 1.1,S GD 1.2,R GD 2.1,S GD 2.1,R GD 2.1,R GD 2.1,R GD 2.1,S GD 3.1,R GD 3.2,R GD 3.1,S GD 3.2,R GD 4.1,S GD 4.1,R GD 4.1,S GD 5.1,R GD 5.1,R GD 5.1,R GD 6.1,S GD 6.1,R GD 6.1,全局数据:组态过程,在项目内创建硬件站点 使用SIMATIC Manager创建和下载每个 CPU 的组态数据(MPI 地址)使用“HW Config”工具组态全局数据表使用“Defining Global Data”工具,全局数据:配置硬件,设置 MPI 地址,CPU 的逻辑网络,创建站点,可访问节点,编辑全局数据表,打开全局数据表,选择 CPU,复制因子,定义全局数据,设置扫描速率,扫描速率的单位是CPU的扫描周期,S7-300默认为8,S7-400默认为22,可以修改1-255;如果S7-400扫描速率为0,表示事件驱动的GD数据传输。发送器的扫描速率22,表示每22个扫描周期发送一次GD包,接收器的扫描速率8,表示每8个扫描周期接收一次GD包。一般采用默认速率,以免网络通讯超载。,GD状态双字,给每个数据包指定一个用于状态双字的地址。状态双字使用户程序能及时了解通讯的有效性和及时性,增强了系统的故障诊断能力。,编译全局数据表(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数据通讯,事件触发的数据传送:如果需要控制数据的发送与接收,比如在某一事件或某一时刻,接收和发送所需要的数据,这时将用到事件触发的数据传送方式。这种通信方式是通过调用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”来禁止或延迟更高优先级的中断和异步错误。执行完SFC60后,调用SFC 40“EN_IRT”或SFC 42“EN_AIRT”允许更高优先级的中断和异步错误。,事件驱动的GD数据通讯的编程,站点3,站点2,GD环编号 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的DB1,从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 基本通信:块概述,SFC,SFC 65,名称,X_SEND,SFC 66,X_RCV,X_GET,SFC 67,X_PUT,SFC 68,X_ABORT,SFC 69,I_GET,SFC 72,I_PUT,SFC 73,I_ABORT,SFC 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#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 标识要发送的数据。该作业标识符也将被传递,可以在通信伙伴方检测该标识,以便确定数据的起始位置。通过 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/变量,指向接收区域的指针,通过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.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/为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(也可以在OB35循环中断组织快)中调用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参数定义的接收区(在接收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 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 BYTE 76/本站存放读取的数据的地址区域 L DB2.DBD 2 T QD 0,SFC67/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,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/SFC,SFB 8,名称,USEND,SFB 9,URCV,BSEND,SFB 12,BRCV,SFB 13,GET,SFB 14,通信类型,双向,双向,双向,双向,单向,PUT,SFB 15,单向,PRINT,SFB 16,单向,START,SFB 19,单向,STOP,SFB 20,单向,RESUME,SFB 21,单向,STATUS,SFB 22,单向,USTATUS,SFB 23,单向,CONTROL,SFC 62,-,简述,发送块,用于向 URCV(客户端)块发送数据,接收块,接收 USEND 的数据,发送块,用于向 BRCV 块发送较大数据块(最多 64K 字节),接收块,用于接收较大数据块(最多 64K 字节),从伙伴 PLC 读数据,向伙伴 PLC 写数据,向远程打印机发送数据,在通信伙伴上执行完全重启动,将通信伙伴置为 Stop 状态,在通信伙伴上执行重启动,通信伙伴的状态扫描(RUN、STOP、start-up、hold),接收通信伙伴的状态信息,扫描 S7 连接+SFB 的内部状态,用于S7通讯数据交换的SFB/FB以及支持通讯的功能,使用 NETPRO 组态网络,双击,插入硬件站点,双击,双击,组态 S7 连接,插入连接,远程站点,远程 CPU,选择,建立连接属性,编译和下载组态数据,下载,保存并编译,测试连接状态,连接状态,使用 S7 连接进行单向通信服务,单向 S7 通信 从 S7-400 到 S7-300 的单向 S7 连接可通过组态工具自动地设置。对于单向连接,只需在 S7-400 上分配一个本地连接 ID 来标识该连接,即通信伙伴和传输介质。不需要在 S7-300 上分配连接 ID,因为用于寻址通信连接的 SFB 不在 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-300的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双字 ADDR_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/每次读取完,产生一个脉冲 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 BYTE 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 连接进行双向通信服务,在两个 S7-400 CPU 之间组态 S7 连接时,自动建立双向 S7 连接,双向连接中的连接双方都分配有一个连接 ID,因而双方都可以使用这个 ID 来指向这个连接。伙伴双方的任何一方都可以作为通信服务的发起者(客户机)。,USEND/URCV双向通讯组态,使用USEND/URCV,可以进行快速、不可靠的数据传输,比如事件消息或报警消息的传送,通讯双方都需要调用通讯功能。,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/错误标记位,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/任务被正确执行为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时钟脉冲上升沿时发送 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/发送与请求号 NDR:=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开始存储。,通过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上有上升沿,则将由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.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:=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/调用SFB22 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时,准备接收控制参数 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-UP0BHUPDATE0CH,同一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 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/每次发送成功产生一个脉冲 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/每次发送成功产生一个脉冲 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)的输出参数并不报告错误状态。因此也不会有相应的响应,例如,甚至在触发动作没有终止或者忙于处理错误的时候,它将都不断的被发送。这个动作在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-300/400之间的PROFIBUS-DP通讯,由带集成DP接口的CPU作主站连接智能从站不打包通讯可以直接利用传送指令实现数据读写,但是每次最大只能读写4BYTE。一次传送的字节大于4个byte,通过SFC14/SFC15来完成,称为打包通讯。,DP主站不是直接访问智能从站的物理I/O区域,而是通过从站组态时指定通讯双方的I/O区域来实现数据交换,该I/O区域不能占用分配给I/O模块的物理I/O地址区域。,主从站点之间的数据交换是由PLC的操作系统周期性自动完成的,不需要用户编程,但必须对主从站点之间的通讯连接和数据交换地址区域进行组态。,具有集成DP接口的CPU,MPI,MPI/DP,DP,DP,CPU 31X PN/DP,CPU 31X-2DP,CPU 41X-2,MPI/DP,从站参数设置,参数设置好之后:,原则上是要先定义从站,定义从站,定义从站通信接口区,选择“Configuration”标签,打开I/O通信接口区属性设置窗口,点击“New”按钮新建一行通信接口区,注意,当前组态模式为主从(MS,Master-slave configuration)。此时只能对本地(从站)进行通信数据区的配置。Address type:选择“Input”对应输入区,“Output”对应输出区。Address:设置通信数据区的起地址。Length:设置通信区域的大小,最多32字节。Unit:选择是按字节(byte)还是按字(word)来通信。Consistency:选择“Unit”是按在“Unit”中定义的数据格式发送,即按字节或字发送;若选择“All”表示是打包发送,每包最多32字节。此时通信数据大于4个字节时,应用SFC14,SFC15。设置完成后点击“Apply”按钮确认。同样可根据实际通信数据建立若干行,但最大不能超过244字节。在本例中分别创建一个输入区和一个输出区,长度为4字节,设置完成后可在“Configuration”窗口中看到这两个通信接口区。,组态从站通讯区(1),组态从站通讯区(2),可以看到每行的通讯区域只有从站的,从站通讯伙伴的配置还是虚线,因为主站到目前为止还没有进行组态。,组态主站(1),组态主站(2),组态主站(3),主站 从站发送区域QW12-IW11 接收区域接收区域 IW12-QW11发送区域,主站侧的编程,主站的程序功能用于将内部M存储区域MW0的数据传送给输出过程映像区QW12,然后经过组态的通讯网络自动将QW12传送给从站的过程映像区IW11;同时将接收缓冲区IW12中的数据读取过来,并且存入到MW2中,IW12的数据是从从站发送过来的数据。,从站侧的编程,从站中的程序用于将内部存储区域MW10的数据传送给输出缓冲区QW11,并且经过通讯网络自动将QW11的数据传送给主站的IW12;同时将接收缓冲区IW11中的数据读取过来并且存储到MW12中,IW11内存储的是主站发送过来的数据。,智能从站不打包编程的练习,任务:组态400站点2,300站点3,300作为从站;利用本站的ID0控制从站的QD0,但是要求通讯双方的数据发送区域QD100,数据接收区域为ID100。,L ID 0 T QD 100,L ID 100T QD 0,SFC14解包/SFC15打包,使用SFC14“DPRD_DAT”读取DP标准从站的连续数据,需要SFC14“DPRD_DAT”的原因是使用用于访问I/O或过程映像输入表的装载指令最多只能读出四个连续字节。,使用SFC15“DPWR_DAT”将连续数据写入到DP标准从站,需要SFC15 DPWR_DAT”的原因是使用用于访问I/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.ARAY/存放要发送的用户数据的源数据区域 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:=MW4,SFC14/SFC15主/从站的编程的练习,任务:组态300站点2,300站点4,300(4)作为从站;利用本站的IB0-IB7控制从站的QB0-QB7,但是要求通讯双方的数据发送区域QB256开始,数据接收区域为IB256开始,使用数据一致性传输。,设置PROFIBUS-DP地址(ET200S),6432168421,实例:DP地址=3,关

    注意事项

    本文(3.第3部分:SIMATIC PLC之间以及PLC与从站通讯任务.ppt)为本站会员(文库蛋蛋多)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开