rs485通讯协议详解
RS-485上的软件层协议ModBus主要依赖于主从模式。主从机的数据交互,需要:a. 主机将自己转为发送状态。b. 主机按照预先约定的格式发出寻址数据帧。c. 主机恢复自身的接收状态。所谓的约定,可是主机开发者和从机开发者约定好的规约,例如主机要通过从机控制接在从机的电机,主机要启动电机就往从机发0x1,停止电机就往从机发0x2。这就是一种预先约定好的格式,但是这样做,互换性、兼容性、通用性差。例如其他公司是约定发送0x03让电机转动,发0x04让电机停止。导致不同厂家的主机、从机不能相互通讯。用户需要的,就像网络操作,只要接入有网的网线那么计算机都能上网。所以说,需要一种大家都共同遵循的规则(可以是ModBus,也可以是TCP/IP等上层协议)。软件层协议主要是解决如何解析传输的数据,即传输的目的或者更加可靠的传输数据。半双工通讯中,都是主机寻找从机,主机的目的无非有主机要发数据给从机,或者主机要从从机中获取数据。主机等待自身所寻址的从机作回应,也就是说从机接收到主机的寻址命令、数据后一定要回应主机,不然主机会认为从机通讯异常。扩展资料;RS-485的特点;1、RS-485的电气特性:逻辑“1”以两线间的电压差为+(2-6)V表示,逻辑“0”以两线间的电压差为-(2-6)V表示。接口信号电平比RS-232-C降低了,就不易损坏接口电路的芯片,且该电平与TTL电平兼容,可方便与TTL电路连接。2、RS-485的数据最高传输速率为10Mbps。3、RS-485接口是采用平衡驱动器和差分接收器的组合,抗共模干能力增强,即抗噪声干扰性好。4、RS-485接口的最大传输距离标准值为4000英尺,实际上可达3000米,另外RS-232-C接口在总线上只允许连接1个收发器,即单站能力。而RS-485接口在总线上是允许连接多达128个收发器。即具有多站能力,这样用户可以利用单一的RS-485接口方便地建立起设备网络。5、因RS-485接口具有良好的抗噪声干扰性,长的传输距离和多站能力等上述优点就使其成为首选的串行接口。因为RS-485接口组成的半双工网络,一般只需二根连线,所以RS-485接口均采用屏蔽双绞线传输。RS-485接口连接器采用DB-9的9芯插头座,与智能终端RS-485接口采用DB-9(孔),与键盘连接的键盘接口RS-485采用DB-9(针)。

modbus rtu通信协议详解以及与modbus tcp通信协议之间的区别和联系
modbus tru是与modbus ASCII相比较来说的,前者是通过二进制数码进行传送,后者是通过ASCII字符方式传送,除此之外没有区别。MODBUS指令和数据既可以通过串口实现通讯,也可以通过以太网实现通讯,通讯方式不同,数据格式完全相同,MODBUS TCP就是在以太网上进行MODBUS通讯,同样也可以采用RTU和ASCII两种方式。

Modbus RTU通信协议详解以及与Modbus TCP通信协议
ModBus协议是应用层报文传输协议(OSI模型第7层),它定义了一个与通信层无关的协议数据单元(PDU),即PDU=功能码+数据域。ModBus协议能够应用在不同类型的总线或网络。对应不同的总线或网络,Modbus协议引入一些附加域映射成应用数据单元(ADU),即ADU=附加域+PDU。目前,Modbus有下列三种通信方式:1.以太网,对应的通信模式是MODBUSTCP。2.异步串行传输(各种介质如有线RS-232-/422/485/;光纤、无线等),对应的通信模式是MODBUSRTU或MODBUSASCII。3.高速令牌传递网络,对应的通信模式是ModbusPLUS。
您好,Modbus-RTU是Modbus-TCP通信协议的一部分,另外一部分属于Modbus-ASCLL。这是一种通讯方式,适合不同的场合,Modbus-RTU适合传输数据,Modbus-TCP通信协议更适合传输字符,谢谢。Modbus RTU通信协议详解以及与Modbus TCP通信协议

