S7-200自由口通信_第1页
S7-200自由口通信_第2页
S7-200自由口通信_第3页
S7-200自由口通信_第4页
S7-200自由口通信_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

1、S7-200自由口通信关键字S7-200自由口通信简介S7-200CPU的通信口可以设置为自由口模式。选择自由口模式后,用户程序就可以完全控制通信端口的操作,通信协议也完全受用户程序控制。一般用于和第三方申行通信设备进行通信。自由口模式可以灵活应用。Micro/WIN的两个指令库(USS和ModbusRTU)就是使用自由口模式编程实现的。早在进行自由口通信程序调试时,可以使用PC/PPI电缆(设置到自由口通信模式)连接PC和CPU,在PC上运行串口调试软件(或者Windows的HyperTerminal一超级终端)调试自由口程序。?小USB/PPI电缆和CP卡不支持自由口调试。目录自由口通信基

2、本概念自由口通信概述S7-200PLC的通讯口支持RS485接口标准。采用正负两根信号线作为传输线路。工作模式采用串行半双工形式,在任意时刻只允许由一方发送数据,另一方接收数据。数据传输采用异步方式,传输的单位是字符,收发双方以预先约定的传输速率,在时钟的作用下,传送这个字符中的每一位。传输速率可以设置为1200、2400、4800、9600、19200、38400、57600、115200。字符帧格式为一个起始位、7或8个数据位、一个奇/偶校验位或者无校验位、一个停止位。字符传输从最低位开始,空闲线高电平、起始位低电平、停止位高电平。字符传输时间取决于波特率。数据发送可以是连续的也可以是断续

