西门子CPU300/400 输入模拟量处理程序设计与应用

2024-02-22 09:49刘晓林
电器工业 2024年2期
关键词:功能块模拟量信号处理

刘晓林

(中海油田服务股份有限公司)

0 引言

在石油钻井领域,电气自动化控制技术已成为提高生产效率、确保作业安全和降低运营成本的关键因素。石油钻井平台的自动化控制系统涉及从钻井设备到生产监控等广泛的应用,以确保作业的精准性和高效性。这些系统的发展取得了显著的进展,推动了钻井作业的先进化和现代化。而海上钻井作业环境更加复杂恶劣,在实际过程中有各种不稳定因素,威胁着现场作业人员安全并且影响油田生产效率。应用自动化控制技术,可以实现快速定位勘探与自动化钻井,还能对整个生产过程进行监测和控制,可以有效降低对人力资源的依赖,并提高安全管理水平和开采效率[1-3]。

在使用西门子可编程控制器CPU300/400 的电气控制项目中,程序设计者经常会遇到大量的模拟量信号需要处理。西门子SMATIC 自带的模拟量线性化处理程序FC105 过于简单,且没有相应的故障信号处理,用户使用它并不方便,本文设计了一款模拟量信号处理程序,不仅可以实现模块化编程,节省编程工作量,还能普遍适用于各种不同的设备场景。

1 技术框架

1.1 程序结构

本文程序是基于模块化建模来实现预期功能的实现。模块化建模方法对于数值模拟和计算非常有价值,因为它能够提供以下好处:

1)降低复杂性:将模拟问题分解为小的、相互独立的子模块可以显著降低整体程序的复杂性,这使得每个子模块更易于理解和管理。

2)提高代码的重用性:子模块可以被多次重用,不仅在当前模拟中,还可以在将来的项目中使用。这有助于避免重复编写相同的代码,提高开发效率。

3)易于维护和扩展:当需要对模拟进行修改、升级或修复错误时,模块化结构使得更改变得更加容易。可以只需修改特定的子模块而不必涉及整个程序。

4)团队开发:模块化方法适用于多人合作开发,每个团队成员可以专注于开发和维护特定的子模块。这有助于提高团队的协作效率。

总之,模块化建模是一种有利于提高数值模拟效率、减少错误和加速开发的方法。通过适当的模块设计和自动化流程,可以轻松地实现修改参数以获得不同结果的目标[4]。

一般PLC S7-300 的FC、FB 和DB 的各模块:

(1)FC(函数块)

FC 是函数块的缩写,它是一种用于执行特定任务的可重用程序单元。FC 通常用于执行一些特定的功能,如数学运算、逻辑运算、通信等。FC 是可以调用的模块,通常包括输入参数和输出结果。在S7-300 中,FC 通常用于更底层的控制任务。

(2)FB(功能块)

FB 是功能块的缩写,它与FC 类似,但通常更高级,可以包含多个FC。FB 是一种更高层次的模块,用于执行更复杂的控制任务,如控制整个子系统或系统。FB 可以通过PLC 程序多次调用,使其在不同上下文中执行。

(3)DB(数据块)

DB 是数据块的缩写,它用于存储和管理数据,包括输入数据、输出数据和中间数据。DB 允许不同的程序模块之间进行数据交换和通信。DB 还可以用于存储定时器、计数器和其他程序状态信息[5]。

本文程序设计模块主要分为:

1)模拟量输入信号处理功能块FB15。作为公用的基本模拟量信号处理程序,采集模拟量输入信号,并作线性化、滤波和报警处理。

2)模拟量信号处理主程序功能块FB2005。通过调用功能块FB15,获得工程量实际值,对异常情况发出报警。

3)共享数据块FieldInDB(DB1800)。存储程序运行所有输入和输出参数。

4)自定义UDT15。

5)多重背景数据块DB2005。

