唐 晨 趙 偉 吳 璟 封亞輝
(南京海關(guān)工業(yè)產(chǎn)品檢測中心 江蘇南京 210019)
海關(guān)是進(jìn)出口商品監(jiān)管機(jī)構(gòu),為深入貫徹落實(shí)國務(wù)院“放管服”改革要求,進(jìn)一步優(yōu)化口岸營商環(huán)境,提高貿(mào)易便利化水平,海關(guān)總署于2019 年發(fā)布了159 號公告[1],對進(jìn)口大宗商品重量鑒定監(jiān)管方式進(jìn)行優(yōu)化,進(jìn)口大宗商品收貨人或者代理人需要向海關(guān)申請實(shí)施重量鑒定并出具重量證書,不申請海關(guān)重量鑒定的,必要時海關(guān)依據(jù)職權(quán)實(shí)施鑒定或抽查驗(yàn)證。首先,企業(yè)可委托獲得海關(guān)許可的進(jìn)出口商品檢驗(yàn)鑒定機(jī)構(gòu)(以下簡稱鑒定機(jī)構(gòu))實(shí)施重量鑒定,海關(guān)依據(jù)需要核驗(yàn)鑒定機(jī)構(gòu)的鑒定結(jié)果,但是由于客觀原因,海關(guān)關(guān)員無法及時查閱到原始的岸罐檢定容量數(shù)據(jù),無法判斷數(shù)值是否準(zhǔn)確無誤。 其次,海關(guān)對鑒定機(jī)構(gòu)負(fù)有監(jiān)管職權(quán),但在日常監(jiān)管中又缺乏有效便捷的手段,不能實(shí)時了解鑒定機(jī)構(gòu)日常鑒定活動,月度年度鑒定業(yè)務(wù)情況獲取嚴(yán)重滯后,若第三方采信完全開展,亟需一個鑒定監(jiān)管系統(tǒng)為海關(guān)第三方機(jī)構(gòu)日常管理提供技術(shù)支撐,岸罐計(jì)重的智能驗(yàn)核會成為該系統(tǒng)的重要模塊之一。
岸罐計(jì)重,全稱為岸上立式金屬罐靜態(tài)計(jì)重。是容器計(jì)重的一種表現(xiàn)形式,以檢定合格的岸罐自身作為計(jì)量容器岸罐計(jì)重普遍采用手工檢尺的方法,首先需要測量罐內(nèi)液貨的液位高度,其次測量罐內(nèi)液貨平均溫度,必要時還需測量罐外大氣溫度,而后獲取液貨實(shí)驗(yàn)室測得的密度及測定溫度,最后結(jié)合容量表及液貨理化參數(shù)計(jì)算出罐內(nèi)液貨重量。
由于整個計(jì)算過程涉及的數(shù)據(jù)量大且過于煩瑣,人工計(jì)算易出錯,人工復(fù)核較困難。 本文充分研究了岸上立式金屬罐靜態(tài)計(jì)重標(biāo)準(zhǔn)SN/T 2389.2《進(jìn)出口商品容器計(jì)重規(guī)程 第2 部分:動植物油岸上立式金屬罐靜態(tài)計(jì)重》[2]、SN/T 2389.5《進(jìn)出口商品容器計(jì)重規(guī)程 石油岸上立式金屬罐靜態(tài)計(jì)重》[3]、SN/T 2389.11《進(jìn)出口商品容器計(jì)重規(guī)程 第11 部分:液體化工品岸上立式金屬罐靜態(tài)計(jì)重》[4]、SN/T 2389.16《進(jìn)出口商品容器計(jì)重規(guī)程 第16 部分:岸上立式金屬罐靜態(tài)計(jì)重通則》[5]以及GB/T 1885—1998《石油計(jì)量表》[6],歸納總結(jié)了計(jì)重標(biāo)準(zhǔn)和方法的共同點(diǎn)與不同點(diǎn),設(shè)計(jì)了一張通用的EXCEL 表單,通過VAB(Visual Basic for Applications)宏語言擴(kuò)展Microsoft Excel 應(yīng)用程序[7],實(shí)現(xiàn)了條件選擇及代碼組合,同時滿足動植物油脂、液體化工品、石油產(chǎn)品的計(jì)算需求。
深入研究SN/T 2389 系列標(biāo)準(zhǔn)中有關(guān)岸罐計(jì)重的內(nèi)容后發(fā)現(xiàn),不同貨物類別既有共同點(diǎn),又有差異性。 共同點(diǎn)表現(xiàn)在對同一個岸罐檢定機(jī)構(gòu)出具的容量表,查表過程和各種修正過程相同。差異性表現(xiàn)在修正后容量VT計(jì)算重量的過程,如石油產(chǎn)品使用VCF修正法,先在GB/T 1885—1998 表60 中查出液溫T時對應(yīng)的VCF 修正值,再將VT乘以該值,計(jì)算得到V20℃,最后帶入20℃標(biāo)準(zhǔn)密度求得重量;對于動植物油脂,則使用密度修正法,先查出油脂密度溫度變化系數(shù)γ,再用該值將實(shí)驗(yàn)室測定的T0溫度時的密度ρ0修正到液溫T 時ρT,而后在VT求得重量;對于液體化工品,可以使用密度修正法,過程同植物油脂,也可以使用體積修正法,先查出體積溫度變化系數(shù)f,再用該值將VT修正到密度測定溫度時的體積,再帶入密度求得重量。根據(jù)上述異同點(diǎn),歸納總結(jié)繪制出岸罐計(jì)重一般流程圖(圖1),圖中含有底色的為原始輸入數(shù)值。對于一些含有底水的貨物,應(yīng)在計(jì)算過程中扣除底水容量或重量,對于含有浮頂?shù)陌豆?,最終的重量結(jié)果中應(yīng)扣除浮頂重量。
本表單集成了以下6 個主要功能模塊代碼:視容量自動查找計(jì)算、油品視密度反推查找計(jì)算、油品VCF 值查找計(jì)算、液貨密度溫度變化系數(shù)查找、液貨體積溫度變化系數(shù)查找、方法選擇計(jì)算。
圖1 岸罐計(jì)重一般流程圖
針對液貨產(chǎn)品設(shè)計(jì)了如圖2 的表單,含灰色底紋的單元格是需要填寫原始數(shù)值和需要選擇的計(jì)算方法參數(shù),含密點(diǎn)底紋的單元格是經(jīng)過代碼計(jì)算回寫至表單的計(jì)算值和參數(shù)。貨物名稱、罐區(qū)、罐號、岸罐類別、計(jì)算方法欄中使用了嚴(yán)格的序列選擇,以確保序列中文字與代碼中判別條件保持一致, 目前正在考慮使用ActiveX 控件實(shí)現(xiàn)罐區(qū)、罐號聯(lián)動。
圖2 岸罐計(jì)重智能計(jì)算表單
基礎(chǔ)數(shù)據(jù)包括不同岸罐的鑒定容量數(shù)據(jù)、成品油標(biāo)準(zhǔn)密度表59B、成品油體積修正系數(shù)表60B、液體化工品密度溫度變化系數(shù)及體積溫度變化系數(shù)表等。 以上數(shù)據(jù)需建立獨(dú)立的EXCEL 文件,并按照一定的規(guī)則命名文件,并存儲在相對固定的文件夾下,如計(jì)算表單所在文件夾下的“數(shù)據(jù)庫”文件夾內(nèi)。 岸罐的鑒定容量數(shù)據(jù)應(yīng)在EXCEL 中劃定固定的存放區(qū)域,如岸罐屬性參數(shù)區(qū)域、分米容量值區(qū)域、厘米毫米容量值區(qū)域、靜壓力修正容量值區(qū)域,以方便代碼在此區(qū)域內(nèi)調(diào)用查找。
為了實(shí)現(xiàn)條件判別選擇,并盡量避免代碼過于冗長,將整個計(jì)算判別過程切分成多個模塊,利用模塊間的相互依存關(guān)系,使用Call 語句調(diào)用對應(yīng)的模塊。采用模塊設(shè)計(jì)易于修正,當(dāng)某個模塊代碼執(zhí)行過程中出現(xiàn)特殊情況下的BUG 時,易于在該模塊中調(diào)試查找BUG 原因并修訂,無需對整個代碼檢查修正,避免牽一發(fā)動全身,詳見表1。
表1 各模塊名稱和功能
在執(zhí)行計(jì)算代碼前,應(yīng)先定義數(shù)值存儲的變量,有些變量是需要作用于整個代碼區(qū)域,應(yīng)提前使用“Public”語句聲明全局變量,有些則是子代碼中的過程計(jì)算變量,在代碼中聲明賦值。
在運(yùn)行智能計(jì)算代碼時,首先是讀取表單中填入的原始數(shù)值,使用“變量 = ThisWorkbook.Sheets(1).Cells(行指引,列指引)”語句,給全局變量賦值。 當(dāng)完成某項(xiàng)計(jì)算, 需要將數(shù)值寫入表單中時, 使用“ThisWorkbook.Sheets (1).Cells-(行指引, 列指引) =全局變量”語句。 行指引為表單中數(shù)值所在的行號,列指引為表單中數(shù)值所在的列號, 如前尺液位高度為Cells(8,3),由表單可以看出,前尺數(shù)據(jù)的列號都為3,后尺數(shù)據(jù)列號都為5,執(zhí)行的所有計(jì)算過程完全相同, 因此只需要編寫一套含有列指引全局變量x 的代碼,先賦值x=3 執(zhí)行代碼,再賦值x=5 執(zhí)行相同代碼,如下:
此方法減少了前后兩次編寫同類型的代碼,有效避免代碼過于冗長,更方便代碼維護(hù)和修改。
使用VBA 中“Workbooks.Open(FilePath)”語句,打開需要調(diào)用的基礎(chǔ)數(shù)據(jù)文件,使用“ActiveWorkbook.Sheets(1).Select”語句選擇并激活存放基礎(chǔ)數(shù)值的表單。 利用循環(huán)語句+條件判斷語句, 依次判別Cells中的數(shù)值是否是所需要的,若是,則將所需的數(shù)值賦值給對應(yīng)的變量,跳出本循環(huán)語句或本模塊,繼續(xù)執(zhí)行后續(xù)代碼。
以靜壓力修正容量查找計(jì)算為例, 靜壓力修正容量表呈現(xiàn)形式如表2 所示,查找代碼如下:
假定液位高度為4.532 m,根據(jù)靜壓力查表計(jì)算方法,需要找到4.5 m 和4.6 m 端點(diǎn)處對應(yīng)的數(shù)值,再通過內(nèi)插法計(jì)算出4.532 m 處的靜壓力容量值。使用“Do 循環(huán)”語句,聲明行指引i,利用if 語句判別Cells(i, 1)是否等于米刻度數(shù)值4,若是,則將i 值賦值給行指引變量Index_Row,并結(jié)束“Do 循環(huán)”,若否且cells(i, 1)不為空值,則再次執(zhí)行Do 語句,此時i 遞增1 直至Index_Row 被賦值。 然后更改if 語句判別式,用同樣的方式,賦值變量Index_Column。 進(jìn)代碼運(yùn)算, 最終Index_Row = 6,Index_Column =7,4.5m 對應(yīng)的Cells (Index_Row, Index_Column) =866,4.6m 對應(yīng)的Cells(Index_Row, Index_Column +1) = 905,通過內(nèi)插法計(jì)算得到4.532 m 對應(yīng)的靜壓力修正容量修約后為878 L。 考慮到當(dāng)Index_Column = 11 時,Cells(Index_Row, Index_Column +1)為空值,因此又加入了if 判別式,取Cells(Index_Row + 1, 2)端點(diǎn)值。
表2 靜壓力修正容量表(部分)
液位高度容量、油品VCF 修正值、油品當(dāng)前液溫下密度、密度溫度變化系數(shù)、體積溫度變化系數(shù)也都采用上述類似結(jié)構(gòu)的代碼形式。 完成基礎(chǔ)數(shù)據(jù)表單的調(diào)用計(jì)算后,使用“ActiveWorkbook.Close Save Changes:=False”語句關(guān)閉表單。
為了使代碼編寫更加簡單方便, 暫時沒有編寫代碼使之能夠通過所填貨物名稱自動選擇方法,在執(zhí)行運(yùn)算前,在原始數(shù)據(jù)錄入時,需要人為選定該貨物適用的重量計(jì)算方法, 即在表單計(jì)算方法欄中下拉選擇,使用“if…then…elseif…then…else”語句判別選中的方法,執(zhí)行對應(yīng)的模塊,此舉可大大降低編碼難度。
在代碼中增加了液溫高度異常輸入值判定,以提高代碼整體流暢性和適用性,如液溫高度超出岸罐計(jì)量最大范圍時,終止執(zhí)行后續(xù)代碼,并給出對應(yīng)的信息提示框,提醒檢查輸入數(shù)值是否真確;當(dāng)液位高度出于浮頂起浮不可計(jì)量高度范圍內(nèi),終止執(zhí)行后續(xù)代碼,并給出對應(yīng)的信息提示框;液溫高度為0時,直接返寫重量結(jié)果為0。
在油品岸罐計(jì)重靜壓力容量修正時,依據(jù)標(biāo)準(zhǔn)和岸罐檢定使用要求,實(shí)際靜壓力修正容量值應(yīng)使用液體實(shí)際密度進(jìn)行修正如公式(1):
其中,ΔVp—實(shí)際靜壓力修正容量;ΔVs—以4℃時水的密度編制的靜壓力修正容量值;—液體在t℃時的密度與水在4℃時密度的比值。
然而,在現(xiàn)場條件下很難測定當(dāng)前液溫下密度,而實(shí)驗(yàn)室測定又費(fèi)時費(fèi)力,不能及時給出檢測值,因此考慮使用油品在20℃時的標(biāo)準(zhǔn)密度,利用成品油標(biāo)準(zhǔn)密度表59B,編寫代碼反向推算當(dāng)前液溫下密度,實(shí)現(xiàn)了密度數(shù)值的及時獲取。
經(jīng)測試,本研究設(shè)計(jì)的表單能夠滿足石油產(chǎn)品、動植物油脂、液體化工品岸罐計(jì)重使用要求,代碼運(yùn)算流暢,單次執(zhí)行平均用時1~2 s,與人工查表計(jì)算相比,效率明顯增加,并有效避免了人為的、不經(jīng)過嚴(yán)苛的內(nèi)插計(jì)算,使用相近值的情況,減小計(jì)算誤差,更能夠避免人為計(jì)算錯誤;集成了3 種類別貨物的計(jì)算方法,適用性更強(qiáng),基礎(chǔ)數(shù)據(jù)文件管理和維護(hù)更加簡單便捷,避免了每個品種單獨(dú)創(chuàng)建計(jì)算表單以及文件管理上的混亂;運(yùn)算代碼采用模塊組合,易于維護(hù)和修正。
本研究基于常規(guī)EXCEL 軟件,從事該項(xiàng)工作的檢驗(yàn)鑒定人員或機(jī)構(gòu)都可以根據(jù)本思路建立適用于自身工作情形的計(jì)算表單。 本研究還為海關(guān)檢驗(yàn)鑒定活動在線監(jiān)管系統(tǒng)提供了思路,以海關(guān)監(jiān)管為紐帶,開發(fā)Web 網(wǎng)頁版和App 版等在線系統(tǒng),實(shí)現(xiàn)多平臺使用,由岸罐所屬方維護(hù)容量表數(shù)據(jù),賦予進(jìn)出口檢驗(yàn)鑒定機(jī)構(gòu)和人員一定的使用權(quán)限,海關(guān)可以第一時間了解貨物鑒定相關(guān)結(jié)果,并為海關(guān)信息化建設(shè)添磚加瓦。
本研究目前不足之處主要表現(xiàn)在基礎(chǔ)數(shù)據(jù)不夠完善,成品油標(biāo)準(zhǔn)密度表59B 和成品油體積修正系數(shù)表60B 數(shù)據(jù)龐大,目前只維護(hù)了部分?jǐn)?shù)據(jù),鑒定容量數(shù)據(jù)也只維護(hù)了少量試驗(yàn)用岸罐容量數(shù)據(jù),液體化工品密度溫度變化系數(shù)及體積溫度變化系數(shù)也只維護(hù)了常見的十幾種貨物。因此,全面的推廣和使用還需要聯(lián)合多方共同參與,花時間和精力做好基礎(chǔ)數(shù)據(jù)的維護(hù)工作。此外還需繼續(xù)完善表單,減少原始參數(shù)填入不規(guī)范造成的運(yùn)行BUG。