s7_200通讯设置整理_第1页
s7_200通讯设置整理_第2页
s7_200通讯设置整理_第3页
s7_200通讯设置整理_第4页
s7_200通讯设置整理_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

1、浅谈S7-200 PLC的通讯问题1  引言公司从德国进口铝液除气的设备,该设备配备了S7-200 PLC系统。最近因为工艺要求,要对机器的动作步骤进行修改,这样需要先上载CPU中的PLC程序,更改完毕后再下载回去。但在我们上载程序的过程中却遇到了许多的麻烦,每次点击“上载”工具条后,就出现图1的消息框。我们核对了几遍站址:PLC端是2,PC端是0,设置是不会有错的。  图1     消息框又试着更改了几次波特率,但还是行不通。难道PC/PPI通讯电缆有问题?经过试验,它与其它S7-200设备通讯是不存在任何问题的。我们这台

2、除气设备配置的CPU是CPU226,它有两个通讯口,其中端口0空闲,端口1连结着Proface的触摸屏面板,对这两个端口都尝试了一下,结果都令人失望。接着咨询了一下设备生产厂家,他们的答复是程序在STEP 7-Micro/WIN32 V3.2.1下做的,建议我们找这一下这一版本软件。我们查看了下我们当前的版本是V3.2.4,依他们的建议,我们又重新安装了一遍软件,先不升级到 SP4,这样版本号是V3.2.0,但在此环境下通讯仍然不行。从常识来看,西门子的软件应该是向下兼容的,再说版本号的要求不应该是如此苛刻的,这真有点一筹莫展了!电话咨询西门子公司的专家,根据他们的建议,我们又作了多种尝试,结

3、果还是无功而返,最后登录它的服务网站,查询有关S7-200的各种书籍,终于把问题解决。回过头来再重新思考这个问题,觉得它非常有代表性,有必要整理出来,与业界各位同仁共享。     2  有关S7-200通讯方面的介绍S7 -200是一类小型PLC系统,它支持的通讯协议很多,具体说来有:PPI、MPI、PROFIBUS-DP、S7协议、AS-I、USS、 MODBUS、自由口通讯等,其中PPI、MPI、自由口是CPU上的通讯口所支持的,其它通讯协议需要有专门的CP模块或EM模块的支持。型号不同的 S7-200 CPU具有一到两个RS-485通讯口

4、,例如:CPU221、CPU222、CPU224有一个通讯口;CPU224 XP、CPU226有两个通讯口。CPU上的通讯口各自独立,每个通讯口都有自己的网络地址、通讯速率等参数设置。通讯口的参数在编程软件 Micro/WIN的“系统块”中查看、设置,新的设置在系统块下载到CPU中后起作用。S7-200不仅支持点到点的通讯方式,还支持网络通讯,连接到S7-200编程口的设备都可以认为是连接到了S7-200通讯网络上。网络中通讯设备根据担任的角色不同,可分为:l 通讯从站:从站不能主动发起通讯数据交换,只能响应主站的访问,提供或接受数据。从站不能访问其他从站。在多数情况下,S7-200

5、在通讯网络中作为从站,响应主站设备的数据请求。 l 通讯主站:可以主动发起数据通讯,读写其他站点的数据。S7-200 CPU在读写其它S7-200 CPU数据时(使用PPI协议)就作为主站(PPI主站也能接受其他主站的数据访问);S7-200通过附加扩展的通讯模块也可以充当主站。 安装有编程软件Micro/WIN的计算机一定是通讯主站;所有的HMI(人机操作界面)也是通讯主站。例如:在我们的例子中,其配置就是一个MPI的网络: Proface的触摸屏面板是通讯主站,S7-200是通讯从站。编程软件Step7-Micro/WIN的各个版本与Windows操作系统的各个版本之间,有一定的

6、兼容关系。如果安装的Micro/WIN版本和操作系统不兼容,会发生各种问题,如比较常见的通讯不正常的现象。我们可以访问siemens A&D公司的技术支持网站:www4.ad.siemens.de,从检索窗口中键入STEP7-Micro/WIN,Setup, Install或Compatibility等关键字,获取相关软件之间兼容性方面的信息。影响通讯因素的还有PC/PPI编程电缆。目前西门子提供两种电缆,其一是新型智能多主站电缆,另外一种是早期生产的PC/PPI电缆。两者最大的区别是新型电缆支持多主站通讯,最高波特率可达到 187.5KHz,而旧电缆不支持多主站通讯,不需要握手协议,

7、只能用到9.6K和19.2K两种波特率。另外,新型电缆有三个绿灯用于指示电缆的运行: 传送指示(Tx);RS-232接收指示(Rx);24VDC电源(PWR)。另外,S7-200系统提供了强大的密码保护功能,以保护程序开发者的知识产权,防止未经授权的操作等。如果把密码设置成了Level3,那程序的上载和下载就需要输入密码来授权才能操作。3  如何解决我们的通讯问题我们此前的多次尝试,已经排除了几种可能因素: 其一,不可能加密,因为传输中并未提示输入密码;其二,软件兼容性,我们的配置是Win2000 SP4+ STEP 7-Micro/WIN V3.2.4;其三,通讯硬件没问题,CPU

