S7-300通讯专题优秀课件_第1页
S7-300通讯专题优秀课件_第2页
S7-300通讯专题优秀课件_第3页
S7-300通讯专题优秀课件_第4页
S7-300通讯专题优秀课件_第5页
已阅读5页,还剩155页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1,通讯专题,通讯专题,2,MPI 通讯,MPI通讯,MPI(Multi Point Interface)是指多点接口通信协议,通过它可组成一个小型PLC通讯网络,实现PLC之间的少量数据交换,它不需要额外的硬件和软件就可网络化。每个S7-300 CPU都集成了MPI通信协议,专题一,3,MPI网络可以采用全局数据块通讯和无组态的MPI通讯。如果在各个中央处理单元(CPU)之间相互交换少量数据,只关心数据的发送区和接收区,则可以采用全局数据块通讯。这种通讯方式只适合S7-300/400 PLC之间相互通讯,应用范围不是很广。而无组态的MPI通讯适合于S7-300、S7-400和S7-200之间

2、的通信,是一种应用广泛、经济的通信方式,4,S7-300与S7-300 PLC之间的无组态MPI通讯,5,网络组建,第一步:新建一个项目并插入站点,6,7,如此插入两个站,8,第二步:组态SIMATIC 300 (1)站,选择“SIMATIC 300 (1)”,双击“硬件”,进入硬件组态对话框图 ,进行如下组态,9,双击2号插槽内的X1“MPI/DP”接口来配置MPI接口参数。需要说明的是,本例中所使用的CPU 315-2PN/DP本身集成了一个“PROFINET”接口和一个“MPI/DP”的复用接口,根据需要用户可以选择将“MPI/DP”接口配置成MPI还是PROFIBUS接口。这里将“MP

3、I/DP”配置成MPI接口,10,点击属性按钮,设置参数和1号站的地址:2,之后编译保存,11,第三步:组态SIMATIC 300 (2)站,设置2号站的地址:3,并选择相同的网络,之后编译保存,12,MPI网络站点之间的数据传输可以采用双边编程和单边编程的方式实现。所谓双边编程,就是在通信双方均调用发送/接收系统块,进行数据的发送和接收;单边编程指的是仅在通信一方调用发送/接收系统块从而发起通信请求,而另一个节点则不发起通信请求,只是提供一些数据或什么工作也不做。两种方式可以通过调用STEP7内系统功能块来实现,软件编程,13,第一步:系统功能SFC65和SFC66,SFC65即“X_SEN

