Jump to content

Programming a CR1000 Datalogger/ja

From Appropedia
FA 情報アイコン.svg下向きの角度アイコン.svgプロジェクトデータ
タイプグリーンIT
著者ロブ・アンドリュース
位置キングストンカナダ
OKH マニフェストダウンロード

CRBasic は、 Campbell Scientificデータロガーの機能を制御するプログラミング言語です。このプログラムは、変数名、データ テーブル レイアウト、トランスデューサーの定義と範囲、制御ポートの操作など、ロガー内のデータ収集に関連するすべてのプロセスを制御します。

CRBasic でプログラムを開始するには、まず loggernet から入手できるショートカットでプログラムを作成することをお勧めします。ショートカットにはウィザードが含まれており、テーブルやセンサー宣言を含むプログラムの基本構造を作成できます。ショートカットでプログラムを作成したら、CRBasic で編集して、必要な高度な機能を追加できます。このガイドでは、CRBasic の基本機能と、セントローレンス大学のテストサイトでのプログラミングの詳細について説明します。コーディングに関する詳細なドキュメントは、Campbell Scientific の Web サイトにある CR1000 マニュアルに記載されています。

CRBasicコードには、3つの主要なセクションがあります。i) 変数宣言 ii) テーブル定義 iii) コレクション

変数宣言

コードの最初の部分は、 Publicコマンドを使用して、データロガーによって収集されるすべての変数を定義します。単数変数は変数名を入力して定義され、インデックス付き変数名で複数の値を格納するために使用できる配列変数は、変数名の後に括弧で囲んだ配列の長さを追加して定義されます。例:

25 個のインデックス可能な値を持つ変数 Temp_C_2 を宣言します。これは、各インデックスがマルチプレクサ ポートを表すことができるため、マルチプレクサを使用するときに便利です。ただし、これらのインデックス付き変数は、どの物理センサーに接続されているかを識別するのが難しいため、問題になることがあります。このため、配列内の各値の名前を変更して、それが表すセンサーを表すためにAliasコマンドを使用すると便利です。例:

Temp_C_2 の 5 番目の値の名前を変更して、配列の最初の行の 5 番目の位置にある熱電対を測定していることを示します。

テーブル宣言

変数を定義したら、データ操作を容易にするために、変数を複数のデータ テーブルに分割するオプションがあります。この場合、すべての変数は Table1 という 1 つのテーブルに出力されます。さらに、テーブル内でデータを時間平均化することも可能です。これにより、たとえば 1 分間隔でデータを収集し、このデータの 5 分間の平均のみをテーブルに保存することができます。この利点は、収集したデータファイルのサイズを縮小しながら、収集の解像度を高くできることです。これにより、保存、転送、後処理が管理しやすくなります。

このプログラムの場合、データは 5 分間隔でサンプリングされ、収集されます。これは、サイクル寿命が限られているマルチプレクサがこのシステムに含まれているためです。したがって、5 分間隔でのみサンプリングすることで、マルチプレクサのサイクル数を減らすという選択が行われました。これにより、サイクル時間とデータ解像度の適切な妥協点が得られます。

データ テーブルは次の 2 行を使用して宣言されます。

これは、データ テーブルのメモリ使用量と記録間隔を定義します。Campbell Scientific システムのテーブルの重要な属性は、ループ メモリの使用です。ユニットのベース メモリは、プログラムとすべてのデータを格納するために 4MB と比較的限られています。収集されたデータがシステムで使用可能なメモリ領域を超えた場合、データはデータ テーブルの先頭にループされ、最も古いデータが最初に消去されます。ステーションのメモリ ステータスは、デバイス構成ユーティリティまたは接続画面で確認できます。

データ収集

データの収集は、プログラムが loggernet を介してコントローラーによって手動で停止されるまで実行される繰り返しループで行われます。このループの開始は、次の 2 行のコードによって示されます。

これによりループが開始され、データロガーのクロックに従って 5 分ごとにスキャンが行われるよう設​​定されます。これに続くすべてのコマンドは、スキャンが開始されると順番に実行されます。

各測定はプログラム内の独自の行によって開始され、実行される測定の種類、測定が読み取られる入力チャネル、および測定に必要な特別な後処理が宣言されます。例:

チャネル 1 から差動電圧測定を読み取り、電圧範囲 25 mV で変数 SlrW に保存します。この宣言の残りの引数は、値の収集方法の詳細に関連しており、これらの詳細な説明は CRBasic ヘルプに記載されています。また、測定宣言を右クリックすると、各入力パラメータと各値の詳細な標準を説明するウィンドウが表示されます。

マルチプレクサを測定するには、より複雑なコードが必要です。マルチプレクサを測定する基本的な手順は次のとおりです。

i)解像度ポートを高に設定してユニットを初期化する

ii) スキャンループに入り、CLKポートにパルスを送信してリレーを最初の入力に設定する

iii) 測定値を配列の正しいスロットに読み取ります。差動チャネルごとに 2 つのシングルエンド測定が実行されるため、VoltSe の各宣言では、測定配列の 2 つの連続したスロットに 2 つの連続した値が記録されることに注意してください。これは、「繰り返し」フィールド (この宣言の 2 番目のフィールド) を 2 に設定することで実行されます。これにより、宣言されたチャネル (この場合は 13) から測定値が取得され、配列の最初のスロットに配置され、次に次のチャネル (この場合は 14) から測定値が取得され、配列の次のスロットに配置されます。

iv) 最初に戻り、マルチプレクサ上のすべてのポートが読み取られるまでスキャンを繰り返します。

v) データロガーを無効にするには、RESポートを低に設定します。

プログラムの最後に、事前に定義されたテーブルに永続的に収集されたすべての変数を格納するテーブルを呼び出す必要があります。

SEARC OTF の最新コード

以下は、SEARC OTF で使用されている最新のコードです。先頭に ' が付いている行はコード コメントを表すことに注意してください。

2011年1月からSt.Lawrence CR1000データロガーで実行されているプログラム

'ショートカット(2.8)によって作成されました

'変数を宣言する

パブリックバットV

パブリックSlrW

パブリック SlrkJ_2

パブリックSlrW_2

パブリックSlrkJ

パブリックSlrW_3

パブリック SlrkJ_3

公共SR50A(2)

パブリック TCDT

パブリック DBTCDT

パブリックRTempC

パブリック テンプ_C(25)

パブリック RTempC_2

公共臨時職員_C_2(25)

公共エアTC

パブリックRH

パブリック WS_ms

パブリック WindDir

パブリックSEvolt(64)

パブリックSEvolt_2(64)

パブリックセンサー_高さ

公開雪深

パブリック LCount

'データを識別しやすくするために変数にエイリアスを付けます。これらはデータ テーブルに記録される名前です。

別名SR50A(1)=DT

別名SR50A(2)=Q

別名SEvolt(1)=V1.1V

別名SEvolt(2)=V1.2V

別名SEvolt(3)=V1.3V

別名SEvolt(4)=V1.4V

別名SEvolt(5)=V1.5V

別名SEvolt(6)=V1.6V

別名SEvolt(7)=V1.7V

別名SEvolt(8)=V1.8V

別名SEvolt(9)=V2.1V

別名SEvolt(10)=V2.2V

別名SEvolt(11)=V2.3V

別名SEvolt(12)=V2.4V

別名SEvolt(13)=V2.5V

別名SEvolt(14)=V2.6V

別名SEvolt(15)=V2.7V

別名SEvolt(16)=V2.8V

別名SEvolt(17)=V3.1V

別名SEvolt(18)=V3.2V

別名SEvolt(19)=V3.3V

別名SEvolt(20)=V3.4V

別名SEvolt(21)=V3.5V

別名SEvolt(22)=V3.6V

別名SEvolt(23)=V3.7V

別名SEvolt(24)=V3.8V

別名SEvolt(25)=V4.1V

別名SEvolt(26)=V4.2V

別名SEvolt(27)=V4.3V

別名SEvolt(28)=V4.4V

別名SEvolt(29)=V4.5V

別名SEvolt(30)=V4.6V

別名SEvolt(31)=V4.7V

別名SEvolt(32)=V4.8V

別名SEvolt(33)=C1.1C

別名SEvolt(34)=C1.2C

別名SEvolt(35)=C1.3C

別名SEvolt(36)=C1.4C

別名SEvolt(37)=C1.5C

別名SEvolt(38)=C1.6C

別名SEvolt(39)=C1.7C

別名SEvolt(40)=C1.8C

別名SEvolt(41)=C2.1C

別名SEvolt(42)=C2.2C

別名SEvolt(43)=C2.3C

別名SEvolt(44)=C2.4C

別名SEvolt(45)=C2.5C