8、端有两个端口,而且Port1 还连结着正常工作的触摸屏;计算机的串口通过实际检验也是正常工作的;新旧两种电缆都试验过,用新型电缆时,观察它的指示灯,发现三个都是保持常亮状态的。据此,我们推测问题可能还是出在多主站通讯上。依次,我们把智能多主站电缆的DIP开关5设置为“1”而其它设置为“0”,这样就设置成了多主站通讯。在Micro/WIN主界面的左侧浏览条中用鼠标单击Communications(通讯)图标,把“Network Parameters”中的“Supports multiple masters”选项框选中,参见图2。图2     通讯对话框经过

9、这样改动,果然成功把程序上载到计算机中。然后查看它的系统模块属性,设备厂家果然把两个通讯口的通讯速率都锁定在了187.5kHz,Proface触摸屏是MPI网络的唯一主站,如此看来这正是问题的症结所在:过去使用的通讯电缆是旧电缆,通讯速率最高到 19.2kHz,更换了智能多主站电缆后,也没有根据实际情况选中“支持多主站”。4  解决S7-200通讯问题的思路4.1  通讯出错分析一般说来,在设备正常的条件下,发生Micro/WIN不能与CPU通讯的原因主要有:(1) Micro/WIN中设置的对方通讯口地址与CPU的实际口地址不同,通常设置“2”;(2) Micro/WIN

10、中设置的本地(编程电脑)地址与CPU通讯口的地址相同了(应当将Micro/WIN的本地地址设置为“0”) (3) Micro/WIN使用的通讯波特率与CPU端口的实际通讯速率设置不同 (4) 有些程序会将CPU上的通讯口设置为自由口模式,此时不能进行编程通讯。编程通讯是在PPI模式下进行。4.2  通讯出错排查遇到通讯问题,我们要有耐心,逐项排查各种影响因素,直到通讯成功,可以参考如下的步骤:(1) 检查Step7-Micro/WIN与Windows操作系统是否完全兼容;(2) 检查是否使用西门子的原装编程电缆,并区分新旧两种电缆;(3) 检查电脑上的COM通讯口设置,记住把接收和发

11、送缓冲区都设置为最小值,并保持选中“FIFO”选择框;(4) 检查编程电缆的DIP开关设置,是否与Micro/WIN的通讯速率设置相同;对于普通编程电缆,搜索速率最高为19.2,因此如果CPU通讯口速率被设置为187.5K,则不能被找到。 (5) 检查CPU右下角的传感器直流电源输出电压(测量L+/M),电压应当高于22V(6) 使用wipeout.exe程序,恢复CPU的出厂设置。缺省情况下CPU通讯口地址为2,通讯速率9.6K。这个程序可在STEP7-Micro/WIN的安装光盘中找到。5  结束语S7-200的通讯问题还是蛮复杂的,影响的因素也很多。对一个具体的问题,很难说有一

12、种包治百病的良方,我们应该根据实际情况,区别对待。我们对它了解得越多,就越容易把握住它脾性,克服它!让它更好地为我们的工作。S7-200通信及实例工控网.dingqw1234网友在下面的帖子中希望得到多台S7-200之间通过网络读写(NETR和NETW)的通信的解决方法和实例。本人应dingqw1234网友的要求,特发此帖。在这个帖子里聊一下S7-200的通信,并特别对多台S7-200之间通过网络读写(NETR和NETW)的通信实现进行举例说明。.dingqw1234网友的帖子:我想用两台CPU 226CN 通讯,一台的输入点全传到另一台里怎么做 ?    

13、60;.下面先简单了解一下S7-200支持的通信协议:.比较详细的介绍,请参阅S7-200可编程控制器系统手册第7章:通过网络进行通信。.下面仅简单说明一下部分通信协议:PPI(Point to point interface)协议:.该协议是西门子内部协议,不公开。点对点接口,是一个主/从协议。主站向从站发送申请,从站进行响应,从站器件不发信息,不初始化信息,只是等待主站的要求并对要求作出响应。但当主站发出申请或查询时,从站对其响应。主站可以是其他CPU主机(如S7-300等)、编程器或TD200文本显示器。网络中的所有S7-200都默认为从站。S7-200系列中一些CPU如果在程序中允许P

14、PI主站模式,则在RUN模式下可以作为主站,此时可以利用相关的通信指令来读写其他主机,同时它还可以作为从站来响应其他主站的申请或查询。.主站靠一个PPI协议管理的共享连接来与从站通讯。PPI并不限制与任意一个从站通讯的主站数量,但是在一个网络中,主站的个数不能超过32。如果在用户程序中使能PPI主站模式,S7200 CPU在运行模式下可以作主站。在使能PPI主站模式之后,可以使用网络读写指令来读写另外一个S7200。当S7200作PPI主站时,它仍然可以作为从站响应其它主站的请求。 .PPI高级允许网络设备建立一个设备与设备之间的逻辑连接。对于PPI高级,每个设备的连接个数是有限制的。所有的S

