1.カスタム·プロトコル·ディレクティブの概要カスタム命令は、TDFH標準プロトコルに限定されず、他のプロトコルを使用するプロセスでユーザーを容易にするために、プロジェクトでmodbusプロトコルを使用することができ、カスタムプロトコルは主に2つの大きなモジュールで構成され、1つはカスタムプロトコル送信モジュールであり、もう1つはカスタム命令受信解析モジュールです。
図2.1カスタムプロトコル送信の追加
図3.1カスタム命令関数の説明BYTEこのキーワードは、$BYTE #3000のように、インデックス3000の変数の値をその位置で最下位バイトにすることを意味します。インデックス3000の変数の値は0x1024です。たとえば、カスタムプロトコル55AA $BYTE #3000 10ffを送信する必要がある場合、カスタムプロトコル命令は次のようになります。55 AA 24 10 FF。55AA $BYTE #3000 +2 10ffを実行すると、55AA A26 10FFのカスタムプロトコル命令が送信されます。2BYTEMBYTEの使用法と一致していますが、このキーワードは2バイトで表され、最后のMは上位の値を示します。例えば、Index 3000変数の値が0x1234の、位置は0x12 0x34であり、カスタムプロトコル55AA $2BY #3000 10ffを送信する必要があるとすると、送信されるカスタムプロトコル命令は55AA 12 34 10FFとなります。2BYTEL2BYTEMの使用法と一致して、末尾のLは下位の値を示し、例えばインデックス3000変数の値が0x1234である場合、この位置は0x340x12であり、カスタムプロトコル55AA $2BYTEL #3000 10ffを送信する必要があると仮定すると、送信されるカスタムプロトコル命令は、55AA 34 12 10FFである。4BYTEMBYTEの使用法と一致していますが、キーワードは4バイトで表され、末尾にMが上位の値を示します。たとえば、インデックス3000変数の値が0x12345678の場合、位置は0x120x340x56 0x78になります。カスタムプロトコル55AA $4BYTEM #3000 10ffを送信する必要があると仮定すると、カスタムプロトコル命令は次のようになります。55 A-12 34 56 7 8 10 FF。4BYTEL4BYTELの使用と同じように、4バイトで下位が前にあります。これは演算や変数値の取得にも使用されます。例えば、$4BYTEL #3000は、変数の値が1の場合、位置は01です。
00
00
カスタムプロトコル55 AA $4BYTEL #3000 10ffを送信する必要があると仮定すると、送信されるカスタムプロトコルコマンドは、55 AA 01 00 00 00 10FFとなります。CRC16MODBUSこのキーワードは、その位置に標準MODBUSを使用するチェック方式を示し、サイズは2バイトで、$CRC16 MODBUS a bと書かれ、引数 aは、どの位置からチェックを開始するかを示します。例えば、1ビット目から開始するかを示します。(ここで0番目のビットがない)場合、パラメータaは1であり、パラメータbは、AB CD $BYTE(#3000)$CRC16 MODBUS(1,3)のように、必要な検証長を表します。ここで、パラメータaは1で、最初のバイトから検証を開始し、パラメータbは3で、検証長は3です。DELAYこのキーワードは、カスタム命令の後に書かれているコマンドが何ミリ秒遅延するかを示します。例えば、$DELAY 1000は、1000ms遅延して送信されます。例えば、カスタムプロトコル55AA11 10ff $DELAY 1000を送信する必要がある場合、カスタムプロトコル命令は、55AA11 10FF。SUM8このキーワードは、この位置に1バイトの累積チェックがあることを示します。$SUM8 a b、abはCRC16 MODBUSと同じように使用できます。WAITこのキーワードはブロッキングを示し、$WAITのような排他的なキーワードWAITBYTESとともに使用されます。300,9BITSこのキーワードは、1バイト処理を表し、8ビットを固定します。例えば、$BITS 1,0,0,0,1,1,0,1、0x8dを表します。また、変数を使用することもできます。$BITS #3000,#3001,1,0,0,0,0、括弧内の要素が0以外の場合、1に固定され、要素が8個未満で、自動入力されます。2、フレームヘッダの設定方法Custom Protocol Send Frame Header Settingsフレームヘッダ設定、フレームヘッダは16進数値で構成され、フレームヘッダ入力など、ニーズに応じて設定可能
3.データの設定方法データ設定:送信する変数データを決定し、そのバイト数を決定します。ここで、データは$BYTE #3000 +45 *2のようにアルゴリズム的に処理できます。変数#3000の値が6の場合、この位置の値は6+45 *2=102= 0 x 66の場合、データビットは66と表示されます。4.シミュレーションデモシミュレーション実行ボタンをクリック
シミュレーション実行ウィンドウを開きます。命令を送信FF AA 04 05 06 $BYTE #3000 +45 *2 $CRC1,6MODBUS 1,6 $DELAY 3000すなわち、図3.2に示すように、ボタンコントロールをクリックすると、受信側で300 0 ms後にコマンド“FF AA 0 4 0 5 0 6 66 9E B 7”を受信できます。
図3.2カスタムプロトコル送信
図4.1カスタムプロトコル解析の追加
図5.1フレームヘッダの設定
図5.2フレームの終わり
図5.3フレーム長の設定
図5.4関連変数の設定
図5.5データ開始オフセットバイトの設定
図5.6データ長の設定バイト
図5.7データビットオフセットの設定
図5.8データ形式
取得されたデータの内容とデータ比較の値が正確に同じ場合、データ値は1であり、逆の場合は0です。データ比較が26 14に書き込まれ、受信されたデータが26 14である場合、データは正しく、スイッチ量はオン、すなわち1になり、逆にスイッチ量はオフ、すなわち0になり、スイッチの目的を達成します。1ビットのデータ比較は0,1と比較され,2ビットのデータは0,1,2,3であるので,比較データは0-3である.連続量:
連続量では、対応は式を埋めることができます。入力しない場合、データは元のデータを受信し、式に追加すると、上の図に示すように:@は受信したデータを表し、#300 0は変数300 0を表し、すべての変数は#を追加します。イベント番号の設定方法イベントハンドラを設定する,すなわちコマンド解析を受信した後,イベントハンドラメソッドを同時に実行し,イベントハンドラ番号を記入すると図5.9のようになる.
図5.9イベント番号の設定
図6.1イベント処理の追加
図6.2データ形式の設定
図6.3イベント処理方法の追加
図6.4シミュレーションコマンド解析後,図6.5に示す.
図6.5シミュレーション
関連変数は、非入力、フレーム末尾選択的、その他必須。つまり、長さ、データ長、フレームヘッダ(フレーム末尾)が一致する場合、データが00 01(データフォーマットに対応しなければならない)であるかどうかを比較することにより、番号100のイベントがトリガされるかどうかを決定する2 、直接トリガー、以下のように設定:
変換式は、関連変数に記入されず、フレーム末尾は任意で記入され、その他は必須であり、長さ、データ長、フレームヘッダ(フレーム末尾)が一致する場合に直接トリガーされる。
2.カスタムプロトコルを送信する方法新規または既存のプロジェクトファイルを開き、コントロールを選択し、ボタンコントロールを例に、イベントを追加し、処理方法を“コマンド送信→ [カスタムプロトコル]シリアルポートコマンドを送信”に設定し、図2.1に示すように、コントロールカスタムプロトコル送信を追加することができます。

