知識ベース

メーターポイント管理番号

メーターポイント管理番号MPANサプライ番号、またはS 番号とも呼ばれる)は、英国で個々の住宅などの電力供給ポイントを一意に識別するために使用される21桁の参照です。ガス相当量は、メーターポイント参照番号です。このシステムは、電力会社に競争環境を提供するために1998年に導入され、消費者が管理を簡素化するだけでなく、サプライヤを簡単に切り替えることができるようにします。この名前は、MPANが特定のメーターを指すことを示唆していますが、MPANには複数のメーターを関連付けることができます。ネットワークオペレーター(DNO)から電力を受け取る電源にはインポートMPANがあり、DNOネットワークにフィードバックする生成およびマイクロジェネレーションプロジェクトにはエクスポートMPANが与えられます。

構造

MPANは通常、コアデータとトップラインデータの2つのセクションに分かれています。コアは最後の13桁であり、一意の識別子です。トップラインのデータは、供給の特性に関する情報を提供し、サプライヤの責任です。

完全なMPANは、電気代に記載する必要があります(一番上の行と一番下の行のボックスは、一般的に整列していません)。

コアデータは2行目にあり、補足データは1行目にあります。

プロファイルクラス(PC)

完全なMPANの最初の2桁は、そのプロファイルクラスを反映しています。

00 30分ごとの供給(インポートおよびエクスポート)
01 国内の無制限
02 2つ以上のレートの国内経済メーター
03 国内の無制限
04 非国内経済7
05 非国内、最大需要(MD)記録機能、および20%以下の負荷係数(LF)
06 非国内、MD録音機能、およびLFが30%以下および20%を超えるもの
07 非国内、MD記録機能、およびLFが40%以下および30%を超えるもの
08 非国内、MD記録機能、およびLFが40%を超える(30分単位でエクスポートされないすべてのMSIDも)

プロファイルクラス00の供給は30分ごと(HH)に測定されます。つまり、毎日30分ごとに電力消費を記録し、他のプロファイルクラスの供給は30分ごと(NHH)に測定されます。次の場合、NHH供給をHHにアップグレードする必要があります。

次のいずれかの、最も需要の高い3か月間の月間最大電力需要の平均が得られる任意のメータリングシステム。過去12か月。またはb。需要の最新の重要な変化(いずれか短い方)からの期間

100kWを超えています。

HHデータはメーターによって記録され、オンサイトダウンロード、またはGSM、SMS、GPRS、電話回線などのリモート通信方法によって収集されます。

国内NHHインポートMPANのプロファイルクラスは常に01または02です。国内NHHエクスポートMPANには、プロファイルクラス08が割り当てられます。

メータータイムスイッチコード(MTC)

MTCは3桁のコードで、メーターが持つ可能性のあるさまざまなレジスターを反映します。たとえば、単一レート、昼/夜のスプリット、季節の時刻などです。

001〜399 DNO固有
400〜499 予約済み
500〜509 関連する計量システムのコード-業界全体で共通
510〜799 関連する計量システムのコード– DNO固有
800〜999 業界共通のコード

回線損失係数クラス(LLFC)

Line Loss Factor ClassまたはLLFCは、MPANの関連するシステムの使用分配(DUoS)料金を識別するために使用されます。この図は、出口点に供給するために使用される配電インフラストラクチャの量と、ケーブル、変圧器などの加熱によって失われるエネルギー量の両方を反映しています。

コア

MPANコアは、MPANの最後の13桁であり、出口点を一意に識別します。これは、2桁のディストリビューターID、8桁の一意の識別子、2つの数字および1つのチェックディジットで構成されます。

ディストリビューターID

イギリスは14の流通エリアに分かれています。地域ごとに、配電ネットワーク事業者である単一の会社が電力を配給するライセンスを持っています。これらは、電力がナショナルグリッドから顧客がいる出口ポイント(それぞれが固有のMPANと数メートルの可能性を持っている)に効果的に運びます。配電ネットワークの所有者は、ネットワークで電気を運ぶために電力供給業者に請求します。 DNO認可地域は、以前の国有化された電力委員会と同じ地理的地域です。