15、7200 CPU都支持PPI和PPI高级协议,而EM277模块仅仅支持PPI高级协议。.PPI协议是专门为S7-200开发的通信协议。S7-200 CPU的通信口(Port0、Port1)支持PPI通信协议,S7-200的一些通信模块也支持PPI协议。Micro/WIN与CPU进行编程通信也通过PPI协议。S7-200 CPU的PPI网络通信是建立在RS-485网络的硬件基础上,因此其连接属性和需要的网络硬件设备是与其他RS-485网络一致的。S7-200 CPU之间的PPI网络通信只需要两条简单的指令,它们是网络读(NetR)和网络写(NetW)指令。在网络读写通信中,只有主站需要调用Net

16、R/NetW指令,从站只需编程处理数据缓冲区(取用或准备数据)。PPI网络上的所有站点都应当有各自不同的网络地址。否则通信不会正常进行。 .可以用两种方法编程实现PPI网络读写通信:1.使用NetR/NetW指令,编程实现;2.使用Micro/WIN中的Instruction Wizard(指令向导)中的NETR/NETW向导。.使用PPI通讯方式(这是S7-200的专用通讯方式)使用1对RS485中继器可以最远达到1200M。支持的波特率有9.6 19.2 187.5三种。这种方式是最容易实现的通讯,只要编程设置主站通讯端口的工作模式,然后就可以用网络读写指令(NetR/NetW)读写从站数

17、据。MPI (Multipoint interface)协议:.该协议是西门子内部协议,不公开。MPI (Multipoint interface)是SIMATIC S7多点通信的接口,是一种适用于少数站点间通信的网络,多用于连接上位机和少量PLC之间近距离通信。通过PROFIBUS电缆和接头,将控制器S7-300或S7-400的CPU自带的MPI编程口及S7-200CPU自带的PPI通信口相互连接,以及与上位机网卡的编程口(MPI/DP口)通过PROFIBUS或MPI电缆连接即可实现。网络中当然也可以不包括PC机而只包括PLC。 .MPI允许主主通讯和主从通讯。每个S7-200CPU通信口的

18、连接数为4个。与一个S7200 CPU通讯,STEP 7Micro/WIN建立主从连接。MPI协议不能与作为主站的S7200 CPU通讯。网络设备通过任意两个设备之间的连接通讯(由MPI协议管理)。设备之间通讯连接的个数受S7200 CPU或者EM277模块所支持的连接个数的限制。 .对于MPI协议,S7300和S7400 PLC可以用XGET和XPUT指令来读写S7200的数据。要得到更多关于这些指令的信息,参见S7300或者S7400的编程手册。.MPI的通信速率为19.2K12Mbit/s ,但直接连接S7-200CPU通信口的MPI网,其最高速率通常为187.5Kbit/s (受S7-

19、200CPU最高通信速率的限制)。 .在MPI网络上最多可以有32个站,一个网段的最长通信距离为50米(通信波特率为187.5Kbit/s时),更长的通信距离可以通过RS-485中继器扩展使用中继器则可达到1000M,最多使用10个中继器达到9100M。速率从19.212M。.MPI协议不能与一个作为PPI主站的S7-200CPU通信,即S7-300或S7-400与S7-200通信时必须保证这个S7-200 CPU不能再作PPI主站,Micro/WIN也不能通过MPI协议访问作为PPI主站的S7-200CPU。S7-200CPU只能做MPI从站,即S7-200CPU之间不能通过MPI网络互相通

20、信,只能通过PPI方式互相通信。 .STEP 7-Micro/WIN可以与S7-200CPU建立MPI主从连接。硬件使用CP5611卡加上PROFIBUS或MPI电缆,S7-200 CPU通信口上要使用带编程口的网络连接器。S7-200CPU的通信口最低通信速率可设为19.2K,最高187.5K。 .注:CP5613不能通过MPI方式与S7-200 CPU通信口进行编程通信。 .S7-300和S7-400 CPU可以作为MPI主站用XGET(SFC67)和XPUT(SFC68)指令读取S7-200数据,通信数据包最大为64个字节。S7200 CPU中不需要编写任何与通信有关的程序,只需要将要交

21、换的数据整理到一个连续的V 存储区当中即可。 .如果需要在主站中(如S7-300)如何配置S7200 CPU MPI从站的详细文档,可访问客户支持部网站上的“网上课堂”网页,在“网络(NET)”目录中下载S7-200与S7-300之间的通信。PROFIBUS协议: .该协议是标准协议,公开。PROFIBUS是Process Field Bus的简称。PROFIBUS由相互兼容的三个部分组成,即PROFIBUS-FMS(Fieldbus Message Specification,现场总线信息规范)、PROFIBUS-DP(Decentralized Periphery,分布式I/O系统)、PR