3.カスタムプロトコルメッセージを送信する方法1、カスタム命令関数の説明コマンドの下の入力ボックスをクリックして、カスタム命令関数説明ウィンドウをポップアップし、入力ボックスに16進数値を入力することができ、アルゴリズム演算とCRCアルゴリズムを実行することもでき、カスタム命令関数説明ウィンドウに従ってカスタムプロトコル送信を設定します。



4.カスタム解決を追加する方法プロジェクトポップアッププロジェクトウィンドウをクリックし、プロトコル設定→プロトコルタイプを“カスタムプロトコル”に設定→カスタムプロトコル解決設定→ポップアップ解決設定→ポップアップ解決設定→ポップアップ解決設定→追加をクリックし、要求や要件に応じて設定するカスタムプロトコル解決を追加できます図4.1に示すように。

5.カスタムプロトコル解決を設定する方法
1、フレームヘッダの設定方法Custom Protocol Resolution Frame Header Settingsフレームヘッダは10バイトの長さ以下のフレームヘッダを入力することができ、各解析フレームヘッダは異なる必要があります。フレームヘッダをクリックしてカスタム命令関数説明ウィンドウをポップアップし、フレームヘッダに命令関数を入力すると、正確なデバイスが解析する役割を果たすことができます。例えば、フレームヘッダに$BYTE #3000を入力すると、変数インデックスは0 x 3000で、この変数はアドレス変数として、変数インデックスは0 x 3000変数にデバイスアドレスを設定した後、図5.1に示すように、フレームヘッダAB CD $BYTE #3000を介して、デバイスは正確に解析される。

