高 琼,李 煊
(中国石化 上海石油化工研究院, 上海 201208)
馏程测定是石油产品分析中的常规项目,一般采用手动或自动蒸馏仪器. 手动仪器需要人工处理数据,其中蒸发温度的计算更为复杂费时,属于重复性较强的工作. 根据标准《石油产品常压蒸馏特性测定法》[1]5.3.3,自动仪器仲裁试验应使用玻璃水银温度计,同样也需要人工处理数据. 若有计算机程序协助完成计算,可有效提高工作效率,而市场上难以找到对应软件,故自行开发. 本文所编制程序是基于Microsoft Office Excel及其提供的Visual Basic 开发工具[2],生成符合文献[1]规定的结果处理程序. 使用时需输入温度计编号和原始测定值,程序将自动选择所用温度计对应的校正值表,完成有关标准所规定的一系列运算,并自动判断各类数据是否符合标准规定. 若是汽油和柴油样品可自动生成结果汇总,即打印页.
所编程序内容、操作部位如表1所列.
主界面蒸馏-计算页如图1所示. 主要内容有:上部4个按钮分别完成程序说明、操作手册、手动法误差信息和自动法误差信息等内容的显示与关闭. 4~7行为分析信息,含所用温度计编号手动输入端按钮. 8~24行为试验数据输入、计算行. BA6:BE42为所用温度计校正数据表.
1.2.1 温度平均值计算
对于重复测定,取B、C列对应数据的平均值,若单次测定,C栏输入"-"号. 例:
D10=IF(C10="-",B10,AVERAGE(B10:C10))
(1)
表1 所编程序内容Table 1 Contents of programmes
图1 主界面部分内容Fig. 1 Part of main interface
该列使用条件格式,若重复性超差,用斜体、加粗格式显示.
1.2.2 查找温度计校准曲线对应的斜率和截距值
F10~24 为取出所用温度计校准曲线相应的斜率值,例:
F10=VLOOKUP(E10,B51:D57,2,TRUE)
(2)
其中,G10~24 为取出所用温度计校准曲线相应的截距值,例:
G10=VLOOKUP(E10,B51:D57,3,TRUE)
(3)
1.2.3 计算校准后的温度值
H10~24 计算出对应的校准后温度. 例:
H10=E10+E10×F10+G10
(4)
1.2.4 温度值修正至标准大气压
根据文献[1]10.3,J10~24将对应温度读数修正到当前大气压数值下. 例:
J10=I10+0.000 9×(101.3-B6)×(273+I10)
(5)
1.2.5 重复性超差提示
AD10~24重复性判断信息根据文献[1]12.3及12.4.1规定编写. 例:
AD10=IF(AA10<=AB10,"正常","超差")
(6)
使用条件格式时,如果超差则用红色警示.
其中:
AA10=IF(K10="-","-",IF(C10="-","-",ABS(B10-C10)))
(7)
其中,AA10为重复性测定误差,AB10为重复性允差值.
1.2.6 蒸发温度计算
蒸发温度根据文献[1]10.6.1编写,存放于S10~23. 例:
S11=N11+(O11-N11)×(R11-P11)/(M11-P11)
(8)
其中,N11、O11、R11、P11、M11分别存放、计算了文献[1]10.6.1公式中的TL、TH、R、RL、RH数值.
1.2.7 温度值修约计算
将温度精确至0.5 ℃,以I10为例:
I10=IF(E10="-","-",VALUE(IF(100×H10-INT(100×H10)=0.5,FIXED(H10/2,2)×2,FIXED(H10,2))))
(9)
打开文件后,点击开发工具-Visual Basic ,本项目目录如图2所示. ThisWorkbook 包含程序启动时的温度计编号输入对话框、温度计校正参数自动复制到位、试样编号对话框和大气压值输入对话框. Sheet2内含显示切换按钮、温度计使用中切换按钮相关内容. UserForm1、UserForm2是程序说明和操作手册的文本部分,供馏程-计算平台调用. 所用主要指令如下.
图2 Visual Basic 开发目录Fig. 2 Visual basic development directory
1.3.1 参数输入指令
获得温度计编号并写入B7单元格程序如下.
b=InputBox("请输入温度计编号:", "向B7中输入编号")
Worksheets("馏程-计算").Range("B7") = b
试样编号,大气压值输入格式类似,分别存放在B5、B6单元格中.
1.3.2 参数复制指令
找到对应的温度计编号,并将该温度计的校准参数复制到A51开始的表格中.
If Sheet2.Cells(8, 53) = Worksheets("馏程-计算").Cells(7, 2) Then
Worksheets("馏程-计算").Range("BA8:BE14").Copy _
Destination:=Worksheets("馏程-计算").Range("A51")
Endif
1.3.3 显示隐藏相关内容指令
在馏程-计算页中,按钮4为显示-隐藏自动法误差信息内容按钮,一般不用,故平时隐去,需要时打开显示,其它显示按钮类似. 相关指令如下.
If CommandButton4.Caption ="隐藏自动法误差信息"Then
CommandButton4.Caption ="显示自动法误差信息"
Columns("AR:AY").Hidden = True
Worksheets("馏程-计算").Range("A:E").Show
Else
CommandButton4.Caption ="隐藏自动法误差信息"
Columns("AR:AY").Hidden = False
Worksheets("馏程-计算").Range("AU:AW").Show
End If
对于说明、手册相关内容,只要打开对应的,已预制好的FORM页即可,例如说明部分显示指令:UserForm1.Show.
汇总数据报表见文件的“馏程-打印”页,如图3所示,所需数据自动从“馏程-计算”页中取出. 编制中根据需要控制字符大小,满足一张A4纸大小即可.
所编制的是EXCEL程序,只要点击该程序即可正常启动.
温度计校准之后,新的校准数据需输入到程序的BA8:BE35表格内,每个温度计占其中的7行.
打开相关程序后,首先显示图4所示对话框,输入所用温度计编号,显示在B7单元格中. 按照该温度计编号,将对应的校准数据复制到计算区域,即A51开始的表格. 之后类同输入试样编号和大气压值. 试样编号显示在B5,只有指示和结果打印功能. 大气压值将参与文献[1]10 中的各项计算,并显示在B6格内.
A7格为“输入温度计编号”按钮(见图1),如果在程序运行中有使用的温度计改变,需点击此按钮,输入新的温度计编号,采用新的温度计校准数据,显示同样为如图4的输入框.
对应于各回收百分数,所测得的温度数值手动输入至 B10:C24.
试验数据输入结束后,只要点击“馏程-打印”页,打印结果即可,见图3.
对于编号为1900612的汽油试样,制做了手动计算和所编EXCEL程序计算结果对照表,结果如表2所列. 由表2可见,所编程序符合设计要求.
表2 两种计算方式结果对照Table 2 Comparison of results between two calculation methods
所编程序通过了实验室实样测试结果对照的计算程序准确性核查,结果表明,程序能够自动选择试验所用温度计的校正值,计算结果准确,并将测定结果自动按标准[3]规定修约至0.5 ℃,同时能进行超差判断和结果打印. 该程序使用方便、快速,达到了预期设计要求,起到了减少繁琐的手动计算过程,提高了劳动效率,可以成为相关工作有效的辅助工具.