別名SEvolt(46)=C2.6C

別名SEvolt(47)=C2.7C

別名SEvolt(48)=C2.8C

別名SEvolt(49)=C3.1C

別名SEvolt(50)=C3.2C

別名SEvolt(51)=C3.3C

別名SEvolt(52)=C3.4C

別名SEvolt(53)=C3.5C

別名SEvolt(54)=C3.6C

別名SEvolt(55)=C3.7C

別名SEvolt(56)=C3.8C

別名SEvolt(57)=C4.1C

別名SEvolt(58)=C4.2C

別名SEvolt(59)=C4.3C

別名SEvolt(60)=C4.4C

別名SEvolt(61)=C4.5C

別名SEvolt(62)=C4.6C

別名SEvolt(63)=C4.7C

別名SEvolt(64)=C4.8C

別名SEvolt_2(1)=V1.9V

エイリアスSEvolt_2(2)=V1.10V

別名SEvolt_2(3)=V1.11V

別名SEvolt_2(4)=V1.12V

別名SEvolt_2(5)=V1.13V

別名SEvolt_2(6)=V1.14V

別名SEvolt_2(7)=V1.15V

エイリアスSEvolt_2(8)=V1.16V

別名SEvolt_2(9)=V2.9V

エイリアスSEvolt_2(10)=V2.10V

別名SEvolt_2(11)=V2.11V

別名SEvolt_2(12)=V2.12V

別名SEvolt_2(13)=V2.13V

別名SEvolt_2(14)=V2.14V

エイリアスSEvolt_2(15)=V2.15V

エイリアス SEvolt_2(16)=V2.16V

別名SEvolt_2(17)=V3.9V

別名SEvolt_2(18)=V3.10V

別名SEvolt_2(19)=V3.11V

別名SEvolt_2(20)=V3.12V

別名SEvolt_2(21)=V3.13V

別名SEvolt_2(22)=V3.14V

別名SEvolt_2(23)=V3.15V

別名SEvolt_2(24)=V3.16V

別名SEvolt_2(25)=V4.9V

別名SEvolt_2(26)=V4.10V

別名SEvolt_2(27)=V4.11V

別名SEvolt_2(28)=V4.12V

別名SEvolt_2(29)=V4.13V

別名SEvolt_2(30)=V4.14V

別名SEvolt_2(31)=V4.15V

別名SEvolt_2(32)=V4.16V

別名SEvolt_2(33)=C1.9C

別名SEvolt_2(34)=C1.10C

別名SEvolt_2(35)=C1.11C

別名SEvolt_2(36)=C1.12C

別名SEvolt_2(37)=C1.13C

別名SEvolt_2(38)=C1.14C

別名SEvolt_2(39)=C1.15C

別名SEvolt_2(40)=C4.13C

別名SEvolt_2(41)=C2.9C

別名SEvolt_2(42)=C2.10C

別名SEvolt_2(43)=C2.11C

別名SEvolt_2(44)=C2.12C

別名SEvolt_2(45)=C2.13C

別名SEvolt_2(46)=C2.14C

別名SEvolt_2(47)=C2.15C

別名SEvolt_2(48)=C4.14C

別名SEvolt_2(49)=C3.9C

別名SEvolt_2(50)=C3.10C

別名SEvolt_2(51)=C3.11C

別名SEvolt_2(52)=C3.12C

別名SEvolt_2(53)=C3.13C

別名SEvolt_2(54)=C3.14C

別名SEvolt_2(55)=C3.15C

別名SEvolt_2(56)=C4.15C

別名SEvolt_2(57)=C4.9C

別名SEvolt_2(58)=C4.10C

別名SEvolt_2(59)=C4.11C

別名SEvolt_2(60)=C4.12C

エイリアスTemp_C(1)=T3.4

エイリアスTemp_C(2)=T3.5

エイリアスTemp_C(3)=T3.6

エイリアスTemp_C(4)=T3.7

エイリアスTemp_C(5)=T4.1

エイリアスTemp_C(6)=T4.2

エイリアスTemp_C(7)=T4.3

エイリアスTemp_C(8)=T4.4

エイリアスTemp_C(9)=T4.5

エイリアスTemp_C(10)=T4.6

エイリアスTemp_C(11)=T4.7

エイリアスTemp_C(12)=T2.10

エイリアスTemp_C(13)=T2.11

エイリアスTemp_C(14)=T2.12

