西门子PPI通讯协议
西门子S7-200PPI通信协议

西门子S7-200PPI通信协议PPI通信协议是一种主从式的通信协议,上位机即PC机为主,PLC为从。
通信开始由计算机发起,PLC予以响应。
1)、计算机按通信任务,用一定格式,向PLC发送通信命令。
2)、PLC收到命令后,进行命令校验,如无误,则向计算机发送数据E5H或F9H,作出初步应答。
3)、计算机收到初步应答后,再向PLC发送SD DA SA FCFCS ED确认命令。
这里,SD为起始字符,为10H;DA为目的,即PLC地址02H;SA为数据源,即计算机地址00H;FC为功能码,取5CH;FCS为SA、DA、FC和的256余数,为5EH;末字节ED为结束符,也是16H。
如按以上设定的计算机及PLC地址,则发送10、02、00、5C、5E、及16,6个字节的十六进制数据,以确认所发命令。
4)、PLC收到此确认后,执行计算机所发送的通信命令,并向计算机返回相应数据。
它的通信过程要往复两次才完成一次的通信,比较麻烦,但较严谨,不易出错。
SD LE LER SD DA SA FC DASP SSAP DU FCS EDSD:(Start Delimiter)开始定界符,占1字节,为68HLE:(Length)报文数据长度,占1字节,标明报文以字节计,从DA到DU的长度;LER:(Repeated Length)重复数据长度,同LESD: (Start Delimiter)开始定界符(68H)DA:(DestinationAddress)目标地址,占1字节,指PLC在PPI 上地址,一台PLC时,一般为02,多台PLC时,则各有各的地址;SA:(Source Address)源地址,占1字节,指计算机在PPI上地址,一般为00;FC:(Function Code)功能码,占1字节,6CH一般为读数据,7CH一般为写数据DSAP:(Destination Service Access Point)目的服务存取点,占多个字节SSAP:(Source Service Access Point)源服务存取点,占多个字节DU:(Data Unit)数据单元,占多个字节FCS:(Frame CheckSequence)占1字节,从DA到DU之间的校验和的256余数;ED:(End Delimiter)结束分界符,占1字节,为16H命令类型1)读命令读命令长度都是33个字节。
S7-200CNPPI通信

PPI通信协议PPI通信协议一网络构架PPI通信协议•PPI协议:•专门为S7-200CN开发的通信协议;•是一种主从协议;•主站发送要求到从站,从站进行响应,•从站不发送信息,只是等待主站的要求并对要求做出响应。
•S7-200CN的通信口有两个:•port0、port1.•S7-200与PC机编程时,就是通过PPI协议来完成的。
•S7-200的PPI通信是建立在RS-485的基础上的。
•S7-200之间的PPI通信只需要两条简单的指令:•网络读指令:NETR•网络写指令:NETW•在NETR、NETW通信•中,只有主站需要调用•NETR、NETW指令,•从站只需编程处理数•据缓冲区即可。
•SMB30、SMB130寄存器•SMB30:控制自由端口0的通信方式;•SMB130:控制自由端口1的通信方式。
•其含义如表所示:•默认情况下,PLC为PPI的通信从站,SMB30/SMB130的第0、1位,控制通信模式;当第1、0位为:10时,为PPI通信主站模式。
在PPI模式下,忽略2到7位。
PPI通信协议二使用通讯向导•PPI通信练习•将主站的I1.0~I1.7映射到从站的Q0.0~Q0.7;•将从站的I1.0~I1.7映射到主站的Q0.0~Q0.7;主站从站I1.0~I1.7 →Q0.0~Q0.7Q0.0~Q0.7 ←I1.0~I1.7 即NETR VB307 ←VB200 NETW VB207 →VB300内容提要•1、使用向导•2、编写程序•3、编译、下载程序到PLC •4、查看程序运行情况1、使用向导2、编写程序•一、主站程序•二、从站程序1、设置从站的PPI通信端口为0,站地址为6.¾下载调试。
S7200_PPI通信协议