谁能帮我讲解一下西门子200PPI通讯协议,谢谢各位。
S7-200 PLC之PPI协议 通过硬件和软件侦听的方法,分析PLC内部固有的PPI通讯协议,然后上位机采用VB编程,遵循PPI通讯协议,读写PLC数据,实现人机操作任务。这种通讯方法,与一般的自由通讯协议相比,省略了PLC的通讯程序编写,只需编写上位机的通讯程序资源S7-226的编程口物理层为RS-485结构,SIEMENS提供MicroWin软件,采用的是PPI(Point toPoint)协议,可以用来传输、调试PLC程序。在现场应用中,当需要PLC与上位机通讯时,较多的使用自定义协议与上位机通讯。在这种通讯方式中,需要编程者首先定义自己的自由通讯格式,在PLC中编写代码,利用中断方式控制通讯端口的数据收发。采用这种方式,PLC编程调试较为烦琐,占用PLC的软件中断和代码资源,而且当PLC的通讯口定义为自由通讯口时,PLC的编程软件无法对PLC进行监控,给PLC程序调试带来不便。SIEMENSS7-200PLC的编程通讯接口,内部固化的通讯协议为PPI协议,如果上位机遵循PPI协议来读写PLC,就可以省略编写PLC的通讯代码。如何获得PPI协议?可以在PLC的编程软件读写PLC数据时,利用第三个串口侦听PLC的通讯数据,或者利用软件方法,截取已经打开且正在通讯的端口的数据,然后归纳总结,解析出PPI协议的数据读写报文。这样,上位机遵循PPI协议,就可以便利的读写PLC内部的数据,实现上位机的人机操作功能。软件设计系统中测控任务由SIEMENSS7-226PLC完成,PLC采用循环扫描方式工作,当定时时间到时,执行数据采集或PID控制任务,完成现场的信号控制。计算机的监控软件采用VB编制,利用MSComm控件完成串口数据通讯,通讯遵循的协议为PPI协议。PPI协议西门子的PPI(PointtoPoint)通讯协议采用主从式的通讯方式,一次读写操作的步骤包括:首先上位机发出读写命令,PLC作出接收正确的响应,上位机接到此响应则发出确认申请命令,PLC则完成正确的读写响应,回应给上位机数据。这样收发两次数据,完成一次数据的读写[5]。其通讯数据报文格式大致有以下几类:1、读写申请的数据格式如下:SDLE LER SD DA SA FC DASP SSAP DU FCS EDSD:(StartDelimiter)开始定界符(68H)LE:(Length)报文数据长度LER:(Repeated Length)重复数据长度SD:(Start Delimiter)开始定界符(68H)SA:(SourceAddress)源地址,指该地址的指针,为地址值乘以8DA:(DestinationAddress)目标地址,指该地址的指针,为地址值乘以8FC:(Function Code)功能码DSAP:(DestinationService Access Point)目的服务存取点SSAP:(Source Service AccessPoint)源服务存取点DU:(Data Unit)数据单元FCS:(Frame Check Sequence)校验码ED:(EndDelimiter)结束分界符(16H)报文数据长度和重复数据长度为自DA至DU的数据长度,校验码为DA至DU数据的和校验,只取其中的末字节值。在读写PLC的变量数据中,读数据的功能码为6CH,写数据的功能码为 7CH。2、PLC接收到读写命令,校验后正确,返回的数据格式为E5H3、确认读写命令的数据格式为:SD SA DA FC FCS ED其中SD为起始符,为10HSA为数据源地址DA为目的地址FC为功能码,取5CHFCS为SA+DA+FC的和的末字节ED为结束符,取16HPPI协议的软件编制在采用上位机与PLC通讯时,上位机采用VB编程,计算机采用PPI电缆或普通的485串口卡与PLC的编程口连接,通讯系统采用主从结构,上位机遵循PPI协议格式,发出读写申请,PLC返回相应的数据。程序实现如下:1、串口初始化程序:MSComm1.CommPort = 1MSComm1.Settings = "9600,e,8,1"MSComm1.InputLen = 0MSComm1.RThreshold = 1MSComm1.InputMode =comInputModeBinaryPPI协议定义串口为以二进制形式收发数据,这样报文的通讯效率比ASCII码高。2、串口读取数据程序,以读取VB100数据单元为例:DimStr_Read(0 To 32) ‘定义发送的数据为字节为元素的数组。Str_ Read (32) = &H16‘相应的数组元素赋值,按照以下格式:Str_ Read (29) = (100*8) 256‘地址为指针值,先取高位地址指针Str_Read (30) = (100*8) Mod 256 ‘取低位地址指针Str_ Read (24) = 1‘读取的数据长度(Byte的个数)For I=4 to 30Temp_FCS = Temp_FCS +Str_Read(i)Next IStr_Read(31)= Temp_FCS Mod 256‘计算FCS校验码,其它数组元素赋值省略。68 1B 1B 68 2 0 6C 32 1 0 0 0 0 0 E 0 0 4 1 12 A 10 2 01 0 1 84 0 3 20 8B 16PLC返回数据 E5 后,确认读取命令,发送以下数据:10 2 0 5C 5E16然后上位机VB程序接受到以下数据:68 16 16 68 0 2 8 32 3 0 0 0 0 0 2 0 5 0 0 4 1 FF 4 08 22 7816首先识别目标地址和源地址,确认是这次申请的返回数据,然后经过校验检查,正确后解析出第26号数据(&H22)即为VB100字节的数据。3、串口写入数据程序,以写VB100数据单元为例:DimStr_Write(0 To 37) ‘定义发送的数据为字节为元素的数组。Str_Write (37) = &H16‘相应的数组元素赋值,按照以下格式Str_Write (35) = &H10‘要写入的数据值68 20 20 68 2 0 7C32 1 0 0 0 0 0 E 0 5 5 1 12 A 10 2 0 1 0 1 84 0 3 20 0 4 0 8 C B9 16PLC返回数据E5 后,确认写入命令,发送以下数据:10 2 0 5C 5E 16然后上位机VB程序接受到以下数据:68 12 12 68 0 2 832 3 0 0 0 0 0 2 0 1 0 0 5 1 FF 4716这是PLC正确接收并写入信息的返回数据。4、串口接收程序:在数据接收程序中,利用VB中MSComm控件,一次接收缓冲区中的全部数据,存放到数组形式的暂存单元中,然后分析每个元素的值,得到读写的数据。DimRCV_Array() As ByteDim Dis_Array As StringDim RCV_Len AsLongRCV_Array = MSComm1.Input ‘取出串口接收缓冲器的数据。RCV_Len =UBound(RCV_Array)ReDim Temp(0 To UBound(RCV_Array))For i = 0 ToRCV_LenDis_Array = Dis_Array & Hex(RCV_Array (i)) & " "NextiText1.Text = Dis_Array‘接收到的数据送显示。在程序的读写过程中,一次最大可以读写222个字节,目前给出的数据读写为整数格式。数据类型 Str_Read(27)S 04HSM 05HI 81HQ 82HM 83HV 84H以上程序,是以读写PLC的V变量区为例,利用PPI协议还可以读写S7-200PLC中的各种类型数据,包括I、Q、SM、M、V、T、C、S等数据类型,能够直接读出以上变量中的位、字节、字、双字等,其中读位变量时,是读取该位所在的字节值,然后上位机自动识别出该位的值。按照读写的数据类型,其中Str_Read(27)的值各不同: 在控制系统中,PLC与上位计算机的通讯,采用了PPI通讯协议,上位机每0.5秒循环读写一次PLC。PLC编程时,将要读取的检测值、输出值等数据,存放在PLC的一个连续的变量区中,当上位机读取PLC的数据时,就可以一次读出这组连续的数据,减少数据的分次频繁读取。当修改设定值等数据时,进行写数据的通讯操作。
西门子S7-200 PLC之间或者PLC与PC之间通信有很多种方式:自由口,PPI方式,MPI方式,Profibus方式。使用自由口方式进行编程时,在上位机和PLC中都要编写数据通信程序。使用PPI协议进行通信时,PLC可以不用编程,而且可读写所有数据区,快捷方便。但是西门子公司没有公布PPI协议的格式。用户如果想使用PPI协议监控,必须购买其监控产品或第三方厂家的组态软件。这样给用户自主开发带来一定困难,特别是自行开发的现场设备就不能通过PPI协议接入PLC。其它通讯方式编程也存在编程复杂,需要购买软件和授权等局限性(1)。通过数据监视、分析的方法,我们找出了PPI协议的关键报文格式,可用于上位机、现场设备与S7-200 CPU之间通讯。PC与PLC采用主从方式通讯,PC按如下的格式发读写指令,PLC作出接收正确的响应(返回应答数据E5H或F9H见下文分析),上位机接到此响应则发出确认命令(10 02 5C 5E 16),PLC再返回给上位机相应数据。 http://wenku.baidu.com/view/d16598c6bb4cf7ec4afed05d.html

Modbus RTU通信协议详解以及与Modbus TCP通信协议之间的区别和联系
您好,Modbus-RTU是Modbus-TCP通信协议的一部分,另外一部分属于Modbus-ASCLL。这是一种通讯方式,适合不同的场合,Modbus-RTU适合传输数据,Modbus-TCP通信协议更适合传输字符,谢谢。

本文由 在线网速测试 整理编辑,转载请注明出处。