22、OFIBUS-PA(Process Automation,过程自动化)。 .PROFIBUS-FMS:用于车间级通用的控制及通讯任务,是一个令牌环结构、实时多主网络。 .PROFIBUS DP:是一种高速且优化的通讯方案,主要用于实现现场级控制系统与分布式I/O及其他现场级设备之间的通讯。 .PROFIBUS-PA:专为过程自动化而设计,符合本征安全规范,适用于在防爆区的应用。.PROFIBUS提供了三种数据传输类型:1用于DP和FMS的RS485传输。2用于PA的IEC11582传输。3光纤。.PROFIBUS协议通常用于实现与分布式I/O(远程I/O)的高速通讯。可以使用不同厂家的PROF

23、IBUS设备。这些设备包括简单的输入或输出模块、电机控制器和PLC。PROFIBUS网络通常有一个主站和若干个I/O从站。主站器件通过配置可以知道I/O从站的类型和站号。主站初始化网络使网络上的从站器件与配置相匹配。主站不断地读写从站的数据。当一个DP主站成功配置了一个DP从站之后,它就拥有了这个从站器件。如果在网上有第二个主站器件,那么它对第一个主站的从站的访问将会受到限制。.S7-200 CPU可以通过EM277 PROFIBUS-DP 从站模块连入PROFIBUS-DP网,主站可以通过EM277对S7-200 CPU进行读/写数据。作为S7-200的扩展模块,EM277像其它I/O扩展模

24、块一样,通过出厂时就带有的I/O总线与CPU相连。因M277只能作为从站,所以两个EM277之间不能通信。但可以由一台PC机作为主站,访问几个连网的EM277。通过EM277模块进行的PROFIBUS-DP通信,是最可靠的通信方式。建议在与S7-300/400或其他系统通信时,尽量使用此种通信方式。 .EM277是智能模块,其通信速率为自适应。在S7-200 CPU中不用做任何关于PROFIBUS-DP的配置和编程工作,只需对数据进行处理。PROFIBUS-DP的所有配置工作由主站完成,在主站中需配置从站地址及I/O配置。在主站中完成的与EM277通信的I/O配置共有三种数据一致性类型,即字节

25、、字、缓冲区。所谓数据的一致性,就是在PROFIBUS-DP传输数据时,数据的各个部分不会割裂开来传输,是保证同时更新的。即字节一致性保证字节作为整个单元传送。字一致性保证组成字的两个字节总是一起传送。缓冲区一致性保证数据的整个缓冲区作为一个独立单元一起传送。如果数据值是双字或浮点数以及当一组值都与一种计算或项目有关时,也需要采用缓冲区一致性。.EM277作为一个特殊的PROFIBUS-DP从站模块,其相关参数(包括上述的数据一致性)是以GSD(或GSE)文件的形式保存的。在主站中配置EM277,需要安装相关的GSD文件。EM277的GSD文件可以在西门子的中文下载网站,或者ProDIS网站条

26、目113652下载,文件名是EM277.ZIP。如果需要在主站(如S7-300)中如何配置EM277的详细文档,可访问客户支持部网站上的“网上课堂”网页,在“网络(NET)”目录中下载S7-200与S7-300之间的通信。.EM277模块同时支持PROFIBUS-DP和MPI两种协议。EM277模块经常发挥路由功能,使CPU支持这两种协议。EM277实际上是通信端口的扩展,这种扩展可以用于连接操作面板(HMI)等。.根据其物理位置的不同(模块连接到CPU的顺序),每个智能模块在S7-200 CPU中都有对应的特殊存储单元(SM)。EM277在工作时的状态信息就保存在这些特殊单元中,用户程序可以

27、通过它们监视通信的状态等等。详情请参考S7-200系统手册。 S7协议(以太网TCP/IP协议):.该协议是西门子内部协议,不公开。通过以太网扩展模块(CP2431)或互联网扩展模块(CP2431 IT),S7200将能支持TCP/IP以太网通讯。表7-4列出了这些模块所支持的波特率和连接数。以太网模块(CP2431)和互联网模块(CP2431 IT)的连接数:.若需更多信息,可参考SIMATIC NET CP2431工业以太网通讯处理器手册或SIMATIC NET CP2431 IT工业以太网及信息技术通讯处理器手册。AS Interface(Acturator Sensor Interfa

28、ce,简称AS I):.该协议是标准协议,公开。.在控制的最底层, 传感器、接触器、电机启动器、指示灯和按钮等要传送二进制的大量信息, 必须首先在它们之间建立通讯。AS I 是一个传感器、执行器接口的技术, 用于自动化控制层的最底层, 用简单经济的方式将二进制的数字化执行器和传感器连接起来, 既可以直接连接到控制箱中, 单独或与PLC , IPC 一起独立就地运行; 或与上层现场总线相连, 作为现场总线的一个分支, 应用于网络系统, 从而满足工业控制的各种要求。.AS-i(Actuator-Sensor-Interface)是执行器-传感器-接口的英文缩写,它是一种用在控制器(主站)和传感器/