S7-200 PPI通信协议PPI通信协议是一种主从式的通信协议,上位机即PC机为主,PLC为从。
通信开始由计算机发起,PLC予以响应。
1)、计算机按通信任务,用一定格式,向PLC发送通信命令。
2)、PLC收到命令后,进行命令校验,如无误,则向计算机发送数据E5H或F9H,作出初步应答。
3)、计算机收到初步应答后,再向PLC发送SD DA SA FC FCS ED确认命令。
这里,SD为起始字符,为10H;DA为目的,即PLC地址02H;SA为数据源,即计算机地址00H;FC为功能码,取5CH;FCS为SA、DA、FC和的256余数,为5EH;末字节ED为结束符,也是16H。
如按以上设定的计算机及PLC地址,则发送10、02、00、5C、5E、及16,6个字节的十六进制数据,以确认所发命令。
4)、PLC收到此确认后,执行计算机所发送的通信命令,并向计算机返回相应数据。
它的通信过程要往复两次才完成一次的通信,比较麻烦,但较严谨,不易出错。
SD LE LER SD DA SA FC DASP SSAP DU FCS EDSD:(Start Delimiter)开始定界符,占1字节,为68HLE:(Length)报文数据长度,占1字节,标明报文以字节计,从DA到DU的长度;LER:(Repeated Length)重复数据长度,同LESD: (Start Delimiter)开始定界符(68H)DA:(Destination Address)目标地址,占1字节,指PLC在PPI上地址,一台PLC时,一般为02,多台PLC时,则各有各的地址;SA:(Source Address)源地址,占1字节,指计算机在PPI上地址,一般为00;FC:(Function Code)功能码,占1字节,6CH一般为读数据,7CH一般为写数据DSAP:(Destination Service Access Point)目的服务存取点,占多个字节SSAP:(Source Service Access Point)源服务存取点,占多个字节DU:(Data Unit)数据单元,占多个字节FCS:(Frame Check Sequence)占1字节,从DA到DU之间的校验和的256余数;ED:(End Delimiter)结束分界符,占1字节,为16H命令类型1)读命令读命令长度都是33个字节。
PPI协议详解 ppi通讯协议 ppi通信协议 vb与ppi协议通讯

PPI协议详解 ppi通讯协议 ppi通信协议vb与ppi协议通讯PPI协议详解PPI通讯协议,也称为PPI通信协议,是一种用于在VB与PPI设备之间进行通讯的协议。
本文将详细介绍PPI协议的工作原理、通讯方式、数据格式以及通讯流程等内容。
一、PPI协议的工作原理PPI协议是一种基于并行通讯的协议,它通过并行数据线和控制线实现数据的传输和控制。
PPI设备通常是指PLC(可编程逻辑控制器)等工业自动化设备,而VB则是一种常用的编程语言。
二、PPI协议的通讯方式PPI协议支持两种通讯方式:主从式和点对点式。
1. 主从式通讯在主从式通讯中,VB作为主站(Master),而PPI设备作为从站(Slave)。
主站负责发起通讯请求,从站则负责响应请求并返回数据。
2. 点对点式通讯在点对点式通讯中,VB与PPI设备之间直接进行通讯,没有主从之分。
数据的传输是双向的,VB可以向PPI设备发送指令,并接收设备返回的数据。
三、PPI协议的数据格式PPI协议使用二进制数据进行通讯,数据的格式包括帧头、数据区和帧尾。
1. 帧头帧头用于标识一帧数据的开始,通常由几个特定的字节组成。
帧头的作用是告诉接收方数据的开始位置,以便接收方正确解析数据。
2. 数据区数据区是PPI协议中最重要的部分,它包含了具体的通讯数据。
数据区的长度可以根据实际需求进行变化,但通常不超过256字节。
3. 帧尾帧尾用于标识一帧数据的结束,通常由一个或多个特定的字节组成。
帧尾的作用是告诉接收方数据的结束位置,以便接收方正确解析数据。
四、PPI协议的通讯流程PPI协议的通讯流程包括连接建立、数据传输和连接关闭三个阶段。
1. 连接建立在连接建立阶段,VB需要与PPI设备建立通讯连接。
具体的连接方式可以根据实际需求选择,例如串口通讯、以太网通讯等。
2. 数据传输在数据传输阶段,VB可以向PPI设备发送指令,并接收设备返回的数据。
数据的传输方式可以是主动轮询、中断驱动或事件驱动等。
西门子PPI通讯协议

