西门子PLC模块6ES7211-1HE40-0XB0参数详细
一.引言
目前的工业控制现场大量使用了PLC和各种智能仪表用于生产过程控制。随着控制规模的扩大和控制功能的复杂化,常需要多台PLC及一定数量的外设仪表组成一个控制系统。
MODBUS是美国MODICON公司制订的一种串行传输协议,可实现主从命令响应型通信。作为一种工业通信和分布式控制系统协议,已经得到多家公司的PLC和智能仪表支持。
A-B公司(Allen-Bradley)是美国生产可编程控制器的主要厂家之一,具有先进的通信和数据处理功能。在水处理行业中,使用大量的可编程控制器用于生产过程控制,其中A-B公司的PLC占了相当的比重。
由于不同硬件厂商支持不同的工业通信和分布式控制系统协议,要实现AB PLC与MODBUS仪表组成控制网络,实现设备的连网,就存在着互相通信协议转换问题。
3100/3150-MCM模块是PROSOFT TECHNOLOGY公司推出的在AB PLC通用框架上安装的MODBUS通信接口模块。该模块可以实现AB PLC与MODBUS现场设备之间的通信,从而使AB PLC通信能力得到增强,灵活实现AB PLC与MODBUS网络的互连,完成复杂的控制要求。
本文基于自来水厂泵站集散控制系统的设计,着重介绍AB公司的SLC系列的PLC通过3150-MCM模块和MODBUS网络连接的实现方法。
二. 系统联网方案
自来水厂泵站集散控制系统,不仅实现一般的逻辑控制,还具备了包括模拟量在内的数值处理和网络通信等功能。在现场的实际应用中,系统使用的电机保护装置Sepam2000采用了MODBUS通信协议,出于系统控制功能的需要,要求在AB PLC中实现对MODBUS协议的支持。我们利用3150-MCM模块建立起MODBUS设备网。
系统的网络结构遵循MODBUS协议的规范,采用标准简单的主从总线结构,以PLC作为主机发起通信,多台电机保护装置Sepam2000作为从机,各从机在进行传输之前必需要等待来自主机的允许信号。主机可以发送和接收来自通信链上从机的信息,而从机则始终处于被动状态,随时准备响应来自主机的通信请求。设备层部分网络结构如图1。
三.Sepam2000及MODBUS协议的介绍
Sepam2000作为电机保护装置,提供了所有保护、测量、控制、通信等功能。Sepam2000与远程监控系统之间的通信是采用MODBUS协议的通信方式。
MODBUS的通信采用的是一种主/从式数据传输,在主从结构的通信方式中,有一台主机,多台从机,主机可与各个从机作双向通信,而各从机之间不能通信。主机与各个从机通信的报文形式为请求/响应帧方式。每次通信均由主机发起,不需握手。主机发出请求帧后,等待从机返回响应帧直至响应时间超时。从机只能通过提供数据响应主机的请求,或根据请求做出相应的动作。
MODBUS协议定义了主机请求的格式,包括:请求的编址,要求动作的功能编码,传输数据和错误校验等。请求中的编址(即地址码)提供接收主机报文的从机地址,从机根据地址判别是否接受该请求,用户必须设置每台从机的地址。功能编码告诉指定编址的从机完成什么样的动作。数据字段中包含了从机执行任务时所需的附加信息。例如,功能编码03表示读取从机的保持寄存器并返回其中的内容,数据区中的信息就必须告诉从机从哪个寄存器开始读,需要读的寄存器数。错误校验字段为从机提供了信息完整性校验的方法。同样,响应的格式也是采用MODBUS协议结构,从机响应的功能编码与接受的请求的功能编码相对应,数据字段包含根据请求返回的数据,错误校验字段允许主机确认信息内容是否有效。
MODBUS协议共有24种功能编码,但是并不都适用于Sepam2000,实际应用中Sepam2000只是支持下面有限的几种:
01读取输出状态
02读取输入状态
03读取内部寄存器内容
04读取输入寄存器内容
05强制单个输出状态
06刷新单个寄存器内容
07读取异常事件状态
08诊断测试
11读取计数器和状态字
15强制多个输出状态
16刷新多个寄存器内容
如果主机希望读取2号Sepam2000从机中寄存器0805h-080Ah的内容,则需要调用功能03。主机请求和从机响应的帧格式如下:
请求帧:
响应帧:
而如果主机希望刷新2号Sepam2000从机中寄存器0810h的内容并把寄存器内容设置为1000,则需要调用功能06。主机请求和从机响应的帧格式如下:
请求帧:
响应帧:(返回收到的请求帧)
Sepam2000的帧格式以及所执行的功能都有明确的定义,不能随意更改。在通信过程中,要确保主机和各从机的对应关系正确。此外,用户可以根据实际需要配置合适的传输波特率、字符奇偶校验、停止位的个数等通信参数设置。
四.AB PLC中MODBUS协议的实现
1.MCM模块的通信控制
PROSOFT TECHNOLOGY公司的3100/3150-MCM通信模块,相当于网络接口,PLC通过MCM模块与MODBUS总线相连。MCM模块能快速、可靠地在AB PLC中实现MODBUS协议。
3100/3150-MCM通信模块可供用户选择使用主机模式或者从机模式。当MCM模块设定为主机,它对连接到总线上的从机进行控制,支持MODBUS协议中(01、02、03、04、05、06、15、16)8种功能编码,可以发送多达一百条定制的请求指令,并支持以“广播”方式发出请求。当MCM模块指定为从机,它响应主机的请求,此时能够支持MODBUS协议中(01、02、03、04、05、06、08、15、16)9种功能编码。同时,无论是主机模式或者是从机模式,3100/3150-MCM通信模块都支持ASCII和RTU两种传输模式。
当AB PLC配置了3100/3150-MCM通信模块作为主机模式时,PLC采用周期扫描方式,按请求指令的顺序与从机交换数据。每次扫描期间,处理器使用逻辑写指令将主机内存中要输出到各从机的数据传送到3100/3150-MCM通信模块中的发送缓冲区,模块根据存储的功能指令,发送到指定的从机;而各从机响应后返回的数据,3100/3150-MCM通信模块将其先存放在接收缓冲区,然后PLC使用逻辑读指令把数据移入相应的输入数据存储区。周而复始,使主机与从机中的数据得到周期性的刷新。整个数据流程如图2所示:
2.MCM模块与MODBUS的硬件连接
MCM模块使用的是与RS232C兼容的标准通讯接口,但在实际应用中由于要实现多点通信,所以采用RS485方式。图3是3150-MCM模块9芯串行口与MODBUS的连接图
3. MCM模块的缓冲区管理
PLC与MCM模块之间是通过模块输入、输出映像文件进行数据传送。PLC写数据时,将数据写入输出映像文件,然后3100/3150-MCM通信模块把数据映射到相应的缓冲区位置上;PLC读数据时,根据映射地址,从输入映像文件中读取模块缓冲区中对应地址的数据。映像文件的数据传送单位为一个50字节的数据块,PLC必须循环地一次传送一个数据块。
MCM把缓冲区按数据传送的单位大小,分为若干个块,并一一标号,用块号对应起来,并且划分为三个区,分别用于数据、指令、参数设置。数据存储区从0块号开始,结束于79块号,中间有4000个字节的空间,用于存储接收的数据和发送的数据,是主机、从机交换数据的场所;指令存储区从第80块至第99块,共1000个字节,用于存储主机模式下,模块的功能指令表,每次扫描,顺序按功能指令列表向从机发出请求帧;第255块号前40个字节则专门定义为模块设置参数存储区,用于初始化模块。
在通信过程中,首先要对主机进行初始化,即对第255块号对应的缓冲区内容进行参数配置,主要是定义通信端口的设置,模块缓冲区的详细划分。设置的有以下参数:
〈1〉定义MCM通信模块两个独立的通讯接口设置。包括:选择主机模式或者从机模式、定义字符奇偶校验、停止位的个数,传输的波特率,响应延时等参数。
〈2〉定义模块的缓冲区中存储接收数据的数据存储区。包括:接收数据存储区的起始块号,存储区的连续块数。
〈3〉定义模块的缓冲区中存储发送数据的数据存储区。包括:发送数据存储区的起始块号,存储区的连续块数。
〈4〉定义模块的缓冲区中指令存储区。由于指令存储区固定从80号数据块开始,所以只需指定存储区的块数。
4.MCM模块的功能指令设置
MCM模块处于主机模式下时,功能指令列表存放在模块缓冲区中的指令存储区。主机向从机发出请求时,模块从指令存储区逐条读出功能指令,并按照MODBUS请求帧格式发送数据。
指令存储区中每条功能指令的具体内容如下:
1、模块通信端口选择
2、从机的站地址。从机在接收数据时将本站编址的值与收到的站地址比较,以此判定信息是否是发给本站的。而主机在接收时则将收到的站地址与发送的站地址比较,以判断是否是正确的从机响应
3、指令的功能编码
4、源地址。即主机要发送或接收的数据在缓冲区中的起始数据地址
5、数据长度。即主机要发送或接收的数据的字节数
6、目的地址。即从机要接收或响应的数据的寄存器地址
7、数据的类型。用于标示读、写的数据是双字节的浮点数还是单字节的整数
8、轮询时间
如果主机希望在1号通讯接口读取2号Sepam2000从机中寄存器0805h-080Ah的内容并存放到模块缓冲区第50个字节开始的连续6个字节中,功能指令内容如下:
5.AB PLC通讯程序的开发
程序执行时,在第一个扫描周期,都必须设置MCM的状态,即初始化MCM模块。通信程序中,PLC在输入、输出映像文件中为MCM缓冲区设置当前以及后续读写指针,分别指向当前MCM缓冲区数据块号,后续缓冲区数据块号。若MCM处于数据传送允许状态,即 I1:1/0 = 1 , O0:1/0 = 0时,PLC判别当前读写指针,调用相应读写逻辑指令。如果指针指向接收数据的数据存储区,则PLC从MCM模块中接收数据;如果指针指向发送数据的数据存储区,则PLC向MCM模块发送数据;如果指针指向指令存储区,则PLC向MCM模块传送功能指令。每次执行一个数据块的传送,并在传送后,把后续读写指针覆盖当前读写指针,从而在下个扫描周期进行下一个数据块的传送。PLC自动周期性扫描,按照编定的功能指令向从机的输入/输出数据进行发送/接收,以满足数据传输的要求。
根据PLC的逻辑指令及MCM的通信原理,画出了图4所示的主机通信程序结构框图。
五.结束语
经过现场调试,实现了1台AB PLC与13台SEPAM2000组成的MODBUS网络连接。实际应用证明,这种方式组成的系统结构简单,应用方便,能满足复杂的控制需要。