29、执行器(从站)之间双向交换信息的总线网络,它属于现场总线(Fieldbus)下面底层的监控网络系统。 .一个AS-i总线系统通过它主站中的网关可以和多种现场总线(如FF、Profibus、CANbus)相连接。AS-i主站可以作为上层现场总线的一个节点服务器,在它的下面又可以挂接一批AS-i从站。AS-i总线主要运用于具有开关量特征的传感器和执行器系统,传感器可以是各种原理的位置接近开关以及温度、压力、流量、液位开关等。 .执行器可以是各种开关阀门,电/气转换器以及声、光报警器,也可以是继电器、接触器、按钮等低压开关电器。当然AS-i总线也可以连接模拟量设备,只是模拟信号的传输要占据多个传输周

30、期。必须注意的是在连接主站和从站的两芯电缆上除传输信号外,同时还提供工作电源。 AS-i总线技术特点 1、AS-i总线系统完整 .AS-i总线是在分析了传统的I/O并行和树型结构的优缺点以及开关量技术特点后发展起来的,它省去了各种I/O卡、分配器的控制柜,节约了大量的连接电缆。因采用了两芯扁平电缆和特殊的穿刺安装技术,能很方便地将传感器/执行器连接到AS-i网络上。 2、应用十分简便 .AS-i总线是一个主从系统,主站和所有的从站可双向交换信息,当主站与上层现场总线进行通信时,主站担当了AS-i和上层网络信息交换的出入口,因AS-i主要传输的是开关量,所以它的数据结构比较简单,用户仅需关心数据

31、格式、传输率和参数配置等。 3、传输速率快捷 .在AS-i总线系统中,主站和从站之间采用了串行双向数字通信方式。因为报文较短,如若在有一个主站和31个从站的系统中,ASI的通信周期大约为5ms,也就是说主站在5ms内就可以对31个从站轮流访问一遍。 4、功能可靠 .在AS-i总线不同的应用情况下,功能可靠包含下列内容,首先是通信数据的可靠性方面,AS-i总线在许多方面采取了抗干扰措施。在接收数据时,必须进行错误检验,此方法十分有效,出错误后信息可以重发。另外如系统部件出现故障时主站会很快检测到故障信息,并自动与发生故障的从站切断通信联系,通知操作人员故障地址,以便及时进行维修。主站还具备网络运

32、行监视功能,在任何时刻用户都能得到系统中所有从站当前运行状态的完整资料。 5、节省资金 .AS-i总线系统与传统的I/O并行方式树形结构相比,可节省大量的连接导线和安装费用。若用户因生产流程变化需要扩展系统、改变控制动作,或在运行中出现故障,则AS-i总线系统具有的快速安装、故障诊断、自动测试、预防性维护、程序参数变化等功能可以大大缩短系统重新配置和排除故障的时间,提高了效率,节省了资金。 6、系统开放 .AS-i总线系统在研制开发的初期就确定它必须是一个开放系统,AS-i不同的部件在规范和行规中均有详细的定义和技术要求,任何AS-i部件都必须遵守这些规范,其中如包括两芯电缆,机电一体化接口E

33、MS,功能模块与I/O标准接口等。所有厂商的产品均通过AS-i协会指定机构的标准测试和程序认证,以保证AS-i产品的兼容性和互操作性。 .AS-i总线系统的开发是由11个公司联合赞助和规划的,它得到德国科技工业部的支持,诸多科研机构和AS-i协会也加入到这个队伍中来,由此形成了一个世界性的组织AS-i国际协会,这个组织对任何公司和企业都是开放的。 USS协议:.USS 协议(Universal Serial Interface Protocol通用串行接口协议)是SIEMENS 公司所有传动产品的通用串行通讯协议,公开。它是一种基于串行总线进行数据通讯的协议。比较详细的介绍,请参阅S7-200

34、可编程控制器系统手册第11章:使用USS协议库去控制一个Micr驱动。Modbus协议:.该协议是标准协议,公开。ModBus协议是Modicon公司于1978年发明的一种用于电子控制器进行控制和通讯的通讯协议。通过此协议,控制器相互之间,控制器经由网络(例如以太网)和其它设备之间可以进行通信。它的开放性,可扩充性和标准化使它成为一个通用工业标准。有了它,不同厂商生产的控制设备可以简单可靠地连成工业网络,进行系统的集中监控,从而使它成为最流行的协议之一。 .ModBus协议包括ASCII,RTU,PLUS,TCP等,并没有规定物理层。此协议定义了控制器能够认识和使用的消息结构,而不管它们是经过

35、何种网络进行通信的。标准的ModBus是使用RS-232C兼容串行接口,RS-232C规定了连接器针脚,接线,信号电平,波特率,奇偶校验等信息,ModBus的ASCII,RTU协议则在此基础上规定了消息,数据的结构,命令和应答的方式。ModBus控制器的数据通信采用Master/Slave方式(主/从),即Master端发出数据请求消息,Slave端接收到正确消息后就可以发送数据到Master端以响应请求;Master端也可以直接发消息修改Slave端的数据,实现双向读写。 .ModBus可以应用在支持ModBus协议的PLC和PLC之间,PLC和个人计算机之间,计算机和计算机之间,远程PLC