ID 名前オペレーター電話番号市場参加者ID GSPグループID
10 東イングランド英国電力ネットワーク 0800 029 4285 EELC _A
11 イーストミッドランド西部配電 0800 096 3080 EMEB _B
12 ロンドン英国電力ネットワーク 0800 029 4285 ロンドン _C
13 マージーサイドと北ウェールズ SP Energy Networks 0330 10 10 444 MANW _D
14 ウェストミッドランズ西部配電 0800 096 3080 ミッド _E
15 北東イングランドノーザンパワーグリッド 0800 011 3332 NEEB _F
16 北西イングランド北西電力 0800 048 1820 ノルウェー _G
17 北スコットランド Scottish&Southern Electricity Networks 0800 048 3516 HYDE _P
18 南スコットランド SP Energy Networks 0330 10 10 444 スポウ _N
19 南東イングランド英国電力ネットワーク 0800 029 4285 シーブ _J
20 イングランド南部 Scottish&Southern Electricity Networks 0800 048 3516 _H
21 ウェールズ南部西部配電 0800 096 3080 SWAE _K
22 南西イングランド西部配電 0800 096 3080 SWEB _L
23 ヨークシャーノーザンパワーグリッド 0800 011 3332 YELG _M

特定の地理的エリアのライセンスを取得している上記の流通ネットワークオペレーターに加えて、独立した流通ネットワークオペレーター(IDNO)もあります。これらは、主に既存の配電ネットワークに接続されたネットワーク拡張機能である配電ネットワークを所有および運用します。

スコットランド水力配電は、IDNOとして南スコットランドでも配電サービスを提供しており、南部配電は他のすべてのイングランドおよびウェールズ地域でIDNOサービスを提供しています。他のIDNOには「ベース」エリアがありません。

ID 名前ライセンシー市場参加者ID
24 GTC 独立した電力ネットワーク IPNL
25 ESP電気 ESP電気レン
26 エネルギー論 Global Utilities Connections(Electric)Ltd GUCL
27 GTC The Electricity Network Company Ltd ETCL
28 EDF IDNO UK Power Networks(IDNO)Ltd EDFI
29 Harlaxton Energy Networks Ltd ハル
30 Peel Electricity Networks Ltd ペン
31 英国配電株式会社 UKPD
32 UDN ユーティリティディストリビューションネットワークス株式会社 UDNL
35 フィール Fulcrum Electricity Assets Ltd フィール
チェックデジット

MPANの最後の数字はチェックディジットであり、モジュラス11テストを使用して前の12(コア)を検証します。チェックディジットは次のように計算されます。

  1. 最初の数字に3を掛けます
  2. 2番目の数字に次の素数(5)を掛ける
  3. 数字ごとにこれを繰り返します(このアルゴリズムの目的のために、素数のリストに11がありません)
  4. これらすべての製品を合計する
  5. チェックディジットは、11を法とする10を法とする合計です。
MPAN検証の例
Javaのアルゴリズムは次のとおりです。
int checkDigit(String toCheck){int primes = {3、5、7、13、17、19、23、29、31、37、41、43}; int sum = 0; for(int i = 0; i primes.length; i ++){sum + = Character.getNumericValue(toCheck.charAt(i))* primes; }合計を返す%11%10; }

Matlabで:

function check = checkdigits(MPANCore)%MPANCoreは、13桁の文字列のセル配列です。 %Checkは、MPANCoreと同じサイズのブールベクトルです。 %(0.05秒で100,000 MPANs)core = double(char(MPANCore) ')-48; c = core(1:12、:); p = '* ones(1、size(c、2)); m = mod(mod(sum(p。* c)、11)、10); k = core(13、:); check = m == k;

Pascal / Delphiの場合:

function CheckDigit(MPANCore:Byteの配列):整数; const Primes:バイトの配列=(3、5、7、13、13、17、19、23、29、31、37、41、43); var i:整数; begin Result:= 0; for i:= 0〜11 do Result:= Result +(MPANCore * Primes);結果:=結果mod 11 mod 10;終わり;

Rubyの場合:

#ここで、mpanは文字列def check_digit(mpan)primes =(0..11).inject(0){| sum、n | sum +(mpan.to_i * primes)}%11%10 end

Visual Basicの場合:

Public Function mpancheck(mpan As String)As Boolean 'Michael Diarmid(EDF)' Updated 04/08/2010 MD 'MPANが有効な場合にTrue / Falseを返すOn Error GoTo inval Dim c As Variant、sum As Integer、i as Byte c = Array(0、3、5、7、13、17、19、23、29、31、37、41、43)i = 1から12の場合sum = sum +(Mid(mpan、i、1)* c (i))Next i If Right(mpan、1)=((sum Mod 11)Mod 10)Then mpancheck = True Else inval:mpancheck = False End If End Function

VisualBasic.Net 2010の場合:

Public Function mpancheck(mpan As String)As Boolean 'Michael Diarmid(EDF)' Updated 04/08/2010 MD 'MPANが有効な場合にTrue / Falseを返す' VB 2010 On TMB Huckin(16/03/2012)On Error GoTo inval Dim c As Object、sum As Integer c = New List(Of Integer)From {0、3、5、7、13、17、19、23、29、31、37、41、43} For i = 1 12合計= sum +(Mid(mpan、i、1)* c(i))Next i If sRight(mpan、1)=((sum Mod 11)Mod 10)Then True True Else inval:Return False End If End Function Public Function sRight(sSTRING As String、iLEN As Integer)As String Dim sRET As String = "" Try If iLEN> = Len(sSTRING)Then sRET = sSTRING End If sRET = Mid(sSTRING、Len(sSTRING)-( iLEN-1)、iLEN)例外としてキャッチex sRET = "" End Try Return Return sRET End関数

またはVB.Net 2010、VB6互換性ライブラリの使用を回避:

'' 'summary>' '' MPAN番号を検証する '' '/ summary>' '' param name = "mpan">チェックディジットを含むMPAN番号の少なくとも13桁 '' '文字列として表現されます/ param> '' 'returns>有効な場合はtrue、そうでない場合はfalse / returns>' '' remarks> Martin Milan、2012年5月、VB6互換性ライブラリの使用を避け、.Net 4.0クライアント用Profile / remarks> Public Function MPANIsValid(mpan As String)As Boolean '初期条件を設定します。 Dim validationResult As Boolean = False If mpan.Length> 12 Then 'チェックディジットを整数変数に読み込みます。 Dim intCheckDigit As Integer If Integer.TryParse(mpan.Substring(mpan.Length-1)、intCheckDigit)Then Dim strTest As String = mpan.Substring(mpan.Length-13,12)Dim intPrimes()As Integer = {3、 5、7、13、17、19、23、29、31、37、41、43} Dim productTotal As Integer = 0 Dim blnError As Boolean = False For i As Integer = 0 to 11 Step 1 Dim intTestDigit As Integer If Integer .TryParse(mpan.Substring(i、1)、intTestDigit)Then productTotal + =(intTestDigit * intPrimes(i))Else blnError = True End For Next If Next If Not blnError Then validationResult =((productTotal Mod 11 Mod 10)= intCheckDigit)Else validationResult = False '解析エラーのため。終了の場合終了の場合終了の場合validationResult終了関数

C#の場合:

1 /// summary> 2 /// MPAN番号を検証する3 /// / summary> 4 /// param name = "mpan">チェックディジットを含む、MPAN番号の少なくとも最後の13桁、5 ///文字列として表されます/ param> 6 /// returns>有効な場合はtrue、そうでない場合はfalse / returns> 7 /// remarks> .Net 4.0クライアント用に2012年5月にMartin Milanが作成プロファイル/ remarks> 8 public static bool MPANIsValid(string mpan)9 {10 11 //初期条件を設定します。 12 bool validationResult = false; 13 14 if(mpan.Length> 12){15 16 //チェックディジットを整数変数に読み込みます。 17 int intCheckDigit = 0; 18 if(int.TryParse(mpan.Substring(mpan.Length-1)、out intCheckDigit)){19 20 string strTest = mpan.Substring(mpan.Length-13、12); 21 int intPrimes = {3、5、7、13、13、17、19、23、29、31、37、41、43}; 22 int productTotal = 0; 23 bool blnError = false; 24 25 for(int i = 0; i = 11; i ++){26 int intTestDigit = 0; 27 if(int.TryParse(strTest.Substring(i、1)、out intTestDigit)){28 productTotal + =(intTestDigit * intPrimes); 29} else {30 blnError = true; 31ブレーク; 32} 33} 34 35 if(!blnError){36 validationResult =((productTotal%11%10)== intCheckDigit); 37} else {38 validationResult = false; //解析エラーのため。 39} 40 41} 42 43} 44 45 validationResult; 46 47}

Excelの数式として:

'セルA1のMPAN = IF(TEXT((MOD(MOD(SUM((MID(A1,1,1)* 3)、(MID(A1,2,1)* 5)、(MID(A1,3、 1)* 7)、(MID(A1,4,1)* 13)、(MID(A1,5,1)* 17)、(MID(A1,6,1)* 19)、(MID(A1、 7,1)* 23)、(MID(A1,8,1)* 29)、(MID(A1,9,1)* 31)、(MID(A1,10,1)* 37)、(MID( A1,11,1)* 41)、(MID(A1,12,1)* 43))、11)、10))、0)= TEXT(TRIM(RIGHT(A1,1))、0)、 "正しい」、「無効なMpan」)

Pythonの場合:

def check_digit(mpan): "" "@mpan = MPAN番号の最初の12桁。チェックディジット" ""を除くsum(prime * int(digit)for prime、digit in \ zip(、mpan))% 11%10

PL / SQLの場合:

関数mpan_check(varchar2のmpan)を作成または置換します。ブール値は--CDP ATKINSON res integer:= 0; TYPE prime_tab IS VARRAY(12)OF整数; primes prime_tab:= prime_tab(3、5、7、13、13、17、19、23、29、31、37、41、43); 1..12ループのiで開始res:= res + to_number(substr(mpan、i、1))* primes(i);終了ループ。 return to_char(mod(mod(res、11)、10))= substr(mpan、13,1); end mpan_check;

Javascriptの場合:

// Oliver Grimes関数checkMPAN(mpan){var primes =; var sum = 0; var m = mpan.toString(); if(m.length-1 === primes.length){for(var i = 0; i primes.length; i ++){sum + = parseInt(m.charAt(i))* primes; } return sum%11%10 === parseInt(m.charAt(12)); } falseを返します。 }

PHPの場合:

パブリック関数checkMPAN($ mpan){$ primes = array(3、5、7、13、17、19、19、23、29、31、37、41、43); $ sum = 0; $ mpan = str_split($ mpan); if((count($ mpan)-1)== count($ primes)){for($ i = 0; $ i count($ primes); $ i ++){$ sum + = $ mpan * $ primes; } return(($ sum%11%10)== end($ mpan))?真偽; } else {falseを返します。 }}

SQL Serverの場合:

CREATE FUNCTION is_valid_mpan(@mpan VARCHAR(50))RETURNS INT AS BEGIN --Tim Foster(2013-01-04)DECLARE @is_mpan INT、@ x INT = 1、@ sum INT = 0 DECLARE @arr TABLE(id INT IDENTITY (1、1)、val INT)INSERT INTO @arr(val)VALUES(3)、(5)、(7)、(13)、(17)、(19)、(23)、(29)、( 31)、(37)、(41)、(43)WHILE @x = 12 BEGIN SELECT @sum = @sum +(SUBSTRING(@mpan、@x、1)* val)FROM @arr WHERE id = @x SELECT @x = @x + 1 END IF RIGHT(@mpan、1)=((@sum%11)%10)BEGIN SELECT @is_mpan = 1 END ELSE BEGIN SELECT @is_mpan = 0 END RETURN @is_mpan END

Swift 3では:

func isValid(mpan:String)-> Bool {let primes = let chars = Array(mpan.characters).map({Int(String($ 0))})。flatMap({$ 0})return zip(primes、chars) .reduce(0){$ 0 + $ 1.0 * $ 1.1}%11%10 == chars.last! }

Apex(Salesforce)の場合:

1 / ** 2 * @description MPANを検証します。 Adam Dry 2018年6月作成。Apexバージョン43 3 * @param mpan末尾のチェックディジットを含む13桁のMPAN 4 * / 5 public Boolean mpanIsValid(String mpan){6 7 List Integer> primes = new List Integer > {3、5、7、13、17、19、23、29、31、37、41、43}。 8 9 //チェックディジットを整数変数に読み込む10 Integer checkDigit = Integer.valueOf(mpan.right(1)); 11 12文字列strTest = mpan.substring(0、12); 13整数productTotal = 0; 14 15 for(整数i = 0; i = 11; i ++){16整数testDigit = Integer.valueOf(strTest.Substring(i、i + 1)); 17 productTotal + =(testDigit * primes); 18} 19 20 Integer computeCheck = Math.mod(Math.mod(productTotal、11)、10); 21 Boolean validationResult =(computedCheck == checkDigit); 22 23はvalidationResultを返します。 24}

MPAN状態

MPANによって識別される電源は、切断、非通電、ライブ、および新規の4つの状態のいずれかになります。

  • 切断:サービスケーブルは取り外されており、MPANは再利用されません。
  • 通電されていない:サービスケーブルは所定の位置にありますが、ヒューズは取り外されています。メーターは配電網に接続されたままですが、電気は使用できません。
  • ライブ:サービスケーブルとヒューズの両方が所定の位置にあります。電源は完全に動作しています。
  • 新規:新しいMPANが生成されましたが、一番上の行(プロファイルクラスとメータータイムスイッチコードで構成される補足データ)はまだ完全ではありません。サービスケーブルは取り付けられている場合と取り付けられていない場合があります。

これらの用語は決して標準化されていません。たとえば、切断された電源は「デッド」電源と呼ばれる場合があります。

MPANのエクスポート

MPANの大部分は輸入MPANであり、エネルギーが消費されています。ただし、供給が流通ネットワークに輸出される場合、輸出MPANが発行されます。供給がインポートとエクスポートの両方である場合、インポートMPANとエクスポートMPANの両方が発行されます。

マイクロジェネレーション

以前は、エクスポートMPANには30分ごとに準拠したメーターをインストールする必要がありました。 2003年以降、30 kW以下の容量のマイクロジェネレーションプロジェクトでは、30分単位ではないメーターを配電ネットワークにエクスポートすることが可能になりました。 2005年6月に最初のマイクロジェネレーション輸出MPANが発行されたため、取り込みは遅くなりました。一部のサプライヤーは、収益が非常に少ないため、MPASに輸出MPANを登録することを気にしません。 30 kWを超える輸出能力は、30分ごとに計量する必要があります。

計量供給ポイント

Metered Supply Point(MSP)は、顧客の消費を測定するメーターが配置されているポイントです。したがって、これは、配電網事業者の供給または建物網事業者の横方向ケーブルのいずれかが終了し、顧客の機器が開始するポイントでもあります。電源のMSPをしっかりと確立するには、MPANをメーターのシリアル番号に関連付ける必要があります。

MPANは1メートルのシリアル番号に関連付けられるのが一般的ですが、場合によっては多対多の関係があります。たとえば、1つのメーターをインポートMPANとエクスポートMPANの両方に関連付けることも、1つのMPANを3つの別々のメーターで測定することもできます。

計量基準

コード範囲設定
COP10 72 kW未満 1つのHH全電流計がインストールされています。 2009年2月に導入されました。
COP5 1MW未満 1つのHHメーターがインストールされています。
COP3 1MWから10MW メインとチェックの2つのメーターが取り付けられ、両方とも同じ負荷を記録します。請求に使用されているメインメーター。
COP2 10MWから100MW COP3のように2つのメーターが設置されていますが、精度の高いクラスのメーターです。
COP1 > 100MW このレベルの英国のサイトはほとんどなく、一般的に発電所とナショナルグリッドとの接続があります。

非計量用品

小規模な予測可能な供給の計量が行われない可能性があります。例としては、街灯、信号、標識、ボラード、電話キオスク、CCTV、広告ディスプレイがあります。

メーターなしの接続を介して配信ネットワークに接続する機器の場合、その消費は500ワットを超えてはならず、予測可能な方法で動作する必要があり、エンドユーザーの要求に応じて手動でオンにすることはできません。一般に、機器は、24時間稼働しており、1日24時間電力を供給しているか、街路灯の場合のようにフォトセルによって制御されます。

計量されていない供給品の正確かつ最新の在庫を維持し、接続された機器に対するすべての変更をUMSO(UnMetered Supplies Operator)に通知することは、お客様の責任です。

より大きな地方自治体は、30分ごとに計量されていないエネルギーを取引する傾向があります。そのために、彼らはメーター管理者を雇用します。メーター管理者は、光電制御ユニット(PECU)アレイからの毎日のデータを使用し、エネルギー消費量の計算に使用します。 PECUアレイは、当局が街灯や信号機で使用する代表的な数のフォトセルを保持するデバイスです。エネルギーを30分ごとに非計量として取引することにより、当局は宣言された非計量機器によって消費されるエネルギーに対して正確に支払います。データは毎日ダウンロードされるため、当局はエネルギー請求書が年間を通じて変化し、季節と毎日の照明の変化を表しますレベル。

ただし、非計量供給品が30分ごとに取引されていない場合、UMSOはEAC(推定年間消費量)を計算する責任を負います。これは、機器の回路ワットと年間稼働時間を考慮に入れた簡単な公式を使用して行われます。たとえば、1日24時間使用されている機器の年間時間は8766です。たとえば、24回路ワットのCCTVカメラの場合、EACは210.384kWhで、回路ワットx年間時間を除算して計算されます。 1000。

機器が街路照明の場合、同じプロセスが使用されます。ただし、各フォトセルに設定された年間時間数が割り当てられ、ライトのオンとオフの方法とタイミングを示すため、年間時間は変更されます。これらの年間時間はElexonによって設定されており、お客様がUMSOとローカルに合意することはありません。

EACの計算が行われると、EAC証明書が請求のために顧客の指定された電力会社に提供され、EACの電子コピーが指定されたデータコレクターに送信されます。 DNOは、顧客の非計量機器への電力供給のために、電力供給業者に対してシステムの配電使用料を請求します。

標準決済構成(SSC)

30分単位ではない各電源には、標準決済構成(SSC)と呼ばれる4桁のコードがあり、メーターが持つレジスターの数と、各レジスターが電力使用量を記録する時間を指定します。レジスタが記録している時間は、5桁のコードTime Pattern Regime(TPR)で指定されます。したがって、たとえば、SSC 0943のサプライには、TPR 00404および00405の2つのレジスタがあります。00404TPRレジスタは、01:00から02:30と08:00から23:30までを記録し、残りの時間は00405を記録します。

メーターポイント管理システム

各DNOは、MPANごとに次の情報を保持するMeter Point Administration System(MPAS)を運用します。

  • サプライヤー
  • データコレクター(DC)
  • データアグリゲーター(DA)
  • HHのメーターオペレーター(MOP)またはメーター管理者
  • お客様
  • 出口点のアドレス
  • 関連するMPAN
  • MPAN状態
  • プロファイルクラス(PC)
  • 回線損失係数クラス(LLFC)
  • メータータイムスイッチクラス(MTC)
  • GSPグループ

MPRSは、すべてのDNOにMPASシステムを実装するソフトウェアパッケージの名前です。 MPRSはほとんどのDNOで使用されるため、MPASという用語と互換的に使用されることがよくあります。

エコーズ

ECOES(Electricity Central Online Inquiry Service)は、ユーザーおよび認可された業界関係者が、13桁のMPANボトムライン番号、メーターシリアル番号、または郵便番号などを使用して供給詳細(過去および現在)を検索できるWebサイトです。ユーザーは、完全な住所、メーターの詳細、現在の通電状態、および指定された関係者(サプライヤ、ディストリビュータ、MOP、DC、DA)など、サプライに関連する幅広いデータを決定できます。このサイトには、サプライヤから送信された計量システムに関する情報が含まれています。

このサービスにアクセスするために登録できるのは、非国内ユーザー(クラス1または2ではない2つの有効なMPANを持つユーザー)のみです。