エイリアスTemp_C(15)=T2.13

エイリアスTemp_C(16)=T2.15

エイリアスTemp_C(17)=T3.11

エイリアスTemp_C(18)=T3.12

エイリアスTemp_C(19)=T3.13

エイリアスTemp_C(20)=T3.15

エイリアスTemp_C(21)=T4.15

エイリアス Temp_C(22)=Tempty1

エイリアス Temp_C(23)=Tempty2

エイリアス Temp_C(24)=Tempty3

エイリアス Temp_C(25)=Tempty4

エイリアスTemp_C_2(1)=T1.1

エイリアスTemp_C_2(2)=T1.2

別名Temp_C_2(3)=T1.3

別名Temp_C_2(4)=T1.4

別名Temp_C_2(5)=T1.5

別名Temp_C_2(6)=T1.6

別名Temp_C_2(7)=T1.7

別名Temp_C_2(8)=T1.8

別名Temp_C_2(9)=T1.9

エイリアスTemp_C_2(10)=T1.10

エイリアスTemp_C_2(11)=T1.11

エイリアスTemp_C_2(12)=T1.12

エイリアスTemp_C_2(13)=T1.13

エイリアスTemp_C_2(14)=T1.14

エイリアスTemp_C_2(15)=T1.15

別名Temp_C_2(16)=T2.1

別名Temp_C_2(17)=T2.2

別名Temp_C_2(18)=T2.3

別名Temp_C_2(19)=T2.4

別名Temp_C_2(20)=T2.5

別名Temp_C_2(21)=T2.6

別名Temp_C_2(22)=T2.7

別名Temp_C_2(23)=T3.1

別名Temp_C_2(24)=T3.2

別名Temp_C_2(25)=T3.3

各測定単位を宣言する

単位 BattV=ボルト

単位 SlrW=W/m^2

単位 SlrkJ_2=kJ/m^2

単位 SlrW_2=W/m^2

単位 SlrkJ=kJ/m^2

単位 SlrW_3=W/m^2

単位 SlrkJ_3=kJ/m^2

単位 RTempC=℃

単位 Temp_C=度 C

単位 RTempC_2=摂氏度

単位 Temp_C_2=℃

単位 AirTC=摂氏度

単位 RH=%

単位 WS_ms=メートル/秒

単位 WindDir=度

「データ テーブルを定義します。このプログラムで使用されるテーブルはテーブル 1 のみです。」

この表は5分間隔で平均化されており、データの収集も同じ間隔で行われるため、平均値は実際にはその時点で行われたポイント測定です。

データテーブル(テーブル1,True,-1)

データ間隔(0,5,最小,10)

平均(1,SlrW,FP2,False)

合計(1,SlrkJ_2,IEEE4,False)

平均(1,SlrW_2,FP2,False)

合計(1,SlrkJ,IEEE4,False)

平均(1,SlrW_3,FP2,False)

合計(1,SlrkJ_3,IEEE4,False)

平均(1,DT,FP2,False)

平均(1,Q,FP2,False)

平均(1,TCDT,FP2,False)

平均(1,DBTCDT,FP2,False)

平均(1,RTempC_2,FP2,False)

平均(1,雪の深さ,FP2,False)

平均(1,温度_C_2(1),FP2,偽)

平均(1,温度_C_2(2),FP2,偽)

平均(1,温度_C_2(3),FP2,False)

平均(1,温度_C_2(4),FP2,False)

平均(1,温度_C_2(5),FP2,False)

平均(1,温度_C_2(6),FP2,False)

平均(1,温度_C_2(7),FP2,False)

平均(1,温度_C_2(8),FP2,False)

平均(1,温度_C_2(9),FP2,False)

平均(1,温度_C_2(10),FP2,False)

平均(1,温度_C_2(11),FP2,偽)

平均(1,温度_C_2(12),FP2,偽)

平均(1,温度_C_2(13),FP2,偽)

平均(1,温度_C_2(14),FP2,偽)

平均(1,温度_C_2(15),FP2,偽)

平均(1,温度_C_2(16),FP2,偽)

平均(1,温度_C_2(17),FP2,偽)

平均(1,温度_C_2(18),FP2,False)

平均(1,温度_C_2(19),FP2,偽)

平均(1,温度_C_2(20),FP2,False)

平均(1,温度_C_2(21),FP2,False)

平均(1,温度_C_2(22),FP2,偽)

