Wio BG770A + 1NCE SIMでLTE-M接続する記事で、1NCEはSoftBankとKDDI両方の基地局に接続できることを見てきました。 通常は自動選択で問題ありませんが、設置場所の事前電波確認をするとき等、キャリアを指定したいケースもあります。
この記事では、Wio BG770AでAT+COPSコマンドを使ってSoftBank・KDDIを指定して接続する手順を紹介します。
PLMNコードとは?
PLMNとは、MCC(Mobile Country Code, 3桁) + MNC(Mobile Network Code, 2桁)で構成されるキャリアの識別番号です。
日本のMCCは440固定で、キャリアによってMNCが変わります。
1NCEで接続できる日本のキャリアと対応するPLMNコードは以下の通りです。 これらは総務省の電気通信番号として公表されています。
| キャリア | PLMN | MCC | MNC |
|---|---|---|---|
| SoftBank | 44020 | 440 | 20 |
| KDDI | 44051 | 440 | 51 |
PLMNは通信キャリア1社でも複数持っています。そのため、上記はあくまでこの記事を書いている時点のPLMNです。 キャリア側のコア設備の収容変更によって、将来的には1NCEの接続先PLMNが変わる可能性があります。 うまく繋がらないときは、一度自動選択で接続してから試してみてください。
AT+COPSコマンドとは?
AT+COPSは3GPP TS 27.007 (7.3 PLMN selection +COPS)で定義された、ネットワーク選択モードを制御する標準ATコマンドです。
AT+COPS=0の場合は自動選択。
AT+COPS=1,2,"PLMN",AcTでキャリアを手動指定します。
AT+COPS=1,2,"PLMN",AcTの引数の意味は以下の通りです。
| 引数 | 意味 |
|---|---|
1 | 手動選択(自動は0) |
2 | PLMN形式で指定(MCC+MNCの数字列) |
"44051" | 接続先のPLMNコード |
7 | AcT(Access Technology)。7 = eMTC(LTE-M) |
コマンド文字列はLTE-M/NB-IoTモジュール全般で共通して使えます。
Wio BG770Aでの実装
接続するキャリアは OPERATOR_PLMN 定数1行を変えるだけで切り替えられます。"" にすると自動選択になります。
static constexpr const char* KDDI_PLMN = "44051";
static constexpr const char* SOFTBANK_PLMN = "44020";
// "" のときは自動選択。例: KDDI_PLMN / SOFTBANK_PLMN
static constexpr const char* OPERATOR_PLMN = KDDI_PLMN;
static constexpr int OPERATOR_ACT = 7; // eMTC(LTE-M)のAcT値ConfigureOperatorSelection() がATコマンドを送る関数です。
OPERATOR_PLMN が空なら AT+COPS=0(自動選択)、値があれば AT+COPS=1,2,"PLMN",7(手動選択)を発行します。
static WioCellularResult ConfigureOperatorSelection() {
// oper表示形式をMCC+MNC数字列に設定
WioCellular.executeCommand("AT+COPS=3,2", COPS_TIMEOUT_MS);
const auto plmn = GetConfiguredOperatorPlmn();
if (plmn.empty()) {
return WioCellular.executeCommand("AT+COPS=0", COPS_AUTO_SELECT_TIMEOUT_MS); // 自動選択
}
const std::string command = "AT+COPS=1,2,\"" + plmn + "\"," + std::to_string(OPERATOR_ACT);
return WioCellular.executeCommand(command, COPS_MANUAL_SELECT_TIMEOUT_MS); // 手動選択
}設置前の電波確認に使う
PLMNを指定する実用的な使いどころは、設置場所でSoftBankとKDDIどちらが良いか事前に確認する場面です。 手順はシンプルで、それぞれのキャリアに固定接続してRSRP・SINRを記録し、比較します。
- 1
SoftBankに固定して計測する
AT+COPS=1,2,"44020"を実行し、接続後にAT+QCSQでRSRP・SINRを記録します。 - 2
KDDIに固定して計測する
AT+COPS=1,2,"44051"を実行し、同様に記録します。 - 3
確認後は自動選択に戻す
RSRP・SINRを比較したうえで
AT+COPS=0に戻します。
電波品質の読み方(RSRP・SINRの目安)については以下の記事を参照してください。
サンプルコード
この記事で紹介したPLMN指定を含む接続コードのフルコードはGitHubで公開しています。
wio-bg770a-1nce-connect — iotbuilds-samples
Wio BG770A + 1NCE LTE-M 接続サンプル(PlatformIO)
まとめ
この記事では、Wio BG770AにAT+COPSコマンドを使ってSoftBank(44020)またはKDDI(44051)に固定接続する手順を紹介しました。
PLMNを指定することで接続先キャリアを固定するのは、設置場所の電波環境を比較するときに役立ちます。
ただし、せっかくの冗長性が失われてしまうので、本番運用では自動選択(AT+COPS=0)に戻すようにしましょう。



