1.21k likes | 1.38k Views
第 7 章 西门子 PLC 通信技术. 本章结合具体实例,详细介绍 MPI 网络的组建方法、如何用全局数据包通信方式实现 PLC 之间的 MPI 网络通信、如何实现无组态连接的 PLC 之间的 MPI 通信、如何实现有组态连接的 PLC 之间的 MPI 通信、如何实现 PLC 之间的 PROFIBUS-DP 主从通信、如何组态远程 I/O 站,最后介绍了 CP342-5 分别作为主站 和从站的 PROFIBUS-DP 组态应用。 §7.1 西门子 PLC 网络 §7.2 MPI 网络通信 §7.3 PROFIBUS 现场总线通信技术 §7.4 思考与练习.
E N D
第7章 西门子PLC通信技术 • 本章结合具体实例,详细介绍MPI网络的组建方法、如何用全局数据包通信方式实现PLC之间的MPI网络通信、如何实现无组态连接的PLC之间的MPI通信、如何实现有组态连接的PLC之间的MPI通信、如何实现PLC之间的PROFIBUS-DP主从通信、如何组态远程I/O站,最后介绍了CP342-5分别作为主站 • 和从站的PROFIBUS-DP组态应用。 • §7.1 西门子PLC网络 • §7.2 MPI网络通信 • §7.3 PROFIBUS现场总线通信技术 • §7.4 思考与练习 返回首页
§7.1 西门子PLC网络 返回本章
§7.2 MPI网络通信 • MPI是多点通信接口(MultiPoint Interface)的简称。MPI物理接口符合Profibus RS485(EN 50170)接口标准。MPI网络的通信速率为19.2kbit/s~12Mbit/s,S7-200只能选择19.2kbit/s的通信速率,S7-300通常默认设置为187.5kbit/s,只有能够设置为Profibus接口 • 的MPI网络才支持12Mbit/s的通信速率。 • §7.2.1 MPI网络组建 • §7.2.2 全局数据包通信方式 • §7.2.3 无组态连接的MPI通讯方式 • §7.2.4 有组态连接的MPI通讯方式 返回本章
§7.2.1 MPI网络组建 用STEP 7软件包中的Configuration功能为每个网络节点分配一个MPI地址和最高地址,最好标在节点外壳上;然后对PG、OP、CPU、CP、FM等包括的所有节点进行地址排序,连接时需在MPI网的第一个及最后一个节点接入通信终端匹配电 阻。往MPI网添加一个新节点时,应该切断MPI网的电源。 返回本节
MPI网络示意图 返回上级
MPI网络连接器 为了保证网络通信质量,总线连接器或中继器上都设计了终端匹配电阻。组建通信网络时,在网络拓扑分支的末端节点需要接入浪涌匹配电阻。 返回上级
采用中继器延长网络连接距离 返回上级
§7.2.2 全局数据包通信方式 • 全局数据(GD)通信方式以MPI分支网为基础而设计的。在S7中,利用全局数据可以建立分布式PLC间的通讯联系,不需要在用户程序中编写任何语句。S7程序中的FB、FC、OB都能用绝对地址或符号地址来访问全局数据。最多可以在一个 • 项目中的15个CPU之间建立全局数据通讯。 • GD通信原理 • GD通信的数据结构 • 全局数据环 • GD通信应用 • 利用SFC60和SFC61传递全局数据 返回本节
1.GD通信原理 在MPI分支网上实现全局数据共享的两个或多个CPU中,至少有一个是数据的发送方,有一个或多个是数据的接收方。发送或接收的数据称为全局数据,或称为全局数。具有相同Sender/Receiver (发送者/接受者)的全局数据,可以集合成一个全局数据包(GD Packet)一起发送。每个数据包用数据包号码(GD Packet Number)来标识,其中的变量用变量号码(Variable Number)来标识。参与全局数据包交换的CPU构成了全局数据环(GD Circle)。每个全局数据环用 数据环号码来标识(GD Circle Number )。 例如,GD 2.1.3表示2号全局数据环,1号全局数据包中 的3号数据。 返回上级
在PLC操作系统的作用下,发送CPU在它的一个扫描循环结束时发送全局数据,接收CPU在它的一个扫描循环开始时接收GD。这样,发送全局数据包中的数据,对于接收方来说是“透明的”。也就是说,发送全局数据包中的信号状态会自动影响接收数据包;接收方对接收数据包的访问,相当于对发在PLC操作系统的作用下,发送CPU在它的一个扫描循环结束时发送全局数据,接收CPU在它的一个扫描循环开始时接收GD。这样,发送全局数据包中的数据,对于接收方来说是“透明的”。也就是说,发送全局数据包中的信号状态会自动影响接收数据包;接收方对接收数据包的访问,相当于对发 送数据包的访问。 返回上级
2.GD通信的数据结构 全局数据可以由位、字节、字、双字或相关数组组成, 它们被称为全局数据的元素。一个全局数据包由一个或几个GD元素组成,最多不能超过24B。 返回上级
3. 全局数据环 全局数据环中的每个CPU可以发送数据到另一个CPU或从 另一个CPU接收。全局数据环有以下2种: ①环内包含2个以上的CPU,其中一个发送数据包,其它的CPU接收数据; ②环内只有2个CPU,每个CPU可既发送数据又接受数据。 S7-300的每个CPU可以参与最多4个不同的数据环,在一个MPI网上最多可以有15个CPU通过全局通讯来交换数据。 其实,MPI网络进行GD通信的内在方式有两种:一种是一对一方式,当GD环中仅有两个CPU时,可以采用类全双工点对点方式,不能有其它CPU参与,只有两者独享;另一种为一对多(最多4个)广播方式,一个点播,其它接收。 返回上级
4. GD通信应用(1/2) 应用GD通信,就要在CPU中定义全局数据块,这一过程也称为全局数据通信组态。在对全局数据进行组态前,需要先执行下列任务: ①定义项目和CPU程序名; ②用PG单独配置项目中的每个CPU,确定其分支网络号、MPI地址、最大MPI地址等参数。 返回上级
4. GD通信应用(2/2) 在用STEP 7开发软件包进行GD通信组态时,由系统菜单【Options】中的【Define Global Data】程序进行GD表组 态。具体组态步骤如下: ③在GD空表中输入参与GD通信的CPU代号; ④为每个CPU定义并输入全局数据,指定发送GD; ⑤第一次存储并编译全局数据表,检查输入信息语法是 否为正确数据类型,是否一致; ⑥设定扫描速率,定义GD通信状态双字; ⑦第二次存储并编译全局数据表。 返回上级
【例7-2-1】 S7-300之间全局数据通信。 • 要求通过MPI网络配置,实现2个CPU 315-2DP之间的全局 • 数据通信。 • 生成MPI硬件工作站 • 打开STEP 7,首先执行菜单命令【File】→【New...】创建一个S7项目,并命名为“全局数据”。选中“全局数据”项目名,然后执行菜单命令【Insert】→【Station】→【SIMATIC 300 Station】,在此项目下插入两个S7-300的 • PLC站,分别重命名为MPI_Station_1和MPI_Station_2。 返回上级
设置MPI网络地址 返回上级
设置MPI地址 • 按上图完成2个PLC站的硬件组态,配置MPI地址和通信速率,在本例中MPI地址分别设置为2号和4号,通信速率为187.5kbit/s。完成后点击按钮,保存并编译硬件组态。最后 • 将硬件组态数据下载到CPU。 • 连接网络 用Profibus电缆连接MPI节点。接着就可以与所有CPU建立在线连接。可以用SIMATIC管理器中“Accessible Nodes”功 能来测试它。 返回上级
生成全局数据表 用NetPro组态MPI网络 返回上级
全局数据环组态 返回上级
GD ID的意义 返回上级
定义扫描速率和状态信息 返回上级
5. 利用SFC60和SFC61传递全局数据 利用SFC60 GD_SND和SFC61 GD_RCV可以以事件驱动方式来实现全局通讯。为了实现纯程序控制的数据交换,在全局数据表中必须将扫描速率定义为0。可单独使用循环驱动或程 序控制方式,也可组合起来使用。 SFC60用来按设定的方式采集并发送全局数据包。 SFC61用来接收发送来的全局数据包并存入设定区域中。 为了保证数据交换的连贯性,在调用SFC60或SFC61之前所有中断都应被禁止。可以使用SFC39禁止中断,SFC40开放 中断;使用SFC41延时处理中断,SFC42开放延时。 返回上级
【例7-2-2】用SFC60发送全局数据GD2.1,用SFC61接收全局数据GD2.2。【例7-2-2】用SFC60发送全局数据GD2.1,用SFC61接收全局数据GD2.2。 使用系统功能(SFC)或系统功能块(SFB)时,需切换到在线视窗,查看当前CPU是否具备所需要的系统功能或系统功能块,然后将它们拷贝到项目的“Blocks”文件夹内。接下 来可切换到离线视窗调用系统功能或系统功能块。 使用SFC60和SFC61实现全局数据的发送与接收,必须进行全局数据包的组态,参照【例7-2-1】。现假设已经在全局数据表中完成了GD组态,以MPI_Station_1为例,设预发送数据包为GD 2.1,预接收数据包为GD 2.2。要求当M1.0为“1”时 发送全局数据GD 2.1;当M1.2为“1”时接收全局数据GD 2.2。 返回上级
用SFC60发送全局数据GD2.1,用SFC61接收全局数据GD2.2用SFC60发送全局数据GD2.1,用SFC61接收全局数据GD2.2 返回上级
§7.2.3 无组态连接的MPI通讯方式 ——调用系统功能SFC • 用系统功能SFC65~69,可以在无组态情况下实现PLC之间的MPI的通讯,这种通讯方式适合于S7-300、S7-400和S7-200之间的通讯。无组态通讯又可分为两种方式:双向通讯方式和单向通讯方式。无组态通讯方式不能和全局数据通讯 • 方式混合使用。 • 双向通讯方式 • 单向通讯 返回本节
1.双向通讯方式 双向通讯方式要求通讯双方都需要调用通讯块,一方调用发送块发送数据,另一方就要调用接收块来接收数据。适用S7-300/400之间通讯,发送块是SFC65(X_SEND),接收块是SFC66(X_RCV)。下面举例说明如何实现无组态双向通 讯。 【例7-2-3】无组态双向通讯。 设2个MPI站分别为MPI_Station_1(MPI地址为设为2)和MPI_Station_2(MPI地址设为4),要求MPI_Station_1站发送一个数据包到MPI_Station_2站。 返回上级
生成MPI硬件工作站 打开STEP 7,创建一个S7项目,并命名为“双向通讯”。在此项目下插入两个S7-300的PLC站,分别重命名为MPI_Station_1和MPI_Station_2。MPI_Station_1包含一个 CPU315-2DP;MPI_Station_2包含一个CPU313C-2DP。 • 设置MPI地址 完成2个PLC站的硬件组态,配置MPI地址和通信速率,在本例中CPU315-2DP和CPU313C-2DP的MPI地址分别设置为2号和4号,通信速率为187.5kbit/s。完成后点击按钮,保存 并编译硬件组态。最后将硬件组态数据下载到CPU。 返回上级
编写发送站的通讯程序 在MPI_Station_1站的循环中断组织块OB35中调用SFC65,将I0.0~I1.7发送到MPI_Station_2站。 MPI_Station_1站OB35中的通讯程序如图所示。 返回上级
编写接收站的通讯程序 在MPI_Station_2站的主循环组织块OB1中调用SFC66,接收MPI_Station_1站发送的数据,并保存在MB10和MB11 中。MPI_Station_2站OB1中的通讯程序如图所示。 返回上级
2. 单向通讯 单向通讯只在一方编写通讯程序,也就是客户机与服务器的访问模式。编写程序一方的CPU作为客户机,无需编写程序一方的CPU作为服务器,客户机调用SFC通讯块对服务器进行访问。SFC67(X_GET)用来读取服务器指定数据区中的数据并存放到本地的数据区中,SFC68(X_PUT)用来将本地 数据区中的数据写到服务器中指定的数据区。 【例7-2-4】无组态单向通讯。 建立两个S7-300站:MPI_Station_1(CPU315-2DP,MPI地址设置为2)和MPI_Station_2(CPU313C-2DP,MPI地址设置为3)。CPU315-2DP作为客户机,CPU313C-2DP作为服务 器。 返回上级
生成MPI硬件工作站 打开STEP 7编程软件,创建一个S7项目,并命名为“单向通讯”。在此项目下插入两个S7-300的PLC站,分别重命名 为MPI_Station_1和MPI_Station_2。 • 设置MPI地址 在本例中将CPU315-2DP和CPU313C-2DP的MPI地址分别设置为2号和3号,通信速率为187.5kbit/s。完成后点击按钮,保存并编译硬件组态。最后将硬件组态数据下载到 CPU。 返回上级
生成MPI硬件工作站 打开STEP 7编程软件,创建一个S7项目,并命名为“单向通讯”。在此项目下插入两个S7-300的PLC站,分别重命名 为MPI_Station_1和MPI_Station_2。 • 设置MPI地址 在本例中将CPU315-2DP和CPU313C-2DP的MPI地址分别设置为2号和3号,通信速率为187.5kbit/s。完成后点击按钮,保存并编译硬件组态。最后将硬件组态数据下载到 CPU。 返回上级
编写客户机的通讯程序 返回上级
§7.2.4 有组态连接的MPI通讯方式 ——调用系统功能块SFB 对于MPI网络,调用系统功能块SFB进行PLC站之间的通讯只适合于S7-300/400,S7-400/400之间的通讯,S7-300/400通讯时,由于S7-300CPU中不能调用SFB12(BSEND),SFB13(BRCV),SFB14(GET),SFB15(PUT),不能主动发送和接收数据,只能进行单向通讯,所以S7-300PLC只能作为一个数据的服务器,S7-400PLC可以作为客户机对S7-300PLC 的数据进 行读写操作。 【例7-2-5】有组态连接的MPI单向通讯。 建立S7-300与S7-400之间的有组态MPI单向通讯连接, CPU416-2DP作为客户机,CPU315-2DP作为服务器。 返回本节
建立S7硬件工作站 打开STEP 7,创建一个S7项目,并命名为“有组态单向通讯”。插入一个名称为MPI_STATION_1的S7-400的PLC站,CPU为CPU 416-2DP,MPI地址为2;插入一个名称为MPI_STATION_2的S7-300的PLC站,CPU为CPU 315-2DP,MPI地 址为3。 返回上级
组态MPI通讯连接(1/3) 首先在SIMATIC Manager窗口内选择任一个S7工作站,并进入硬件组态窗口。然后在STEP 7硬件组态窗口内执行菜单命令【Options】→【Configure Network】,进入网络组态 NetPro窗口。 返回上级
组态MPI通讯连接(2/3) 用鼠标右键点击MPI_STATION_1的CPU416-2DP,从快捷菜单中选择【Insert New Connection】命令,出现新建连接对话框,如图所 示。 返回上级
组态MPI通讯连接(3/3) 在“Connection”区域,选择连接类型为“S7 Connection”,在“Connection Partner”区域选择MPI_Station_2工作站的CPU315-2DP,最后点击按钮完成连接表的建立,弹出连接表的详细属性对 话框,如图所示。 返回上级
编写客户机MPI通信程序 返回上级
§7.3 PROFIBUS现场总线通信技术 • §7.3.1 PROFIBUS介绍 • §7.3.2 PROFIBUS DP设备分类 • §7.3.3 CPU31x-2DP之间的DP主从通信 • §7.3.4 CPU31x-2DP通过DP接口连接远程I/O站 • §7.3.5 CP342-5作主站的PROFIBUS-DP组态应用 • §7.3.6 CP342-5作从站的PROFIBUS-DP组态应用 • §7.3.7 PROFIBUS-DP从站之间的DX方式通讯 返回本章
§7.3.1 PROFIBUS介绍 • PROFIBUS是目前国际上通用的现场总线标准之一,PROFIBUS总线87年由Siemens公司等13家企业和5家研究机构联合开发,99年PROFIBUS成为国际标准IEC 61158的组成部 • 分,2001年批准成为中国的行业标准JB/T 10308.3-2001。 • PROFIBUS的组成 • PROFIBUS协议结构 • 传输技术 • PROFIBUS总线连接器 • PROFIBUS介质存取协议 返回本节
1. PROFIBUS的组成 • PROFIBUS协议包括3个主要部分: • PROFIBUS-DP(分布式外部设备) • PROFIBUS-PA(过程自动化) • PROFIBUS-FMS(现场总线报文规范) 返回上级
PROFIBUS-DP(分布式外部设备) PROFIBUS-DP是一种高速低成本数据传输,用于自动化系统中单元级控制设备与分布式I/O(例如ET 200)的通信。主站之间的通信为令牌方式,主站与从站之间为主从轮询方式,以及这两种方式的混合。一个网络中有若干个被动节点(从站),而它的逻辑令牌只含有一个主动令牌(主站), 这样的网络为纯主-从系统。 返回上级
PROFIBUS-PA(过程自动化) PROFIBUS-PA用于过程自动化的现场传感器和执行器的低速数据传输,使用扩展的PROFIBUS-DP协议。 返回上级
PROFIBUS-FMS(现场总线报文规范) PROFIBUS-FMS可用于车间级监控网络,FMS提供大量的通信服务,用以完成中等级传输速度进行的循环和非循环的通信服务。 返回上级
2. PROFIBUS协议结构 返回上级
3. 传输技术 PROFIBUS总线使用两端有终端的总线拓扑结构。 PROFIBUS使用三种传输技术:PROFIBUS DP和PROFIBUS FMS采用相同的传输技术,可使用RS-485屏蔽双绞线电缆传 输,或光纤传输;PROFIBUS PA采用IEC 1158-2传输技术。 返回上级
4. PROFIBUS总线连接器 返回上级
5. PROFIBUS介质存取协议 • PROFIBUS通信规程采用了统一的介质存取协议,此协议 • 由OSI参考模型的第2层来实现。 • 使用上述的介质存取方式,PROFIBUS可以实现以下三种 • 系统配置: • 纯主-从系统(单主站) • 纯主-主系统(多主站) • 两种配置的组合系统(多主-多从) 返回上级