平均(1,温度_C_2(23),FP2,偽)

平均(1,温度_C_2(24),FP2,False)

平均(1,温度_C_2(25),FP2,False)

平均(1,RTempC,FP2,False)

平均(1,温度(1),FP2,False)

平均(1,温度(2),FP2,False)

平均(1,温度_C(3),FP2,False)

平均(1,温度_C(4),FP2,False)

平均(1,温度_C(5),FP2,False)

平均(1,温度_C(6),FP2,False)

平均(1,温度_C(7),FP2,False)

平均(1,温度_C(8),FP2,False)

平均(1,温度_C(9),FP2,False)

平均(1,温度_C(10),FP2,False)

平均(1,温度_C(11),FP2,False)

平均(1,温度_C(12),FP2,False)

平均(1,温度_C(13),FP2,False)

平均(1,温度_C(14),FP2,False)

平均(1,温度_C(15),FP2,False)

平均(1,温度_C(16),FP2,False)

平均(1,温度_C(17),FP2,False)

平均(1,温度_C(18),FP2,False)

平均(1,温度_C(19),FP2,False)

平均(1,温度_C(20),FP2,False)

平均(1,温度_C(21),FP2,False)

平均(1,温度_C(22),FP2,False)

平均(1,温度_C(23),FP2,False)

平均(1,温度_C(24),FP2,False)

平均(1,温度_C(25),FP2,False)

平均(1,SEvolt(1),FP2,False)

平均(1,SEvolt(2),FP2,False)

平均(1,SEvolt(3),FP2,False)

平均(1,SEvolt(4),FP2,False)

平均(1,SEvolt(5),FP2,False)

平均(1,SEvolt(6),FP2,False)

平均(1,SEvolt(7),FP2,False)

平均(1,SEvolt(8),FP2,False)

平均(1,SEvolt(9),FP2,False)

平均(1,SEvolt(10),FP2,False)

平均(1,SEvolt(11),FP2,False)

平均(1,SEvolt(12),FP2,False)

平均(1,SEvolt(13),FP2,False)

平均(1,SEvolt(14),FP2,False)

平均(1,SEvolt(15),FP2,False)

平均(1,SEvolt(16),FP2,False)

平均(1,SEvolt(17),FP2,False)

平均(1,SEvolt(18),FP2,False)

平均(1,SEvolt(19),FP2,False)

平均(1,SEvolt(20),FP2,False)

平均(1,SEvolt(21),FP2,False)

平均(1,SEvolt(22),FP2,False)

平均(1,SEvolt(23),FP2,False)

平均(1,SEvolt(24),FP2,False)

平均(1,SEvolt(25),FP2,False)

平均(1,SEvolt(26),FP2,False)

平均(1,SEvolt(27),FP2,False)

平均(1,SEvolt(28),FP2,False)

平均(1,SEvolt(29),FP2,False)

平均(1,SEvolt(30),FP2,False)

平均(1,SEvolt(31),FP2,False)

平均(1,SEvolt(32),FP2,False)

平均(1,SEvolt(33),FP2,False)

平均(1,SEvolt(34),FP2,False)

平均(1,SEvolt(35),FP2,False)

平均(1,SEvolt(36),FP2,False)

平均(1,SEvolt(37),FP2,False)

平均(1,SEvolt(38),FP2,False)

平均(1,SEvolt(39),FP2,False)

平均(1,SEvolt(40),FP2,False)

平均(1,SEvolt(41),FP2,False)

平均(1,SEvolt(42),FP2,False)

平均(1,SEvolt(43),FP2,False)

平均(1,SEvolt(44),FP2,False)

平均(1,SEvolt(45),FP2,False)

平均(1,SEvolt(46),FP2,False)

平均(1,SEvolt(47),FP2,False)

平均(1,SEvolt(48),FP2,False)

平均(1,SEvolt(49),FP2,False)

平均(1,SEvolt(50),FP2,False)

平均(1,SEvolt(51),FP2,False)

平均(1,SEvolt(52),FP2,False)

平均(1,SEvolt(53),FP2,False)

平均(1,SEvolt(54),FP2,False)

平均(1,SEvolt(55),FP2,False)

平均(1,SEvolt(56),FP2,False)

平均(1,SEvolt(57),FP2,False)

平均(1,SEvolt(58),FP2,False)

平均(1,SEvolt(59),FP2,False)

