西门子s7-200自由口通信总结(精选3篇)
西门子S7-200CPU的通信口可以设置为自由口模式。选择自由口模式后,用户程序就可以完全控制通信端口的操作,通信协议也完全受用户程序控制。
S7-200CPU上的通信口在电气上是标准的RS-485半双工串行通信口。此串行字符通信的格式可以包括:
一个起始位
7或8位字符(数据字节)
一个奇/偶校验位,或者没有校验位
一个停止位
自由口通信速波特率可以设置为1200、2400、4800、9600、19200、38400、57600或112500。
凡是符合这些格式的串行通信设备,理论上都可以和S7-200CPU通信。
自由口模式可以灵活应用。Micro/WIN的两个指令库(USS和ModbusRTU)就是使用自由口模式编程实现的。
在进行自由口通信程序调试时,可以使用PC/PPI电缆(设置到自由口通信模式)连接PC和CPU,在PC上运行串口调试软件(或者Windows的HyperTerminal-超级终端)调试自由口程序。
USB/PPI电缆和CP卡不支持自由口调试。
自由口通信要点
应用自由口通信首先要把通信口定义为自由口模式,同时设置相应的通信波特率和上述通信格式。用户程序通过特殊存储器SMB30(对端口0)、SMB130(对端口1)控制通信口的工作模式。详见下图
CPU通信口工作在自由口模式时,通信口就不支持其他通信协议(比如PPI),此通信口不能再与编程软件Micro/WIN通信。CPU停止时,自由口不能工作,Micro/WIN就可以与CPU通信。
通信口的工作模式,是可以在运行过程中由用户程序重复定义的。
如果调试时需要在自由口模式与PPI模式之间切换,可以使用SM0.7的状态决定通信口的模式;而SM0.7的状态反映的是CPU运行状态开关的位置(在RUN时SM0.7=“1”,在STOP时SM0.7=“0”)
自由口通信的核心指令是发送(XMT)和接收(RCV)指令。在自由口通信常用的中断有“接收指令结束中断”、“发送指令结束中断”,以及通信端口缓冲区接收中断。
与网络读写指令(NetR/NetW)类似,用户程序不能直接控制通信芯片而必须通过操作系统。用户程序使用通信数据缓冲区和特殊存储器与操作系统交换相关的信息。
XMT和RCV指令的数据缓冲区类似,起始字节为需要发送的或接收的字符个数,随后是数据字节本身。如果接收的消息中包括了起始或结束字符,则它们也算数据字节。
调用XMT和RCV指令时只需要指定通信口和数据缓冲区的起始字节地址。
XMT和RCV指令与NetW/NetR指令不同的是,它们与网络上通信对象的“地址”无关,而仅对本地的通信端口操作。如果网络上有多个设备,消息中必然包含地址信息;这些包含地址信息的消息才是XMT和RCV指令的处理对象。
由于S7-200的通信端口是半双工RS-485芯片,XMT指令和RCV指令不能同时有效。
XMT和RCV指令
XMT(发送)指令的使用比较简单。RCV(接收)指令所需要的控制稍多一些。
RCV指令的基本工作过程为:
在逻辑条件满足时,启动(一次)RCV指令,进入接收等待状态
监视通信端口,等待设置的消息起始条件满足,然后进入消息接收状态
如果满足了设置的消息结束条件,则结束消息,然后退出接收状态
所以,RCV指令启动后并不一定就接收消息,如果没有让它开始消息接收的条件,就一直处于等待接收的状态;如果消息始终没有开始或者结束,通信口就一直处于接收状态。这时如果尝试执行XMT指令,就不会发送任何消息。
所以确保不同时执行XMT和RCV非常重要,可以使用发送完成中断和接收完成中断功能,在中断程序中启动另一个指令。
在《S7-200系统手册》和Micro/WIN在线帮助中关于XMT和RCV指令的使用有一个例子。这个例子非常经典,强烈建议学习自由口通信时先做通这个例子。例程,见下图
字符接收中断
S7-200CPU提供了通信口字符接收中断功能,通信口接收到字符时会产生一个中断,接收到的字符暂存在特殊存储器SMB2中。通信口Port0和Port1共用SMB2,但两个口的字符接收中断号不同。
每接收到一个字符,就会产生一次中断。对于连续发送消息,需要在中断服务程序中将单个的字符排列到用户规定的消息保存区域中。实现这个功能可能使用间接寻址比较好。
对于高通信速率来说,字符中断接受方式需要中断程序的执行速度足够快。
移液器是实验室研究和工业生产中的一种较精确的分液设备,通过更换不同规格的取样嘴并对移液器实施通信控制,可完成液体的定量吸排。本文专门研究了西门子S7-200系列PLC和百得rLINE1000移液器进行自由口串行通信的方法,实现了PLC对移液器的通信控制,包括定量吸排和取样嘴弹出控制。
2 移液器的串行通信口
芬兰百得公司的r LINE1000线控移液器是一个由微处理器控制的系统,它具有优异的结构和极高的液体处理性能,移液准确,精密性高,并且可以通过计算机串口进行通信。百得rLINE1000移液器采用双排14引脚电缆连接器作为电源和通讯接口,其连接器信号如图1所示。
百得r LINE1000移液器的每个模块都配备了带有RS232驱动程序的通用串行接口。RS232接口由接收数据(接收数据RXD,引脚5),传输数据(发送数据TXD,引脚6)和接地信号(接地GND,引脚8)组成。其通信波特率可以在9600bps与115.2 kbps之间改变,但8位数据位、1位停止位和无奇偶校验是固定的。每个模块都必须使用相同的波特率。计算机等控制器可通过其RS232通讯接口向移液器发送ASCII码命令并接收移液器返回的ASCII码信息。通过PLC可编程控制器给移液器发控制命令实现定量吸液、定量排液和取样嘴弹出操作,其控制命令如表1所示。
上表中“I”字符代表吸取,“O”字符代表排除,其紧跟的后面三个字符代表体积量。
3 S7-200系列PLC的通信
S7-200系列PLC支持多种通信模式。点对点接口(PPI)、多点接口(MPI)、PROFIBUS、自由口串行通信等,它们都是基于字符的串行异步通信协议,带有起始位、8位数据、奇偶校验位(可选)和一个停止位。在自由口串行通信模式中,用户自定义与其他串行通信设备的通信协议,通过使用接收中断、字符中断、发送指令(XMT)和接收指令(RCV),实现S7-200PLC的CPU通信口与其它设备的通信。
通过将S7-200 PLC的特殊功能寄存器SMB30和SMB130的协议选择域置1,将通信端口设置为自由口通信模式。SMB30用于设置端口0的通信波特率和奇偶校验的参数,SMB130用于设置端口1的通信波特率和奇偶校验的参数(见表2)。
通过向SMB30或SMB130(SMB30用于设置端口0,而SMB130用于设置端口1)的协议选择位置1,可以将通信端口置为自由口通信模式。SMB30或SMB130还用于设置通信波特率、奇偶校验位、数据位。只有PLC处于R U N模式时,才能使用自由口通信模式,当C P U处于STOP模式时,自由口模式被禁止,自动进入PPI模式,可以与编程设备通信。为保证CPU处于RUN模式时进入自由口通信,可以采用S7-200 PLC的特殊寄存器位SM0.7来控制自由口通信方式的进入,当SM0.7为1时,CPU处于RUN模式,进入自由口通信模式。
在自由口通信模式下发送指令XMT将数据缓冲区(TBL)的数据通过指定的通信端口(PORT)发送,TBL指定发送区的格式如图所示,起始字符和结束字符是可选项,第一个字节“字符数”是要发送的字节,它本身并不发送出去。发送指令XMT可以方便的发送1~256个字符,如果有中断程序连接在发送结束事件上,则在发送完数据缓冲区的最后一个字节后,端口0会产生中断事件9,端口1会产生中断事件26。可以监视发送状态完成状态位SM4.5和SM4.6的变化。
接收指令RCV可以方便的接收一个或多个字符,最多接收255个字符,如果有中断程序连接到接收结束事件上,在接受最后一个字符时,端口0产生中断事件2 3,端口1产生中断事件2 4。可以监视S M B 8 6或S M B 1 8 6的变化,而不是通过中断进行报文接收。SMB86或SMB186位非零时,RCV指令未被激活或接收已经结束。在自由口通信模式下接受指令RCV通过指定的端口(PORT),将接收的数据信息存储在数据缓冲区(TBL)中。
4 移液器和S7-200 PLC的串行通信
如何实现S7-200PLC对百得rLINE1000移液器的控制并进行数据的采集和处理是研究的重点和难点。百得rLINE1000移液器通讯接口为RS232方式,不宜远距离传输,而通过有源模块RS232/RS485转换后,将RS232信号转换为RS485信号,即完成与S7-200 PLC的RS485信号进行通信,可实现远距离信号传输。
在S7-200 PLC的自由口通信模式中,用户可以定义通信口的波特率、每个字符的位数、奇偶校验等参数发送数据。根据实际情况的需要,将S7-200PLC和百得rLINE1000移液器之间的通信协议数据设置为波特率9600,数据位8位,1位停止位,无校验位。并通过自由口通信发送命令实现定量吸液、定量排液和取样嘴弹出操作等。
将百得rLINE1000移液器和S7-200 PLC之间通过一个R S 2 3 2转R S 4 8 5模块,实现了两者之间的硬件连接。
5 S7-200 PLC的发送和接收程序
S7-200 PLC的发送程序分为设置其自由口通信参数的程序,并发送移液器能够接收的定量吸液、定量排液和取样嘴弹出操作的命令,该程序通过S7-200 PLC的特殊功能寄存器SM0.1上电初始化完成。
系统上电后,S7-200 PLC写入其自由口通信的各个参数,设置为串口1通信,波特率为9 6 0 0,数据位8位,无校验位,1位停止位,使其与百得rLINE1000移液器的通信方式一致。并且发送接收信息的控制字节,程序如下:
6 结束语
在实际调试过程中,首先利用了串口调试助手将计算机与百得r LINE 1000移液器连接调试,然后将S7-200PLC与移液器连接,进行串行通信控制,实现了液体的定量吸排和取样嘴弹出操作。
摘要:本文研究了西门子S7-200系列PLC和百得rLINE1000移液器进行自由口串行通信的方法,通过RS485/232有源通信转换模块将S7-200 PLC与移液器连接,通过对移液器的通信控制,实现了液体的精确定量吸排和取样嘴自动弹出操作。
关键词:移液器,PLC,串行通信,定量控制
参考文献
[1]张万忠,刘明芹.电器与PLC控制技术[M].北京:化学工业出版社,2003.
[2]沈世斌等.基于PLC自由口通信的应用[J].仪表技术与传感器,2004,(12):26-28.
关键词:S7-200PLC,MM440,USS
0 引言
S7-200PLC上的通信口在自由口模式下,可以支持USS通信协议。这是因为S7-200PLC的自由口模式的(硬件)字符传输格式,可以定义为USS通信对象所需要的模式,因而可以实现S7-200和驱动装置之间的USS通信控制,其中S7-200 CPU将在USS通信中作为主站。
1 USS通信协议简介
USS(Universal Serial Interface,即通用串行通信接口)是西门子专为驱动装置开发的通信协议,多年来也经历了一个不断发展、完善的过程。最初USS用于对驱动装置进行参数化操作,即更多地面向参数设置。近来USS因其协议简单、硬件要求较低,也越来越多地用于和控制器(如PLC)的通信,实现一般水平的通信控制。
USS协议的基本特点如下:
(1)支持多点通信(因而可以应用在RS 485等网络上);
(2)采用单主站的“主-从”访问机制;
(3)一个网络上最多可以有32个节点(最多31个从站);
(4)简单可靠的报文格式,使数据传输灵活高效;
(5)容易实现,成本较低。
USS的工作机制是,通信总是由主站发起,USS主站不断循环轮询各个从站;从站根据收到的指令,决定是否以及如何响应。从站永远不会主动发送数据。从站在以下条件满足时应答:
(1)接收到的主站报文没有错误;
(2)本从站在接收到主站报文中被寻址。
上述条件不满足,或者主站发出的是广播报文,从站不会作任何响应。
对于主站来说,从站必须在接收到主站报文之后的一定时间内发回响应,否则主站将视为出错。
1.1 USS字符帧格式
USS的字符传输格式符合UART规范,即使用串行异步传输方式。USS在串行数据总线上的字符传输帧为11位长度,包括:
连续的字符帧组成USS报文。在一条报文中,字符帧之间的间隔延时要小于两个字符帧的传输时间(当然这个时间取决于传输速率)。
把S7-200的自由口定义为以上字符传输模式,就能通过编程,实现USS协议报文的发送和接收。主站控制器所支持的通信模式必须和要控制的驱动装置所要求的一致,这是实现S7-200和西门子驱动装置通信的基础。
1.2 USS报文帧格式
USS协议的报文简洁可靠,高效灵活。报文由一连串的字符组成,协议中定义了它们的特定功能:
以上每小格代表一个字符(字节),其中:
(1)STX:起始字符,总是02 h;
(2)LGE:报文长度;
(3)ADR:从站地址及报文类型;
(4)BCC:BCC校验符。
在ADR和BCC之间的数据字节,称为USS的净数据。主站和从站交换的数据都包括在每条报文的净数据区域内。
净数据区由PKW区和PZD区组成:
以上每小格代表一个字(两个字节),其中:
(1)PKW:此区域用于读写参数值、参数定义或参数描述文本,并可修改和报告参数的改变;
(2)PKE:参数ID,包括代表主站指令和从站响应的信息,以及参数号等;
(3)IND:参数索引,主要用于与PKE配合定位参数;
(4)PWEm:参数值数据;
(5)PZD:此区域用于在主站和从站之间传递控制和过程数据,控制参数按设定好的固定格式在主、从站之间对应往返;
(6)PZD1:主站发给从站的控制字/从站返回主站的状态字;
(7)PZD2:主站发给从站的给定/从站返回主站的实际反馈;
(8)PZDn:……
根据传输的数据类型和驱动装置的不同,PKW和PZD区的数据长度都不是固定的,它们可以灵活改变以适应具体的需要。但是,在用于与控制器通信的自动控制任务时,网络上的所有节点都要按相同的设定工作,并且在整个工作过程中不能随意改变。
2 USS驱动装置控制功能块软件设计
本文中将以MM440变频器与S7-200之间的USS通信为例,编写并调用USS_CTRL功能块用于对单个驱动装置进行运行控制。
主要参数如下:
(1)EN:使用SM0.0使能USS_CTRL指令;
(2)RUN:驱动装置的启动/停止控制;
(3)OFF2:停车信号2。此信号为“1"时,驱动装置将封锁主回路输出,电机自由停车;
(4)OFF3:停车信号3。此信号为”1"时,驱动装置将快速停车;
(5)F_ACK:故障确认。当驱动装置发生故障后,将通过状态字向USS主站报告;如果造成故障的原因排除,可以使用此输入端清除驱动装置的报警状态,即复位。注意这是针对驱动装置的操作;
(6)DIR:电机运转方向控制,其“0/1”状态决定运行方向;
(7)Drive:驱动装置在USS网络上的站号。从站必须先在初始化时激活才能进行控制;
(8)Type:向USS_CTRL功能块指示驱动装置类型;
(9)Speed_SP:速度设定值。速度设定值必须是一个实数,给出的数值是变频器的频率范围百分比还是绝对的频率值取决于变频器中的参数设置(如MM 440的P2009);
(10)Resp_R:从站应答确认信号。主站从USS从站收到有效的数据后,此位将为“1”一个程序扫描周期,表明以下的所有数据都是最新的;
⑾Error:错误代码。0=无出错;
⑿Status:驱动装置的状态字。此状态字直接来自驱动装置的状态字,表示了当时的实际运行状态;
⒀Speed:驱动装置返回的实际运转速度值,实数。是否频率值跟随设定值的规格化设定;
⒁Run_EN:运行模式反馈,表示驱动装置是运行(为1)还是停止(为0);
⒂D_Dir:指示驱动装置的运转方向,反馈信号;
⒃Inhibit:驱动装置禁止状态指示(0—未禁止,1—禁止状态)。禁止状态下驱动装置无法运行,要清除禁止状态,故障位必须复位,并且RUN,OFF2和OFF3都为0;
⒄Fault:故障指示位(0—无故障,1—有故障)。表示驱动装置处于故障状态,驱动装置上会显示故障代码(如果有显示装置)。要复位故障报警状态,必须先消除引起故障的原因,然后用F_ACK或者驱动装置的端子或操作面板复位故障状态。
3 结束语
本文中USS_CTRL功能块创新地利用了USS协议中的PZD数据传输,所以控制和反馈信号更新较快,非常适合一些低成本的、比较简易的变频器USS通信控制场合。在那些对通信要求高的场合,应当选择实时性更好的通信方式,如PROFIBUS-DP等。在进行系统设计时,必须考虑到USS的这一局限性。
参考文献
[1]西门子S7-200相关手册.
[2]蒋蔚.基于USS协议的多台变频器的远程监控[J].仪器仪表学报,2002,23.
【西门子s7-200自由口通信总结】推荐阅读:
西门子plc学习总结01-26
西门小学科普工作总结10-27
《西门豹》课文的解读10-23
西门豹的语文教学设计06-05
西门外公园四年级作文450字10-26
西门豹治邺第二课时教学设计06-08