概要:概要
オートメーションおよび制御システムでは、PLC間のCommunicationにModbus TCPプロトコルが広く使用されています。この記事では、クライアントのプログラミングとCommunicationプロセスに焦点を当て、2つのS 7 -1200 PLC間でModbus TCPCommunicationを実装する方法を説明します。
実験環境の設定
- オペレーティングシステムWIN7 SP1 Professional 64ビット
- プログラミングソフトウェア: STEP 7 Professional V13 SP1 Update 5
- システムハードウェア- CPU 1212C6ES7212 - 1AE40 - 0XB0 V4.1およびCPU 1215C6ES7215 -1AG40- 0XB0 V4.1
Modbus TCPCommunicationの基本設定
- クライアント側は: CPU 1212C
- サーバー·サーバー: CPU 1215C
- IPアドレスNetWorkerクライアント192.168.0.6、サーバ192.168.0.4
- ポート番号:Port NumberNetWorkerクライアント0サーバ502
- ハードウェア識別子: 64

ハードウェア識別子は、デバイス構成でPRO FINETインターフェイスをダブルクリックし、プロパティのハードウェア識別子で表示されます。
S 7 -1200クライアントとしてのプログラミングと通信手順
- S 7 -1200クライアント側でMB CLIENTCommandブロックを呼び出す必要があります。
- このCommandブロックは、クライアントとサーバ間のTCP接続、コマンドメッセージの送信、応答の受信、サーバ切断の制御などのタスクを完了します。
MB_CLIENTの呼び出し
MB_CLIENTCommandブロックをプログラムブロック>OB1 "のセグメント内で呼び出し、呼び出し時にバックグラウンドDBが自動的に生成されます。

MB_CLIENT足定義
- REQサーバとの間の通信要求、立ち上がりエッジ有効。
- DISCONNECTこのパラメータにより、Modbus TCPサーバとの接続の確立と終了を制御することができる。0接続の確立、1接続の解除。
- MB MODE Modbus要求モード読み取り、書き込み、または診断を選択します。
- MB_DATA_ADDR MB_CLIENTディレクティブによってアクセスされるデータの開始アドレス。
- MB DATA LEN Data Lengthデータにアクセスされるビット数またはワード数。
- MB_DATA_データレジスタへのポインタ。
- CONNECT-接続記述構造へのポインタ。TCON_IP_v4データ型を使用します。
- DONE最後のジョブが正常に完了し、出力パラメータDONEがすぐに“1”に設定されます。
- BUSYジョブ·ステータス·ビット0処理中の“MB_CLIENT”ジョブはありません。1“MBCLIENT”ジョブは処理中です。
- ERROR:错误位: 0:无错误:1:出现错误,错误原因查看STATUS。
- STATUS-Commandの詳細なステータス情報。
ピンのポインタタイプ
TCON_IP_v4構造体の作成:
- 作成する必要があるグローバル·ブロックDB2 {{ぐろーばるでーたぶろっくDB2}}と、通信構成を格納するためのTCON IP v 4データ構造を定義します。
- ダブルクリックしてDB2を開き、変数名“aa”、データ型“TCON IP v4”を定義します(TCON IP V4をダイアログにコピーします)。
- Enterキーを押すとデータ型構造が作成されます。

TCON IP v 4データ構造のピン定義は以下の通りです。

注意
- CON NECTピンの入力が必要シンボルアドレス指定その方法で
- TCON_IP_v 4はシステムデータ型であり、PLCデータ型では作成されません。
- LocalPort 一般的な使用デフォルト値0ローカルでランダムポートを使用する。
MB_DATA_PTRデータ·バッファの作成
1.一つのグローバルデータブロックDB3を作成し,作成方法は図2を参照することができ,上のステップで作成したDB2と共にCPUプログラムブロックに位置する;
生成された2つのDBブロック名

2.Communicationにデータを格納するためのWord配列のデータ型を作成します。MB_DATA_PTRデータバッファ構造

注意点は
- 指定されたデータバッファはDBブロックまたはMメモリアアドレス中であることができる;
- DBブロックは最適化されたデータブロックであってもよく,標準的なデータブロック構造であってもよい;
- 最適化されたデータブロック構造には、プリミティブデータ型の配列が必要です。
- 標準的なデータブロック構造の場合は、ピンをポインタで入力します。
- MB_DATA_PTRで指定されたデータバッファは、MB_DATA_LENビット(入力ビット、出力ビットにアクセスする場合)又はワード(保持レジスタ、入力ワードにアクセスする場合)に十分な大きさでなければならない;
- この記事では、標準データブロックデフォルトを例にプログラミングします。
DBブロック属性を標準ブロック構造に変更

クライアント侧のCommandブロックプログラミング完了
MB_CLCommandブロックを呼び出し、コード03を使用して2つの保持レジスタの値をサーバから読み出す。MB_=0、MB_DATA_ADDR =40001、MB_DATA_LEN =2

注意
- この例では、パートナーは別のS 7 -1200で、Modbus TCPサーバをサポートする任意のデバイスと交換することができます。パラメータピンに適切な値を設定し、CON NECTに適切なCommunicationパラメータを設定するだけです。
- S 7 -1200がModbus TCPクライアントとして複数のModbus TCPサーバに同時に接続する必要がある場合は、複数のMB_CLIENTを使用する必要があります。
- Modbus TCP接続に複数のCommunicationジョブがあり、各ジョブがMB_CLIENTを1回呼び出す場合、各呼び出しで同じバックグラウンドデータブロックを使用する必要があり、CON NECTと同じパラメータを使用します。
ダウンロードとテスト。
プログラムが完了したら、プロジェクト全体をS 7 -1200 PLCにダウンロードします。サーバ側の準備が完了したら、MB CLIENTコマンドブロックのREQピンの立ち上がりエッジをトリガしてCommunicationを開始します。読み込まれたデータはMB DATA PTRピンで指定されたDBブロック変数に格納されます。
結論:結論
以上の手順により、2つのS 7 -1200 PLC間のModbus TCPCommunicationを正常に実現できます。クライアントのプログラミングには、効率的で信頼性の高いCommunicationを実現するために不可欠な、詳細なCommandブロック構成とデータ構造の定義が含まれます。この通信方法は、産業オートメーションで広く使用されており、デバイス間のデータ交換のための安定したプラットフォームを提供します。
Leave a Reply