高柱荣 ,蒋昌茂 ,刘洪林
(1.桂林市利通电子科技有限责任公司,广西 桂林541004;2.桂林师范高等专科学校,广西 桂林541001;3.桂林航天工业学院,广西 桂林541004)
2014 年3 月20 日,国家发改委出台了《关于建立健全居民生活用气阶梯价格制度的指导意见》,该文件决定在全国范围内实行居民阶梯气价政策,将气价分为3 档,根据居民用气量进行分档计价,各档气价实行超额累进加价收费方法。实行阶梯气价后,全国各地居民用气将由一刀切的“1 档气价”计费变为活动的“分档气价”计费,结算周期也将按月份、季度或者年度实施,相邻结算周期具体用气量不累计、不结转[1]。
“分档气价”计费的实行,意味着燃气公司继续使用气量式机械燃气表,员工上门抄表无论在时间还是计量上,都要做得更加精准,否则阶梯气价实施效果不好,同时还会增加供需双方的矛盾[2]。 而气量式IC 卡预付费表, 同样将难以适应新的计量方法要求。 因为气量式IC 卡预付费表采用一次预付费按一档价格购买相应的气量,用完再次充值买气, 无法实现阶梯气价。 而阶梯气价的计价原理,是在一个既定的计时周期内,居民使用不同档次内的天燃气,要付不同的价格。 因此,必须将现行基于“1 档”气量计价的燃气表,改为基于“气量阶梯”金额计价的燃气表,才能满足阶梯气价时代的计量要求。
基于金额式计价的燃气表分为两种:一种是IC卡预付费实时阶梯计费表,另一种是实时计费的物联网表[3]。 物联网表由于受到网络条件、功耗、技术成熟度和价格等条件的制约,目前还不适合大范围推广使用。
本文根据市场的需求,在深入研究阶梯计费算法技术模型的基础上,设计开发了一款具有实时阶梯计费功能的新型智能燃气表——CPU 卡阶梯计费燃气表。
实行居民生活燃气用气阶梯价格计费的基本原则是:对于居民基本生活需求的保障用气,实行相对实惠的较低价格;对超量用户,即超出基本生活用气需求的部分,要适当提高价格,以激励居民节能减排。 计费技术的主要内容有:
(1)分档气量。可根据各地实际用气需求设置为1~5 档,目前的国家指导意见以用气量从小到大的顺序,将居民用气量分为3 档:第1 档,按覆盖区域内80%居民家庭用户的月均用气量确定,体现为居民基本能源需求指标;第2 档,按覆盖区域内95%居民家庭用户的月均用气量确定,体现为改善提高居民生活质量的合理用气需求指标;第3 档,为超出第2 档的用气部分,体现为富足能源需求指标,含过度能源消费需求,需付出较高价格购买[4]。
(2)分档气价。 每个气量分档对应一个气价,各级分档气量价格实行超额累进加价[5]:第1 档,按照基本补偿供气成本的原则确定,并在一定时期内保持相对稳定;第2 档,按照合理补偿成本、取得合理收益的原则制定,价格水平原则上与第1 档气保持1.2 倍左右的比价;第3 档,按照充分体现天然气资源稀缺程度、抑制过度消费的原则制定,价格水平原则上与第1 档气保持1.5 倍左右的比价[6]。
(3)计价周期。阶梯气价一般以月份为一个周期执行,也可以根据各地的实际需要按季度或按年度为周期,用气量在相邻周期之间不累计,不结转。
实行阶梯计费前,居民生活用气的费用由其所使用气量与单一的燃气价格相乘的方法计算,其计费公式为:
其中,C 表示燃气费,单位:元;P 表示燃气价格,单位:元/m3;V 表示用气量,单位:m3。
实行阶梯气价后,在一个计价周期内,将用气量分摊到不同的阶梯计价区间,再计算出最终应缴纳的费用[4-6]。 以3 档阶梯为例,记各计算参量分别为:
第1 档计价区间:[0,V1];
第2 档计价区间:(V1,V2];
第3 档计价区间:(V2,+∞);
第1 档气价:P1,单位为元;
第2 档气价:P2,单位为元;
第3 档气价:P3,单位为元;
计价周期内用气量:Vg,单位为m3;
应缴纳燃气费:Cg,单位为元。
其 中,V1为 第1 档 用 气 量,V2为 第2 档 用 气量,单位为m3。
分析本周期内的用气量Vg所属的区间,将其分摊后再计算:
当0≤Vg≤V1时,即Vg处于第1 档计价区间:
当V1<Vg≤V2时,即Vg处于第2 档计价区间:
当V2<Vg时,即Vg处于第3 档计价区间:
通过CPU 卡把阶梯计费方案设置到燃气表内,燃气表在用气过程中按用气量实时计费。 计费方案包括以下数据项:
(1)启动日期和结束日期
燃气表内实时时钟的时间在启动日期和结束日期之间时,把该方案作为当前计费方案。
(2)阶梯分档数
可设置为1~5 档阶梯数。
(3)计价周期
可设置为自然月份周期、季度周期、年度周期三种。
(4)分档气量
把气量按从小到大的顺序,最多分5 档:[0,V1],(V1,V2],(V2,V3],(V3,V4],(V4,+∞)。
(5)分档气价
与分档气量对应,最多分档气价:P1,P2,P3,P4,P5。
燃气表内可配置两套计费方案,分别是方案A和方案B,两套方案的有效期(启动日期到结束日期)不允许有重叠,且需衔接,同一时刻仅能有一套计费方案有效。
燃气表内时钟每天从23:59:59 跳变到00:00:00时,或通过用户卡及设置卡修改计费方案时,燃气表自检是否需要切换到另一计费方案,如不符合切换条件则自检是否要开始下一个计费周期。
CPU 卡阶梯计费燃气表的整个应用系统,由计算机表务管理信息系统、CPU 卡和智能燃气表三大部分组成,如图1 所示。
图1 应用系统的组成
(1)表务管理信息系统:主要包括用户管理、燃气表管理、卡务管理、充值收费、阶梯计费方案管理、密钥分发管理、统计报表等功能。
(2)CPU 卡:作为表务管理信息系统与智能燃气表之间安全交换数据的媒介,一台燃气表配备一张卡。
(3)智能燃气表:由电子控制器模块和计量基表(机械计量表)两部分组成,其中,电子控制器模块是本文的研究重点。
燃气运营公司给用户安装好燃气表之后,用户到燃气公司申请开通燃气。 首先在表务管理信息系统中建立用户档案和燃气表档案,开户制卡,充值,即把预付费直接以金额形式写入CPU 卡,同时也将阶梯计费方案及其他控制参量一并写入CPU 卡。用户将已充值的CPU 卡带回家插入燃气表,燃气表通过安全认证等方式,验证卡的合法性后,将卡内数据读入到表内,同时把卡内的充值金额清零,燃气表打开阀门供气。 用气过程中,燃气表按照表内的阶梯计费方案把用气量实时换算成金额,对表内的剩余金额进行扣减。 当表内的剩余金额不足时,通过LCD 显示和蜂鸣器声音提示, 提醒用户余额不足,尽快去充值;当剩余金额被扣减为零时,燃气表关闭阀门,停止供气,此时,用户只有去购气充值才能恢复供气。
CPU 卡阶梯计费燃气表作为一种先进的新型智能计量仪表,应当具有但不止于以下功能:
(1)燃气计量功能:燃气计量是燃气表的本质性功能,在燃气的使用过程中,基表的计数器字轮转动计数,而安装在计数器上的干簧管则将机械转动转换成脉冲式电信号,实现燃气计量。
(2)阶梯计费功能:阶梯计费方案最多可设置5档阶梯,计费周期可设置月份、季度或年度,燃气表按设置好的阶梯计费方案,实现表内阶梯计费。
(3)预付费功能:在使用燃气之前,需先拿CPU卡到营业厅购气充值,之后,把已充值的CPU 卡带回家插入燃气表, 卡内的充值金额输入到燃气表中,燃气表将打开阀门开通气源。
(4)CPU 卡读写及安全认证功能:通过CPU 卡读写接口,实现CPU 卡与燃气表之间的数据交换,完成充值、查询、设置、校时等操作。 每次数据交换前,都必须通过CPU 卡与表内ESAM 安全模块之间的内部认证和外部认证,以确保数据传输的安全可靠。
(5)阀门控制功能:也就是实现阀门的关闭或开启。当燃气表剩余金额为零、掉电、故障或外部磁干扰等事件发生时将阀门关闭,暂停用户用气;当燃气表的故障排除后,满足开阀条件时打开阀门,即正常情况下阀门处于开启状态。
(6)显示功能:正常情况下LCD 屏幕显示表内剩余金额和当前表的运行状态(阀门、欠压、故障等),反向插卡,LCD 分屏依次显示累积使用金额、系统日期时间、第1 阶梯用气量、第1 阶梯气价、……,等等。
(7)声音告警功能:燃气表执行完某一操作(包括成功或失败),或某一表事件的发生,通过蜂鸣器鸣响提示给用户。
(8)低电检测功能:定期检测电源电压,当电源电压不足或电池被取出时,通过LCD 显示和蜂鸣器声音告警提示用户更换电池,同时燃气表进入掉电处理模式,关闭阀门停止供气。
(9)掉电数据保护功能:在电源掉电或低电的情况下,保证运行数据完整无误地保存到ESAM 模块或EEPROM 中,系统复位后,能重新读出数据继续运行。
CPU 卡阶梯计费燃气表以IC 卡技术为基础,采用CPU 卡作为燃气表与计算机表务管理系统之间唯一的数据信息交换传递媒介,表内使用嵌入式安全控制模块(Embedded Secure Access Module,ESAM)存储应用数据信息,同时负责与CPU 卡进行相互安全认证,确保交换数据的安全[7]。 本方案以高性能与超低能耗完美平衡的单片机STM32L073RZ 作为主控MCU,主要功能模块包括CPU 卡模块、ESAM 模块、LCD 显示模块、实时时钟模块、电源及电压检测模块、阀门控制模块、计量基表、脉冲计量模块、蜂鸣器模块等。 系统硬件结构如图2 所示。
图2 硬件结构
脉冲计量模块以干簧管作为传感器,采用中断的方式检测用气量,并把用气量实时换算成金额计费。LCD 为液晶显示模块,主要用来显示剩余金额、累积使用金额、累积使用气量、阶梯分档气量、阶梯分档气价、阀门状态、电池状态、故障代码、日期和时间等信息。 电源及电压检测模块的作用一方面是作为供电电源,提供稳定的电压,使MCU 和各个模块正常工作; 另一方面是MCU 对电池电压进行间隙性监测,当电池电压低到报警电压时,MCU 通过蜂鸣器鸣响和LCD 显示提醒用户更换电池。 阀门控制模块主要是由MCU 控制燃气表阀门的打开和关闭,当电池电压过低或者剩余金额不足时,将阀门关闭。
CPU 卡阶梯计费燃气表的控制系统软件,可划分为主程序、中断服务程序和功能模块子程序三个组成部分,采用模块化方法进行设计,由不同的子程序来完成不同的功能。 考虑到C 语言在研发效率、可读性、可维护性和可移植方面远优越于汇编语言,本系统使用C 语言开发,开发平台为Keil MDK-ARM。
中断操作包括插卡中断、干簧管计量中断、磁干扰中断、定时器中断等,中断服务程序仅做一些简单的条件判断和标志中断事件的发生。 子程序功能模块则根据系统的功能需求,主要分为定时操作模块、ISO7816 接口函数模块、应用卡处理模块、脉冲计量模块、数据存储模块、剩余金额检测模块、显示模块、蜂鸣器报警模块、阀门控制模块、电池电压检测模块和掉电模式处理模块等。
单片机上电复位后,主程序先完成初始化和自检操作,再进入主循环操作。在主循环里,按顺序逐个扫描中断事件及其他事务的处理任务标志,若有任务发生则调用对应的子程序进行处理,处理完之后回到主循环里,再继续扫描其后的其他任务标志,最后进入休眠低功耗状态,等待下一次中断唤醒。被中断唤醒后同样又在大循环里扫描一遍,之后再进入休眠。 图3 是控制系统软件主程序的流程图。
计量及计费的准确可靠是对燃气表的基本要求,可按以下方法验证测试阶梯计费方案的准确性。
(1)设置阶梯计费方案为1 档,即单一气价计费,气价设置为1.00 元,每一个脉冲当量(0.01 m3)相当于0.01 元,使气量与金额数值同步变化,方便比对。 按较慢均速、标称均速、较快均速、变速让燃气表走气100 m3以上,燃气表的电子计量值应该与计数轮的计量值一致,没有漏计数或多计数。
(2)设置阶梯计费方案为2 ~5 档,每个分档气量和分档气价也各不相同,让燃气表走气,观察用气量和金额的换算是否符合计费方案的要求,计费周期结束后能否顺利开始下一个周期。
(3)阶梯计费方案的结束日期到达后,能否顺利切换到另一计费方案。 CPU 卡修改计费方案后,能否按设定日期启用新方案。
本课题项目产品在国内某市的一个片区安装使用了3 000 多台,按月3 阶梯计费,每个自然月份为一个计价周期。 月用气量在30 m3以内为第1 阶梯,价格为3.30 元/m3;月用气量在30 m3~50 m3之间的为第2 阶梯,气价为3.96 元/m3;而大于50 m3部分属于第3 阶梯,气价为4.95 元/m3。 按此方案运行了1 年之后,核算其运行数据,并与另一片区使用单一气价(3.30 元/m3)计费的用户进行比较,发现在春夏秋三季每户平均用气费用大致相等,而在冬季,由于每户用气量普遍超过1 阶气量,阶梯计费用户的平均用气费用则略微高出15%左右,这个结果基本符合阶梯计费的设计目标。
图3 主程序流程
然而,在阶梯计费运行了一年多时间之后,燃气价格下调了6%,而许多用户在调价时并没有及时购气,没有把最新的计费方案通过用户购气卡更新到燃气表中,造成了用户享受降价的滞后性。 通过使用年度作为计价周期、限制每次购气的最大金额和提前几个月配置新计费方案的办法,可解决调价的及时性问题。
本文根据市场对燃气阶梯计费仪表的需求,主要研究燃气阶梯计费的技术模型,提出了一种采用表内双计费方案的设计方法,在此基础上,完成了CPU 卡阶梯计费燃气表的开发设计和计费测试分析等工作。 该课题项目的产品已投放市场得到了实际应用。