平均(1,SEvolt(60),FP2,False)

平均(1,SEvolt(61),FP2,False)

平均(1,SEvolt(62),FP2,False)

平均(1,SEvolt(63),FP2,False)

平均(1,SEvolt(64),FP2,False)

平均(1,SEvolt_2(1),FP2,False)

平均(1,SEvolt_2(2),FP2,False)

平均(1,SEvolt_2(3),FP2,False)

平均(1,SEvolt_2(4),FP2,False)

平均(1,SEvolt_2(5),FP2,False)

平均(1,SEvolt_2(6),FP2,False)

平均(1,SEvolt_2(7),FP2,False)

平均(1,SEvolt_2(8),FP2,False)

平均(1,SEvolt_2(9),FP2,False)

平均(1,SEvolt_2(10),FP2,False)

平均(1,SEvolt_2(11),FP2,False)

平均(1,SEvolt_2(12),FP2,False)

平均(1,SEvolt_2(13),FP2,False)

平均(1,SEvolt_2(14),FP2,False)

平均(1,SEvolt_2(15),FP2,False)

平均(1,SEvolt_2(16),FP2,False)

平均(1,SEvolt_2(17),FP2,False)

平均(1,SEvolt_2(18),FP2,False)

平均(1,SEvolt_2(19),FP2,False)

平均(1,SEvolt_2(20),FP2,False)

平均(1,SEvolt_2(21),FP2,False)

平均(1,SEvolt_2(22),FP2,False)

平均(1,SEvolt_2(23),FP2,False)

平均(1,SEvolt_2(24),FP2,False)

平均(1,SEvolt_2(25),FP2,False)

平均(1,SEvolt_2(26),FP2,False)

平均(1,SEvolt_2(27),FP2,False)

平均(1,SEvolt_2(28),FP2,False)

平均(1,SEvolt_2(29),FP2,False)

平均(1,SEvolt_2(30),FP2,False)

平均(1,SEvolt_2(31),FP2,False)

平均(1,SEvolt_2(32),FP2,False)

平均(1,SEvolt_2(33),FP2,False)

平均(1,SEvolt_2(34),FP2,False)

平均(1,SEvolt_2(35),FP2,False)

平均(1,SEvolt_2(36),FP2,False)

平均(1,SEvolt_2(37),FP2,False)

平均(1,SEvolt_2(38),FP2,False)

平均(1,SEvolt_2(39),FP2,False)

平均(1,SEvolt_2(40),FP2,False)

平均(1,SEvolt_2(41),FP2,False)

平均(1,SEvolt_2(42),FP2,False)

平均(1,SEvolt_2(43),FP2,False)

平均(1,SEvolt_2(44),FP2,False)

平均(1,SEvolt_2(45),FP2,False)

平均(1,SEvolt_2(46),FP2,False)

平均(1,SEvolt_2(47),FP2,False)

平均(1,SEvolt_2(48),FP2,False)

平均(1,SEvolt_2(49),FP2,False)

平均(1,SEvolt_2(50),FP2,False)

平均(1,SEvolt_2(51),FP2,False)

平均(1,SEvolt_2(52),FP2,False)

平均(1,SEvolt_2(53),FP2,False)

平均(1,SEvolt_2(54),FP2,False)

平均(1,SEvolt_2(55),FP2,False)

平均(1,SEvolt_2(56),FP2,False)

平均(1,SEvolt_2(57),FP2,False)

平均(1,SEvolt_2(58),FP2,False)

平均(1,SEvolt_2(59),FP2,False)

平均(1,SEvolt_2(60),FP2,False)

平均(1,SEvolt_2(61),FP2,False)

平均(1,SEvolt_2(62),FP2,False)

平均(1,SEvolt_2(63),FP2,False)

平均(1,SEvolt_2(64),FP2,False)

平均(1,AirTC,FP2,False)

サンプル(1,RH,FP2)

平均(1,WS_ms,FP2,False)

サンプル(1,風向,FP2)

エンドテーブル

データテーブル(テーブル2、True、-1)

データ間隔(0,1440,最小,10)

最小値(1,BattV,FP2,False,False)

エンドテーブル

「メインプログラム」は、すべての測定が行われる場所です

開始プログ

'5分ごとにスキャンを実行するように設定する

スキャン(5,分,1,0)

'デフォルトのデータロガーバッテリー電圧測定 BattV

バッテリー(BattV)