3、的。所谓连续的数据发送,是指在一个字符格式的停止位之后,立即发送下一个字符的起始位,之间没有空闲线时间。而断续的数据发送,是指当一个字符帧发送后,总线维持空闲的状态,新字符起始位可以在任意时刻开始发送,即上一个字符的停止位和下一个字符的起始位之间有空闲线状态。示例:用PLC连续的发送两个字符(16#55和16#EE)(程序如图3和图4),通过示波器测量CPU通讯端口管脚3/8之间的电压,波形如下图1.:图1.两个字符(16#55和16#EE)的波形图示例说明:16进制的16#55换算成2进制等于2#01010101,16进制的16#EE换算成2进制等于。如图所示,当数据线上没有字符发送时总线处

4、于空闲状态(高电平),当PLC发送第一个字符16#55时,先发送该字符帧的起始位(低电平),再发送它的8个数据位,依次从数据位的最低位开始发送(分别为1、0、1、0、1、0、1、0),接着发送校验位(高电平或低电平或无)和停止位(高电平)。因为本例中PLC连续的发送两个字符,所以第一个字符帧的停止位结束后便立即发送下一个字符帧的起始位,之间数据线没有空闲状态。假如PLC断续的发送这两个字符,那么当PLC发送完第一个字符帧的停止位后,数据线将维持一段时间空闲状态,再发送下一个字符帧。字符传输的时间取决于波特率,如果设置波特率为,那么传输一个字符帧中的一位用时等于1/9600*1000000=10

5、4us,如果这个字符帧有11位,那么这个字符帧的传输时间等于11/9600*1000=.自由口通信协议是什么顾名思义,没有什么标准的自由口协议。用户可以自己规定协议。已知一个通信对象需要字符(字节)传送格式有两个停止位,S7-200是否支持字符格式是由最基础的硬件(芯片)决定的;S7-200使用的芯片不支持上述格式。S7-200是否支持S7-200系统手册上列明的通信波特率以外的其他特殊通信速率通信速率是由最基础的硬件(芯片)决定的;S7-200使用的芯片不支持没有列明在手册上的通信速率。自由口通信要点应用自由口通信首先要把通信口定义为自由口模式,同时设置相应的通信波特率和上述通信格式。用户程

6、序通过特殊存储器SMB30(对端口0)、SMB130(对端口1)控制通信口的工作模式。色?CPU通信口工作在自由口模式时,通信口就不支持其他通信协议(比如PPI),此通信口不能再与编程软件Micro/WIN通信。CPU停止时,自由口不能工作,Micro/WIN就可以与CPU通信。值通信口的工作模式,是可以在运行过程中由用户程序重复定义的。如果调试时需要在自由口模式与PPI模式之间切换,可以使用的状态决定通信口的模式;而的状态反映的是CPU运行状态开关的位置(在RUN时="1",在STOP时="0")自由口通信的核心指令是发送(XMT)和接收(RCV)指令

7、。在自由口通信常用的中断有”接收指令结束中断"、”发送指令结束中断”,以及通信端口缓冲区接收中断。与网络读写指令(NetR/NetW)类似,用户程序不能直接控制通信芯片而必须通过操作系统。用户程序使用通信数据缓冲区和特殊存储器与操作系统交换相关的信息。XMT和RCV指令的数据缓冲区类似,起始字节为需要发送的或接收的字符个数,随后是数据字节本身。如果接收的消息中包括了起始或结束字符,则它们也算数据字节。调用XMT和RCV指令时只需要指定通信口和数据缓冲区的起始字节地址。&XMT和RCV指令与NetW/NetR指令不同的是,它们与网络上通信对象的“地址"无关,而仅对本地

8、的通信端口操作。如果网络上有多个设备,消息中必然包含地址信息;这些包含地址信息的消息才是XMT和RCV指令的处理对象。也由于S7-200的通信端口是半双工RS-485芯片,XMT指令和RCV指令不能同时有效。发送和接收指令XMT(发送)指令的使用比较简单。RCV(接收)指令所需要的控制稍多一些。RCV指令的基本工作过程为:?1.在逻辑条件满足时,启动(一次)RCV指令,进入接收等待状态?2.监视通信端口,等待设置的消息起始条件满足,然后进入消息接收状态?3.如果满足了设置的消息结束条件,则结束消息,然后退出接收状态所以,RCV指令启动后并不一定就接收消息,如果没有让它开始消息接收的条件,就一直

9、处于等待接收的状态;如果消息始终没有开始或者结束,通信口就一直处于接收状态。这时如果尝试执行XMT指令,就不会发送任何消息。所以确保不同时执行XMT和RCV非常重要,可以使用发送完成中断和接收完成中断功能,在中断程序中启动另一个指令。中在S7-200系统手册中关于XMT和RCV指令的使用有一个例子。这个例子非常经典,强烈建议学习自由口通信时先做通这个例子。S7-200CPU提供了通信口字符接收中断功能,通信口接收到字符时会产生一个中断,接收到的字符暂存在特殊存储器SMB2中。通信口PortO和Portl共用SMB2,但两个口的字符接收中断号不同。每接收到一个字符,就会产生一次中断。对于连续发送

10、消息,需要在中断服务程序中将单个的字符排列到用户规定的消息保存区域中。实现这个功能可能使用间接寻址比较好。也对于高通信速率来说,字符中断接受方式需要中断程序的执行速度足够快。生一般情况下,使用结束字符作为RCV指令的结束条件比较可靠。如果通信对象的消息帧中以一个不定的字符(字节)结束(如校验码等),就应当规定消息或字符超时作为结束RCV指令的条件。但是往往通信对象未必具有严格的协议规定、工作也未必可靠,这就可能造成RCV指令不能正常结束。这种情况下可以使用字符接收中断功能。字符接收中断S7-200CPU提供了通信口字符接收中断功能,通信口接收到字符时会产生一个中断,接收到的字符暂存在特殊存储器

11、SMB2中。通信口PortO和Portl共用SMB2,但两个口的字符接收中断号不同。?每接收到一个字符,就会产生一次中断。对于连续发送消息,需要在中断服务程序中将单个的字符排列到用户规定的消息保存区域中。实现这个功能可能使用间接寻址比较好。心对于高通信速率来说,字符中断接受方式需要中断程序的执行速度足够快。值?一般情况下,使用结束字符作为RCV指令的结束条件比较可靠。如果通信对象的消息帧中以一个不定的字符(字节)结束(如校验码等),就应当规定消息或字符超时作为结束RCV指令的条件。但是往往通信对象未必具有严格的协议规定、工作也未必可靠,这就可能造成RCV指令不能正常结束。这种情况下可以使用字符

12、接收中断功能。自由口通信使用指南通讯口初始化SMB30(对于端口0)和SMB130(对于端口1)被用于选择波特率和校验类型。SMB30和SMB130可读可写。见表1.表1.特殊存储器字节SMB30/SMB130示例:定义端口0为自由口模式,9600波特率,8位数据位,偶校验,程序如下图2.:图2.通讯口初始化程序发送数据:发送指令XMT能够发送一个字节或多个字节的缓冲区,最多为255个。使用边沿触发。发送缓冲区格式:第一个字节为字符个数,其后为发送的信息字符。示例:如果PLC连续发送2个字符16#55和16#EE,程序如下图3.:图3.发送指令程序示例说明:PLC通过数据块写入数据。XMT指令

13、中TBL缓冲区首地址VB200写入发送字符的个数,VB201和VB202分别写入发送字符。通讯口波形图如图1.判断发送完成的方法方法一:发送完成中断。通过连接中断服务程序到发送结束事件上,在发送完缓冲区中的最后一个字符时,则会产生一个中断。对通讯口0为中断事件9,对通讯口1为中断事件26。连接中断程序到中断事件示例如下图4.:图4.建立发送完成中断的程序方法二:发送空闲位。当port0发送空闲时,=1。当port1发送空闲时,=1.示例:如果PLC断续的发送2个字符16#55和16#EE.方法一:利用发送完成中断,在主程序中建立中断事件,执行XMT发送16#55,发送完成后,进入发送完成中断程

14、序中,执行XMT发送16#EE。波形图如图5.图5.字符波形图方法二:利用发送空闲位。当执行XMT发送完16#55后,利用的上升沿(确保发送的字符帧发送完成),往XMT的TBL缓冲区写入新字符16#EE,并再次触发发送。波形图如图6.图6.字符波形图两种方法均断续发送字符,即两个字符之间有空闲状态。注意:由于的使用受程序扫描周期的影响,编程中推荐使用发送完成中断。Break断点Break状态:持续以当前波特率传输16位数据,且一直维持"0"状态。产生方式:把字符数设置为0并执行XMT指令,可以产生一个Break状态。Break用途:可以作为接收的起始条件。示例:通过XMT指

15、令发送一个Break断点。偶校验,8个数据位,。程序如下图7.:图7.发送一个断点的程序Break状态的波形图如下图8.图8.一个断点波形图如果通过接收方为上位机或者S7-200PLC,那么它们接收到的字符为16#00.那么通过发送一个Break断点接收到的16#00与发送一个字符帧16#00有什么不同呢Break状态是传输16位数据一直为0。而发送一个字符16#00(帧格式为1个起始位,8个数据位,偶校验和停止位)则传输11位该字符帧。如下图9.图9.一个断点和字符0的波形图接收数据接收指令RCV能够接收一个字节或多个字节的缓冲区,最多为255个。使用边沿触发或第一个扫描周期触发。接收缓冲区

16、格式:第一个字节表示接收的字符个数,其后为接收的信息字符。RCV使能会将TBL缓冲区中的字符个数清零。示例:如果发送方给PLC发送2个字符16#55和16#EE,PLC的接收程序如下图10.:图10.接收指令程序示例说明:RCV指令TBL缓冲区的首地址VB200保存的是接收字符个数,其后是信息字符。判断接收完成的方法:方法一:接收完成中断。通过连接中断服务程序到接收信息完成事件上,在接收完缓冲区中的最后一个字符时,则会产生一个中断。对端口0为中断事件23,对端口1为中断事件24。连接中断程序到中断事件示例如下图11.:图11.建立接收完成中断的程序方法二:接收状态字节。SMB86(port0)

17、,SMB186(port1)。当接收状态字节为0,表示接收正在进行。当接收状态字节不为0,表示接收指令未被激活或者已经被中止。见下表2.表2.接收状态字节SMB86(port0)/SMB186(port1)接收指令起始和结束条件接收指令使用接收信息控制字节(SMB87或SMB187)中的位来定义信息起始和结束条件。必须为接收信息功能操作定义一个起始条件和一个结束条件(最大字符数)。如下图12.图12.接收控制字节SMB87(port0)/SMB187(port1)接收指令起始条件接收指令支持几种起始条件:1 .空闲线检测定义:在传输线上一段安静或空闲的时间。当接收指令执行时,接收信息对空闲线时

18、间进行检测。在空闲线时间到之前接收的字符,被忽略且按照SMW90/190给定的时间重新启动空闲线定时器。在空闲线时间到之后,接收的字符存入信息缓冲区。空闲时间的典型值为在指定波特率下传输3个字符的时间。示例:PLC接收的起始条件定义为空闲线检测(设置SMB87中的il=1,sc=0,bk=0,空闲线超时时间SMW90=10ms);接收的结束条件定义为最大字符个数SMB94=10。程序如下图13.图13.空闲线检测程序示例说明:(紫色部分:)当启动接收指令后,PLC对空闲线时间进行检测,如果在SMW90中设定的空闲线时间到之前,已经接收到了字符1,则字符1被忽略,并且按照SMW90中设定的时间重

19、新启动空闲定时器。(橙色部分:)同样的,如果在SMW90中设定的空闲线时间到之前,已经接收到了字符2,则字符2也被忽略且空闲线定时器重新启动。(绿色部分:)如果在SMW90中设定的空闲线时间到之后,接收到字符3,则字符3作为第一个信息字符存入接收缓冲区。见下图14.图14.用空闲时间检测来启动接收指令2 .起始字符检测当接收到SMB88/188指定起始字符后,接收信息功能将起始字符作为信息的第一个字符存入接收缓冲区。起始字符之前的字符被忽略,起始字符和其后的所有字符存入接收缓冲区。示例:PLC接收的起始条件定义为起始字符检测(设置SMB87中的il=0,sc=1,bk=0,起始字符SMB88=

20、16#55);接收的结束条件定义为最大字符个数SMB94=4。程序如下图15.图15.起始字符检测程序示例说明:PLC接收总线上传来的一串字符,16#01、16#02、16#03、16#55、16#AA、16#BB、16#CC,当PLC检测到起始字符16#55后,开始接收并将16#55作为第一个信息字符存入接收缓冲区,起始字符之前的3个字符被忽略。如下图16.图16.用起始字符检测来启动接收指令3 .空闲线和起始字符接收指令执行时,先检测空闲线条件,在空闲线条件满足后,检测起始字符。如果接收的字符不是起始字符,则重新检测空闲线条件。在空闲线条件满足和接收到起始字符之前接收的字符被忽略。起始字符

21、和字符串一起存入缓冲区。适用于通讯连接线上有多个设备的情况。示例:PLC接收的起始条件定义为空闲线和起始字符(设置SMB87中的il=1,sc=1,bk=0,空闲线检测时间SMW90=10ms,起始字符SMB88=16#55),结束条件为最大字符个数2.示例说明:PLC接收总线上传来的数据,分几种情况:当空闲线条件不满足,即使空闲后出现起始字符,PLC也不开始接收。如图17.图17.当PLC先检测到起始字符,再检测到空闲线条件满足,PLC不启动接收。或者当PLC检测到空闲线条件满足后,接收到除起始字符之外的任意字符,PLC也不启动接收。如图18.图18.只有当PLC检测空闲线条件满足后,接收到

22、起始字符,PLC才启动接收,在空闲线条件满足和接收到起始字符之前接收的字符被忽略。起始字符和字符串一起存入缓冲区,缓冲区首地址VB200。如图19.图19.用空闲线和起始字符来启动接收指令4 .断点检测大于一个完整字符传输时间的一段时间内,接收数据一直为0.在断点之前接收的字符被忽略,在断点之后接收的字符存入信息缓冲区。示例:PLC接收的起始条件定义为断点检测(设置SMB87中的il=0,sc=0,bk=1),结束条件为最大字符个数8。示例说明:PLC接收总线上传来的一串字符和断点,依次为16#0016#00(连续的两个字符间没有空闲)、16#0016#00(断续的两个字符间有空闲)、第一个B

23、reak断点、16#55、第二个Break断点、16#EE。当PLC检测到第一个断点状态后,启动接收,接收的字符存入信息缓冲区(第二个断点),第一个断点之前的字符被忽略。接收缓冲区起始地址为VB200。如下图20.图20.用断点检测来启动接收指令5 .断点和起始字符在断点条件满足后,检测起始字符。在断点条件满足后,如果收到除起始字符外的任意字符,重新检测新的断点。在满足断点和起始字符之前接收的字符将被忽略,起始字符和字符串一起存入信息缓冲区。示例:PLC接收的起始条件定义为断点和起始字符(设置il=0,sc=1,bk=1,起始字符SMB88=16#55)。结束条件为最大字符个数8.示例说明:P

24、LC接收总线上传来的一串字符和断点,依次为16#55、break、16#AA、16#55、break、16#55、16#EE、16#FF.分几种情况理解:当PLC先检测到起始字符再检测到断点,PLC不启动接收。(SC+BK)当PLC检测到断点后,接收到除起始字符外的任意字符,PLC不启动接收。(BK+Char+SC)只有当PLC检测到断电后,紧接着检测到起始字符,才启动接收并且将起始字符和字符串一同存入信息缓冲区,断点和起始字符之前接收的字符将被忽略。(BK+SC)如图21.图21.用断点和起始字符检测来启动接收指令6 .任意字符。任意字符接收是空闲线检测的特例。设置方式:il=1,sc=0,

25、bk=0,空闲线时间SMW90/190=0。接收指令一执行,立即接收任意字符,并把所有接收字符存入信息缓冲区。允许使用信息定时器监控接收是否超时。当接收指令执行时,信息定时器启动,如果没有其他终止条件满足,信息定时器超时会接收接收功能。接收指令结束条件接收指令支持以下一种或几种组合的结束条件:1 .结束字符检测在起始条件之后,接收指令检查接收的所有字符,如果检测到结束字符,则将其存入缓冲区,结束接收。示例:PLC接收的结束条件定义为结束字符检测(设置SMB87中的ec=1,定义结束字符SMB89=16#55),接收起始条件定义为起始字符检测(起始字符16#AA)。示例说明:PLC接收总线上传来

26、的一串字符,依次为16#AA、16#BB、16#CC、16#55、16#EE、16#FF。当PLC检测到起始字符16#AA后,启动接收,当检测到结束字符16#55后,结束接收并将接收的所有字符存入信息缓冲区。如下图22.图22.用结束字符检测来结束接收指令2 .字符间隔定时器字符间隔时间定义:从一个字符的结尾(停止位)到下一个字符的结尾(停止位)之间的时间。接收到字符后,字符间隔定时器重新启动。两个字符之间的间隔时间超过SMW92/192则结束接收。示例:PLC接收的结束条件定义为字符间隔定时器(设置SMB87中的c/m=0,tmr=1,信息超时时间SMW92),接收起始条件定义为起始字符检测

27、。示例说明:PLC接收总线上传来的一串字符,当PLC满足接收条件后启动接收,接收完一个字符的停止位后,重新启动字符间隔定时器,如果检测到下一个字符帧停止位时SMW92时间未到,则重新启动字符间隔定时器,如果当SMW92时间到时还未检测到下一个字符帧的停止位,则结束接收。如下图23.图23.用字符间隔定时器来结束接收指令3 .信息定时器当接收启动条件一满足,信息定时器就启动,当时间超过SMW92/192指定的时间,信息定时器时间到结束接收。示例:PLC接收的结束条件定义为信息定时器(设置SMB87中的c/m=1,tmr=1,信息超时时间SMW92),接收起始条件定义为起始字符检测。示例说明:PL

28、C接收总线上传来的一串字符,当PLC满足接收条件后启动接收,信息定时器启动,当SMW92时间到时,结束接收。如图24.图24.用信息定时器来结束接收指令4 .最大字符计数当接收字符个数达到或超过最大字符个数(SMB94/SMB194),接收功能结束。由于接收指令需要知道接收信息的最大长度,以保证信息缓冲区之后的数据不被覆盖,所以即使不被用作接收结束条件,也必须指定最大字符个数。如果没有指定最大字符个数,则=1(输入参数错误或丢失启动或结束条件)5 .校验结束当接收字符的同时出现硬件信号校验错误时,接收指令会自动结束。只有在SMB30/130中使能校验位,才有可能出现校验错误。没有办法禁止此功能

29、。6 .用户结束。通过程序结束接收功能:将或置为0,且需边沿触发RCV接收指令。以上内容是通过发送和接收指令实现S7-200PLC的自由口通讯。另外,S7-200PLC还提供了通讯口字符接收中断功能。见下文。?如何人为结束RCV接收状态接收指令控制字节(SMB87/SMB187)的en位可以用来允许/禁止接收状态。可以设置为“0”,然后对此端口执行RCV指令,即可结束RCV指令。字符中断使用字符中断方式接收数据,接收每个字符时都会产生中断。在执行与接收字符事件相连的中断程序前,接收的字符存入SMB2寄存器中,校验状态存入。SMB2、都是只读Port0/Port1共用SMB2/SMB3。Port

30、0对应于中断事件8。Portl对应于中断事件25。SMB2使用条件:RCV指令不使能,通讯端口为自由口模式,且建立中断事件8/25。字符中断使用方法:以端口0接收字符为例:如图25.图25.字符中断程序当CPU通过端口0接收到一个字符后,会将该字符存入接收字符缓冲区SMB2,然后进入相连接的中断程序中。注意:对于这段程序,如果在中断程序中不作任何编程,那么当CPU接收n个字符时,中断程序将被执行n次,SMB2寄存器存储接收到的最后一个字符。如上位机通过串口调试软件给CPU发送3个字符16#AA、16#BB和16#CC,如下图26.图26.通过串口调试软件发送字符那么与接收字符事件相连的中断程序

31、将被执行3次,SMB2中只能保存最后一个接收到的字符16#CC。如下图27.图27.状态表监控SMB2?用SMB接收多个字符,如何编程由于SMB2只能存储一个字符(一个字节),如果要想接受多个字符,则应当在CPU接收下一个字符之前,在中断程序中通过指针编程将SMB2中存储的字符移出来,以便下一次接收字符。以一个例程说明:如图28.图28.接收多个字符的程序VD0作为地址指针指向VB100,当端口0接收到第一个字符,将第一个字符存入SMB2,进入接收中断,将SMB2中的字符复制到指针VD0指向的地址字节VB100中,指针地址加1,VD0指向下一个字节VB101。当接收第二个字符,将字符存入SMB

32、2,进入接收中断,将SMB2中的第二个字符复制到指针VD0指向的地址字节VB101中,指针地址加1,VD0指向下一个字节VB102。当接收第三个字符时以此类推。另外,如果需要接收n个字符就结束接收,或者需要接收n个字符后循环接收,可以在中断程序中设置一个标志位,下面我们试举例说明:例程1,接收到5个字符就结束接收的程序:如图29.图29.程序例程2,接收到5个字符后循环接收的程序:如图30.图30.程序注意,程序中的的指车+不要选择累加器AC,因为累加器不能在主程序和中断程序中传递参数。?字符中断和RCV旨令之间有什么关系简单地说,当RCV指令使能时,接收字符不进入SMB缓冲区。分析实验如下:

33、在主程序中我们既定义PLC执行RCV接收指令的起始结束条件(起始条件为起始字符16#AA,结束条件为结束字符16#BB),又建立字符中断事件8, RCV指令。上位机通过串口调试软件给 CPU发送字符。如图31.0图31.通过串口调试软件发送字符程序如下图32.:图32.测试程序状态表监控结果:如下图33.图33.状态表监控结果结论:当RCV指令不触发的话,接收字符只进入 SMB2缓冲区,不进入 冲区。当RCV指令触发后,满足CPU接收的起始和结束条件的字符存入上升沿条件触发RCV指令的接收缓RCV指令对应的TBL缓冲区。起始条件之前的字符既不存入RCV缓冲区,也不存入SMB2缓冲区。结束条件之

34、后接收到的字符,存入SMB2缓冲区。自由口通信例程为了更好的理解自由口的编程,可参考下面的例程。该例程涉及到两台S7-200PLC,其中发送方向接收方发送数据,接收方接收到数据后再给发送方发送数据,如此往复。自由口发送方程序:先发送3个字符a'、'b'、'c'到接收方,然后转为接收状态,接收到对方的3个字符'1'、2、3'后重新启动发送指令,将d、'e'、甲发送到接收方后再启动接收,随后收到3个字符4'、5'、6'。然后重复上述过程。自由口接收方程序:先接收3个字符a'、'b

35、'、'c',然后转为发送,给对方发出3个字符1、2、3'后重新启动接收指令,待收到d、'e'、甲后重新启动发送指令,发出3个字符'4'、5、6'后再次转为接收状态。然后重复上述过程。色注意:此指令库/程序的作者和拥有者对于该软件的功能性和兼容性不负任何责任。使用该软件的风险完全由用户自行承担。由于它是免费的,所以不提供任何担保,错误纠正和热线支持,用户不必为此联系西门子技术支持与服务部门。?需要定时向通信对象发送消息并等待回复的消息,如果因故消息没有正常接收,下次无法发送消息怎么办可以在开始发送消息时加上人为中止RCV指令

36、的程序。?自由口通信中,主站向从站发送数据,为何收到多个从站的混乱响应这说明从站没有根据主站的要求发送消息。有多个从站的通信网络中,从站必须能够判断主站的消息是不是给自己的,这需要从站的通信程序中有必要的判断功能。RS485网络RS-485串行通信标准采用平衡信号传输方式,或者称为差动模式。平衡传输方式可以有效地抑制传输过程中干扰。平衡方式采用一对导线,利用两根导线间的电压差传输传输信号。这两根导线被命名为A(TxD/RxD-)和B(TxD/RxD+)。当B的电压比A高时,认为传输的是逻辑"高"电平;当B的电压比A低时,认为传输的是逻辑"低"电平信号。能

37、够有效工作的差动电压范围十分宽广,可以从零点几伏到接近十伏。RS-485通信端口可以做到很高的通信速率,较长的通信距离,以及并联连接多个端口。小?平衡通信方式能否有效工作受到共模电压差的影响。RS-485接口的两根导线相对于通信对象信号地的电压差就是共模电压。非电气隔离的RS-485接口能在一定的范围内抵抗共模电压对通信的干扰。S7-200CPU通信口的共模制电压是12V。所以对于这类非隔离型的RS-485端口,保证通信口之间的信号地等电位非常重要,最好将它们连接在一起(并不是说一定要接地)。S7-200系统中的RS-485端口是半双工的,不能同时发送和接收信号。在S7-200系统中,选择合适

38、的通信设备,可以做到波特率从1200到12M,单段距离1000m,单段站点32个的通信网络。通过中继器,RS-485电气网络还可以扩展通信距离,增加通信站点。详情请参考S7-200系统手册关于通信的专门一章。虽然常见的RS-485通信器件在电气性能上基本一致,但物理接口却五花八门,没有统一的规定。通信口引脚定义表3.S7-200CPU通信口引脚定义:CPU插座(9针母头)引脚号PROFIBUS名称Port0/Port1(端口0/端口1)弓1脚定义1屏蔽机壳接地(与端子PE相同)/屏蔽224V返回逻辑地(24V公共端)3RS-485信号BRS-485信号B或TxD/RxD+4发送请求RTS(TT

39、L)55V返回逻辑地(5V公共端)6+5V+5V,通过100Ohm电阻7+24V+24V8RS-485信号ARS-485信号A或TxD/RxD-9不用10位协议选择(输入)金属壳屏蔽机壳接地(与端子PE相同)/与电缆屏蔽层连通上表中,3和8为RS-485信号,它们的背景颜色与PROFIBUS电缆、PROFIBUS网络插头上的颜色标记一致。通信端口可以从2和7向外供24V直流电源。?注意:?CPU通信口上的2、5针在内部是连通的,并且它们和CPU上的传感器电源(十24V)的M也是连通的?通信口插座的金属壳、1号针,与CPU接线端子上的电源部分的PE导通,而与上述的M不通?拥有两个通信口的CPU,

40、其Port。、Portl的2、5针相通,也与M连通RS-485网络的硬件组成在S7-200系统中,无论是组成PPI、MPI还是RPOFIBUS-DP网络,用到的主要部件都是一样的:?电缆:电缆型号有多种,其中最基本的是PROFIBUSFC(FastConnect快速连接)Standard电缆(订货号6XV1830-0EH10)?网络连接器:网络连接器也有多种形式,如出线角度不同等等图34.剥好一端的PROFIBUS电缆与快速剥线器(FCS,订货号6GK1905-6AA00)B.打开PROFIBUS网络连接器。首先打开电缆张力释放压块,然后掀开芯线锁。图35.打开的PROFIBUS连接器C.去除

41、PROFIBUS电缆芯线外的保护层,将芯线按照相应的颜色标记插入芯线锁,再把锁块用力压下,使内部导体接触。应注意使电缆剥出的屏蔽层与屏蔽连接压片接触。图36.插入电缆小?由于通信频率比较高,因此通信电缆采用双端接地。电缆两头都要连接屏蔽层。D.复位电缆压块,拧紧螺丝,消除外部拉力对内部连接的影响。网络连接器网络连接器主要分为两种类型:带和不带编程口的。不带编程口的插头用于一般联网,带编程口的插头可以在联网的同时仍然提供一个编程连接端口,用于编程或者连接HMI等。线型网络结构构成总线型网络结构右侧的是带编程口的网络连接器(订货号通过 PROFIBUS37.左侧为不带编程口的网络连接器(订货号6E

42、S7 972-0BB52-0XA0 )6ES7 972-0BA52-0XA0 )图38.总线型网络连接在上图中,网络连接器A、B、C分别插到三个通信站点的通信口上;电缆a把插头A和B连接起来,电缆b连接插头B和C。线型结构可以照此扩展。注意圆圈内的"终端电阻”开关设置。网络终端的插头,其终端电阻开关必须放在"ON”的位置;中间站点的插头其终端电阻开关应放在"OFF"位置。终端电阻和偏置电阻一个正规的RS-485网络使用终端电阻和偏置电阻。在网络连接线非常短、临时或实验室测试时也可以不使用终端和偏置电阻。?1.?终端电阻:在线型网络两端(相距最远的两个通信端口上),并联在一对通信线上的电阻。根据传输线理论,终端电阻可以吸收网络上的反射波,有效地增强信号强度。两个终端电阻并联后的值

温馨提示

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

评论

0/150

提交评论