2.フレームの終わり方チェックフレームの末尾にチェックを入れる、つまり、フレームの末尾にチェックを入れる、10バイト以下の長さのデータを入力することができ、チェックフレームの末尾にチェックを入れない、つまり、追加しない。検証フレームの末尾入力ボックスをクリックして、カスタム命令関数説明ウィンドウをポップアップし、フレームの末尾に命令関数$CRC1,6MODBUS 1,6を入力すると、命令のMODBUS検証が可能であり、フレームの末尾00 $CRC1,6MODBUS 1,6は図5.2のようになります。

3.フレーム長の設定方法フレームの長さ図5.3に示すように、フレームヘッダ、データビット、フレームテールを含む受信フレームの長さです。

関連変数の設定方法関連変数は、解析メソッドを変数に関連付けるために使用され、入力された値は変数の変数インデックス、例えば201です。つまり、最終的に解析された値は変数201の値です。例えば、インデックス201の変数はシステム時間年であり、システム時間年はコマンドによって設定できます。

データ開始オフセットバイトの設定方法データ開始オフセットバイトは、図5.5に示すように、このフレーム内のデータ内容がどのバイトから始まるかです。

データ長(バイト)の設定方法データ長バイト、すなわち、データ開始オフセットバイトから何バイトがデータであるかを図5.6に示します。

7、データビットオフセットの設定方法データビットオフセット:選択されたデータタイプが1ビットまたは2ビットの場合にのみ表示されます。これは、バイトの最初のビット(0から始まる)を選択することを意味します。例えば、データフォーマットが1ビット、データビットオフセットが3、受信データが0 xaa、バイナリ表示が10101010の場合、取得された値は1です。データフォーマットが2ビット10101010を選択した場合、図5.7のように、このとき取得される値は01(バイナリ)になります。示されたもの

8.データのフォーマット方法1ビット:1バイトの場合、0x41のように、そのバイナリ表示は01000001となり、それぞれが1ビットです。例えば、右桁最初のビットは1です。2番目は0です。2ビット:1ビットと同様にバイナリで動作しますが、0 1や00のように2ビットを取ります。1バイト:データ形式はa 1のように1バイトです。2バイト(上位の上位):データが1の場合、受信データは00 01でなければなりません。2バイト(下位が上位):データが1の場合、受信データは01 00でなければなりません。4バイト(上位の上位):データが1の場合、受信データは00 00 00 01でなければなりません。4バイト(下位が上位):データが1の場合、受信データは01 00 00 00でなければなりません。図5.8に示す。

データ型の設定方法スイッチング量:データ比較列と併せて見る必要があります。



6.イベント処理の設定方法イベントハンドリングを設定します。つまり、命令解析を受信した後、イベントハンドリングメソッドを同時に実行します。
1.イベント処理の追加方法メニューバーのイベントをクリックし、イベント処理→イベント処理ウィンドウをポップアップ→追加→イベント番号を設定(イベント番号は100-65535)をクリックします。

2.データ形式の設定方法データフォーマットは、図6.2に示すようにデータ型を設定します。

3.処理方法の設定方法イベント処理方法を追加する→“...”をクリック“”ボタンポップアップ処理方法ウィンドウ→設定要件に応じて処理方法を設定1つのイベントが図6.3に示すように、複数の処理方法を追加します。

4.シミュレーションデモ命令AB CD 00 07E4 00 CE D1を受信し、システム時間年を2020に変更し、同時にインタフェースがNEW2ウィンドウに切り替わり、命令11 22 33 44を送信します。命令解析前は,図6.4のようになる.


7.カスタムディレクティブを使用してトリガーイベントを解決する方法カスタムコマンド解析によるトリガイベントは、スイッチ量比較トリガと連続量直接トリガの2種類に分けられます。1、スイッチ量トリガにより、以下のように設定する


収穫があれば、褒めてください。
发表回复