西门子PPI通讯协议!看看吧!S7-200 PLC之PPI协议通过硬件和软件侦听的方法,分析PLC内部固有的PPI通讯协议,然后上位机采用VB编程,遵循PPI通讯协议,读写PLC数据,实现人机操作任务。
这种通讯方法,与一般的自由通讯协议相比,省略了PLC的通讯程序编写,只需编写上位机的通讯程序资源S7-226的编程口物理层为RS-485结构,SIEMENS提供MicroWin软件,采用的是PPI(Point to Point)协议,可以用来传输、调试PLC程序。
在现场应用中,当需要PLC与上位机通讯时,较多的使用自定义协议与上位机通讯。
在这种通讯方式中,需要编程者首先定义自己的自由通讯格式,在PLC中编写代码,利用中断方式控制通讯端口的数据收发。
采用这种方式,PLC编程调试较为烦琐,占用PLC的软件中断和代码资源,而且当PLC的通讯口定义为自由通讯口时,PLC的编程软件无法对PLC进行监控,给PLC程序调试带来不便。
SIEMENS S7-200PLC的编程通讯接口,内部固化的通讯协议为PPI协议,如果上位机遵循PPI协议来读写PLC,就可以省略编写PLC的通讯代码。
如何获得PPI协议?可以在PLC的编程软件读写PLC数据时,利用第三个串口侦听PLC的通讯数据,或者利用软件方法,截取已经打开且正在通讯的端口的数据,然后归纳总结,解析出PPI协议的数据读写报文。
这样,上位机遵循P PI协议,就可以便利的读写PLC内部的数据,实现上位机的人机操作功能。
软件设计系统中测控任务由SIEMENS S7-226PLC完成,PLC采用循环扫描方式工作,当定时时间到时,执行数据采集或PID控制任务,完成现场的信号控制。
计算机的监控软件采用VB编制,利用M SComm控件完成串口数据通讯,通讯遵循的协议为PPI协议。
PPI协议西门子的PPI(Point to Point)通讯协议采用主从式的通讯方式,一次读写操作的步骤包括:首先上位机发出读写命令,PLC作出接收正确的响应,上位机接到此响应则发出确认申请命令,PLC则完成正确的读写响应,回应给上位机数据。
S型PLC之间的PPI协议通信

易于配置和管理: PPI协议的参数 配置相对简单, 方便用户进行通 信设置和管理, 降低了使用门槛 和维护成本。
S型PLC之间的PPI协议通信的不足
通信速度较慢 通信距离有限 容易受到干扰 兼容性较差
S型PLC之间的PPI协议通信的发展方向
优化通信协议:提高通信效率 和稳定性
增强安全性:确保数据传输的 安全性和完整性
系统设计:根据需求分析,设计S 型PLC控制系统,包括硬件配置、 软件编程等
添加标题
添加标题
添加标题
添加标题
需求分析:需要实现水处理工艺流 程的自动化控制,包括水泵、阀门、 液位等设备的控制
实施效果:通过实际运行,该水处 理厂的S型PLC控制系统实现了自 动化控制,提高了生产效率和水质
案例三:某电力系统的S型PLC控制系统
拓展通信接口:支持更多种类 的通信接口和协议
智能化发展:结合人工智能和 大数据技术,实现更高级的自 动化控制和数据分析功能
05 实际应用案例分析
案例一:某工厂的S型PLC控制系统
案例背景:某工厂的S型PLC控制系统,用于控制生产线的自动化运行。
案例描述:该系统通过PPI协议实现PLC之间的通信,实现了对生产线设备的远程监控 和控制。
通信方式:S型PLC之间的PPI协议通信采用轮询方式,即主站按照一定的时间间隔依 次向各个从站发送数据请求,从站接收到数据请求后,将数据发送回主站。
通信过程:主站通过以太网向从站发送数据请求,从站接收到数据请求后,将数据发 送回主站。主站对接收到的数据进行处理,实现PLC之间的数据交换和控制。
S型PLC之间的PPI协议通信配置
注意事项:确保硬 件连接正确、参数 设置合理、程序编 写无误、测试结果 准确
西门子PLC之间的通讯

西门子PLC之间的通讯是怎么完成的S7-200通信最经济的方式就是采用PPI协议和自由口通信协议。
对于S7-200之间进行通信,PPI协议又更适合——它比自由口通信的编程更简单!下面就对这个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采用带编程口的Profibus-DP接头。
所以说,带编程口的Profibus-DP接头在整个网络中只需要一个就可以了。
这样,也就可以在某一台PLC处对在网的其它PLC进行编程/监控。
引脚分配:........S7--200 CPU上的通讯端口是符合欧洲标准EN 50170中PROFIBUS 标准的RS--485兼容9针D型连接器。
下表列出了为通讯端口提供物理连接的连接器,并描述了通讯端口的针脚分配。
下面是S7-200的通信接口——D型9孔母头的引脚定义。
网络电缆的偏压电阻和终端电阻为了能够把多个设备很容易地连接到网络中,西门子公司提供两种网络连接器:一种标准网络连接器(引脚分配如表7-7所示)和一种带编程接口的连接器,后者允许您在不影响现有网络连接的情况下,再连接一个编程站或者一个HMI 设备到网络中。
带编程接口的连接器将S7--200的所有信号(包括电源引脚)传到编程接口。
这种连接器对于那些从S7--200取电源的设备(例如TD200)尤为有用。
两种连接器都有两组螺钉连接端子,可以用来连接输入连接电缆和输出连接电缆。
s7_200的PPI通信

