串口通信 如何监测总线内是否有数据

2024年11月15日 10:48
有1个网友回答
网友(1):

modbus,profibus是以rs485为基础的通讯协议,devicenet以can为基础的通讯协议;PPIMPIProfibus通信协议详解2011-03-0419:23:42|分类:工控PLC|标签:无|字号大中小订阅1、MPI是Multi-PointInterface,适用于PLC200/300/400、操作面板TP/OP及上位机MPI/PROFIBUS通信卡,MPI网络的通信速率为网络才支持12Mbit/s的通信速率。MPI网络最多可以连接32个接节点,最大通信距离为50m,但是可以通过中继器来扩展长度。PPI协议是专门为S7-200开发的通信协议。S7-200CPU的通信口(Port0、Port1)支持PPI通信协议,S7-200的一些通信模块也支持PPI协议。Micro/WIN与CPU进行编程通信也通过PPI协议。PPI是一种主从协议,主站、从站在一个令牌网。在一个PPI网络中,与一个从站通信的主站的个数并没有限制,但是一个网络中主站的个数不能超过32个。主站既可以读写从站的数据,也可以读写主站的数据。也就是说,S7-200作为PPI主站时,仍然可以作为从站响应其他主站的数据请求。MPI是主站之间的通信;PPI可以是多台主站与从站之间通信。2、MPI协议:西门子内部协议,不公开;PROFIBUS-DP协议:标准协议,公开。3、MODBUS是MODICON公司最先倡导的一种软的通讯规约,经过大多数公司的实际应用,逐渐被认可,成为一种标准的通讯规约,只要按照这种规约进行数据通讯或传输,不同的系统就可以通讯。目前,在RS232/RS485通讯过程中,更是广泛采用这种规约。常用的MODBUS通讯规约有两种,一种是MODBUSASCII,一种是MODBUSRTU。一般来说,通讯数据量少而且主要是文本的通讯则采用MODBUSASCII规约,通讯数据数据量大而且是二进制数值时,多采用MODBUSRTU规约。在实际的应用过程中,为了解决某一个特殊问题,人们喜欢自己修改MODBUS规约来满足自己的需要(事实上,人们经常使用自己定义的规约来通讯,这样能解决问题,但不太规范)。更为普通的用法是,少量修改规约,但将规约格式附在软件说明书一起,或直接放在帮助中,这样就方便了用户的通讯。3.PPI,MPI和PROFIBUS都是基于OSI(开放系统互联)的七层网络结构模型,符合欧洲标准EN50170所定义的PROFIBUS标准,基于令牌的的网络通信协议。这些协议是非同步的(串行的)基于字符的通信协议,字符格式包括一个起始位、8个数据位、一个偶校验位和一个停止位。其通信帧包括特定的起始和结束字符、源和目的站的地址、帧长度和数据校验和。在波特率一致、各站地址不同的情况下,PPI,MPI和PROFIBUS可以同时在一个网络上运行,并且互不干扰。这就是说如果一个网络上有S7-300、S7-200,S7-300之间可以通过MPI或PROFIBUS通信,而在同时在同一个网络上的TP170如果在一个通信网络上存在其他主站(如TD200,或者上位计算机等),同时需要进行Micro/WIN的编程、监控,这就是多主站网络编程。使用西门子的下列设备可以实现Micro/WIN的多主站编程:micro触摸屏可以与一个S7-200CPU通信。使用智能多主站电缆和Micro/WINV3.2SP4以上版本。新电缆可以在网络上传递令牌,因而自动支持多主站网络编程。如果使用CP卡,如CP5511/CP5512(笔记本电脑PCMCIA卡)、CP5611(台式机PCI卡),能够支持多主站编程通信。如果通过CP卡编程时,选择了MPI协议,注意MPI主站不能访问作为PPI主站的CPU。如果有第三方的产品要连接到多主站网络上,用户需要咨询第三方产品提供商以了解是否支持西门子的S7-200多主站网络。要进行多主站编程,不但编程计算机要支持,网上的其他设备也要有多主站通信能力。早期的多主站连接依赖于计算机硬件和Windows操作系统。随着计算机技术的发展,多数情况下已经不能做到多主站编程通信。建议用户使用西门子的多主站编程电缆或者CP卡配合Micro/WIN实现多主站编程通信。4.MPI(Multipointinterface)是SIMATICS7多点通信的接口,是一种适用于少数站点间通信的网络,多用于连接上位机和少量PLC之间近距离通信。通过PROFIBUS电缆和接头,将控制器S7-300或S7-400的CPU自带的MPI编程口及S7-200CPU自带的PPI通信口相互连接,以及与上位机网卡的编程口(MPI/DP口)通过PROFIBUS或MPI电缆连接即可实现。网络中当然也可以不包括PC机而只包括PLC。MPI的通信速率为19.2K~12Mbit/s,但直接连接S7-200CPU通信口的MPI网,其最高速率通常为187.5Kbit/s(受S7-200CPU最高通信速率的限制)。在MPI网络上最多可以有32个站,一个网段的最长通信距离为50米(通信波特率为187.5Kbit/s时),更长的通信距离可以通过RS-485中继器扩展。MPI允许主-主通信和主-从通信,每个S7-200CPU通信口的连接数为4个。MPI协议不能与一个作为PPI主站的S7-200CPU通信,即S7-300或S7-400与S7-200通信时必须保证这个S7-200CPU不能再作PPI主站,Micro/WIN也不能通过MPI协议访问作为PPI主站的S7-200CPU。S7-200CPU只能做MPI从站,即S7-200CPU之间不能通过MPI网络互相通信,只能通过PPI方式互相通信。STEP7-Micro/WIN可以与S7-200CPU建立MPI主-从连接。硬件使用CP5611卡加上PROFIBUS或MPI电缆,S7-200CPU通信口上要使用带编程口的网络连接器。S注:CP5613不能通过MPI方式与S7-200CPU通信口进行编程通信。7-200CPU的通信口最低通信速率可设为19.2K,最高187.5K。S7-300和S7-400CPU可以作为MPI主站用XGET(SFC67)和XPUT(SFC68)指令读取S7-200数据,通信数据包最大为64个字节。S7200CPU中不需要编写任何与通信有关的程序,只需要将要交换的数据整理到一个连续的V存储区当中即可。5.S7-200通过以下方式支持Modbus通信协议:S7-200CPU上的通信口Port0可以支持ModbusRTU协议,成为ModbusRTU从站。此功能是通过S7-200的自由口通信模式实现,因此可以通过无线数据电台等慢速通信设备传输。如果想在S7-200CPU之间、或者其他支持ModbusRTU的设备使用ModbusRTU协议通信,需要由有S7-200CPU做Modbus主站。S7-200CPU做主站必须由用户自己用自由口模式,按相关协议编程。要实现ModbusRTU通信,需要STEP7-Micro/WIN32V3.2以上版本的编程软件,而且须安装STEP7-Micro/WIN32V3.2InstructionLibrary(指令库)。ModbusRTU功能是通过指令库中预先编好的程序功能块实现的。ModbusRTU从站指令库只支持CPU上的通信0口(Port0)。1.ModbusRTU主站指令库的功能是通过在用户程序中调用预先编好的程序功能块实现的,该库对Port0和Port1有效。该指令库将设置通信口工作在自由口模式下。2.ModbusRTU主站指令库使用了一些用户中断功能,编其他程序时不能在用户程序中禁止中断。3.ModbusRTU主站库对CPU的版本有要求。CPU的版本必须为2.00或者2.01(即订货号为6ES721*-***23-0BA*),1.22版本之前(包括1.22版本)的S7-200CPU不支持。