s7-200通信

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

S7-200可编程控制器与微机通信之设计和实现2008-8-228:22:00来源:中国自动化网网友评论0条点击查看摘要:西门子公司的SIMATICS7-200系列是适应于中小型设备控制的微型PLC,应用领域广泛。无论是独立运行或相连成网络皆能在自动化系统中实现复杂的控制功能,强劲的通信能力使其在同类PLC产品中独具特色。本文以飞剪控制系统为例,介绍了S7-222的通信方式,着重阐述了自由口通信的参数设定、协议规划和通信程序设计。关键词:PLC;S7-200;Win9x;自由口模式;串口1.前言可编程控制器(PLC)作为一种高性能的工业现场控制装置,已广泛地用于工业控制的各个领域。目前,工业自动控制对PLC的网络通信能力要求越来越高,PLC与上位机之间、PLC与PLC之间都要能够进行数据共享和控制。飞剪控制系统要求在远离PLC的控制室里,实时监控电机、供纸、刀辊等设备。上位机为普通PC机,下位机为SIEMENSS7-222PLC。在实际开发中,采用自由口通信模式,自定义PC与PLC的通信协议,用Step7编写PLC端的通信程序,而在PC端用VC6.0实现串行通信的控制和监控界面的显示。2.通信方式及原理S7-200系列PLC通信方式有三种:一种是点对点(PPI)方式,用于与西门子公司的PLC编程器或其它产品通信,其通信协议是不公开的。另一种为DP方式,这种方式使得PLC可通过Profibus的DP通信接口接入现场总线网络,从而扩大PLC的使用范围。最后一种方式是自由口(FreePort)通信方式,由用户定义通信协议,实现PLC与外设的通信。本系统中采用自由口通信方式。它是S7-200系列PLC一个很有特色的功能。这种方式不需要增加投资,具有较好的灵活性,适合小规模控制系统。自由口通信在物理接口上要求双方都使用RS485接口,波特率最高为38400bps。虽然PC机的标准串口为RS232,但西门子公司提供的PC/PPI电缆带有RS232/RS485电平转换器,因此在不增加任何硬件的情况下,可以很方便地将PLC和PC机互联。2.1自由口模式的初始化PLC的自由口模式通信编程首先是对串口初始化。对S7-200PLC的初始化是通过对特殊存储字节SMB30(端口0)写入通信控制字,来设置通信的波特率、奇偶校验、停止位和数据位数。显然,这些设定必须与上位机设定值相一致。另外还可选择通信模式和主从站模式,各具体存储位内容可参考SIMATICS7-200系统手册。2.2自由口模式下收发数据初始化自由端口通信模式后,就可以进行数据的收发。(1)发送数据指令XMT格式:XMTTable,Port。可以用XMT指令发送数据,XMT指令激活发送缓冲区(从Table开始的变量存储区)中的数据。数据缓冲区的第一个数据指明了要发送的字节数,Port指明了用于发送的端口,缓冲区最多可以有255个字符。在发完缓冲区的最后一个字符时,会产生一个中断(对端口0为中断事件9)。本例的XMT缓冲区的格式如表1。其中,状态字节表示PLC是否正确接收了上位机所传数据;上传数据为PLC上传给PC的数据,需将9字节的16进制数编码为18字节的ASIIC码,所以字节数为18;BCC为上传数据的异或和,同样将16进制数编码为ASIIC码;结束字符的值为26。表1发送缓冲区表2接收缓冲区RCVTable,Port。用RCV指令接收最多为255个字符的数据,这些字符存储在缓冲区中。在接收到结束字符时,会产生一个中断(对端口0为中断事件23)。本例的RCV缓冲区的格式如表2。其中,命令类型表示上位机让PLC执行什么操作,如读或写;目标站号是分配给PLC的一个代号;起始地址是PLC要进行读写的存储区的起始地址;读写字节数是PLC接到命令后,对存储区进行读写的字节数,本例中最多写入16字节、读出9字节;写入数据是上位机要写入PLC的数据,对于读命令不起作用;BCC是从命令类型开始到写入数据为止的43字节数据的异或和。从目标站号到BCC这几项内容,都是把16进制数编码为ASIIC码来表示的。3.自由口通信程序设计通信程序的设计需遵循一定的规则,如中断通信处理程序要短小精悍、要避免XMT与RCV指令同时在一个端口执行等。整个PLC通信程序包括主程序、通信初始化子程序、校验子程序、读写数据子程序和发送完成、接收完成中断服务程序。3.1主程序通信主程序是PLC实现接收、发送功能的主框架。其主要流程为查询接收是否完成,校验,再根据命令类型执行读、写等操作。它的作用是控制程序的主流程,校验、读写等具体工作由相应的子程序完成。流程如图1。3.2通信初始化程序通信初始化子程序设置自由口通信的有关参数,对接收信息控制寄存器SMB87写入控制字,定义起始字符、结束字符和接收超时。设好自由口模式的这些参数后,还要连接中断事件和中断服务程序,并打开中断。最后,把接收、发送缓冲区写入初值即可。3.3校验子程序每次PLC接收完1帧数据,就调用此子程序进行校验。进入子程序后,先清除接收完成标志位,再计算所接收数据的校验和BCC。如果正确,还要检验结束字符是否为‘G’。不是的话,说明数据报文长度不对或传输过程中发生了错误,需要向上位机返回相应的出错信息。流程如图2。图1主程序流程图图2校验子程序流程图3.4读、写数据子程序这2个子程序的任务是把PLC存储区中的数据发给上位机或把上位机传来的数据写入PLC存储区。二者的流程相似,只是数据流向不同。进入子程序后,先停止接收,然后完成数据传输,最后发送应答报文。不同之处就是应答报文中的状态字节:读操作时是1、写操作时是2。3.5接收、发送完成中断服务程序当PLC接收到结束字符后产生中断(事件号9)或数据发送结束后产生中断(事件号23),这两个服务程序被执行。接收完,先把接收完标志置1,然后再次启动接收。发送完,先清除校验正确标志,再把接收缓冲区中的结束字符和计算出的接收BCC结果清零,最后再次启动接收。由于是半双工通信,因此PLC无论是发送和接收完数据后,都必须将通信口设置成接收状态。否则,PLC就接收不到任何数据了。4.上位机的通信编程上位机通过RS232口与PLC进行通信,Windows环境串口通信程序利用VC6编写。VC6编写串口通信程序通常有MSCOMM控件和通信API两种方法。二者各有优缺点。MSCOMM控件封装了微机串口通信的基本功能,使用者只需设置一些基本参数,就可以通过串口收发数据了。这种方法简单,易于编程人员使用,现在已有很多例子供参考。用通信API编写串口程序相对复杂一些。开发者要直接使用Windows提供的一组API函数来完成上述控件封装好的功能。所以使用API编程比使用控件更复杂,但同时也更灵活。通信控件已经封装好的功能是无法改变的,而使用API就能针对通信协议编写效率更高的代码。在飞剪控制系统的上位机程序中,使用通信API编写了串口读写的模块。接收时,程序要查找起始字符‘g’,以确定1帧数据的开始;再根据下一个状态字节判断通信的正确性;最后,把长度为23字节的数据帧接收好,并准备接收下一帧。发送过程不用判断数据内容,执行发送函数即可。需要注意的是:由于PLC通信口是半双工的,所以在PLC向上位机上传数据时,上位机要等1帧数据接收完毕,再执行发送操作,以避免收发冲突。图3上位机串口通信流程图5.结束语本系统取PC机和PLC各自的特点,实现了对飞剪系统的实时监控。通过利用PLC(下位机)的自由口通信协议和上位机的VC开发工具,可以方便地开发出PC机和PLC通信应用软件。这种方法节省投资,对小规模的系统极具现实意义。系统具有实时性好、速度快、可靠性高、操作方便等优点,达到了预期的效果。经现场调试及运行表明,该系统适合于飞剪系统的实时监控。S7-200系列通讯问题本文作者不详摘自机电之家1引言西门子工控产品在工控领域应用市场中有较高的占有率,S7-200系列PLC是西门子SIMATICPLC家族中的成员之一,在西门子工控领域应用中占有重要地位。S7-200系列PLC体积小,软硬件功能强大,系统配置方便,由它组成的系统可以与强大的Profibus现场总线相连接。它一推向市场就在各行各业得到了广泛应用。但是在实际工程应用中遇到了监控计算机与S7-200系列PLC通信问题。由于西门子公司S7-200系列PLC比监控组态软件WinCC推出晚,因此WinCC中没有集成S7-200系列PLC的通信驱动程序;S7-200系列PLC的通信协议也不公开,应用第三方软件编制监控程序也有问题。这些问题给S7-200系列PLC的应用带来了一定的限制,为了解决这个实际工程问题,作者做了一些研究,本文就S7-200系列PLC与监控计算机通信问题研究结果展开讨论。2S7-200系列PLC监控的主要方法在大多数控制系统中,仅仅是实现控制是不够的,在许多情况下也需要组态监控界面对系统进行监控。通过监控可以增加人机交互的能力,使操作人员实时地监控系统工作情况并使系统操作变得方便。对S7-200系列PLC组成的控制系统进行监控一般有三种方法:组态软件监控、第三方软件编制的监控软件监控、触摸屏监控。用组态软件WinCC实现监控,功能强大,灵活性好,可靠性高。但软件价格高,并需要解决WinCC与S7-200系列PLC的通信问题。在复杂控制系统中可以采用此方法。用第三方软件编制的监控软件实现监控,灵活性好,系统投资低,能适用于各种系统。但开发系统工作量大、可靠性难保证,对技术人员的经验和技术水平的要求高,还必须购买通信协议软件。在系统资金投资有限,技术人员水平较高的情况下可以采用此方法。触摸屏进行监控,可靠性高,监控实现容易,触摸屏与PLC之间的通信问题生产厂商已处理好,用户不用考虑通信问题,可以大大缩短工程周期。但灵活性一般,功能有限,不能满足复杂控制系统的监控要求,而且价格高。在系统可靠性要求高、工期短的情况下可以采用此方法。3WinCC组态软件与S7-200系列PLC的通信SIMATICWinCC采用了最新的32位技术的过程监控软件,具有良好的开放性和灵活性。无论是单用户系统,还是冗余多服务器/多用户系统,WinCC均是较好选择。通过ActiveX,OPC,SQL等标准接口,WinCC可以方便地与其它软件进行通信。WinCC与S7-200系列PLC的通信,可以采用PPI和Profibus两种通信协议之一进行。1、WinCC与S7-200系列PLC通过Profibus协议进行通信的实现(1)软硬件要求:*PC机,Windows98操作系统;*S7-200系列PLC;*CP5412板卡或者其他同类板卡,例如:CP5611,CP5613;*EM277ProfibusDP模块;*Profibus电缆及接头;*安装CP5412板卡的驱动;*安装WinCC4.0或以上版本;*安装COMProfibus软件。硬件连接如图1。通信实现硬件连接(2)组态打开SIMATICNET\COMProfibus,新加一个组态,主站为SOFTNET-DP,从站是EM277Profibus-DP。主站的地址选择从1到126。从站的地址选择从3到99,与EM277的地址一致。然后用该软件对从站进行配置:打开从站属性,在Configure选项中,选择8bytesin/8bytesout(可根据实际需要选定)。在Parameterize中可以选择偏移地址,地址对应于S7-200系列PLC的数据区(即V区),默认为0,即从VB0开始。组态完成后,导出(Export)NCM文件,生成*.txt和*.ldb文件。(3)设置PG/PCinterface。在AccessPointoftheApplication中选择CP_L2_1,在InterfaceParameterAssignment选择CP5412A2(Profibus)。在属性里的激活DP协议,并在DP-Database参数中输入*.ldb文件的完全路径。设置完成后可以诊断硬件配置是否正确、通信是否成功。(4)WinCC的设置。在WinCC变量管理器中添加一个新的驱动

1 / 36
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功