Texas Instruments MSP430マイクロコントローラー用のDLMS / COSEMスタックの紹介



最近、DLMS / COSEMプロトコルは、国内生産の計量デバイス(電気エネルギー、熱、水、ガスのメーター)で積極的に使用されています。 マイクロコントローラーの製造を専門とするほぼすべての企業は、このプロトコルをサポートするメーターのコストと開発時間を削減するために使用できる認定DLMS / COSEMスタックを持っています。 この記事では、Texas Instruments MSP430マイクロコントローラーのDLMS / COSEMスタックに焦点を当てます。

TI DLMS / COSEMスタックには、次の機能があります。


スタックを「タッチ」するには、次のものが必要です。

  1. IAR Embedded Workbench for MSP430開発環境
  2. DLMS / COSEMクライアント、 Guruxから無料のオープンソースDLMSDirectorを入手してください。
  3. 評価ボードEVM430-F6779;
  4. デバッガ/プログラマMSP-FET430UIF。

ダウンロードして解凍する


DLMS / COSEMスタックは( http://www.ti.com/tool/dlmsobj-eval )から入手できます。ダウンロードするにはTIアカウントが必要です。 スタック自体はDLMS-4.0.6-windows-installerと呼ばれるディストリビューションにパッケージ化されています。 インストール後、スタックファイルが配置されているzipフォルダー「DLMS_Object」はインストールフォルダーに配置されます。

ライブラリは次のファイルで構成されています。


これらのファイルはすべて、dlms_obj.ewwというプロジェクトに既にコンパイルされています。

プロジェクトの開始


このパートでは、デモプロジェクトを起動し、COSEMオブジェクトがどのように表されるかを確認します。 これを行うには、MSP430のIARでdlms_obj.ewwファイルを開き、必要なマイクロコントローラー(この場合はMSP430F67791)を選択します。



プロジェクトを組み立て、コントローラーをプログラムします。 DLMSDirectorプログラムを開き、次のパラメーターを使用して新しいデバイスを追加します。



[OK]ボタンをクリックします。 次に、「デバイス」ツリーでデバイスを選択し、「接続」ボタンをクリックすると、次のエラーが表示されます。



これは簡単に修正できます。dlms_obj.ewwプロジェクトのuart_comms.cファイルを開くと、132行目でUARTの構成時に「typo」が作成されたことがわかります。



正しい行は次のとおりです。

P3SEL0 |=(BIT0|BIT1); 

修正後、メーターとの通信が正常に確立され、その結果、「読み取り」ボタンが使用可能になり、ステータス行に「準備完了」が表示されます。



メーターから情報をダウンロードするには、[読み取り]ボタンをクリックします。 このプロセスは高速ではないため、少し待つ必要があります。 その結果、COSEMオブジェクトからツリーを取得します。



このスタックのパブリックドメインでは、デフォルトで5つのオブジェクトが表示されます:


たとえば、メーターの現在時刻に関する情報は次のように表示されます。



時刻を見つけるだけでなく、タイムゾーン、時計のソース、夏時間への移行日時、およびその逆に関する情報も取得できます。また、高セキュリティモードでは、これらのパラメーターを設定できます。

低プライバシーモードでメーターにアクセスするには、次の設定を使用する必要があります(デフォルトのパスワードは00000000です)。



このモードでは、さらに多くのCOSEMオブジェクトを使用できます。



新しいCOSEMオブジェクトの追加


新しいオブジェクトを追加するには、 dlms_obj.ewwプロジェクトのconfig.cファイルを開き、構造を見つけます。

 const struct object_desc_s object_list[] 

次の行を追加します:

 {ASSOC_PC_MR_US, CLASS_ID_DATA, 0, { 0, 0, 96, 1, 0, 255}, 2, Obj_Meter_Sr_No, 0, NULL} 

どこで:


次に、同じファイルに属性のリストを持つ構造を作成します。

 static const struct attribute_desc_s Obj_Meter_Sr_No[] = { {1, ACCESS_PCR__MRR__USR_, TAG_OCTET_STRING, (void *) object_list[11].instance_id, NULL}, {2, ACCESS_PCR__MRR__USR_, TAG_OCTET_STRING, (void *) Meter_Sr_No, NULL}, }; 

どこで:


私たちの場合、オブジェクトにはコールバック関数がなく、バイト文字列がデータ型として使用されます。

Meter_Sr_Noは、次の構造を指します。

 const uint8_t Meter_Sr_No[] = { 8, 'A','B','C','D','1','2','3','4' }; 

これが、新しい機能を作成するためのすべての手順です。 結果:



おわりに


この記事では、MSP430ファミリのマイクロコントローラ用のDLMS / COSEMライブラリの完全な説明は提供しません。プロトコルの主要なポイントを強調せずにこれを行うのは難しいからです。 ただし、このような説明が必要な場合は、TIのWebサイト( http://www.ti.com/tool/dlmsobj-eval )からダウンロードすることで、説明に慣れることができます。

Source: https://habr.com/ru/post/J302180/


All Articles