实用西门子PLC备课笔记 第八章.docx
《实用西门子PLC备课笔记 第八章.docx》由会员分享,可在线阅读,更多相关《实用西门子PLC备课笔记 第八章.docx(27页珍藏版)》请在冰豆网上搜索。
实用西门子PLC备课笔记第八章
第八章S7-200系列PLC通讯指令与应用
教学目的要求:
通过教学,使学生了解可编程控制器的组网与通讯,着重掌握S7-200系列PLCPPI及自由口两种通讯模式的配置及程序编制,并给出了简单的应用实例。
了解内容:
可编程控制器的组网与通讯
重点难点:
PPI及自由口两种通讯
教学方式:
PLC、理论讲解
展示设备:
西门子S7-200系列PLC
问题的提出:
网络技术近20年来获得了极大的发展,INTERNET正在飞速地改变着世界。
工业以太网、各种各样的现场总线已经进入了工业控制的各个领域,过程自动化、分布式I/O,正在为更多的工业控制工程师所接受,一个基于网络技术的全集成自动化工业控制新局面正在世界上形成。
西门子工业控制网络指德国西门子公司工业控制设备构成的通讯网络。
其典型的控制层面为工业以太网,PROFIBUS总线网络及AS接口网络。
其中工业以太网为协调级网络。
PROFIBUS总线网络及AS-I接口网络分别为单元级及现场级网络。
西门子工业以太网的核心设备可以是西门子公司生产的各种计算机及服务器,在和西门子工业控制设备连接时可以使用专用的通讯处理器,PROFIBUS总线及AS-I接口都可以进人西门子工业以太网,也可以单独或协同构成较小区域的工业控制网络。
S7系列可编程控制器具有很强的通讯能力,特别是S7—300及S?
—400机型,可以在PROFIBUS总线网络乃至工业以太网中承担网络主站任务,S7—200系列PLC虽相对弱些,也可以实现PLC与计算机、PLC与PLC、PLC与其他智能控制装置之间的联网通讯。
第一节S7-200系列PLC在西门子工业控制网络中的角色
一、S7-200系列PLC支持的通讯协议
S7—200系列PLC安装有串行通讯口
CPU221、CPU222、CPU224为1个RS-485口,定义为PORTO
CPU226及CPU226XM为2个RS-485口,定义为PORT0、PORTl
S7-200CPU支持点对点接口(PPI)、多点接口(MPI)、PROFIBUS
1、PPI协议
PPI内置于S7-200CPU中。
PPI协议物理上基于RS-485口,通过屏蔽双绞线就可以实现PPI通讯。
PPI协议是一种主—从协议。
主站设备发送要求到从站设备,从站设备响应,从站不能主动发出信息。
主站靠PPI协议管理的共享连接来与从站通讯。
PPI协议并不限制与任意一个从站通讯的主站的数量,主站不能超过32个
PPI协议最基本的用途:
1)为使用PC机运行STEP7—Micro/WIN软件编程时上载及下载应用程序,此时使用西门子公司的PC/PPI电缆连接PC机的RS-232口及PLC机的RS-485口,并选择一定的波特率即可。
DIP开关位置及使用意义,它们是为选择通讯波特率及选择通讯字节位而设置的。
2)PPI可以实现组态王、力控等组态软件的连接实现监控
PC机作为主站,一台或多台S7—200机作为从站的PPI模式通讯情况,PC/PPI电缆仍旧是RS-232/RS-485口的主要匹配设备。
2.MPI协议
MPI允许主—主通讯和主—从通讯。
S7—200系列PLC在MPI协议网络中仅能作为从站。
PC机运行STEP7-Micro/WIN与S7-200机通讯时必须通过CP卡。
且设备之间通讯连接的个数受S7-200CPU及PROFIBUS-DP模块EM277所支持的连接个数的限制
3.PROFIBUS协议
应用:
PROFIBUS协议通常用于实现与分布式I/O的高速通讯。
可以使用不同厂家的PROFIBUS设备:
普通的输入/输出模块、电机控制器及PLC。
PROFIBUS网络通常可以有一个主站及若干个I/O从站。
S7—200系列PLC可作为从站通过EM277接人PROFIBUS网络
4.自由口模式
自由口模式允许应用程序控制S7-200的CPU通讯端口,因而S7-200系列PLC可以在自由口模式下与任何已知协议的智能设备通讯。
使用PC/PPI电缆还可以将S7-200连接到带有RS-232兼容标准接口的多种设备。
此外,S7-200系列PLC可以通过通讯处理器,如CP243—1进人工业以太网,通过MODEM,接上电话线。
S7-200系列PLC还可以作为主站采用USS协议与变频器建立通讯,在工业控制网络中应用灵活方便。
二、S7-200系列PLC组网的硬件支持及性能参数
1.RS-485接口及电缆
S7-200网络使用RS-485标准,使用双绞线电缆。
表12-2列出了电缆的技术指标。
在一个网段上最多可以连接32个设备,通讯距离可达1200m(增加设备及增大传送距离可在网络中加接中继器,传送距离与波特率有关)。
S7200系列PLC安装的为标准的9针D型连接器。
表12-3中给出了其物理连接和通讯接口的端子分配。
为了能方便设备的连接,西门子公司提供了专用网络连接器,用于连接RS-485接口设备。
图12-6所示为电缆接入网络连接器的情况。
由图中可见每个连接器中配有两组螺丝钉连接端子,用来分别连接接人电缆及接出电缆,网络连接器配有网络偏置及终端匹配选择开关。
图中还给出了网络连接器偏压电阻和终端电阻的典型值。
2.CP卡及EM277
第二节配置PPI通讯
S7-200系列PLC可以多种方式接人多种网络,但最基本的通讯方式是PPI方式。
PPI协议已内置于S7—200系列CPU中,为缺省配置方式。
为了进行PPI通讯,S7-200系列CPU专门配备了网络读指令(NETR)及网络写指令(ENTW)。
一、网络读及网络写指令
网络读指令(NETR)初始化通讯操作,通过指令端口(PORT)从远程设备上接收数据并形成表(TBL)。
网络写指令(ENTW)初始化通讯操作,通过指令端口(PORT)向远程设备写表(TBL)中的数据。
NETR指令可以从远程站点上读最多16个字节的信息
NETW指令则可以向远程站点写最多16个字节的信息
任何同一时间,只能有最多为8条ENTR和ENTW指令有效。
例如,在所给的S7-200PLC中,可以有4条NETR指令和4条NETW指令,或两条NETR指令和6条NETW指令。
使ENO:
0的错误条件是:
SM4.3(运行时间),0006(间接寻址)。
和PPI及自由口通讯均有密切联系的特殊标志位
SMB30(PORT0)及SMB130(PORT1)中规定了PPI通讯的设定方式,如表12—8所示。
二、配置PPI通讯
PPI通讯应用十分简单,以下给出了配置步骤及一个网络读写实例。
1.网络的连接
使用双绞线及网络连接器将网络内设备的RS-485口连接起来,连接一般为总线方式。
2.站地址及存储区的安排
网络读及网络写指令操作数的要求,依主站及从站的不同需要在各站中指定足够数量的存储单元,并明确它们的用途,如为发送数据区、接收数据区或其他数据区。
为网络内所有通讯设备指定惟一的站地址。
S7—200支持的网络地址从0到126。
对
于有两个通讯口的S7—200,每一个通讯口都要安排一个站地址。
表12—9列出了S7—200设备的缺省地址设置。
当STEP7-Micro/WIN在网络中应用时,其波特率必须和网络上的其他站相同,站地应当是唯一的,通常不需改变,仅当包换其他编程设备时,才需要考虑改变STEP7-Micro/WIN的缺省值。
STEP7-Micro/WIN设置站地址及波特率的操作如下。
①在STEP7—Micro/WIN编程软件操作栏中点击通讯图标。
②双击通讯设置图标。
③在SetPG/Pcinterface对话框中点击属性按钮。
④为STEP7-Micro/WIN选择站地址。
⑤为STEP7-Micro/WIN选择波特率。
为S7-200设置波特率与站地址的方法与以上类似,
可以在操作栏中点击系统块图标或者在命令菜单中选择View>ComponentSystemBlock,然后进行选择。
值得注意的是,设置的地址及波特率需和应用程序一起下载到CPU中生效,设置时还应同时安排该站为主站或从站。
3.程序的编制
PPI为S7—200系列PLC内置通讯协议,在硬件连接及站址安排完成后,只需在程序中引用NETR、NETW指令即可,原则上不需考虑通讯的联络过程。
指令带有的TBL表中第一个字节给出的各种状态标志可以在程序中应用。
在STOP状态下,机器进入PPI通讯方式。
在RUN状态,机器的默认值也为PPI方式。
为了可靠,通常在通讯初始化程序段中安排写SMB30语句,使能PPI模式。
三、以下是一个使用NETR\NETW指令通讯的实例。
某生产线配有4台打包机及1台分流机。
打包机用于将每8只黄油桶封装入一个纸箱,分流机用于给各个打包机分配黄油桶。
每台打包机配有一台CPU221;分流机配有带有TD200数据单元的CPU222,这些S7-200设备连接成网络并运行PPI协议。
图12-9给出了1号打包机打包完成数据统计管理相关的一段程序。
程序要求由分流机(主站)统计每台打包机包装完成的箱数及各打包机的工作状态字节,并当打包机每完成100箱时,将完成箱数清零。
图12-10分流机相关数据缓冲区。
第三节配置自由口通讯
采用自由口通讯方式时,RS-485口完全由用户程序控制,S7—200PLC可与任何通讯协议已知的设备通讯。
为了方便自由口通讯,S7—200配有发送及接收指令,通讯及接收中断,以及用于通讯设置的特殊标志位。
一、发送及接收指令
发送指令(XMT)激活发送数据缓冲区(TBL)中的数据。
数据格式如图12-11所示。
数据缓冲区的第一个数据指明了要发送的字节数,最大数为255个。
PORT指定了用于发送的端口。
如果有一个中断服务程序连接到发送结束事件上,在发送完缓冲区中的最后一个字符时,则会产生一个中断(对端口0位中断事件9,端口1为中断事件26),通过监视SM4.5或SM4.6信号,也可以判断发送是否完成。
当端口0及端口1发送空闲时,SM4.5或SM4.6置1。
接收指令(RCV)启动或结束接收信息的功能。
通过指定端口(PORT)接收的信息存储于数据缓冲区(TBL)。
接收数据缓冲区的格式如图12-12所示。
缓冲区中第一个数据指明了接收的字节数,缓冲区最多可有255个字节。
如果有一个中断服务程序连接到接收信息完成事件上,在接收完缓冲区中的最后一个字符时,S7—200会产生一个中断(对端口0为中断事件23,端口1为中断事件24)。
也可以不使用中断,通过监视SMB86(端口0)或者SMBl86(端口1)来接收信息,当接收指令未被激活或者已经被终止时,这一字节不为0;当接收正在进行时,这一字节为0。
使ENO=0的错误条件是:
0006(间接寻址);0009(在端口0同时XMT/RCV);0009(在端口1同时XMT/RCV):
RCV参数错误,置位SM86,6和SMl86.6;S7-200CPU没有处于自由口模式。
只有在CPU处于RUN状态下才能实现自由口通信,置SMB30(对PROT0)或SMBl30(对PORT1)的通信协议选择位为01,就完成了自由口模式的使能(见表12-8)。
在自由口模式下CPU不可与编程设备通信。
可以通过特殊标志位SM0.7控制进入自由口模式。
SM0.7的状态对应模式开关的位置,模式开关在TERM位置时,SM0.7=0;模式开关在RUN位置时,SM0.7=1。
若仅在模式开关处于RUN位置(SM0.7=1)时使能自由口模式,则只要开关在其他位置,编程设备就可与CPU通信。
自由口的初始化:
通过SMB30和SMBl30可分别对PORTO和PORT1的自由口通信组态,即对自由口通信选择波特率、奇偶校验和数据位,详见表12-8。
二、正常通讯秩序的建立
1.接收指令的启动和结束条件
采用自由口通讯时,通讯秩序完全靠用户程序保障。
比如,当接收指令执行时,在接收口上有来自其他器件的信号,接收信息功能有可能从一个字符的中间开始接收字符,从而导致校验错误和接收信息功能的终止。
这就是接收的同步问题。
为了实现接收的同步,可充分利用S7—200CPU提供的各种编程条件。
特殊标志位SMB86~SMB94,SMBl86~SMBl94分别为端口0和端口1的接收信息状态字及控制字,它们的意义及功用如表12-11所示。
结合上表信息,为使接收与信息的起始同步,可在编程时采用以下几种接收起始条件。
(1)空闲线检测空闲线条件是指在传输线上一段安静或者空闲的时间。
在SMW90或者SMW190中指定其毫秒数。
当接收指令在程序中执行时,接收信息功能对空闲线条件进行检测。
如果在空闲线时间到之前接收到任何字符,接收信息功能会忽略这些字符并且按照SMW90或者SMWl90中给定的时间值重新启动空闲线定时器,如图12—13所示。
在空闲线
时间到时后,接收信息功能将所有接收到的字符存人信息缓冲区。
空闲线时间应该总是大于在指定波特率下传输一个字符(包括起始位、数据位、校验位和停止位)的时间。
空闲线时间的典型值为在指定波特率下传输三个字符的时间。
对于二进制协议、没有特定起始字符的协议或者指定了信息之间最小时间间隔的协议,可以使用空闲线检测作为起始条件。
设置:
i1=1,sc=0,bk=0,SMW90/SMWl90=空闲线超时时间,单位为ms。
(2)起始字符检测
起始字符可以是用于作为一条信息首字符的任意一个字。
当接收到SMB88或者SMBl88中指定的起始字符后,一条信息开始。
接收信息功能将起始字符作为信息的第一个字符存人接收缓冲区。
接收信息功能忽略所有在起始字符之前接收到的字符。
起始字符和起始字符之后接收到的所有字符一起存人信息缓冲区。
设置:
i1=0,sc=1,bk=0,SMW90/SMWl90被忽略,SMB88/SMB188=起始字符。
(3)空闲线和起始字符接收指令可以用空闲线和起始字符的组合来启动一条信息。
当接收指令执行时接收信息功能检测空闲线条件,在空闲线条件满足后,接收信息功能搜寻指定的起始字符。
如果接收到的字符不是起始字符,接收信息功能重新检测空闲线条件。
所有空闲线条件满足和接收到起始字符之前接收到的字符被忽略掉。
起始字符和字符串一起存人信息缓冲区。
设置;i1=1,sc=1,bk=0,SMW90/SMWl90>0,SMB88/SMBl88=起始字符。
(4)断点检测断点是指在大于一个完整字符传输时间的一段时间内,接收数据一直为0。
一个完整字符传输时间定义为传输起始位、数据位、校验位和停止位的时间总和。
如果接收指令被配置为用接收一个断点作为信息的起始,则任何在断点之后接收到的字符都会存人信息缓冲区。
任何在断点之前接收到的字符被忽略,通常,只有当通讯协议需要时,才使用断点检测作为起始条件。
设置:
i1=0,sc=0,bk=1,SMW90/SMWl90被忽略,SMB88/SMB188被忽略。
(5)断点和起始字符接收指令可以被配置为接收到断点条件和一个指定的起始字符之后启动接收。
在断点条件满足之后,接收信息功能寻找特定的起始字符。
如果收到了除起始字符以外的任意字符,接收信息功能重新启动寻找新的断点,所有在断点条件和接收到起始字符之前接收到的字符都会被忽略。
起始字符和字符串一起存人信息缓冲区。
设置:
i1=0,sc=1,bk=1,SMW90/SMWl90被忽略,SMB88/SMBl88=起始字符。
(6)任意字符
接受指令可以被配置为立即接受任意字符,并把全部接收到的字符存入信息缓冲区。
这是空闲线检测的一种特殊情况。
在这种情况下,空闲线时间(SMW90或者SMWl90)被置为0,这使得接收指令一经执行,就立即开始接收字符。
设置:
i1=1,sc=0,bk=0,SMW90/SMWl90=0,SMB88/SMBl88被忽略。
用任意字符开始一条信息允许使用信息定时器来监控信息接收是否超时。
这对于自由口协议的主站是非常有用的,而且当在指定时间内,没有来自从站的任何响应的情况,也需要采取超时处理。
由于空闲线时间被设置为0,当接收指令执行时,信息定时器启动。
如果没有其他终止条件满足,信息定时器超时会结束接收信息功能。
设置:
i1=1,sc=0,bk=0,SMWg0/SMWl90=0,SMB88/SMBl88被忽略;
c/m=1,tmr=1,SMW92/SMWl92=信息超时时间,单位为ms。
RCV接收指令支持几种结束信息的方式。
结束信息的方式可以是以下一种或几种的组合。
(1)结束字符检测结束字符是用于表示信息结束的任意字符。
在找到起始条件之后,接收指令检查每一个接收到的字符,并且判断它是否与结束字符匹配。
如果收到了结束字符,将其存人信息缓冲区,接收结束。
设置:
ec=1,SMB89/SMBl89=结束字符。
(2)字符间隔定时器字符间隔时间是指从一个字符的结尾(停止位)到下一个字符的结尾(停止位)之间的时间。
如果两个字符之间的时间间隔(包括第二个字符)超过了SMW92或者SMWl92中指定的毫秒数,接收信息功能结束。
接收到字符后,字符间隔定时器重新启动,见图12-14。
当协议没有特定的信息结束字符时,可以用字符间隔定时器来结束一条信息。
由于定时器总是包含接收一个完整字符(包括起始位、数据位、校验位和停止位)的时间,因而该时间值应设置为大于在指定波特率下传输一个字符的时间。
也可以使用字符间隔定时器与结束字符检测或者最大字符计数相结合,来结束一条信息。
设置:
c/m=0,tmr=1,SMW92/SMWl92=信息超时时间,单位为ms。
(3)信息定时器从信息的开始算起,在经过一段指定的时间之后,信息定时器结束一条信息。
接收信息功能的启动条件一满足,信息定时器就启动。
当经过的时间超出SMW92或者SMW192中指定的毫秒数时,信息定时器时间到,见图12-15。
通常,当通讯设备不能保障字符中间没有时间间隔或者使用MODEM通讯时,可以使用信息定时器。
对于MO-DEM方式,可以用信息定时器指定一个从信息开始算起,接收信息允许的最大时间。
信息定时器的典型值是在当前波特率下,接收到最长信息所需时间值的大约1.5倍。
可以使用信息定时器与结束字符检测或者最大字符计数相结合,来结束一条信息。
设置:
c/m=1,tmr=1,SMW92/SMWl92=信息超时时间,单位为ms。
(4)最大字符计数在SMB94或者SMBl94中存入接收字符的最大个数,当达到或者超出这个值时,接收信息功能结束。
即使不会被用作结束条件,接收指令也要求用户指定一个最大字符个数。
这是因为只有知道了接收到数据的最大长度,才能确保信息缓冲区之后的用户数据不会被覆盖。
对于信息长度已知并且恒定的协议,可以使用最大字符计数来结束信息。
最大字符计数总是与结束字符检测、字符间隔定时器或者信息定时器结合在一起使用。
(5)校验错误当接收字符的同时出现硬件信号校验错误时,接收指令会自动结束。
只有在SMB30或者SMBl30中使能了校验位,才有可能出现校验错误。
(6)用户结束用户可以通过程序来结束接收信息功能,先使SMB87或SMBl87中的使能位为0,再次执行接收指令即可。
这样可以立即结束接收信息功能。
2.使用字符中断控制接收数据
为了完全适应对各种协议的支持,可以使用字符中断控制的方式接收数据。
接收每个字符时都会产生中断。
在执行与接收字符事件相连接的中断服务程序之前,接收到的字符存人SMB2中,校验状态(如果使能的话)存人SM3.0。
SMB2是自由口接收字符缓冲区,在自由口模式下,每一个接收到的字符都会存放到这一位置,便于用户程序访问。
SMB3用于自由口模式,它包含一个校验错误标志位。
当接收字符的同时检测到校验错误时,该位被置位,该字节的其他位被保留。
利用该位丢弃信息或者向该信息发否定应答。
在较高的波特率下(38.4~115.2K)使用字符中断时,中断之间的时间间隔会非常短。
例如,在38.4K时为260ms;在57.6K时为173ms;在115.2K时为86ms。
确保中断服务程序足够短才不会丢失字符,也可使用接收指令。
SMB2和SMB3是端口0和端口1共用的。
当字符的接收来自端口0时,执行与事件(中断事件8)相连的中断服务程序,SMB2中存储从端口0接收到的字符,SMB3中存储该字符的校验状态。
当字符的接收来自端口1时,执行与事件(中断事件25)相连的中断服务程序,SMB2中存储从端口1接收到的字符,SMB3中存储该字符的校验状态。
3.发送与接收数据的校验
通过特殊标志位SMB30及SMBl30的设置可知,设置SMB30.6及SMB30.7(SMBl30.6及SMBl30.7)可使自由口通讯具有奇偶校验,这是针对字节的校验。
在多字节信息传送时,可以采用传送信息结构检查字符(FCS)。
FCS字符可以由所传送的字节进行异或运算形成,在发送时和要发送的数据一起发送。
接收方收到信息后,同样对所接收到的有效数据进行异或处理,并把处理的结果与接收到的FCS字符比较。
如果二者不相等,就认为传输方出错。
对于检测到的出错数据采取放弃及重发策略。
4.发送与接收的联络及握手
自由口仅使用两根线进行数据的传送,不能用硬件握手信号作为检测手段。
为了防止误码及过冲的发生,必须采用软件握手以保证通讯的可靠性。
S7-200系列PLC所承担的多为主从式通讯,现给出主站及从站通讯程序参考流程如图12-16及图12-17所示。
通讯中涉及的握手及回握信号是通讯双方商定的。
图12—18为下位机通讯流程对应的部分梯形图及指令表。
表12-12为图12-18程序中软元件中数据的含义。
本程序每次通过SMB2传送一个字节的数据。
三、自由口通讯配置的过程
1.网络的连接
使用双绞线及网络连接器将网络内设备的RS-485H连接起来,连接一般为总线方式。
2.站地址及存储区的安排
为网络内所有通讯设备指定惟一的站地址。
和PPI通讯方式不同,自由口通讯中站地址不可以通过软件设定,而只是在通讯协议中约定。
约定后的地址在以后的通讯过程中一般不再改变。
发送信息时为了明确该信息是发给哪个站的,通常需约定发送的地址格式。
接收方收到信息后先需判断这信息是否是发给自己的。
如是则继续接收,不是则放弃。
为了条理地管理网络上传送的信息,网络中各站要安排好各类数据的收发存储单元。
3.约定通讯的操作流程
约定通讯的操作流程从根本上说是通讯协议的重要内容。
一般包括通讯地址的认定,握手信号的安排,握手的过程设计,信息的传送方式,信息的起始及结束判定,信息的出错校验等内容。
可先绘出流程图,以明确及完善操作流程。
4.通讯程序的编制
通讯程序一般总是先进行初始化。
初始化程序中设置通讯模式及参数,并准备存储单元及初始数据。
初始化以后的编程主要是通过程序实现通讯流程图的过程。
S7-200系列PLC通讯中断功能在通讯程序的编制中很有用处,SMB2及SMB3在单字节通讯中也常使用,通讯程序常采用结构化程序,这对简化程序段功能,方便程序的分析是有利的。
图12-19给出了一段发送及接收程序,请读者自行分析。