基于S7 1500系统的Profibus-DP通信在称重系统中的应用实例

2023-07-04 06:23花永紧孙正威
仪器仪表用户 2023年8期
关键词:浮点数钢瓶模拟量

花永紧,孙正威

(1.浙江博瑞电子科技有限公司,浙江 衢州 324004;2.浙江巨化检安石化工程有限公司,浙江 衢州 324004)

0 引言

PROFIBUS 是一种国际化、开放式,不依赖于设备生产商的现场总线标准。PROFIBUS 传送速度可在9.6kbaud ~12Mbaud 范围内选择且当总线系统启动时,所有连接到总线上的装置应该被设成相同的速度,广泛适用于制造业自动化、流程工业自动化和楼宇、交通电力等其他领域自动化。PROFIBUS 是一种用于工厂自动化车间级监控和现场设备层数据通信与控制的现场总线技术,可实现现场设备层到车间级监控的分散式数字控制和现场通信网络,从而为实现工厂综合自动化和现场设备智能化提供了可行的解决方案。

PROFIBUS 由3 个兼容部分组成, 即Profibus-DP(Decentralized Periphery)、Profibus-PA(Process Automation) 和Profibus-FMS(Fieldbus Message Specification)。 本次设计主要使用PROFIBUS-DP,这是一种高速低成本通信,用于设备级控制系统与分散式I/O 的通信,在一些特殊要求的场合来替代4mA ~20mA 信号传输,达到数字化智能控制,提高系统的控制精度。

在称重系统中,常规使用模拟量4mA ~20mA 信号进行数据的传输,整个称重系统的精度受多方面的影响。如称重传感器精度、仪表显示的精度和中间环节数模转换的精度等。其中,比较关键又很容易被忽略的就是数模转换精度。如西门子PLC 常用的模拟量输入模块中A/D 转换芯片的位数为12 位,模拟量转换为数字量最小分辨率为1/4095,在高精度大量程称重系统中就会出现PLC 系统数据转换的误差大于传感器的精度。这样整个称重控制系统就会出现较大的误差,甚至超出生产控制指标。例如:某公司的12 台钢瓶电子秤,要求每台测量范围0kg ~2000kg,精度要求在0.5kg 以内。根据要求电子秤最大称量选为3000kg,检定分度为1/6000,即精确到0.5kg。但是,当选用A/D 转换分辨率为12 位的PLC 模拟量输入模块时,在模拟量转换为数字量中能够反映模拟量的最小变化单位是满量程的1/4095,即0.73kg。当电子平台秤上有0.5kg 的变化时,经过PLC系统的A/D 转换后无法采集到这0.5kg 的变化量。这样整个控制系统的精度就无法满足生产指标的需求,此时可采用通信的方式来避免数模转换带来的误差。通信的方式有很多,如以太网、Modbus 和Profibus 等,其中Profibus-DP 作为一种用于设备级控制系统与分散式I/O的通信,特别是在串联较多设备时,在系统设计、数据采集精度、现场施工维护和数据的响应上就体现出了它的优势。

笔者以S7-1500 PLC 与梅特勒托利多称重仪表NID331 进行Profibus-DP 通信的实例,介绍各设备的参数设置和通信程序的设计。

1 硬件配置

某公司氯气钢瓶称重控制仪表为梅特勒托利多型号NID331 ;PLC 控制系统为西门子S7-1500 ;CPU 型号为1511-1,DP 通信卡为CM1542。PLC 与称重控制仪通信时,PLC 作为主站,12 台称重控制仪设置为从站以并联的形式接入到Profibus-DP 通信总线,称重传感器使用称重专用电缆接入到称重控制仪。当电子秤上进行钢瓶充装时,称重传感器内部电阻应变片随充装量的变化而发生阻值变化,从而使内部应变电阻桥路产生mV 级电压变化,称重控制器采集到变化的电压后进行数据处理并转换为充装重量数据,最后称重控制仪通过Profibus-DP 通信把数据传输到PLC 系统中。当PLC 检测到钢瓶的充装重量到达目标后就自动关闭相应钢瓶的进料阀,直到12 只进料阀都关闭后,可判断为充装结束,然后再自动执行下一步管线置换等一系列的自动化操作步骤。连接示意图如图1 所示。

图1 PLC和IND331连接示意图Fig.1 Connection diagram between PLC and IND331

2 软件设置

2.1 IND331称重仪参数设置

由于IND331 称重仪常规配置没有Profibus-DP 通信接口,在仪表订货时需要另增加DP 通信板。IND331称重仪表与PLC 进行Profibus-DP 通信时,COM1 和COM2 为标准的串行通信端口与Profibus-DP 无关无需设置,只要把F4.4-PLC 里设置为“PROFIBUS”。当连接的PLC 为PROFIBUS 时,包括两个菜单:PROFIBUS和Data Format。 其中,F4.4.1.5-Node Address 表示连接到网络中的仪表物理地址(1-125),即通信站地址;F4.4.2-Data Format 为通信数据的格式,由于传输的重量数据需要精确到0.5kg,故设置为“浮点数”;F4.4.2.2-Byte Order 为字节顺序,共有4 种类型,Byte Swap 的浮点数型式与S7 PROFIBUS 兼容,Standdard的浮点数形式与PLC5 兼容,Word Swap 与RSLogix 5000 处 理 器 兼 容,Double Word Swap 与Modicon Quantum 处理器兼容,本次采用的是西门子S71500 PLC 需设置为“Byet swap”。