模拟量输入信号处理功能块FB15,作为公用的基本模拟量信号处理程序,采集模拟量输入信号,并作线性化、滤波和报警处理。模拟量信号处理主程序功能块FB2005,通过调用功能块FB15,获得工程量实际值,对异常情况发出报警。

通常情况下,功能块FB2005 在调用其他功能块时,会产生相应的背景数据块,需要处理的模拟量信号越多,产生的背景数据块也会越多。为了避免产生过多背景数据块,浪费系统资源,将需要处理的模拟量信号,配置在功能块FB2005 的静态变量表中,定义其数据类型为FB15。功能块FB2005 程序中形成了对功能块FB15 的调用,不会产生除多重背景数据块DB2005 以外的其他背景数据块,节省了系统资源。模拟量输入信号处理程序设计示意如图1 所示。

图1 模拟量输入信号处理程序设计示意图

1.2 功能块FB15

公用的功能块FB15,它能方便被功能块FB2005调用,是最基本模拟量输入信号处理功能块。对功能块FB15 内部程序接口定义:

1)IN 输入声明变量。物理地址Address;模拟量量程Max/MinEu;数字量量程Max/MinRaw;报警拓展范围RngAlmOffset;低报警LoLimit、低低报警LoLoLimit; 高报警设定HiLimit、高高报警HiHiLimit;报警复位AlmReset、报警自动复位AlmAutoRest; 输入信号类型选择InputRange(电流、电压信号量程等);测量滤波参数RC、取样时间SampleTimeS、报警延迟Hysteresis。

2)OUT 输出声明变量。输入真值Raw;通用报警GeneralAlm;断线报警WireBrkAlm;配置错误报警ConfAlm;对应的模拟量值Scaled;低报警LoAlam、低低报警LoLoAlarm;高报警HiAlarm、高高报警HiHiAalarm。

3)IN_OUT 声明变量。AiStruct,自定义UDT15,用来简化程序结构。描述UDT15 的结构。为区分信号的性质,把这个自定义的数据类型细分七类结构STRUCT,分别是设备的Id 号,记录设备号;版本号Rev,记录最新版本号;模拟测试命令Sim,用于软件内部测试;操作命令Cmd,报警发生时复位和自动复位;输入输出状态Sta,用于记录真值Raw、工程测量结果Scaled 以及以上提到的报警Alarm;现场信号Fieldout,记录输入物理信号值;配置信息Config,功能块FB2005 调用时能采集到程序需要的所有输入输出信号。

4)TEMP 临时变量。根据需要,临时变量命名简单、易记。

功能块FB15西门子PLC编程的方块图如图2所示。

图2 功能块FB15 西门子PLC 编程的方块图

1.3 功能块FB2005

功能块FB2005 作为一个或多个模拟量信号处理的主程序,用来调用基本模拟量信号处理功能块FB15,使功能块FB2005 程序结构清楚简洁,内部接口声明变量变得十分容易。功能块FB2005 声明变量表中,IN、OUT、IN_OUT 不需要设置,只在静态变量中声明所要测量的模拟量,定义这个模拟量数据类型为FB15。功能块FB2005 把输入模拟量的处理结果,包括工程测量值、各种报警状态,都存储在共享数据块FieldInDB(DB1800)中。定义共享数据块FieldInDB(DB1800)数据类型为UTD15,因此FieldInDB(DB1800)中就及时存储了程序运行所有输入和输出参数。

功能块FB2005 内部程序接口定义:IN 输入声明变量,无;OUT 输出声明变量,无;IN_OUT 声明变量,无;STAT 静态声明变量,MainPrs,数据类型FB15;TEMP 临时声明变量,根据需要,临时变量命名简单、易记。

功能块FB2005 西门子PLC 编程相对变得比较容易,只需要对输入变量赋值,输出变量存入到相应的共享数据块中,方便其他程序使用,如人机界面的显示,报警状态的信息提示等。表1 是功能块FB2005 在调用基本模拟量处理功能块FB15 时,出现赋值以及输出信号。

