8通道HART模拟量输入模块如何发送HART命令显示订货号1概述HART通信是在4-20mA信号上叠加一个幅值为±0.5mA的正弦波信号,通过调整正弦波的频率来表示信号0和1,如下图所示1200Hz表示1,2200Hz表示0。HART通信是基于请求/响应的方式,即主站向从站发送请求命令,从站收到请求命令后,将数据返回给主站。图1-1叠加在4-20mA上的Hart信号HART命令可以分为以下三类:分类特点举例通用HART命令所有HART仪表都必须支持0:读取厂家、设备、版本等标识1:读取主过程变量及其单位2:读取输出电流及其百分比3:读取输出电流及四个预定义的动态变量13/18:读、写取设备标签、描述和日期常用HART命令通常情况下,HART仪表都支持35:设定量程范围42:对仪表进行主复位49/50:写动态变量分配40:强制电流输出设备特定的HART命令与厂家和设备相关具体参考仪表厂家提供的手册接下来以通用HART命令3和设备特定HART命令171为例,介绍西门子8通道HART通信模块6ES7331-7TF01-0AB0,如何发送命令给仪表,如何接收仪表返回数据。2HART通用命令3的使用以西门子电磁流量计MAG6000为例,说明如何通过HART通用命令3读取瞬时流量和累计流量。相关软件及硬件:STEPV5.5SP26ES7153-0BA02-0XB06ES7331-7TF01-0AB0(E-Stand:3)电磁流量计MAG6000HART通信模块FDK:085U0226V2.01图2-1相关硬件命令3为HART通用命令,所有厂家的HART设备都支持该命令,通过该命令可以读取设备的输出电流,以及四个动态变量PV、SV、TV和QV,不同仪表对四个变量有不同的定义。对于西门子电磁流量计MAG6000,命令3返回的具体内容如下:字节含义MAG6000Byte0-3输出电流(mA)输出电流(mA)Byte4PV单位m3/sByte5-8PV数值瞬时流量Byte9SV单位m3Byte10-13SV数值累计量1(正向累计量)Byte14TV单位m3Byte15-18TV数值累计量2(反向累计量)Byte19QV单位Byte20-23QV数值未分配2.1硬件组态及设置打开硬件组态窗口,在ET200M下插入HART模块,如下图所示:图2-2硬件组态图2-3插入Hart模块如果该电脑上安装了SIMATICPDM软件,可以在相应通道插入HARTFieldDevice,这样双击该通道即可进入该仪表的参数化界面。插入HART6ES7331-7TF01-0AB0时,一定要插入V3.X版本的,如下图所示。因为只有V3.X版本模块发送HART命令时,支持表2-1所示的紧凑信息格式:图2-4选择V3.x版本的Hart模块表2-1紧凑信息格式注意:同样是HART模块6ES7331-7TF01-0AB0,如果E-Stand版本小于3,那么在硬件组态时需要选择下图所示的模块。在发送HART命令时,必须使用透明信息格式(除命令0外,其它命令必须使用HART长地址,即必须包含厂家ID、设备ID等地址信息),具体操作请参考目录1。下文以紧凑型数据格式为例进行说明。图2-5低版本的Hart模块设置模块属性,如下图所示:图2-6Hart模块的参数设置设置完成之后,编译保存并下载到CPU中。2.2编程调试首先,按照如下结构,创建一个共享DB(例如DB1):图2-7创建DB1接下来,创建数据返回数据块DB2,内容如下:图2-8创建DB2最后,在OB1中调用SFC58和SFC59。HART模块6ES7331-7TF01-0AB0有8个通道,每个通道可以连接一块HART仪表。每个通道对应两个记录,分别用于命令的发送和数据的接收,对应SFC58/59的RECNUM管脚。通道1通道2通道3通道4通道5通道6通道7通道8发送8082848688909294接收8183858789919395现在我们将电磁流量计连接在通道1,所以需要通过SFC58的RECNUM=80(即16#50)发送命令,然后通过SFC59的RECNUM=81(即16#51)接收仪表返回的数据。图2-9调用程序在变量表中进行调试,首先将M0.1置1,PLC通过SFC58发送命令3给仪表,然后将M0.3置1,接收仪表返回数据。(注意:不要将M0.1和M0.3同时置1。)图2-10读取到的数据其它通信状态,含义如下图所示:3HART设备相关命令的使用以西门子质量流量计MASS6000为例,说明如何通过设备相关命令171读取累积量。命令代码命令返回数据171(读取累计量)Byte0累计量序号:0:返回值为累计量11:返回值为累计量2Byte0累计量单位Byte1-4累计量数值Byte5累计量序号累积量1和2的含义可以通过流量计菜单进行设置,在该例中累计量1对应正向质量累积量,如下图所示:图3-1设置累积量1累积量2对应正向体积累积量,如下图所示:图3-2设置累积量2(1)首先,创建命令发送数据块DB1,用来存放命令171对应的数据帧。图3-3创建DB1其中DB3.DBB4为命令代码中包含的数据,比如发送命令171时需要1个byte来指定读取累计量1还是累计量2,如下表所示:命令代码命令返回数据171(读取累计量)Byte0累计量序号0:返回值为累计量11:返回值为累计量2Byte0累计量单位Byte1-4累计量数值Byte5累计量序号DB3.DBB3为命令中包含的数据的长度,比如命令171需要1个byte,命令3中不包含任何数据。(2)创建DB2用于接收命令171的返回数据图3-4创建DB2(3)在OB1中通过SFC58/59发送命令和接收数据图3-5调用SFC58/59(4)在变量表中进行调试首先将M0.1置1,PLC通过SFC58发送命令171给仪表:图3-6在变量表中置位M0.1将M0.3置1,通过SFC59读取累计量1,如下图所示:图3-7读取到的累积量1修改DB3中的命令参数,实现通过命令171读取累计量2:图3-8读取累积量2的命令171将M0.3置1,通过SFC59读取累计量2,如下图所示:图3-9读取到的累积量24附录—早期版本HART模块通信6ES7331-7TF00-0XB0和6ES7331-7TF01-0XB0(FirmwareVersion3.0)不支持紧凑信息格式,HART模块只能通过下图所示的透明信息格式来发送命令。举例:8通道HARTAI模块6ES7131-7TF00-0AB0,第5个通道连接了一台ProbeLU超声波物位计。4.1硬件组态注:如果电脑上没有安装PDM软件,不必插入HARTDevice,因为此处插入HARTDevice的目的仅仅是通过双击该图标可以进入该仪表的参数化界面而已。图4-1在Hart模块下插入仪表图4-2Hart模块的参数设置4.2通过命令0获取制造商和设备信息创建DB3,用来存放命令0对应的数据桢,内容如下:Preamble:前导字符,可以为5-20个byte,一般选择5个即可;Start_Address:必须设置为16#2,表示该书据桢为短桢,接下来发送的命令代码为0;CHK:表示数据桢的校验,系统会自动计算,此处默认为0即可;图4-3创建命令DBHART模块6ES7331-7TF00-0AB0有8个通道,每个通道可以连接一块HART仪表。每个通道对应两个记录,分别用于命令的发送和数据的接收,对应SFC58/59的RECNUM管脚。通道1通道2通道3通道4通道5通道6通道7通道8发送8082848688909294接收8183858789919395由于超声波液位计连接在通道5,所以需要通过SFC58的RECNUM=88(即16#58)发送命令,然后通过SFC59的RECNUM=89(即16#59)接收仪表返回的数据。通过SFC58将DB3中的数据发送给HART设备,返回数据在DB2中(DB2的符号名为Read)。图4-4调用SFC58/59通过命令0可以读取设备标识,包括下列内容:字节含义Byte0254(expansion)Byte1manufactureridentificationcodeByte2manufacturer'sdevicetypecodeByte3numberofpreamblesrequiredByte4universalcommandrevisionByte5device-specificcommandrevisionByte6softwarerevisionByte7hardwarerevisionByte9-11deviceIDnumberByte12**common-practicecommandrevisionByte13**commontablesrevisionByte14**datalinkrevisionByte15**devicefamilycode在DB2中可以监视到命令0返回的信息,如下所示,其中manufactureridentificationcode:16#58manufacturer'sdevicetypecode:16#CDdeviceIDnumber:16#402646,即4204102图4-5读取到的仪表标识信息可以通过SIMATICPDM软件验证:图4-6PDM读取到的仪表标识信息4.3通过HART通用命令3读取过程数据首先,创建命令发送数据块DB1,用来存放命令3对应的数据Start_Address:必须设置为16#82,表示该书据桢为长地址帧,数据桢中必须包括厂家、设备类型及设备ID;Cmd:为命令代码,每个HART仪表支持的HART命令可以在手册中查到。图4-7创建DB1,并将标识信息写入然后在程序中调用SFC58和SFC59,发送命令DB1中存储的命令,同时在DB2中接收返回的数据:图4-8调用SFC58/59命令3为HART通用命令,所有厂家的HART设备都支持该命令,通过该命令可以读取设备的输出电流,以及四个过程变量PV、SV、TV和QV,不同仪表对四个变量有不同的定义。对于西门子超声波液位计ProbeLU,命令3返回的具体内容如下:字节含义超声波液位计ProbeLUByte0-3输出电流(mA)输出电流(mA)Byte4PV单位mByte5-8PV数值液位Byte9SV单位mByte10-13SV数值空高Byte14TV单位mByte15-18TV数值距离Byte19QV单位m3Byte20-23QV数值体积图4-9通过命令3读取到的数据关键词