36、和计算机之间以及远程计算机之间(通过Modem连接),可见ModBus的应用是相当广泛的。由于ModBus是一个事实上的工业标准,许多厂家的PLC,HMI,组态软件都支持ModBus,而且ModBus是一个开放标准,其协议内容可以免费获得,一些小型厂商甚至个人都可根据协议标准开发出支持ModBus的产品或软件,从而使其产品联入到ModBus的数据网络中。因此,ModBus有着广泛的应用基础。在实际应用中,可以使用RS232,RS485/422,Modem加电话线,甚至TCP/IP来联网。所以,ModBus的传输介质种类较多,可以根据传输距离来选择。自由口通信协议:.S7-200的自由口通讯方式

37、,使用户可以通过PLC指令自己定义通讯协议,从而与任何公开通讯协议的RS-422或RS-232C接口设备进行通讯,使通讯范围大为增加,控制系统配制更加灵活。使用自由口模式控制串行通讯口 .通过编程,您可以选择自由口模式来控制S7200的串行通讯口。当选择了自由口模式,用户程序通过使用接收中断、发送中断、发送指令和接收指令来控制通讯口的操作。当处于自由口模式时,通讯协议完全由梯形图程序控制。SMB30(对于端口0)和SMB130(对于端口1,如果您的S7200有两个端口的话)被用于选择波特率和校验类型。 .当S7200处于STOP模式时,自由口模式被禁止,重新建立正常的通讯(例如:编程设备的访问

38、)。在最简单的情况下,可以只用发送指令(XMT)向打印机或者显示器发送信息。其它例子包括与条码阅读器、称重计和焊机的连接。在每种情况下,您都必须编写程序,来支持在自由口模式下与S7200通讯的设备所使用的协议。 .只有当S7200处于RUN模式时,才能进行自由口通讯。要使能自由口模式,应该在SMB30(端口0)或者SMB130(端口1)的协议选择区中设置01。处于自由口通讯模式时,不能与编程设备通讯。.自由口通信更详细的描述,请参阅S7-200可编程控制器系统手册。.由上可知,S7-200通信最经济的方式就是采用PPI协议和自由口通信协议。对于S7-200之间进行通信,PPI协议又更适合它比自

39、由口通信的编程更简单!下面就对这个PPI通信进行说明以2台S7-200通信为例,做一个实例。 设备配置:1台S7-200 CPU 226CN的PLC(中国制造)、1台S7-200 CPU 224XP的PLC(德国原产)。硬件连接:原则上需要配备1条紫色的Profibus电缆、2个黑色的Profibus-DP接头。如果需要在PLC通信时对所有在线的PLC进行监控/编程操作而不占用另外的通信口(也就是说,假如所有PLC用端口PROT1进行PPI通信,而现在要对所有PLC依次编程/监控,但又不想占用这些PLC的端口PROT0端口PROT0可能已作它用),那么必须在其中1台PLC采用带编程口的Prof

40、ibus-DP接头。所以说,带编程口的Profibus-DP接头在整个网络中只需要一个就可以了。这样,也就可以在某一台PLC处对在网的其它PLC进行编程/监控。 引脚分配: .S7200 CPU上的通讯端口是符合欧洲标准EN 50170中PROFIBUS标准的RS485兼容9针D型连接器。下表列出了为通讯端口提供物理连接的连接器,并描述了通讯端口的针脚分配。下面是S7-200的通信接口D型9孔母头的引脚定义。网络电缆的偏压电阻和终端电阻 .为了能够把多个设备很容易地连接到网络中,西门子公司提供两种网络连接器:一种标准网络连接器(引脚分配如表7-7所示)和一种带编程接口的连接器,后者允

41、许您在不影响现有网络连接的情况下,再连接一个编程站或者一个HMI设备到网络中。带编程接口的连接器将S7200的所有信号(包括电源引脚)传到编程接口。这种连接器对于那些从S7200取电源的设备(例如TD200)尤为有用。两种连接器都有两组螺钉连接端子,可以用来连接输入连接电缆和输出连接电缆。两种连接器也都有网络偏置和终端匹配的选择开关。典型的网络连接器偏置和终端如图所示: PROFIBUS电缆的接法.PROFIBUS电缆,紫色,只有两根线在里面,一根红的一根绿的,然后外面有屏蔽层,接线的时候,要把屏蔽层接好,不能和里面的电线接触到,要分清楚进去的和出去的线分别是哪个,假如是一串的,就是一根总线下

42、去,中间不断地接入分站,这个是很常用的方法,在总线的两头的两个接头,线都要接在进去的那个孔里,不能是出的那个孔,然后这两个两头的接头,要把它们的开关置为ON状态,这时候就只有进去的那个接线是通的,而出去的那个接线是断的,其余中间的接头,都置为OFF,它们的进出两个接线都是通的(我觉得德国人真的是和我们的思维不同,我觉得应该是OFF表示关闭吧,他偏设置ON为关闭,搞不懂)。这就是线的接法,接好了线以后呢,还要用万用表量一量,看这个线是不是通的。假如你这根线上只有一个接头,你量它的收发两个针上面的电阻值,假如是220欧姆,那么就是对的,假如你这根线已经做好了,连了一串的接口,你就要从一端开始逐个检