'CMP22 直接日射計測定 SlrkJ および SlrW

電圧差(SlrW,1,mV25,1,True,0,_60Hz,1,0)

SlrW<0 の場合、SlrW=0

SlrkJ = SlrW * 33.25942

SLrW=SLrW*105.9322 です。

'CMP11 日射計測定 SlrkJ_2 および SlrW_2

このセンサーは、異なる較正係数を持つテスト用日射計に一時的に置き換えられました。

電圧差(SlrW_2,1,mV25,2,True,0,_60Hz,1,0)

SlrW_2<0 の場合、SlrW_2=0

SlrkJ_2 = SlrW_2 * 33.25942

'SlrW_2=SlrW_2*105.5966 *****CMP 11係数****

SlrW_2 = SlrW_2 * 142.857

'CMP22 拡散日射計測定 SlrkJ_3 および SlrW_3

電圧差(SlrW_3,1,mV25,3,True,0,_60Hz,1,0)

SlrW_3<0 の場合、SlrW_3=0

SlrkJ_3 = SlrW_3 * 33.25942

SlrW_3 = SlrW_3 * 110.8647

'SR50A ソニック測距センサ(SDI-12出力)の測定

'センサーの高さは、最初は任意の測定値に設定されていました

センサー高さ=2

SDI12レコーダー(SR50A(),7,"0","M1!",1,0)

TCDT=DT*SQR((空気TC+273.15)/273.15)

積雪深=センサー高度-TCDT

'タイプT(銅コンスタンタン)熱電対測定 'AM25TマルチプレクサのTemp_C_2()

AM25T(温度_C_2(),25,mV2_5C,1,4,タイプT,RTempC_2,5,3,3,True,0,_60Hz,1,0)

'タイプT(銅コンスタンタン)熱電対測定 'AM25TマルチプレクサのTemp_C()

AM25T(温度_C(),25,mV2_5C,1,5,タイプT,RTempC,5,4,3,True,0,_60Hz,1,0)

'05103 風速・風向センサー測定

風速を測定

パルスカウント(WS_ms,1,1,1,1,0.098,0)

'風向を測定します。この測定では励起を使用します'ポート1

BrHalf(WindDir,1,mV2500,11,1,1,2500,True,0,_60Hz,355,0)

WindDir>=360 の場合、WindDir=0

'AM16/32マルチプレクサを両方ともオンにする

ポートセット(2,1)

遅延(0,150,ミリ秒)

'データカウンタを初期化する

Lカウント=1

最初のマルチプレクサのスキャンを開始

サブスキャン(0,uSec,32)

'次のAM16/32マルチプレクサチャンネルに切り替える

パルスポート(1,10000)

遅延 (0,100,uSec)

AM16/32マルチプレクサの汎用シングルエンド電圧測定SEVolt():このコードを変更して、電流を0~2.5V、電圧を0~5Vとして読み取る

VoltSe(SEvolt(LCount),2,mV5000,13,True,0,_60Hz,1,0)

LCount=LCount+2

次サブスキャン

'スキャンウェスタンAYAマルチプレクサ

Lカウント=1

サブスキャン(0,uSec,32)

'次のAM16/32マルチプレクサチャンネルに切り替える

パルスポート(1,10000)

遅延 (0,100,uSec)

このマルチプレクサの最後の 2 つの差動チャネルは温度と RH も測定し、これらの IF ステートメントはこれらが適切に測定されることを保証します。

Lcount=61の場合

'気温を測定

電圧差 (AirTC,1,mV2500,8,True,0,_60Hz,0.1,-40)

それ以外の場合、LCount=63

一般的な差動電圧測定RH:

電圧差 (RH,1,mV2500,8,True,0,_60Hz,0.1,0)

それ以外

AM16/32マルチプレクサの汎用シングルエンド電圧測定SEVolt():このコードを変更して、電流を0~2.5V、電圧を0~5Vとして読み取る

ボルトSe(SEvolt_2(LCount),2,mV5000,15,True,0,_60Hz,1,0)

終了

LCount=LCount+2

次サブスキャン

AM16/32マルチプレクサをオフにする

ポートセット(2,0)

遅延(0,150,ミリ秒)

データテーブルを呼び出し、データを保存する

呼び出しテーブル(テーブル1)

呼び出しテーブル(テーブル2)

ネクストスキャン

終了プログ

Cookies help us deliver our services. By using our services, you agree to our use of cookies.