水电电工知识
电工知识|西门子S7-200PLC自由口与PPI通讯的区别
2016-03-26  浏览:14
水电之家讯:1、PPI协议是专门为西门子S7-200plc开发的通信协议。西门子S7-200 CPU的通信口(Port0、Port1)支持PPI通信协议,西门子S7-200的一些通信模块也支持PPI协议。Micro/WIN与CPU进行编程通信也通过PPI协议。 编程时西门子PPI电缆使用方法 进入 STEP7 Micro/WIN 编程软件中的“设置 PG/PC 接口”,选中“ PC/PPI cable ( PPI )”条目后点击“ Properties… ”按钮。

在“ Local Connection ”的下拉框中选中“ USB ”选项。

在“ PPI ”的 Station Parameters 设置中进行如下设置: Address : 0 , Timeout : 1s

 在“ PPI ”的 Network Parameters 设置中根据你的需要可选择以下通信协议的任何一个:

 高级 PPI :勾选 Advanced PPI 复选框;

多主站 PPI :勾选 Multiple Master Network 复选框;

普通 PPI :不勾选以上二个复选框,这是默认的选项。

!注:要与西门子最新推出的 S7-200CN CPU 正常编程通信,必须满足以下条件:

(1) 、使用编程软件 STEP 7-Micro/WIN V4.0 SP3 以上版本

(2)、将编程软件的工作环境设置为中文状态

S7-200 CPU的PPI网络通信是建立在RS-485网络的硬件基础上,因此其连接属性和需要的网络硬件设备是与其他RS-485网络一致的。S7-200 CPU之间的PPI网络通信只需要两条简单的指令,它们是网络读(NetR)和网络写(NetW)指令。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)源地址,指该地址的指针,为地址值乘以8DA:(Destination Address)目标地址,指该地址的指针,为地址值乘以8FC:(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接收到读写命令,校验后正确,返回的数据格式为 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 = 1 MSComm1.Settings = "9600,e,8,1" MSComm1.InputLen = 0 MSComm1.RThreshold = 1MSComm1.InputMode = comInputModeBinaryPPI协议定义串口为以二进制形式收发数据,这样报文的通讯效率比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 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 0 1 0 1 84 0 3 20 8B 16PLC返回数据 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 16PLC返回数据 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 ByteDim Dis_Array As StringDim RCV_Len As LongRCV_Array = MSComm1.Input ‘取出串口接收缓冲器的数据。RCV_Len = UBound(RCV_Array)ReDim Temp(0 To UBound(RCV_Array))For i = 0 To RCV_LenDis_Array = Dis_Array & Hex(RCV_Array (i)) & " "Next iText1.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的数据时,就可以一次读出这组连续的数据,减少数据的分次频繁读取。当修改设定值等数据时,进行写数据的通讯操作2、自由口:S7-200 CPU的通信口可以设置为自由口模式。选择自由口模式后,用户程序就可以完全控制通信端口的操作,通信协议也完全受用户程序控制。S7-200 CPU上的通信口在电气上是标准的RS-485半双工串行通信口。此串行字符通信的格式可以包括:一个起始位7或8位字符(数据字节)一个奇/偶校验位,或者没有校验位一个停止位自由口通信速波特率可以设置为1200、2400、4800、9600、19200、38400、57600或112500。凡是符合这些格式的串行通信设备,理论上都可以和S7-200 CPU通信。自由口模式可以灵活应用。Micro/WIN的两个指令库(USS和Modbus RTU)就是使用自由口模式编程实现的。水电之家为您提供最全面的管材,管件,水电,电线,电工,管材水电品牌的装修知识点和各种管材水电的导购与在线购买服务,拥有最便宜的管材水电价格和最优质的售后服务,每天都有秒杀的抢购活动哦!敬请登陆水电之家:http://shuidian.jc68.com/
更多»您可能感兴趣的文章:
更多»有关 管件 的产品:
  • 水电电工资讯
  • 发表评论 | 0评
  • 评论登陆
  • 移动社区 天花之家 木门之家 灯具之家 铁艺之家 幕墙之家 五金头条 楼梯头条 墙纸头条 壁纸头条 玻璃头条 老姚之家 灯饰之家 电气之家 全景头条 照明之家 防水之家 防盗之家 区快洞察 建材 枣庄建材 临沂建材 南昌建材 上饶建材 抚州建材 宜春建材 吉安建材 赣州建材 鹰潭建材 新余建材 九江建材 萍乡建材 景德镇陶瓷 石家庄建材 衡水建材 廊坊建材 沧州建材 承德建材 建材之家 企业之家 720全景
    (c)2015-2017 Bybc.cn SYSTEM All Rights Reserved