43、查了。第一个单独接线的接口,是ON状态,然后你把邻近的第一个接口的开关也置为ON,那么这个接口以后的部分就断了(出口的线已经被关掉了啊)现在测最边上,就是单线接的那个接口,之后的东西一直都是测这个接口,测它的收发两个针,和刚才一样,假如电阻是110欧姆(被并联了),那么这段线路就是通的,然后把中间刚才那个改动为ON的接口改回到OFF,然后是下一个接口改为ON,。就这么测下去,哪个的电阻不是110欧姆了,就是那一段的线路出问题了。Profibus-DP电缆:用于Siemens公司支持的Profibus-DP总线系统。 能够对应12Mbps的高速传送,充分发挥PROFIBUS-DP的功能。 铝箔P

44、ET带和高密度编织的双层屏蔽使抗干扰性能出色,通信的传送质量稳定。 护套使用了柔软性和耐油、耐热性能良好的无铅聚氯乙烯混合物。 护套的颜色以紫色(RAL001)为标准色。S7200自由口通信指南自由口通信S7-200 CPU的通信口可以设置为自由口模式。选择自由口模式后,用户程序就可以完全控制通信端口的操作,通信协议也完全受用户程序控制。S7-200 CPU上的通信口在电气上是标准的RS-485半双工串行通信口。此串行字符通信的格式可以包括: · 一个起始位 · 7或8位字符(数据字节) · 一个奇/偶校验位,或者没有校验位 · 一个停止位 自由口通信速

45、波特率可以设置为1200、2400、4800、9600、19200、38400、57600或112500。凡是符合这些格式的串行通信设备,理论上都可以和S7-200 CPU通信。自由口模式可以灵活应用。Micro/WIN的两个指令库(USS和Modbus RTU)就是使用自由口模式编程实现的。  在进行自由口通信程序调试时,可以使用PC/PPI电缆(设置到自由口通信模式)连接PC和CPU,在PC上运行串口调试软件(或者Windows的Hyper Terminal超级终端)调试自由口程序。 USB/PPI电缆和CP卡不支持自由口调试。 自由口通信要点应用自由口通信首

