........dingqw1234网友在下面的帖子中希望得到多台S7-200之间通过网络读写(NETR和NETW)的通信的解决方法和实例。本人应dingqw1234网友的要求,特发此帖。在这个帖子里聊一下S7-200的通信,并特别对多台S7-200之间通过网络读写(NETR和NETW)的通信实现进行举例说明。
........dingqw1234网友的帖子:
我想用两台CPU 226CN 通讯,一台的输入点全传到另一台里怎么做 ?
http://www.gongkong.com/Forum/ForumTopic.aspx?Id=2008111022085900001
........下面先简单了解一下S7-200支持的通信协议:
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通信口的连接数为4个。与一个S7--200 CPU通讯,STEP 7--Micro/WIN建立主--从连接。MPI协议不能与作为主站的S7--200 CPU通讯。网络设备通过任意两个设备之间的连接通讯(由MPI协议管理)。设备之间通讯连接的个数受S7--200 CPU或者EM277模块所支持的连接个数的限制。
........对于MPI协议,S7--300和S7--400 PLC可以用XGET和XPUT指令来读写S7--200的数据。要得到更多关于这些指令的信息,参见S7--300或者S7--400的编程手册。
........MPI的通信速率为19.2K~12Mbit/s ,但直接连接S7-200CPU通信口的MPI网,其最高速率通常为187.5Kbit/s (受S7-200CPU最高通信速率的限制)。
........在MPI网络上最多可以有32个站,一个网段的最长通信距离为50米(通信波特率为187.5Kbit/s时),更长的通信距离可以通过RS-485中继器扩展——使用中继器则可达到1000M,最多使用10个中继器达到9100M。速率从19.2~12M。
........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网络互相通信,只能通过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中不需要编写任何与通信有关的程序,只需要将要交换的数据整理到一个连续的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系统)、PROFIBUS-PA(Process Automation,过程自动化)。
........PROFIBUS-FMS:用于车间级通用的控制及通讯任务,是一个令牌环结构、实时多主网络。
........PROFIBUS DP:是一种高速且优化的通讯方案,主要用于实现现场级控制系统与分布式I/O及其他现场级设备之间的通讯。
........PROFIBUS-PA:专为过程自动化而设计,符合本征安全规范,适用于在防爆区的应用。
........PROFIBUS提供了三种数据传输类型:1.用于DP和FMS的RS485传输。2.用于PA的IEC1158-2传输。3.光纤。
........PROFIBUS协议通常用于实现与分布式I/O(远程I/O)的高速通讯。可以使用不同厂家的PROFIBUS设备。这些设备包括简单的输入或输出模块、电机控制器和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扩展模块一样,通过出厂时就带有的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配置共有三种数据一致性类型,即字节、字、缓冲区。所谓数据的一致性,就是在PROFIBUS-DP传输数据时,数据的各个部分不会割裂开来传输,是保证同时更新的。即字节一致性保证字节作为整个单元传送。字一致性保证组成字的两个字节总是一起传送。缓冲区一致性保证数据的整个缓冲区作为一个独立单元一起传送。如果数据值是双字或浮点数以及当一组值都与一种计算或项目有关时,也需要采用缓冲区一致性。
........EM277作为一个特殊的PROFIBUS-DP从站模块,其相关参数(包括上述的数据一致性)是以GSD(或GSE)文件的形式保存的。在主站中配置EM277,需要安装相关的GSD文件。EM277的GSD文件可以在西门子的中文下载网站,或者ProDIS网站条目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在工作时的状态信息就保存在这些特殊单元中,用户程序可以通过它们监视通信的状态等等。详情请参考《S7-200系统手册》。
AS Interface(Acturator Sensor Interface,简称AS I):
........该协议是标准协议,公开。
........在控制的最底层, 传感器、接触器、电机启动器、指示灯和按钮等要传送二进制的大量信息, 必须首先在它们之间建立通讯。AS I 是一个传感器、执行器接口的技术, 用于自动化控制层的最底层, 用简单经济的方式将二进制的数字化执行器和传感器连接起来, 既可以直接连接到控制箱中, 单独或与PLC , IPC 一起独立就地运行; 或与上层现场总线相连, 作为现场总线的一个分支, 应用于网络系统, 从而满足工业控制的各种要求。
........AS-i(Actuator-Sensor-Interface)是执行器-传感器-接口的英文缩写,它是一种用在控制器(主站)和传感器/执行器(从站)之间双向交换信息的总线网络,它属于现场总线(Fieldbus)下面底层的监控网络系统。
........一个AS-i总线系统通过它主站中的网关可以和多种现场总线(如FF、Profibus、CANbus)相连接。AS-i主站可以作为上层现场总线的一个节点服务器,在它的下面又可以挂接一批AS-i从站。AS-i总线主要运用于具有开关量特征的传感器和执行器系统,传感器可以是各种原理的位置接近开关以及温度、压力、流量、液位开关等。
........执行器可以是各种开关阀门,电/气转换器以及声、光报警器,也可以是继电器、接触器、按钮等低压开关电器。当然AS-i总线也可以连接模拟量设备,只是模拟信号的传输要占据多个传输周期。必须注意的是在连接主站和从站的两芯电缆上除传输信号外,同时还提供工作电源。
AS-i总线技术特点
1、AS-i总线系统完整
........AS-i总线是在分析了传统的I/O并行和树型结构的优缺点以及开关量技术特点后发展起来的,它省去了各种I/O卡、分配器的控制柜,节约了大量的连接电缆。因采用了两芯扁平电缆和特殊的穿刺安装技术,能很方便地将传感器/执行器连接到AS-i网络上。
2、应用十分简便
........AS-i总线是一个主从系统,主站和所有的从站可双向交换信息,当主站与上层现场总线进行通信时,主站担当了AS-i和上层网络信息交换的出入口,因AS-i主要传输的是开关量,所以它的数据结构比较简单,用户仅需关心数据格式、传输率和参数配置等。
3、传输速率快捷
........在AS-i总线系统中,主站和从站之间采用了串行双向数字通信方式。因为报文较短,如若在有一个主站和31个从站的系统中,ASI的通信周期大约为5ms,也就是说主站在5ms内就可以对31个从站轮流访问一遍。
4、功能可靠
........在AS-i总线不同的应用情况下,功能可靠包含下列内容,首先是通信数据的可靠性方面,AS-i总线在许多方面采取了抗干扰措施。在接收数据时,必须进行错误检验,此方法十分有效,出错误后信息可以重发。另外如系统部件出现故障时主站会很快检测到故障信息,并自动与发生故障的从站切断通信联系,通知操作人员故障地址,以便及时进行维修。主站还具备网络运行监视功能,在任何时刻用户都能得到系统中所有从站当前运行状态的完整资料。
5、节省资金
........AS-i总线系统与传统的I/O并行方式树形结构相比,可节省大量的连接导线和安装费用。若用户因生产流程变化需要扩展系统、改变控制动作,或在运行中出现故障,则AS-i总线系统具有的快速安装、故障诊断、自动测试、预防性维护、程序参数变化等功能可以大大缩短系统重新配置和排除故障的时间,提高了效率,节省了资金。
6、系统开放
........AS-i总线系统在研制开发的初期就确定它必须是一个开放系统,AS-i不同的部件在规范和行规中均有详细的定义和技术要求,任何AS-i部件都必须遵守这些规范,其中如包括两芯电缆,机电一体化接口EMS,功能模块与I/O标准接口等。所有厂商的产品均通过AS-i协会指定机构的标准测试和程序认证,以保证AS-i产品的兼容性和互操作性。
........AS-i总线系统的开发是由11个公司联合赞助和规划的,它得到德国科技工业部的支持,诸多科研机构和AS-i协会也加入到这个队伍中来,由此形成了一个世界性的组织——AS-i国际协会,这个组织对任何公司和企业都是开放的。
Modbus协议:
........该协议是标准协议,公开。ModBus协议是Modicon公司于1978年发明的一种用于电子控制器进行控制和通讯的通讯协议。通过此协议,控制器相互之间,控制器经由网络(例如以太网)和其它设备之间可以进行通信。它的开放性,可扩充性和标准化使它成为一个通用工业标准。有了它,不同厂商生产的控制设备可以简单可靠地连成工业网络,进行系统的集中监控,从而使它成为最流行的协议之一。
........ModBus协议包括ASCII,RTU,PLUS,TCP等,并没有规定物理层。此协议定义了控制器能够认识和使用的消息结构,而不管它们是经过何种网络进行通信的。标准的ModBus是使用RS-232C兼容串行接口,RS-232C规定了连接器针脚,接线,信号电平,波特率,奇偶校验等信息,ModBus的ASCII,RTU协议则在此基础上规定了消息,数据的结构,命令和应答的方式。ModBus控制器的数据通信采用Master/Slave方式(主/从),即Master端发出数据请求消息,Slave端接收到正确消息后就可以发送数据到Master端以响应请求;Master端也可以直接发消息修改Slave端的数据,实现双向读写。
........ModBus可以应用在支持ModBus协议的PLC和PLC之间,PLC和个人计算机之间,计算机和计算机之间,远程PLC和计算机之间以及远程计算机之间(通过Modem连接),可见ModBus的应用是相当广泛的。由于ModBus是一个事实上的工业标准,许多厂家的PLC,HMI,组态软件都支持ModBus,而且ModBus是一个开放标准,其协议内容可以免费获得,一些小型厂商甚至个人都可根据协议标准开发出支持ModBus的产品或软件,从而使其产品联入到ModBus的数据网络中。因此,ModBus有着广泛的应用基础。在实际应用中,可以使用RS232,RS485/422,Modem加电话线,甚至TCP/IP来联网。所以,ModBus的传输介质种类较多,可以根据传输距离来选择。
自由口通信协议:
........S7-200的自由口通讯方式,使用户可以通过PLC指令自己定义通讯协议,从而与任何公开通讯协议的RS-422或RS-232C接口设备进行通讯,使通讯范围大为增加,控制系统配制更加灵活。
使用自由口模式控制串行通讯口
........通过编程,您可以选择自由口模式来控制S7--200的串行通讯口。当选择了自由口模式,用户程序通过使用接收中断、发送中断、发送指令和接收指令来控制通讯口的操作。当处于自由口模式时,通讯协议完全由梯形图程序控制。SMB30(对于端口0)和SMB130(对于端口1,如果您的S7--200有两个端口的话)被用于选择波特率和校验类型。
........当S7--200处于STOP模式时,自由口模式被禁止,重新建立正常的通讯(例如:编程设备的访问)。在最简单的情况下,可以只用发送指令(XMT)向打印机或者显示器发送信息。其它例子包括与条码阅读器、称重计和焊机的连接。在每种情况下,您都必须编写程序,来支持在自由口模式下与S7--200通讯的设备所使用的协议。
........只有当S7--200处于RUN模式时,才能进行自由口通讯。要使能自由口模式,应该在SMB30(端口0)或者SMB130(端口1)的协议选择区中设置01。处于自由口通讯模式时,不能与编程设备通讯。
........自由口通信更详细的描述,请参阅《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采用带编程口的Profibus-DP接头。所以说,带编程口的Profibus-DP接头在整个网络中只需要一个就可以了。这样,也就可以在某一台PLC处对在网的其它PLC进行编程/监控。
PROFIBUS电缆的接法
........PROFIBUS电缆,紫色,只有两根线在里面,一根红的一根绿的,然后外面有屏蔽层,接线的时候,要把屏蔽层接好,不能和里面的电线接触到,要分清楚进去的和出去的线分别是哪个,假如是一串的,就是一根总线下去,中间不断地接入分站,这个是很常用的方法,在总线的两头的两个接头,线都要接在进去的那个孔里,不能是出的那个孔,然后这两个两头的接头,要把它们的开关置为ON状态,这时候就只有进去的那个接线是通的,而出去的那个接线是断的,其余中间的接头,都置为OFF,它们的进出两个接线都是通的(我觉得德国人真的是和我们的思维不同,我觉得应该是OFF表示关闭吧,他偏设置ON为关闭,搞不懂)。这就是线的接法,接好了线以后呢,还要用万用表量一量,看这个线是不是通的。假如你这根线上只有一个接头,你量它的收发两个针上面的电阻值,假如是220欧姆,那么就是对的,假如你这根线已经做好了,连了一串的接口,你就要从一端开始逐个检查了。第一个单独接线的接口,是ON状态,然后你把邻近的第一个接口的开关也置为ON,那么这个接口以后的部分就断了(出口的线已经被关掉了啊~)现在测最边上,就是单线接的那个接口,之后的东西一直都是测这个接口,测它的收发两个针,和刚才一样,假如电阻是110欧姆(被并联了),那么这段线路就是通的,然后把中间刚才那个改动为ON的接口改回到OFF,然后是下一个接口改为ON,。。。。。。就这么测下去,哪个的电阻不是110欧姆了,就是那一段的线路出问题了。
........PROFIBUS网络电缆(西门子产品号:6XV1 830-0EH10),波特率为100Kbps以下时也可使用普通双绞线(截面积不小0.22平方毫米)。 原则上绿色接RS485信号负(对应Profibus接头的A1)、红色接RS485信号正(对应Profibus接头的B1)。当然,统一反着接也可以——绿色接RS485信号正(对应Profibus接头的B1)、红色接RS485信号负(对应Profibus接头的A1)。不要交叉就行。
Profibus-DP现场总线电缆电缆:用于Siemens公司支持的Profibus-DP总线系统。
●能够对应12Mbps的高速传送,充分发挥PROFIBUS-DP的功能。
●铝箔PET带和高密度编织的双层屏蔽使抗干扰性能出色,通信的传送质量稳定。
●护套使用了柔软性和耐油、耐热性能良好的无铅聚氯乙烯混合物。
●护套的颜色以紫色(RAL001)为标准色。
........德国LAPP UNITRONICO BUS L2/FIP:实心裸铜丝导体,2芯绞合成对,芯线颜色为红+绿。 铝箔屏蔽后加裸铜丝编织,PVC外护套,阻燃,符合VDE 0472第804部份,B类试验(IEC 332.1),紫色(RAL4001)。
........传输速率决定允许的总线电缆最大长度如下:
PROFIBUS-DP 1.5MBit/s=最长200m
(SIMATIC网) 12.0MBit/s=最长100m
工厂通讯处理层 1.0MBit/s=最长200m
2.5MBit/s=最长200m
........上述参数适用于PROFIBUS-DP及PROFIBUS—FMS总线电缆。
........国产普通屏蔽电缆也可以替代PROFIBUS电缆,没有问题,实践证明是可以用的。这样说吧,使用是没有问题的,但是是要有些请提条件的,比如西门子给出的多大速率下对应多大的通讯距离,西门子DP电缆没有问题,但是国产屏蔽电缆就有可能不能用到这么长的通讯距离。要选用质量好的国产屏蔽电缆。
........为了保证信号的稳定要在DP网络的两端接电阻,3和8脚接220电阻,3和VP引脚接390电阻,8脚和DGND脚接390电阻。如果有RS485连接器,就不用自己加终端电阻,RS485连接器中已经自带终端电阻了。
.......国产屏蔽电缆抗干扰的能力应该要若一些,如果是电磁环境很差的地方,例如有交交变频系统等,建议使用profibus-dp电缆。比较重要的系统中,对通讯安全非常严格的话,建议还是使用西门子的profibus-dp电缆。
........上面是官方提到的硬件连接方式, 在实际中,我们可能因为使用情况不同(临时使用、实验使用、同一个电控柜内使用等),手边没有现成的Profibus电缆和Profibus-DP接头。那么,在这种情况下就需要自己制作了。下面就简单说一下制作方法:
1、不带编程口的通信线制作:
........有多少个PLC就买多少个D型9针公头,然后买需要长度的Profibus电缆(实在没有,买屏蔽双绞线也可以,不过抗干扰性没那么好哟;近距离的话,随便用什么线连接都可以,哪怕是2根单股导线,也没问题)。通过电缆,把这些D型9针公头的3脚依次连接在一起,把这些D型9针公头的8脚也依次连接在一起。接线的时候注意点,不要接错了——笔者就因为疏忽大意接错线,导致查了几个小时的故障才发现接线错了(首先怀疑线错了,用万用表打,没发现问题,晕哟,可能是遇见鬼了;最后把线全拆了,重新焊接即恢复正常)。
........如果通信存在问题,那么建议把这些D型9针公头的5脚也接在一起,强制低电位相等。如果有屏蔽线的话,就接上屏蔽线。屏蔽层接到每台设备的外壳并最后接大地。
........至于终端电阻和偏置电阻,距离短的话,就可以不接了。不过,虽然不接,也得了解其原理——终端电阻和偏置电阻如17楼图示。因为PROFIBUS的连接电缆通常采用TYPE A标准,其中的电缆阻抗值最大为165欧,390/220/390的等效电阻是170,是为了实现阻抗匹配。当没有通讯进行时,终端电阻可以保证信号线间的电压差。通常加载在终端的电压为5V,390/220/390使得两信号线点的电压值分别为1.95和3.05V,是理想的静态电压(差分)。