表1 赋值以及输出信号

2 程序模拟测试

对这种模块化的程序编写好后,用SMATIC 自带PLC 模拟器进行测试,在测试过程中,从设置模拟器、手动输入不同的模拟量值,观察和记录输出结果来对实验的反馈及校正。

变量具体数据如表2 所示。

表2 测试变量取值表

通过模拟器改变输入真值Raw,输入输出都能相互对应,也能模拟各种报警,完全符合设计且满足实际需求。

3 程序的应用

在日常实际中,只要涉及西门子PLC300/400 有关硬件,都能使用这一套处理程序。

而石油钻井平台在自动化控制方面可以广泛使用西门子PLC(可编程逻辑控制器)300/400 系列,这些PLC 在石油钻井领域的应用场景包括[6]:

1)钻井控制系统。PLC 300/400 常用于控制钻井平台上的各种机械设备,如钻头、液压系统、旋转设备等。PLC 负责实时监测和控制这些设备的运行状态,确保钻井操作的安全性和高效性[7]。

2)数据采集和监控。PLC 300/400 通过与传感器、测量仪器等设备的连接,负责实时采集和传输井下和井上的各种数据,如温度、压力、流量等。这些数据对于监测井内情况和作业进程至关重要。

3)自动化钻井控制。PLC 300/400 系列广泛应用于实现自动化钻井,通过控制钻头的位置、旋转速度、进给速度等参数,以确保井眼的准确钻进,同时减少人工干预。

4)紧急停机和安全系统。PLC 负责管理紧急停机系统,以应对突发情况,如火灾、气体泄漏等。当检测到危险信号时,PLC 可以自动触发停机程序,保护平台设备和工作人员的安全。

5)能源管理和节能。PLC 300/400 可用于优化平台设备的能源利用,通过监测和控制电力系统、液压系统和发动机等,实现节能环保的目标。

6)远程监控和维护。PLC 系统通常与远程监控中心连接,使操作人员能够实时远程监视平台设备的状态,并进行远程维护。这种远程访问和诊断功能对于及时处理故障和减少停机时间非常重要。

总之,西门子PLC 300/400 系列在石油钻井平台上的应用场景非常广泛,它们提供了可靠的自动化控制和监测功能,有助于提高生产效率、降低运营成本,并确保作业的安全性[8]。

另外,工程上为了实现对控制系统中液位、压力、阀门开度、液压油缸的行程等控制,就需要对它们进行测量。这一套模拟量输入信号的处理程序,通过程序内部的比较,能够比较可靠有效地识别故障,确保有效地处理那些模拟量输入信号。这些输入信号经过处理后,能方便地被WinCC、Cimplicity 等人机界面程序识别使用[9]。这种设计无论项目大小,都可被方便地采用,尤其对模拟量输入信号多的项目,更能体现出这种模块化设计的优势。如果模拟量输入信号波动较大,可以调整RC 滤波参数,就能有效地降低波动带来的控制干扰。需要特别说明的是这些输入信号类型必须是电压信号或电流信号。

4 结束语

本文针对西门子可编程控制器CPU300/400 的模拟量信号处理基于模块化编程的思想设计了一套模拟量信号处理程序,并介绍了各模块的定义和功能,经过模拟测试后,程序各项功能均能在电气控制中正常实现,满足设计要求,为西门子可编程控制器CPU300/400 模拟量信号处理提供新的方法。

猜你喜欢
功能块模拟量信号处理
基于FPGA的多通道模拟量采集/输出PCI板卡的研制
《信号处理》征稿简则
《信号处理》第九届编委会
《信号处理》征稿简则
《信号处理》第九届编委会
Ovation系统FIRSTOUT和FIFO跳闸首出比较
关于600MW火电机组模拟量控制系统设计和研究
自定义功能块类型在电解槽联锁中的应用
模拟量输入式合并单元测试仪的研制
基于MACSV6.5.2的锅炉燃尽风开关量调节门控制功能块设计