PPI协议是专门为S7-200开发的通信协议。
S7-200CPU的通信口(Port0、Port1)支持PPI通信协议,S7-200的一些通信模块也支持PPI协议。
Micro/WIN与CPU进行编程通信也通过PPI协议。
S7-200CPU的PPI网络通信是建立在RS-485网络的硬件基础上,因此其连接属性和需要的网络硬件设备是与其他RS-485网络一致的。
S7-200CPU之间的PPI网络通信只需要两条简单的指令,它们是网络读(NetR)和网络写(NetW)指令。
在网络读写通信中,只有主站需要调用NetR/NetW指令,从站只需编程处理数据缓冲区(取用或准备数据)。
PPI网络上的所有站点都应当有各自不同的网络地址。
否则通信不会正常进行。
可以用两种方法编程实现PPI网络读写通信:使用NetR/NetW指令,编程实现使用Micro/WIN中的InstructionWizard(指令向导)中的NETR/NETW向导NetR/NetW指令要点有关网络读写(NetR/NetW)指令的详细情况必须参考《S7-200系统手册》。
每条网络读写指令最多能够读或者写16个字节的数据;每个CPU内最多只能有8条网络读写指令同时激活,而网络读写指令的数目没有限制。
只有通信主站能够使用网络读写指令。
缺省情况下,S7-200CPU的通信口设置为从站模式。
因此在编程时,需要把通信口设置为通信主站模式。
在一个PPI网络中,与一个从站通信的主站的个数并没有限制,但是一个网络中主站的个数不能超过32个。
主站既可以读写从站的数据,也可以读写主站的数据。
也就是说,S7-200作为PPI主站时,仍然可以作为从站响应其他主站的数据请求。
一个主站CPU可以读写网络中任何其他CPU的数据。
由于串行通信的特点,通信数据的接收(或者发送)是不能与PLC程序的扫描周期配合的。
所有的通信活动都需要PLC操作系统的管理,网络读写(包括其他类似的通信指令)指令只是告诉操作系统有需要处理的通信任务。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
?西门子PPI通讯协议!看看吧!
S7-200?PLC之PPI协议?
????通过硬件和软件侦听的方法,分析PLC内部固有的PPI通讯协议,然后上位机采用VB 编程,遵循PPI通讯协议,读写PLC数据,实现人机操作任务。
这种通讯方法,与一般的自由通讯协议相比,省略了PLC的通讯程序编写,只需编写上位机的通讯程序资源
S7-226的编程口物理层为RS-485结构,SIEMENS提供MicroWin软件,采用的是PPI(Point?to?Point)协议,可以用来传输、调试PLC程序。
在现场应用中,当需要PLC与上位机通讯时,较多的使用自定义协议与上位机通讯。
在这种通讯方式中,需要编程者首先定义自己的自由通讯格式,在PLC中编写代码,利用中断方式控制通讯端口的数据收发。
采用这种方式,PLC编程调试较为烦琐,占用PLC的软件中断和代码资源,而且当PLC的通讯口定义为自由通讯口时,PLC的编程软件无法对PLC进行监控,给PLC程序调试带来不便。
SIEMENS?S7-200PLC的编程通讯接口,内部固化的通讯协议为PPI协议,如果上位机遵循PPI 协议来读写PLC,就可以省略编写PLC的通讯代码。
如何获得PPI协议?可以在PLC的编程软件读写PLC数据时,利用第三个串口侦听PLC的通讯数据,或者利用软件方法,截取已经打开且正在通讯的端口的数据,然后归纳总结,解析出PPI协议的数据读写报文。
这样,上位机遵循PPI协议,就可以便利的读写PLC内部的数据,实现上位机的人机操作功能。
软件设计
?系统中测控任务由SIEMENS?S7-226PLC完成,PLC采用循环扫描方式工作,当定时时间到时,执行数据采集或PID控制任务,完成现场的信号控制。
计算机的监控软件采用VB编制,利用MSComm控件完成串口数据通讯,通讯遵循的协议为PPI协议。
?PPI协议
西门子的PPI(Point?to?Point)通讯协议采用主从式的通讯方式,一次读写操作的步骤包括:首先上位机发出读写命令,PLC作出接收正确的响应,上位机接到此响应则发出确认申请命令,PLC则完成正确的读写响应,回应给上位机数据。
这样收发两次数据,完成一次数据的读写[5]。
其通讯数据报文格式大致有以下几类:
1、读写申请的数据格式如下:
?
SD?LE?LER?SD?DA?SA?FC?DASP?SSAP?DU?FCS?ED??
SD:(Start?Delimiter)开始定界符(68H)
LE:(Length)报文数据长度
LER:(Repeated?Length)重复数据长度
SD:?(Start?Delimiter)开始定界符(68H)
SA:(Source?Address)源地址,指该地址的指针,为地址值乘以8
DA:(Destination?Address)目标地址,指该地址的指针,为地址值乘以8
FC:(Function?Code)功能码
DSAP:(Destination?Service?Access?Point)目的服务存取点
SSAP:(Source?Service?Access?Point)源服务存取点
DU:(Data?Unit)数据单元
FCS:(Frame?Check?Sequence)校验码
ED:(End?Delimiter)结束分界符(16H)
报文数据长度和重复数据长度为自DA至DU的数据长度,校验码为DA至DU数据的和校验,只取其中的末字节值。
在读写PLC的变量数据中,读数据的功能码为?6CH,写数据的功能码为?7CH。
2、PLC接收到读写命令,校验后正确,返回的数据格式为?E5H
3、确认读写命令的数据格式为:
?
SD?SA?DA?FC?FCS?ED??
其中SD为起始符,为10H
SA为数据源地址
DA为目的地址
FC为功能码,取5CH
FCS为SA+DA+FC的和的末字节
ED为结束符,取16H
PPI协议的软件编制
?在采用上位机与PLC通讯时,上位机采用VB编程,计算机采用PPI电缆或普通的485串口卡与PLC的编程口连接,通讯系统采用主从结构,上位机遵循PPI协议格式,发出读写申请,PLC返回相应的数据。
程序实现如下:
?1、串口初始化程序:
????mPort?=?1
????MSComm1.Settings?=?"9600,e,8,1"
????MSComm1.InputLen?=?0
????MSComm1.RThreshold?=?1
MSComm1.InputMode?=?comInputModeBinary
PPI协议定义串口为以二进制形式收发数据,这样报文的通讯效率比ASCII码高。
2、串口读取数据程序,以读取VB100数据单元为例:
Dim?Str_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?30
???Temp_FCS?=?Temp_FCS?+?Str_Read(i)
Next?I
Str_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?0?1?0?1?84?0?3?20?8B?16? PLC返回数据?E5?后,确认读取命令,发送以下数据:
10?2?0?5C?5E?16
然后上位机VB程序接受到以下数据:
68?16?16?68?0?2?8?32?3?0?0?0?0?0?2?0?5?0?0?4?1?FF?4?0?8?22?78?16
首先识别目标地址和源地址,确认是这次申请的返回数据,然后经过校验检查,正确后解析出第26号数据(&H22)即为VB100字节的数据。
?3、串口写入数据程序,以写VB100数据单元为例:
Dim?Str_Write(0?To?37)?‘定义发送的数据为字节为元素的数组。
Str_Write?(37)?=?&H16??‘相应的数组元素赋值,按照以下格式
Str_Write?(35)?=?&H10??‘要写入的数据值
68?20?20?68?2?0?7C?32?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?16?
PLC返回数据?E5?后,确认写入命令,发送以下数据:
10?2?0?5C?5E?16
然后上位机VB程序接受到以下数据:
68?12?12?68?0?2?8?32?3?0?0?0?0?0?2?0?1?0?0?5?1?FF?47?16
这是PLC正确接收并写入信息的返回数据。
4、串口接收程序:
在数据接收程序中,利用VB中MSComm控件,一次接收缓冲区中的全部数据,存放到数组形式的暂存单元中,然后分析每个元素的值,得到读写的数据。
Dim?RCV_Array()?As?Byte
Dim?Dis_Array?As?String
Dim?RCV_Len?As?Long
RCV_Array?=?MSComm1.Input?‘取出串口接收缓冲器的数据。
RCV_Len?=?UBound(RCV_Array)
ReDim?Temp(0?To?UBound(RCV_Array))
For?i?=?0?To?RCV_Len
Dis_Array?=?Dis_Array?&?Hex(RCV_Array?(i))?&?"?"
Next?i
Text1.Text?=?Dis_Array?‘接收到的数据送显示。
?在程序的读写过程中,一次最大可以读写222个字节,目前给出的数据读写为整数格式。
?
数据类型?Str_?Read(27)????
S?04H????
SM?05H????
I?81H????
Q?82H????
M?83H????
V?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的数据时,就可以一次读出这组连续的数据,减少数据的分次频繁读取。
当修改设定值等数据时,进行写数据的通讯操作。