46、先要把通信口定义为自由口模式,同时设置相应的通信波特率和上述通信格式。用户程序通过特殊存储器SMB30(对端口0)、SMB130(对端口1)控制通信口的工作模式。  CPU通信口工作在自由口模式时,通信口就不支持其他通信协议(比如PPI),此通信口不能再与编程软件Micro/WIN通信。CPU停止时,自由口不能工作,Micro/WIN就可以与CPU通信。 通信口的工作模式,是可以在运行过程中由用户程序重复定义的。如果调试时需要在自由口模式与PPI模式之间切换,可以使用SM0.7的状态决定通信口的模式;而SM0.7的状态反映的是CPU运行状态开关的位置(在RUN时SM0.7=

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

48、节地址。  XMT和RCV指令与NetW/NetR指令不同的是,它们与网络上通信对象的“地址”无关,而仅对本地的通信端口操作。如果网络上有多个设备,消息中必然包含地址信息;这些包含地址信息的消息才是XMT和RCV指令的处理对象。 由于S7-200的通信端口是半双工RS-485芯片,XMT指令和RCV指令不能同时有效。 XMT和RCV指令XMT(发送)指令的使用比较简单。RCV(接收)指令所需要的控制稍多一些。RCV指令的基本工作过程为: 1. 在逻辑条件满足时,启动(一次)RCV指令,进入接收等待状态 2. 监视通信端口,等待设置的消息起始条件满足,然后进入消息接

49、收状态 3. 如果满足了设置的消息结束条件,则结束消息,然后退出接收状态 所以,RCV指令启动后并不一定就接收消息,如果没有让它开始消息接收的条件,就一直处于等待接收的状态;如果消息始终没有开始或者结束,通信口就一直处于接收状态。这时如果尝试执行XMT指令,就不会发送任何消息。所以确保不同时执行XMT和RCV非常重要,可以使用发送完成中断和接收完成中断功能,在中断程序中启动另一个指令。  在S7-200系统手册和Micro/WIN 在线帮助中关于XMT和RCV指令的使用有一个例子。这个例子非常经典,强烈建议学习自由口通信时先做通这个例子。 字符接收中断S7-200 CPU提

50、供了通信口字符接收中断功能,通信口接收到字符时会产生一个中断,接收到的字符暂存在特殊存储器SMB2中。通信口Port0和Port1共用SMB2,但两个口的字符接收中断号不同。每接收到一个字符,就会产生一次中断。对于连续发送消息,需要在中断服务程序中将单个的字符排列到用户规定的消息保存区域中。实现这个功能可能使用间接寻址比较好。  对于高通信速率来说,字符中断接受方式需要中断程序的执行速度足够快。 一般情况下,使用结束字符作为RCV指令的结束条件比较可靠。如果通信对象的消息帧中以一个不定的字符(字节)结束(如校验码等),就应当规定消息或字符超时作为结束RCV指令的条件。但是往

51、往通信对象未必具有严格的协议规定、工作也未必可靠,这就可能造成RCV指令不能正常结束。这种情况下可以使用字符接收中断功能。 常问问题 如何人为结束RCV接收状态?接收指令控制字节(SMB87/SMB187)的en位可以用来允许/禁止接收状态。可以设置en为“0”,然后对此端口执行RCV指令,即可结束RCV指令。 需要定时向通信对象发送消息并等待回复的消息,如果因故消息没有正常接收,下次无法发送消息怎么办?可以在开始发送消息时加上人为中止RCV指令的程序。 自由口通信中,主站向从站发送数据,为何收到多个从站的混乱响应?这说明从站没有根据主站的要求发送消息。

52、有多个从站的通信网络中,从站必须能够判断主站的消息是不是给自己的,这需要从站的通信程序中有必要的判断功能。 自由口通信协议是什么?顾名思义,没有什么标准的自由口协议。用户可以自己规定协议。 新的PC/PPI电缆能否支持自由口通信?新的RS-232/PPI电缆(6ES7 901-3CB30-0XA0)可以支持自由口通信;但需要将DIP开关5设置为“0”,并且设置相应的通信速率。新的USB/PPI电缆(6ES7 901-3DB30-0XA0)不能支持自由口通信。 已经用于自由口的通信口,是否可以连接操作面板(HMI)?不能。可以使用具有两个通信口的CPU,或者使用EM

53、277扩展HMI连接口。如果是其他厂商的HMI,须咨询他们。 已知一个通信对象需要字符(字节)传送格式有两个停止位,S7-200是否支持?字符格式是由最基础的硬件(芯片)决定的;S7-200使用的芯片不支持上述格式。 S7-200是否支持S7-200系统手册上列明的通信波特率以外的其他特殊通信速率?通信速率是由最基础的硬件(芯片)决定的;S7-200使用的芯片不支持没有列明在手册上的通信速率。例子:  评论这张 转发至微博 S7-200自由通讯协议西门子自由口模式下PLC与计算机的通信概述 - 本例说明如何以自由协议实现计算机与S7-200的通信,计算机

54、作为主站,可以实现对PLC从站各寄存器的读/写操作。 - 计算机通过COM口发送指令到PLC的PORT0(或PORT1)口,PLC通过RCV接收指令,然后对指令进行译码,译码后调用相应的读/写子程序实现指令要求的操作,并返回指令执行的状态信息。通信协议 - 在自由口模式下,通信协议是由用户定义的。用户可以用梯形图程序调用接收中断、发送中断、发送指令(XMT)、接受指令(RCV)来控制通信操作。在自由口模式下,通信协议完全由梯形图程序控制。指令格式定义计算机每次发送一个33字节长的指令来实现一次读/写操作,指令格式见表1 说明:1.      起

55、始字符 - 起始字符标志着指令的开始,在本例中被定义为ASCII码的"g",不同的PLC从站可以定义不同的起始字符以接收真对该PLC的指令。2.      指令类型 - 该字节用来标志指令的类型,在本例中05H代表读操作,06H代表写操作。3.      目标PLC站地址 - 目标PLC站地址占用指令的B2、B3两个字节,以十六进制ASCII码的格式表示目标PLC的站地址。4.      目标寄存器地址 - 在PLC内部可以用4个字节来表示一个寄

56、存器的地址(但不能表示一个位地址)。前两个字节表示寄存器类型,后两个字节表示寄存器号。00 00(H):-I寄存器区01 00(H):-Q寄存器区02 00(H):-M寄存器区08 00(H):-V寄存器区5.      例如:IB000的地址可表示为-00 00 00 00(H)VB100的地址可表示为-08 00 00 64(H)6.      读/写字节数M - 当读命令时,始终读回从目标寄存器开始的连续8个字节的数据(转换为十六进制ASCII码后占用16个字节),可以根据自己的需要取用,M可以任意写入。 -

57、 当写命令时,M表示的是要写入数据的十六进制ASCII码所占用的字节数。例如要写入1个字节的数据,数据在指令中以十六进制ASCII码表示,它将占用2个字节,此时应向M中写入"02"。同理,如果要写入5个字节的数据,M中应写入"0A"。7.      要写入的数据 - 要写入的数据在指令中以十六进制ASCII码的格式表示,占用指令的B14-B29共16个字节。数据区必须填满,但只有前M个字节的数据会被写入目标寄存器。一条指令最多可以写入8个字节的数据(此时M中应写入"10",代表十进制的16)8.      BCC校验码 - 在传输过程中,指令有可能受到任何的干扰而使原来的数据信号发生扭曲,此时的指令当然是错误的,为了侦测指令在传输过程中发生的错误,接收方必须对指令作进一步的确认工作,以防止错误的指令被执行,最简单的方法就是使用校验码。BCC校验码的方法就是将要传送的字符串的ASCII码以字节为单位作异或和,并将此异或和作为指令的一部分传送出去;同样地,接收方在接到指令后,以相同的方式对接收到的字符串作异或和,并与传送方所送过来的值作对比,若其值相等,则代表接收到的指令是正确的,反之则是错误的。 - 在本例中,bcc为指令B1到B29

温馨提示

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

评论

0/150

提交评论