4、D”的功能是向本地S7站以外的通讯伙伴发送数据;而SFC 66X_RCV则是接收本地S7外的通讯伙伴的数据。SFC65和SFC66的框图如图所示,1、通信双方编写程序(双边编程通讯,14,X_SEND引脚功能说明,15,X_RCV 引脚功能说明,16,第二步:编写“SIMATIC 300 (1)”站程序,建立数据块DB100,并在DB100内建立一个20个字节大小的数组。编译保存。 在OB1内编写程序。 程序的功能是通过两次调用“X_SEND”模块,向通信对方发送2个不同编号(由REQ_ID标记)的数据包。其中: 通过M100.0=1来触发SFC65“X_SEND”向3号站发送P#DB100.

5、DBX0.0开始的5个字节内的数据,该数据块的REQ_ID编号为1。 通过M101.0=1来再次触发SFC65“X_SEND”向3号站发送P#DB100.DBX10.0开始的5个字节内的数据,该数据块的REQ_ID编号为2,17,18,因为“X_SEND”是在REQ1的情况下触发数据发送,且两个数据包经由同一通道发送,故两者不能同时触发,为了避免这种情况的发生,所以M100.0和M101.0要互锁一下,19,第三步:编写“SIMATIC 300 (2)”站程序,建立数据块DB102,并在DB102内建立一个20个字节大小的数组。编译保存。 在OB1内编写程序。 功能是通过调用“X_RCV”读取

6、缓冲区队列中的数据块,并存储到RD指定的存储区内,20,当M101.0(EN_DT)=0时,SFC66“X_RCV”模块检查通信缓冲区队列是否有新数据块,如果有则M101.1(NDA)=1,且队列中最早存在的数据块的REQ_ID号存储在MD34中。若没有则NDA(M101.1)为0; 由M101.0=1来触发SFC66“X_RCV”读取2号站发来的数据并存储到RD指定的存储区内,本例中指定的是从P#DB102.DBX10.0 开始的5个字节; 特别注意的是,RD指定的存储区的大小一定要大于等于SFC65“X_SEND”中SD所指定的发送区,否则容易出错,21,22,如果RD指定的存储区中的数据

7、没有被及时处理,若M101.0又一次触发SFC“X_RCV”读取数据,则RD中的数据会被后来的数据覆盖。为了避免这种情况发生,可以作如下处理:根据数据块REQ_ID号的不同利用SFC20(BLKMOV)将数据分别存入不同的处理区,程序如图所示,23,24,第四步:项目下载,将两个站点“SIMATIC 300 (1)”和“SIMATIC 300 (2)”的硬件组态和程序块统统下载到各自的PLC内,25,第五步:通信结果监控,在“SIMATIC 300 (1)”和“SIMATIC 300 (2)”中分别插入变量表VAT_1和VAT_2,并观察监控的效果。 运行程序。首先在VAT_1中修改REQ_I

8、D1=1的数据块的值,并修改VAT_1的M4.0值为1,如图(2)所示。可以看到图VAT_2的MB10MB14接收到该数据;在VAT_1中修改REQ_ID1=2的数据块的值,并修改VAT_1的M4.1值为1,如图(3)所示。可以看到图中VAT_2的MB20MB24接收到相应的数据,26,REQ_ID=1 发送的数据,图(2,27,REQ_ID=1 接收的数据,28,REQ_ID=2 发送的数据,图(3,29,REQ_ID=2 接收的数据,30,2、通信一方编写程序(单边编程,单边编程只需在通信的一方来组织数据的发送和读取,而另一方可以什么都不做,也可以对收到的数据做处理或准备一些数据以便对方来

9、读取,31,第一步:系统功能SFC67和SFC68,32,SFC67“X_GET”的引脚说明,33,SFC68“X_PUT”的引脚说明,34,第二步:编写“SIMATIC 300 (1)”站程序,首先插入一个数据块DB10,为DB10建立一个20个字节大小的数组。保存DB10。 再插入一个DB20的数据块,并建立一个20个字节大小的数组。 在OB1内编写发送和接收程序,35,36,在调用 “X_PUT”和“X_GET”时需要由用户指定通信伙伴的MPI站地址(DEST_ID)和存储区(VAR_ADDR)。 本站的发送区和接收区由“SD”和“RD”来指定。 程序功能:若M4.0为1,则本站(MPI

10、地址为2)DB10.DBD10内数据将被发送到3号站的MD50内;若M5.0为1,则读取3号站MW40内的数据并存放在本站DB20.DBW10内,37,3号站程序,简单得取反,并不利用系统函数, 所以属于单边编程,38,第三步:项目下载,第四步:通信结果监控,39,PROFIBUS 通讯,PROFIBUS 通讯,现场总线定义是安装在生产过程区域的现场设备/仪表与控制室内的自动控制装置/系统之间的一种串行、数字式、多点通信的数据总线,专题二,40,在现代化工厂环境及大规模的工业生产过程控制中,工业设备与数据结构被简单地划分为三个层次,工业三层网络,41,国际电工委员会(IEC)在1999年底通过

11、了一个IEC61158的现场总线标准,此标准容纳了8种互不兼容的总线协议。在2003年4月,IEC61158 Ed.3现场总线标准第3版正式成为国际标准,规定10种类型的现场总线,其中包括FF现场总线、LONWORKS总线、PROFIBUS现场总线、CANBUS现场总线、PROFInet现场总线等。 IEC61158国际标准中的PROFIBUS现场总线也是德国标准(DIN19245)和欧洲标准(EN50170)。在2001年PROFIBUS被定为中国的国家标准JB/T103010.3-2001,42,所有集成了现场总线接口的设备都可以被挂接到现场总线上,控制器与现场设备之间仅通过一根总线电缆相

12、连,结构非常简单,节省安装费用和维护开销。控制器与现场设备可以实现双向的数字通信,克服了模拟信号精度不高、抗干扰能力差的缺点,提高了系统的可靠性,现场总线的优点,43,现场总线的连接方式,44,PROFIBUS-DP和PROFIBUS-FMS使用的是RS485传输技术,传输介质可以采用屏蔽双绞线和光纤等。使用屏蔽双绞线的传输速率有9.6kbit/s、19.2kbit/s、93.75kbit/s、187.5kbit/s、500kbit/s、1500kbit/s、12 000kbit/s。随着通信速率的增加,传输距离也相应地降低为1200m、1200m、1200m、1000m、400m、200m、

13、100m,PROFIBUS传输介质和通讯速率,45,网络的拓扑结构可以采用树形、星形、环形以及冗余等结构。每一个网段最多可以组态32个站点,多于32个可以使用中继器,整个网络最多可以组态127个站点。中继器也要占用站点。 PROFIBUS支持主-从系统、纯主站系统、多主多从混合系统等几种模式。主站与主站之间采用的是令牌的传输方式,主站在获得令牌后通过轮询的方式与从站通信,网络的拓扑结构和通讯方式,46,S7-300/400和S7-300/400 PROFIBUS-DP不打包通信,47,不打包通信可直接利用传送指令实现数据的读写,但是每次最大只能读写4个字节(双字),下面重点描述两个315-2P

14、N/DP PLC之间的PROFIBUS-DP不打包通信,48,网络组建,第一步:新建项目,并插入主从站点,49,50,第二步:SIMATIC 300(S)从站,双击SIMATIC 300(S)的Hardware,进行硬件组态,51,双击2号插槽里的MPI/DP接口,配置属性MPI/DP”配置对话框,52,设置从站方式,设置通讯地址为3,53,配置从站与主站的通信区,单击上图中的“组态”选项卡组态从站与主站的通信区。在随后出现的对话框内点击“新建”按钮,组态接收区。同样组态发送区,从站接收区,54,从站的通信伙伴的配置是虚线,表示主站还没有组态。其中的“MS”表示组建的网络为主从模式,如果组建的

15、网络是数据直接交换,则显示DX,确定后,点击“编译保存”按钮,进行编译保存,55,第三步:配置主站,56,设置主站方式,设置主站地址为2。 将配置好的从站挂接到主站的PROFIBUS-DP的电缆上。在右侧的硬件模块目录树内依次选择PROFIBUS-DP、Configured Station,将框内的CPU 31x拖至左侧的PROFIBUS电缆处,57,在拖曳的过程中出现对话框,单击“连接”按钮,58,59,双击PROFIBUS电缆处的从站,出现“DP从站属性”对话框,单击“组态”选项卡,选中通信区中的从站为输入的一行,单击“编辑”按钮出现对话框,60,注意一一对应的关系:发送和接收对应,对主站

16、的配置编译保存,61,主从站关系图,62,软件编程,第一步:主站侧编程,63,第二步:从站侧编程,64,第三步:运行结果监控,65,S7-300/400和S7-300/400 PROFIBUS-DP打包通信,66,不打包通信每次传输的数据最大为4个字节,若想一次传送更多的数据,则应该采用打包方式的通信。打包通信需要调用系统功能(SFC)。STEP7提供了两个系统功能SFC15和SFC14来完成数据的打包和解包功能,67,SFC15引脚的功能(打包程序,68,SFC14引脚的功能(解包程序,69,网络组建,第一步:新建一个项目并插入站点,70,第二步:SIMATIC 300(S1)站配置,第二步

17、:SIMATIC 300(S1)站配置,第二步:SIMATIC 300(S1)站配置,SIMATIC 300(S1)站建立的是PROFIBUS(1)网络,通信速率为1.5Mbps,行规为DP,站地址设为3。同前所述,配置输入和输出区。注意:一致性选择“全部,71,第三步:SIMATIC 300(S2)站配置,SIMATIC 300(S2)站建立的也是PROFIBUS(1)网络,通信速率为1.5Mbps,行规为DP,站地址设为5,72,第四步:主站SIMATIC 300(M)的配置,主站的PROFIBUS站地址设为2,需要说明的是,在将从站拖到主站PROFIBUS-DP电缆后,可以找到两个刚才已

18、经配置好的站点(站地址分别为3和5,73,连接图,74,双击两个站的图标,进一步配置主站与两个从站的通信区,从站1,75,从站2,76,主站与SIMATIC 300(S1)站的通信区,77,主站与SIMATIC 300(S2)站的通信区,编译保存主站和从站的硬件组态。设置好下载路径后,将主站和从站的硬件组态分别下载到各自的PLC内,78,软件编程,PROFIBUS主从(MS)模式网络都是由主站采用轮询的方式与从站实现通信。主站轮询到哪个从站,哪个从站才有发言权;从站之间不能直接进行通信,必须经由主站的参与。 主站和从站可以分别调用SFC15、SFC14,实现双向通信,也可以在一边单独调用SFC

19、15,另一边单独调用SFC14,实现单向通信。如果要使用DB块存储数据,还必须在项目管理器内建立所使用的DB块,并分配相应大小的存储区。 本例中采用的方案是在SIMATIC 300(S1)站内发送8个字节的数据包给主站,主站接收到该数据包后解压缩,并再次打包发送给SIMATIC 300(S2)站,SIMATIC 300(S2)站接收后解压缩并存储在内存区,79,第一步:SIMATIC 300(S1)从站侧的编程,在从站块内新建DB1、DB2数据块(在“块”界面内右击,选择“插入新对象”、数据块),并分配8个字节的内存区,80,为从站插入3个组织块,分别为OB82、OB86和OB122。它们的作

20、用主要是保证通信正常进行。插入OB35块,并打开编写通信程序,81,程序如图:W#16#A是发送缓冲区起始地址(十进制为10); DB1.DB_VAR 是待发送数据的存储区; 功能:将DB1.DB_VAR内的数据打包发送给主站,程序按照OB35的中断时间周期地被执行,82,第二步:SIMATIC 300(S2)从站侧的编程,在“块”内新建DB1数据块并同样分配8个字节的内存区。在“块”内插入OB35块并编写程序,83,W#16#14是该站接收缓冲区起始地址(十进制为20);DB1.DB_VAR 是接收数据的存储区;MW0用来存储SFC14执行后的一些返回信息,通过该返回信息可以判断通信情况;

21、功能:将主站发来的数据解包,并存储在DB1.DB_VAR内,84,第三步:主站侧的编程,主站内不建立DB块,使用中间存储区M来实现数据读写。 功能:将MB50开始的8个字节内的数据进行打包并发送给SIMATIC 300(S2)站;而将SIMATIC 300(S1)站发来的数据读取进来并解包存储在MB50开始的8个字节内,85,86,第四步:项目的下载,第五步:通信结果的观察,87,88,说明:】 在使用DB或中间内存区来发送和接收数据的时候,应特别注意3个参与通信的区域大小的设置。通信缓冲区的大小、DB块的大小、实际用来发送数据的大小(见图8-33的RECORD)。这里建议3个区域的大小相同,

22、否则通信容易出错,89,S7-200与S7-300/400的PROFIBUS-DP通信,90,S7-300 PLC在PROFIBUS-DP网络中可以组态成主站 ,也可以组态为从站,组态为从站时,S7-300 PLC作为智能从站与主站通信。 S7-200只能作为S7-300 PLC的从站来配置,由于S7-200本身没有DP接口,只能通过EM277接口模块连接到PROFIBUS-DP网络上,91,EM277的使用,EM277模块的左上方有两个拨码开关,每个拨码开关使用起子旋动从而可以设定09这10个数字,其中一个拨码开关的数字10,另一数字1,因此组合起来构成了099,这也是EM277在PROFI

23、BUS-DP网络中的物理站地址。EM277在通电情况下修改拨码开关的数字后,必须断电,然后再上电才能使设定的地址生效。 进行硬件网络组态时设定的EM277站地址必须与拨码开关设定的地址一致,92,通信区的设定,93,第一步:新建工程并插入站点,94,如图进行组态,95,第二步:SIMATIC 300(1)主站配置,双击图8-37中2号插槽内的MPI/DP槽,出现对话框,96,单击2号框后,出现对话框。建立PROFIBUS网络,97,设定通信速率和行规,98,主从站模式设定为主站,编译保存,99,第三步插入EM277从站,由于S7-200没有集成DP接口,必须通过EM277才能连接到PROFIB

24、US网络上。 在图右侧的目录树内依次选择PROFIBUS DP、Additional Field Devices、PLC、SIMATIC、EM277 PROFIBUS-DP,将其拖至左侧PROFIBUS-DP电缆处 【说明:】 如图硬件目录树内找不到EM277的订货号,则需要用户到Siemens 相关网站上下载相应的GSD文件,然后安装该“GSD”文件。重新启动Step7,这时就能够找到EM277的订货号了,100,101,拖曳时,出现对话框。设定地址为88,此为200地址。注意选择网络PROFIBUS(1,102,103,第四步 配置CPU315-2PN/DP与S7-200的通信区,要配置的

25、通信区是指S7-300与S7-200两侧的互为映射的通信缓冲区;EM277仅仅是S7-200用于和S7-300进行通信的一个接口模块,200侧的通信区地址设置必须能够被S7-200所接受,与EM277无关,单击上图的EM277(1号框),出现2号框内的内容,配置S7-300侧的通信区,104,105,单击图内的EM 277 PROFIBUS-DP,可以看到模块提供了多种不同大小的通信区,用户可以根据实际数据传输量来选择,这里选择2 Bytes Out/2 Bytes In,如图所示,图(1,106,修改300通信区地址,107,再配置S7-200侧的通信区,双击图(1)中的EM277,在出现的

26、对话框内选择“参数赋值”选项卡。S7-200侧的通信区默认使用的是全局变量V存储区。在图中的框内可以设定通信区在V区的起始地址。默认通信区从V0开始,占用4个字节(前面通过组态设定的),也可以自行修改,这里修改为从V10开始,即VW10和VW12,其中VW10用来接收S7-300侧发来的数据,VW12用来向S7-300发送数据,108,之后保存编译,109,软件编程,S7-300侧的编程可以用两条语句来实现。 功能是将接收缓冲区IW10内的数据读出,并送给MW2;另外将MW0的数据通过输出缓冲区QW10发送给S7-200侧,110,S7-200侧的编程可以用一条语句来实现。 功能是通过接收缓冲

27、区VW10读取300侧发来的数据,并将接收到的数据取反并通过VW12发送出去,111,通信结果的观察,112,S7-300/400通过 PROFIBUS总线控制变频器,113,本例采用西门子PLC通过PROFIBUS总线控制两个MM440变频器,从而控制两台异步电动机,其中电动机1的速度实际值作为电动机2的速度设定值。 具体操作为: 1、上位机PC通过工业以太网向PLC发送变频器1/电动机1的指令数据(比如速度、方向等); 2、PLC通过PROFIBUS向变频器1发送电动机1的指令数据,使电动机1按照指令运转; 3、变频器1通过PROFIBUS返回电动机1运行过程数据给PLC; 4、PLC根据

28、返回的电动机1过程数据,作为电动机2的指令数据,通过PROFIBUS发送给变频器2,控制电动机2跟随电动机1运转; 5、电动机2运行的过程数据从变频器2通过PROFIBUS再返回给PLC; 6、所有返回给PLC的数据再通过Ethernet返回给上位机PC进行监测,114,控制系统的连接示意图,115,数据传送示意图,116,S7 300建立工程,组态硬件,网络组建,117,主站的硬件组态如图所示,118,从站的组态为: 在硬件组态选中PROFIBUS(1):DP主站系统(1),在右侧“配置(标准)”PROFIBUS DPSIMOVERT双击MICROMASTER 4(或者将其挂接到总线上,11

29、9,弹出“属性-PROFIBUS 接口 MICROMASTER 4”:输入从站地址5/6,120,选中从站,选择PPO类型1,双击4PKW/2PZD(PPO1,121,主从站地址自动分配为,122,PZD(过程数据)和PKW(参数识别数值区)的含义,主站(PLC)发送给从站(MM440)的数据为任务报文(或指令),主站收到的从站数据为应答报文。MM440变频器支持PPO1和PPO3两种通信类型,本例采用PPO1型。通讯报文有效的数据块分为PKW区和PZD区,他们分别具有任务报文和应答报文。其字节分配如图所示,123,124,通讯报文的PZD区是为控制和监测变频器而设计的。在主站(本例PLC)和

30、从站(本例MM440)中收到的PZD总是以最高的优先级加以处理。处理PZD的优先级高于处理PKW的优先级,而且,总是传送当前最新的有效数据,125,任务报文(主站MM440,STW:PZD任务报文的第1个字是变频器的控制字(STW)含义,126,说明:对于变频器收到的控制字,其位10必须设置为1。如果位10是0,控制字将被弃置不顾,变频器按原先的控制方式继续工作,HSW:PZD任务报文的第2个字是主设定值(HSW)。这就是主频率设定值,是由主设定值信号源提供的。数值是以十六进制数的形式发送,即4000(hex)规格化为由P2000设定的频率(比如本例为50Hz),那么2000H即规格化为25Hz,负数则反向,127,应答报文(主站MM440,ZSW:PZD应答报文的第1个字是变频器的状态字(ZSW)。变频器的状态字通常由参数r0052定义,128,HIW:PZD应答报文的第2个字是主要的运行参数实际值(HIW)。通常,把它定义为变频器的实际输出频率。 PKW区前两个字(PKE和IND)的信息是关于主站请求的任务(任务识别标记ID)或应答报文的类型(应答识别标记ID),包括识别标记、基本参数号(PNU)等,PNU的编号与MM440的参数号相对应,例如1082=P1082=Fmax(变频器的最大频率)。PKW区的第3、第4个字规定报文中要访问的变频器的参数值(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论