2.2 通信的数据格式

IND331 设置为Profibus DP 通信时内部存储器的数据类型分为整型/ 分度数和浮点数数据格式。整型/ 分度数的重量数据读取和写入都是2 个字,浮点型的重量数据读取和写入都是4 个字;每种数据类型里每个位都代表不同的功能含义,由于本次通信的重量数据需要带小数点,故数据类型选用浮点数。

2.2.1 浮点数的数据读取格式

当IND331 称重控制仪把4 个字的浮点数传输到PLC 时,其中数据读取的字1 和字2 为重量数据,字0和字3 为仪表的状态字,从PLC 的输入端即可反映出称重仪表当前的使用状况。在本次的通信程序里使用“字0”的13 位,“字3”的14 位和15 位来判断本次重量数据是否正常。详见1 表。

2.2.2 浮点数的数据写入格式

当PLC 把4 个字的浮点数输入到IND331 控制仪时,称重控制器根据具体每个字节里每个位的状态进行动作,其中字0 保留,字1 为命令字,字2 和字3 为皮重或预置点。本次程序使用的命令为“11”,表示PLC 需要读取圆整的净重。详见表2 和表3。

表2 浮点型数据输入格式Table 2 Floating point data input format

表3 浮点型数据命令Table 3 Floating-point data commands

表1 浮点数的数据读取格式Table 1 Data reading format of floating-point arithmetic number

2.3 GDS文件

每台PROFIBUS 从站或一类主站都要有一个“设备描述文件”称为GDS 文件,用来描述Profibus-DP 的设备特性。设备GDS 文件对软件组态有根本的影响,完善的GDS 文件提供了丰富的输入/ 输出模块选择,在组态中可以灵活应用。如果只提供了较单一的模块,在传输不同的信号类型时,如AI、DI 和DO 数据都传输,就会碰到很大的困难。IND331 的GDS 文件比较完善,使用文本打开后可以看到数据的传输速度、数据长度和数据类型等参数,具体使用什么样数据格式可在硬件设备中进行选用配置。如本次通信选用的传输速度为1.5Mbps,数据长度为4 个字,数据类型为浮点数。IND331 的GDS 文件实例如下:

2.4 PLC设置

本次S7-1500 PLC 编程软件使用博途V15 版本。当与IND331 通信时,需要在博途软件的“管理通用站描述文件”选项中导入IND331 仪表的GSD 文件,导入完成后在“硬件目录其它设备”中就包含了“IND331”设备。在网络设备组态中添加CUP1511 和通信卡CM1542,并在设备组态中建立好Profibus DP 网络后,可直接拖动“IND331”设备到网络总线上;最后在对通信网络上的设备进行配置。DP 通信卡CM1542 设备设置为主站,站地址为“2”,传输率为1.5Mbps ;把IND33 设备WT-F097 设置为从站,站地址为“3”;输入地址为I264-I271,输出地址为Q264-Q271。这样就与IND331 称重仪4 个字节的输入和输出数据相匹配,其它设备的设置以此类推。博途软件中的网络拓展组态视图如图2 所示。

图2 S7-1500 PLC与IND331通信网络拓扑图Fig.2 Topology diagram of communication network between S7-1500 PLC and IND331

3 通信子程序

在博途软件中建立通信子程序FC 程序块,由于重量数据传输实时性的要求,故通信子程序FC 块需要在每个PLC 的执行周期进行扫描执行。其中,PLC 的执行扫描周期为5ms,即在5ms 内PLC 系统通过Profibus-DP 通信读取一次钢瓶的重量数据,这样整个控制系统的响应速度就非常高。PLC 系统在读取重量数据时,先将命令字“11”传送到输出地址QW266,表示读取IND331 仪表圆整的净重,通过PLC 输入地址I265.5、I271.6 和I271.7 的状态来判断IND331 所传重量数据的可靠性。按照以上要求编制PLC 组态程序,就可把IND331 的重量数据传输到PLC 里位号为“WIT-F097_DP”的数据块DB301.DBD0 中,后续PLC 系统就可以利用“WIT-F097_DP”的重量数据进行上位机HMI 的重量显示和内部的联锁控制。S7-1500 PLC 与IND 331称重仪表Profibus-DP 的通信子程序如图3 所示。

图3 S7-1500 PLC与IND33通信子程序Fig.3 Communication subroutine between S7-1500 PLC and IND33

4 结束语

该通信程序控制方案在实际投用过程中,数据传输的精度高、响应快,能确保每瓶氯气充装的重量误差能控制在0.5kg 之内,整个通信网络稳定可靠,在后续使用中一直未出现异常情况。该通信程序控制方案在高精度的自动包装线中具要一定的指导和推广价值。

猜你喜欢
浮点数钢瓶模拟量
液化石油气钢瓶爆炸性质分析
四种Python均匀浮点数生成方法
基于FPGA的多通道模拟量采集/输出PCI板卡的研制
在C语言中双精度浮点数线性化相等比较的研究
一种特气钢瓶防误拆装置以及特气钢瓶更换方法
钢瓶为什么涂成不同颜色
非精确浮点数乘法器设计
如何扑救石油液化气钢瓶火灾?
关于600MW火电机组模拟量控制系统设计和研究
模拟量输入式合并单元测试仪的研制