シーメンスS 7 - 200 Modbus RTU 通信の形態

無料無料技术资料

这篇内容可直接阅读,适合用于基础学习和検索引流。

シーメンスS 7 - 200 Modbus RTU 通信方式

S 7 - 200はModbus RTU 通信プロトコルをサポートします。

  • S 7 - 200 CPUのポート0は、命令ベース経由でModbus RTUスレーブモードをサポートします。
  • S 7 - 200 CPUのポート0と1 (ポート0とポート1)は、命令ベースを介してModbus RTUマスターモードをサポートします。

S 7 - 200 CPU 通信ポートではRS 485半二重通信を実現し、S 7 - 200のフリーポート機能を使用しています。
Modbus 通信プロトコルはS 7 - 200 CPU 通信ポートのフリーポートモードで実装されており、無線データ局などの低速通信機器を介して伝送することができます。これにより、S 7 - 200間のシンプルな無線通信ネットワークの形成が容易になります。
詳細は、“S 7 - 200システムマニュアル”(2002 年 10 月以降)の該当項をご参照ください。

S 7 - 200はModbus ASCII 通信モードをサポートしますか?

Siemens s 7 - 200は上記のモードをサポートする既製の命令ライブラリを提供しておらず、ユーザー自身がフリーポートモードでプログラミングする必要がある。

Modbus RTUマスター

Modbus RTUマスター命令ライブラリ

SiemensはMicro/WIN V 4.0 SP5でModbus RTUマスタープロトコルライブラリ(Siemens標準ライブラリ命令)を正式に発表した。

シーメンスS 7 - 200 Modbus RTU 通信方式插图
図1.。シーメンス命令ライブラリMicro/WIN V4.0 SP5

注意点は:

1. Modbus RTUマスター命令ライブラリの機能は、ユーザプログラム内であらかじめプログラムされたプログラム機能ブロックを呼び出すことによって実現され、ポート0とポート1で有効である。命令ライブラリは、通信ポートをフリーポートモードで動作させるように設定します。

2. Modbus RTUマスター命令ライブラリは一部のユーザ割込み機能を使用しており、他のプログラムはユーザプログラム内の割込みを禁止できない。

3. Modbus RTUマスターライブラリにはCPUのバージョンが必要です。CPUのバージョンは2.00または2.01(つまり注文番号6ES721 *-**23- 0BA *)である必要があり、バージョン1.22以前(バージョン1.22を含む)のS7 - 200 CPUはサポートされていない。

Modbus RTUマスター命令ライブラリを使用して、Modbus RTUスレーブのデジタル、アナログI/O、および保持レジスタを読み書きすることができます。

Modbus RTUマスター命令ライブラリを使用するには、以下の手順に従います。

1.Siemens Standard Libraryのインストール

2.要求に従ってModubs RTUマスター命令ライブラリを呼び出すユーザプログラムを記述する

Modbus RTUマスター機能プログラミング

Modbus RTUマスター初期化および制御サブルーチンの呼び出し

SM 0.0を使用してMBUS_CTRLを呼び出し、マスターステーションの初期化を完了し、その機能制御を開始します。

シーメンスS 7 - 200 Modbus RTU 通信方式插图1
図2の図。SM 0.0でModbus RTUマスター初期化制御サブルーチンを呼び出す

各パラメータの意味は次のとおりです。

A.。ENイネーブル:各スキャンサイクルをイネーブルする必要があります(SM 0.0を使用)。

b.。モードモード:1の場合、Modbusプロトコル機能を有効にし、0の場合、システムPPIプロトコルに戻る。

C.。ボーレート:1200、2400、48 0 0、96 00、19200、38400、576 00、115200の通信ボーレートをサポートしています。

D.。Parity検证:検证方式选択

0=検証なし
1=奇妙なテスト
2=比較テスト

E.。タイムアウトタイムアウト:マスターがスレーブからの応答を待つ時間(ミリ秒単位)。標準的な設定値は1000ミリ秒(1 秒)で、設定可能な範囲は1 ~ 32 7 67です。
 注:この値は、スレーブが応答する時間を確保するのに十分な大きさに設定する必要があります。

F.。Done完了ビット:初期化が完了し、自動的に1に設定されます。MBUS_MSGの読み書き操作を開始するために使用できます(ルーチン参照)。

G.。エラー初期化エラーコード(Doneビットが1の場合のみ有効):

0=エラーなし
1=不正な選択
2=違法な選択
3=違法なモデル選択

Modbus RTUマスタープログラムMBUS_MSGを呼び出し、Modbusリクエストを送信します。

シーメンスS 7 - 200 Modbus RTU 通信方式插图2
図3に示す。Modbus RTUマスター読み書きサブルーチンの呼び出し

各パラメータの意味は次のとおりです。

A.。ENイネーブル:一度に1つの読み書き機能(MBUS_MSG)のみを有効にできます。

注:すべての読み書き命令がループするように、すべての読み書き機能(すなわちMBUS_MSG)は、最後のMBUS_MSG命令のDone完了ビットでアクティブにすることを推奨します(ルーチン参照)。

b.。最初の読み書き要求ビット:新しい読み書き要求はすべてパルスでトリガーする必要があります。

C.。スレーブアドレス:選択可能な範囲1 - 247

D.。RWスレーブアドレス: 0 =読み取り、1 =書き込み

注意点:

1.スイッチング量出力およびホールドレジスタは、読み取りおよび書き込み機能をサポートします。

2.スイッチング入力とアナログ入力は読み取り機能のみをサポート

E.。Addrはスレーブのデータアドレスを読み書きします。

読取りおよび書込みのデータ型の選択

00001 ~ 0 xxxx:スイッチング量出力

10001 ~ 1xxxx -スイッチ量入力

30001から3xxxx -シミュレーション入力

40001 ~ 4 xxxx:レジスタを保持

F.。通信されたデータの数(ビットまたは単語の数)。

注: Modbusマスターが読み書きできるデータの最大量は120ワードです(MBUS_MSG命令あたり)。

G.。Datarデータポインタ: 1.読み取り命令の場合、読み戻されたデータはこのデータ領域に置かれます。

書き込み命令の場合、書き込むデータはこのデータ領域に置かれます。

h.。Done完了ビット読み書き機能完了ビット

私は.。エラーコード:Doneビットが1の場合にのみ有効です。

0 =エラーなし

1 =応答検証エラー

2 = 未使用

3 =受信タイムアウト(スレーブからの応答なし)

4 =要求パラメータエラー slave address Modbus address count RW

5 = Modbus/フリーポートが有効ではない

6 = Modbusは他のリクエストで忙しい

7 =レスポンスエラー(レスポンスが要求されたアクションではない)

8 = CRCチェックサムエラーに応答

-

101 =要求された機能をスレーブがサポートしていない
102 =スレーブはデータアドレスをサポートしていません
103 =スレーブはこのデータ型をサポートしません。
104 =スレーブデバイスの障害
105 =スレーブはメッセージを受信したが、応答が遅れた。
106 =送信局がビジーで、メッセージを拒否しました。
107 =駅からのメッセージ拒否
108 =スレーブ·ストレージ·パリティ·エラー

よくある間違い:

複数のMBUS_MSGディレクティブが同時に有効になるとエラー 6が発生します。

ライブラリストアはプログラムの他の場所で再利用され、エラー 6を引き起こすことがある。

スレーブ遅延パラメータの設定時間が長すぎると、マスターエラー 3が発生します。

ステーションから電源が落ちたり、動作しないと、ネットワーク障害がマスターステーション3エラーを引き起こします。

CPUのVデータ内のライブラリ命令にストアLibrary Memoryを割り当てる

Modbus Masterライブラリには284バイトのグローバルVストアが必要である。

1.3 Modbus RTUマスタープロトコルとアドレス

これは、Siemensが正式にリリースした標準ライブラリ命令の説明です。

Modbus RTU MasterプロトコルとPPIプロトコルの切り替え:

Modbus RTUマスタープロトコル命令ライブラリは、マイクロ/WINソフトウェアと通信できないフリーポートモードで通信ポートを動作させます。PPIプロトコルに戻るには:

  1. MBUS_命令のMode入力を“0”にする
  2. CPUの許可モード選択スイッチをSTOP 位置にする

Modbus RTU Masterプロトコルライブラリの実行時間:

Modbus RTUマスタープロトコルライブラリのMBUS_CTRL命令は、長い実行時間を必要としません。MBUS_は初期化に1.11 msを必要とし、後続の各スキャンサイクルでは0.41 msしか消費しません。

MBUS_MSGサブルーチンを呼び出すと、処理時間が長くなります。ほとんどの時間はCRCの計算に費やされます。データの読み書きには1.85 msのスキャン時間が必要です。最大データ(120ワードの読み書き)の場合、スキャン時間は約222 ms増加します。読み取り操作の時間は主にデータの受信に費やされ、書き込み操作の時間は主にデータの送信に費やされます。

Modbusアドレス

Modbusアドレスは通常、先頭のデータタイプコードとその後のオフセットアドレスを含む5桁の数字で構成されます。Modbus Masterプロトコルライブラリは、標準的なModbusアドレスをいわゆるModbus機能番号にマッピングし、スレーブからデータを読み書きする。Modbus Masterプロトコルライブラリは以下のアドレスをサポートします。

  • 00001 - 0 9999:デジタル出力(コイル)
  • 10001 - 1999:デジタル入力(接点)
  • 300 01 - 39999:入力データレジスタ(通常はアナログ入力)
  • 40001 - 49999:データ保持レジスタ

Modbus Masterプロトコル·ライブラリでサポートされる機能

上記のModbusアドレスの読み書きをサポートするには、Modbus Masterプロトコルライブラリは以下の機能をサポートする必要があります。

テーブル1。スレーブのサポートが必要な機能

Modbusアドレスリーディング/ライティングModbusスレーブがサポートする機能
00001 - 09999デジタル出力。読書をする。機能コード1
00001 - 09999デジタル出力。書くこと。機能コード5:単一出力ポイントの書き込み
機能コード15:複数の出力ポイントを書く
10001 - 19999数字の入力読書をする。機能コード2
10001 - 19999数字の入力書くこと。-
30001 - 39999入力レジスタ。読書をする。機能コード4
30001 - 39999入力レジスタ。書くこと。-
40001 - 49999レジスタの保持読書をする。機能コード3
40001 - 49999レジスタの保持書くこと。機能6:単一レジスタユニットの書き込み
機能16:マルチレジスタユニットの書き込み

ModbusアドレスとS 7 - 200ストレージアドレスのマッピング

S 7 - 200がModbus MasterとSlaveプロトコルライブラリを介して通信する場合、ModbusアドレスとS 7 - 200内のメモリアドレスのマッピング関係は類似しています。

シーメンスS 7 - 200 Modbus RTU 通信方式插图3

Modbusデジタルアドレスマップの例:

ビットアドレス(0 xxxxと1 xxxx)データは常にバイト単位で読み書きされます。最初のバイトの最下位ビットはModbusアドレスの開始アドレスに対応します。下の図のように:

シーメンスS 7 - 200 Modbus RTU 通信方式插图4

図4。数値アドレスマッピングの例

1.4 Modbus RTUマスタールーチン

Modbusマスタのプログラミングをよりよく理解するには、以下のルーチンを参照してください。

例プログラム1複数のMBUS_MSG命令ポーリング実行、

注意点は

  • 1.このルーチンはMicro/WIN V4.0 SP5を使用して保存されます。
  • 2.このルーチンは1つのスレーブにのみアクセスし、異なるスレーブにアクセスする場合はスレーブアドレスを変更することで実現できます。

シーメンスS 7 - 200 Modbus RTU 通信方式插图5Modbus RTUマスター命令ベースアプリケーションルーチン

手順2:単一のMBUS_MSGコマンドを繰り返し起動する:

シーメンスS 7 - 200 Modbus RTU 通信方式插图5Modbus RTUマスタ可変アドレス方式ポーリングアクセスアプリケーションルーチン

シーメンスS 7 - 200 Modbus RTU 通信方式插图6注意点:このライブラリ/プログラムの作成者およびすべての者は、ソフトウェアの機能性および互換性について責任を負いません。ソフトウェアの使用は、ユーザー自身のリスクで行われます。無料であるため、保証、エラー訂正、ホットラインサポートは提供されておらず、ユーザーはシーメンスのテクニカルサポート&サービスに連絡する必要はありません。

1.5 Modbus RTUマスターよくある質問

シーメンスS 7 - 200 Modbus RTU 通信方式插图7Modbus RTUマスターライブラリにはCPUバージョンの要件がありますか?なぜサンプルプログラムをコンパイルすると4つのエラーが発生するのですか?

Modbus RTUマスターライブラリにはCPUのバージョン要件があり、CPUのバージョンは2.00または2.01(すなわち、注文番号は6 ES721 *-**23-0BA*)でなければならず、バージョン1.22以前(バージョン1.22を含む)のS7 - 200 CPUはサポートされていない。

シーメンスS 7 - 200 Modbus RTU 通信方式插图7Modbusライブラリが起動した後、同じ通信ポートからCPUを監視する方法は?

Modbus命令ライブラリはCPUのフリーポート通信機能を使用しており、フリーポートモードで動作する通信ポートはMicro/WINのPPIプログラミング通信監視を使用することはできません。通信ポートがすでに占有されている場合は、以下を考慮します。

  • 通信モジュール(EM 277、CP 24 3 -1、EM 241など)を追加して、プログラミング通信ポートを拡張します。
  • CPUのモードスイッチをRUNからSTOPにダイヤルするか、RUN状態のままにしてプログラムで命令ライブラリのModbusモードを停止する(命令ライブラリアプリケーションを参照)。

シーメンスS 7 - 200 Modbus RTU 通信方式插图7 Modbusアドレスと関数コードの違いは何ですか?

ModbusアドレスとModbus関数コードは2つのレベルの概念です。

Modbus 通信プロトコルによると、Modbusデータのアドレスは0 xxxx、1 xxxx、3 xxxx、4 xxxxの形式を使用し、それぞれデジタル出力、デジタル入力、アナログ入力などのデータアドレスを表します。S 7 - 200の命令ベースを使用する場合、ModbusデータアドレスとS 7 - 200のI/Oおよびデータストアアドレスには特定の対応があります。

一部のデバイスはModbus RTU 通信プロトコルをサポートしているが、Modbus局のアドレス指定方法、読み書きデータの種類、長さなど、読み書きデータの詳細な通信フレームフォーマットも提供している。データフレームには、この命令によって読み書きされるデータの種類とアドレスを示す特定のバイトがあり、このバイトのデータ内容はいわゆる“機能コード”と呼ばれ、機能1のように、単一/複数の数値出力ポイントの値を読み取ることを指定します。

Modbusプロトコルをサポートするデバイスまたはソフトウェアは、ユーザーが直接設定または表示するModbusデータアドレスでなければなりません。Modbusアドレスがアクセスするデータは、さまざまな“機能”によって読み書きされます。関数コードはModbusアドレスの下位レベルである。Modbus 通信の当事者が提供するいわゆるModbusプロトコルが機能コードのみである場合、この機能番号とModbusアドレスの対応に注意する必要があります。

シーメンスS 7 - 200 Modbus RTU 通信方式插图79999より大きいキープトレジスタアドレスにアクセスするには?

通常、Modbusプロトコルの保持レジスタアドレスは40001から49999の間である。ほとんどのアプリケーションでは十分です。しかし、一部のModbusスレーブは9999を超えるアドレスを保持レジスタ領域にマップする。

Modbus Masterプロトコルライブラリは9999以上の保持レジスタアドレスをサポートしている。アドレス範囲は400001 ~ 46553 6です。MBUS_MSGサブルーチンを呼び出すときに、Addrパラメータに適切な値(416768など)を割り当てるだけです。

シーメンスS 7 - 200 Modbus RTU 通信方式插图6 Modubs Master拡張アドレスモードは、保持レジスタ領域のみをサポートし、他のアドレスタイプはサポートしません。

シーメンスS 7 - 200 Modbus RTU 通信方式插图7S 7 - 200がModbusマスタとして受信するデータ形式がサードパーティ製デバイスと異なる場合はどうなりますか?

Siemens PLCデータの格納フォーマットは、ハイローストレージモードです。例:VD200にはVW200とVW202が含まれ、VW202はローワード、VW200はハイワードです。サードパーティ製デバイスとシーメンスのデータストレージフォーマットが異なる場合、低および低ストレージの方法である場合、通信上のデータにエラーがあり、使用するために変換する必要があります。プログラミングの方式は比較的多様であり,ダブルワードでの高低ワードの交換にはSWAP(ワードスワップ)命令が用いられ,バイト交換であれば巡回シフト命令が考えられる.

シーメンスS 7 - 200 Modbus RTU 通信方式插图7S 7 - 200はModbus TCPなどの他のプロトコルをサポートしますか?

サポートはなし。S 7 - 200の通信ポートや通信拡張モジュールは、Modbus TCP、CANopen、DeviceNet、BACnet 通信プロトコルをサポートしていません。

シーメンスS 7 - 200 Modbus RTU 通信方式插图7 ModbusマスタとしてS 7 - 200がMBUS_MSGコマンドでエラー 6を返すのはなぜですか?

6番エラーの原因は主に2つある:1.複数のMBUS_MSG命令が同時に実行可能になる;2. Modbusライブラリストアに割り当てられた推奨アドレス領域は、プログラミングですでに使用されているVストアと重複しています。

2Modbus RTUスレーブ

2.1 CPUのポート0はModbus RTUスレーブ通信プロトコルをサポートします。

S 7 - 200 CPUのポート0はModbus RTUプロトコルをサポートし、Modbus RTUスレーブとなる。この機能は、S 7 - 200のフリーポート通信モードによって実現されているため、無線データ局などの低速通信機器を介して送信することができます。

シーメンスS 7 - 200 Modbus RTU 通信方式插图8 詳細については、S 7 - 200システムマニュアルの関連セクションを参照してください。

Modbus RTU通信を実装するには、STEP 7-Micro/WIN 32 V 3.2以上のプログラミングソフトウェアと、STEP 7-Micro/WIN 32 V 3.2 Instruction Libraryが必要です。Modbus RTU機能は、命令ライブラリにあらかじめプログラムされたプログラム機能ブロックによって実現されます。

シーメンスS 7 - 200 Modbus RTU 通信方式插图6 Modbus RTUスレーブ命令ライブラリはCPU上のポート0のみをサポートしている。

2.2プログラミングの基本ステップ:

Micro/WINのソフトウェアバージョンを確認してください。STEP 7-Micro/WIN V 3.2以上です。

Micro/WINの命令ツリーにModbus RTUスレーブ命令ライブラリが存在するかどうかを確認します(図1)。ライブラリにはMBUS_INITとMBUS_SLAVEの2つのサブルーチンが含まれている必要があります。そうでない場合は、Micro/WIN 32 V 3.2用のInstruction Libraryパッケージをインストールする必要があります。シーメンスS 7 - 200 Modbus RTU 通信方式插图9

図1.。命令ツリー内のライブラリ命令

サブプログラムMBUS_INITをSM 0.1で呼び出して初期化し、MBUS_SLAVEをSM 0.0で呼び出して適切なパラメータを指定します。引数の詳細な説明は、サブルーチンのローカル変数テーブルにあります。シーメンスS 7 - 200 Modbus RTU 通信方式插图10

図2の図。Modbus RTU通信命令ライブラリの呼び出し

パラメータの意味は以下の通りです。

  • モード選択:Modbusの起動/停止、1=起動、0=停止
  • スレーブアドレス:Modbusスレーブアドレス、値1~247
  • ボーレート:1200、2400、48 0 0、96 00、19200、38 400、576 00、115200
  • パリティ0=无し、1=奇、2=偶
  • 遅延追加文字間の遅延、デフォルト値は0です。
  • Maximum I/Q Bit:通信に参加するI/Oポイントの最大数。S 7 - 200のI/Oイメージ領域は128/128、デフォルトは128です。
  • 最大AIワード数:通信に参加するAIチャネルの最大数(16または32)
  • 最大保持レジスタ領域:通信に関与するVワード(VW)
  • 保持レジスタ領域の開始アドレス:VBXで指定(間接アドレス指定)
  • 初期化完了フラグ成功初期化後1
  • 初期化エラーコード
  • Modbus実行:通信中は1、Modbus 通信アクティビティがない場合は0です。
  • エラーコード:0=エラーなし

テーブル表 1. 駅からのエラーコード

エラーコード説明する。
0エラーなし
1ストア範囲のエラー
2不正なボーレートまたは検証
3違法な住所。
4Modbusパラメータの不正な値
5Modbusスレーブシンボルアドレスと重複するレジスタ
6受信検証エラー
7CRCエラーの受信
8不正な機能要求/サポートされていない機能
9要求に不正なストアアドレスがあります
10スレーブ機能が有効になりません

CPUのVデータ領域内ライブラリディレクティブデータ領域の割り当て;

必要に応じて、マスターソフトウェアを使用します。

シーメンスS 7 - 200 Modbus RTU 通信方式插图6注意点:サブルーチンパラメータHoldStartとMaxHoldで指定された保持レジスタ領域は、S 7 - 200 CPUのVデータストアに割り当てられます。このデータ領域は、ライブラリ命令データ領域と重複することはできません。さもなければ、実行時にエラーが発生し、正常な通信ができません。Modbusのホールドレジスタ領域は“ワード”でアドレス指定されます。つまり、MaxHoldはVBではなくVWの数を指定します。

図2の例では,Modbusの保持レジスタ領域はVB0から始まり(HoldStart = VB0),保持レジスタは1000ワード(MaxHold=1000)と定められているが,保持レジスタはワード(2バイト)単位であるため,実際にはこの通信バッファはVB0 〜 VB1999の合計2000バイトを占めている.そのため、割り当てライブラリディレクティブは少なくともVB2000からデータ領域を保持する必要がある。しかし、ポジションはVB0から始める必要はありません。

シーメンスS 7 - 200 Modbus RTU 通信方式插图6注意点:選択したCPUのVストレージサイズ! CPUモデルによってVデータストアサイズが異なります。Modbus保持レジスタ領域のサイズは、必要に応じて選択してください。

シーメンスS 7 - 200 Modbus RTU 通信方式插图11Modbus RTUスレーブ命令ライブラリを含むプロジェクトがコンパイルされてCPUにダウンロードされた後、プログラミングコンピュータ(PG/PC)上でModbusテストソフトウェアを実行すると、S 7 - 200のModbus RTU通信が正常であることが確認され、障害点を見つけるのに役立ちます。テストソフトウェアは、コンピュータシリアルポート(RS-232)とPC/PPIケーブルを介してCPUに接続されます。必要に応じて、PC/PPIケーブルはフリーポート通信モードに設定してください。

ModScan32のようなソフトウェアのダウンロードサイトでは、類似のソフトウェアを見つけることができます。

2.3 Modbus RTUスレーブアドレスはS 7 - 200のアドレスに対応する。

Modbusアドレスは常に0001、300 04などの形式で表示されます。S 7 - 200内部のデータストアとModbusのクラス0、1、3、4アドレスの対応関係は以下のとおりです。

テーブル2。Modbusアドレス対応表

ModbusアドレスS 7 - 200データゾーン
00001 ~ 00128Q0.0 ~ Q15.7
10001 ~ 10128I0.0 ~ I15.7
30001 ~ 30032AIW0 ~ AIW62
40001 ~ 4xxxxT ~ T + 2 * (xxxx -1)

ここで、TはS 7 - 200のバッファ開始アドレス、すなわちHoldStartです。

S 7 - 200のVメモリアドレスが既知の場合、Modbusアドレスの計算式は次のようになります。

Modbusアドレス= 40000 + T/2+1、Tは偶数

2.4 Modbus RTUスレーブ命令ライブラリがサポートする機能コード

Modbus RTUスレーブ命令ライブラリは特定のModbus機能をサポートする。この命令ライブラリを使用するマスターステーションにアクセスするには、この命令ライブラリの要件に従う必要があります。

テーブル3。Modbus RTUスレーブ機能コード

関数コードの特徴マスターは対応する機能コードを使用してこのスレーブに作用する効用を
1単一/複数のコイル(離散出力ポイント)の状態を読み取ります。機能1任意の個数の出力ポイント(Q)のON/OFF状態を返します。
2単一/複数接点(離散量入力点)の状態を読み取ります。機能2任意の個数の入力点(I)のON/OFF状態を返す.
3単一/複数の保持レジスタを読み込む。機能3Vストアの内容を返す. Modbusプロトコルでは、レジスタはすべて“ワード”値で保持され、1回のリクエストで最大120ワードのデータを読み取ることができます。
4シングル/マルチ入力レジスタを読み込みます。機能4は、S7 - 200のアナログ量データ値を返す。
5個々のコイル(離散量出力点)を書き込みます。機能5は、離散量出力ポイントを指定値に設定します。この点は強制されず、ユーザープログラムはModbus 通信要求によって書き込まれた値を上書きすることができる。
6単一の保持レジスタを書き込む。Function 6 S 7 - 200のVメモリ領域のホールドレジスタに値を書き込む。
15複数のコイル(離散量出力点)を書き込みます。機能15は、複数の離散量出力点の値をS7 − 200の出力イメージレジスタ(Qゾーン)に書き込む。出力ポイントのアドレスはバイト境界(Q 0.0やQ 2.0など)から始まり、出力ポイントの数は8の整数倍でなければなりません。これは、このModbus RTUスレーブ命令ライブラリの制限です。いくつかのポイントは強制されず、ユーザープログラムはModbus 通信要求によって書き込まれた値を上書きできる。
16複数の保持レジスタ。機能16は、S 7 - 200のVメモリ領域の保持レジスタに複数の値を書き込む。1回のリクエストで最大120文字のデータを書き込むことができます。

2.5 Modbus RTUスレーブルーチン

シーメンスS 7 - 200 Modbus RTU 通信方式插图5Modbus RTUスレーブルーチン

STEP 7-Micro/WIN V 4.0 SP 3以上が必要です。

2.6 Modbus RTUスレーブよくあるご質問

シーメンスS 7 - 200 Modbus RTU 通信方式插图7ModbusスレーブのネットワークアドレスとS 7 - 200のCPUネットワークアドレスの関係は何ですか?

関係ないよネットワーク通信をサポートする通信プロトコルには、独自のネットワークアドレス指定が必要です。ModbusスレーブのアドレスはModbusネットワーク上のアドレスであり、一般的にS 7 - 200 CPUアドレスと呼ばれるものはSiemensのPPIネットワーク上のCPUのステーションアドレスである。S 7 - 200 CPUの通信機能の主に。は、プログラミング、ネットワーク読み書き通信など、PPIネットワークを介して行われます。

シーメンスS 7 - 200 Modbus RTU 通信方式插图7 Modbusアドレスと関数コードの違いは何ですか?

ModbusアドレスとModbus関数コードは2つのレベルの概念です。

Modbus 通信プロトコルによると、Modbusデータのアドレスは00xxx、10xxx、30xxx、40xxxの形式を用い、それぞれデジタル量出力、デジタル量入力、アナログ量入力などのデータアドレスを表す。S 7 - 200の命令ベースを使用する場合、ModbusデータアドレスとS 7 - 200のI/Oおよびデータストアアドレスには特定の対応があります。

一部のデバイスはModbus RTU 通信プロトコルをサポートしているが、Modbus局のアドレス指定方法、読み書きデータの種類、長さなど、読み書きデータの詳細な通信フレームフォーマットも提供している。データフレームには、この命令によって読み書きされるデータの種類とアドレスを示す特定のバイトがあり、このバイトのデータ内容はいわゆる“機能コード”と呼ばれ、機能1のように、単一/複数の数値出力ポイントの値を読み取ることを指定します。

Modbusプロトコルをサポートするデバイスまたはソフトウェアは、ユーザーが直接設定または表示するModbusデータアドレスでなければなりません。Modbusアドレスがアクセスするデータは、さまざまな“機能”によって読み書きされます。関数コードはModbusアドレスの下位レベルである。Modbus 通信の当事者が提供するいわゆるModbusプロトコルが機能コードのみである場合、この機能番号とModbusアドレスの対応に注意する必要があります。

シーメンスS 7 - 200 Modbus RTU 通信方式插图7Modbusライブラリが起動した後、同じ通信ポートからCPUを監視する方法は?

Modbus命令ライブラリはCPUのフリーポート通信機能を使用しており、フリーポートモードで動作する通信ポートはMicro/WINのPPIプログラミング通信監視を使用することはできません。通信ポートがすでに占有されている場合は、以下を考慮します。

  • 通信モジュール(EM 277、CP 24 3 -1、EM 241など)を追加して、プログラミング通信ポートを拡張します。
  • CPUのモードスイッチをRUNからSTOPにダイヤルするか、RUN状態のままにしてプログラムで命令ライブラリのModbusモードを停止する(命令ライブラリアプリケーションを参照)。

シーメンスS 7 - 200 Modbus RTU 通信方式插图7Modbus RTUを使用してS 7 - 200の実数を読み取るHMIソフトウェアでエラーが発生する理由は?

一部のHMIソフトウェアはModbus RTU通信プロトコルを使用する場合、データ保持レジスタに格納された実数(浮動小数点数)をシーメンスの実数保存フォーマットとは異なる方法で扱う。シーメンスのPLCは、“ハイバイト低アドレス、ローバイト高アドレス”のルールに従います。

Modbus RTUの保持レジスタは常に“ワード(ダブルワード)”単位であるのに対し、実数は4バイト(ダブルワード)で表される。HMIソフトウェアは処理中にレジスタを保持する2つの“単語”を交換し、シーメンス形式の実数を認識できない可能性があります。HMIソフトウェア側がこのような実数を処理できない場合は、S 7 - 200 CPUでデータバッファ(保持レジスタ領域)に格納される実数のハイワードとローワードの交換をプログラムすることができます。

シーメンスS 7 - 200 Modbus RTU 通信方式插图7Modbus RTUを使用したHMIソフトウェアは、スレーブとしてS 7 - 200の内容を読み取ることができますが、書き込むことはできません。

おそらく、このソフトウェアはModbus機能15(複数のディスクリートを書き込む)または同様の機能(機能16)を使用しています。S7 - 200ステーションプロトコルは、“Q0.0、Q2.0のようなフルバイトアドレス境界で始まり、8の整数倍をビット数とする”というに従う。HMIソフトウェアがこのルールを厳密に適用しないと、書き込みエラーが発生します。

シーメンスS 7 - 200 Modbus RTU 通信方式插图7S 7 - 200はModbus ASCIIモードをサポートしますか?

S 7 - 200は上記のモードをサポートしているが、命令ライブラリはなく、ユーザー自身がプログラムする必要がある。

シーメンスS 7 - 200 Modbus RTU 通信方式插图7プロジェクトのコンパイル後にエラーが多いのはなぜですか?

命令ライブラリを使用する場合、コンパイル後にエラーが発生するのは、通常、ライブラリ命令データストアが指定されていないためです。参照してください。関連する記事。

シーメンスS 7 - 200 Modbus RTU 通信方式插图7S 7 - 200 CPUのポート1はModbus RTUプロトコルをサポートできますか?

できるよ。ユーザーは自分でプログラムできます。

シーメンスS 7 - 200 Modbus RTU 通信方式插图11S7 - 200の“Tips and Tricks”ヘルプドキュメントでは、Tip041はModbus RTUスレーブプログラムであり、ユーザーは参照できます。

シーメンスS 7 - 200 Modbus RTU 通信方式插图7S 7 - 200はModbus RTU通信ネットワークを構成できますか?ネットワークはどうですか?

S 7 - 200は、RS-485ベースのModbus RTUネットワークを構成することができます。通信相手が異なる規格の通信ポートの場合は、変換が必要な場合があります。
こちらもご覧ください。RS-485ネットワークの構成

STEP 7-Micro/WINの標準命令ライブラリ

STEP 7-Micro/WIN V 4.0以降は内部に新しいライブラリが付属していますが、Siemens Instruction Libraryパッケージがインストールされていないと表示できません。

シーメンスS 7 - 200 Modbus RTU 通信方式插图6Siemensの標準命令ライブラリを使用するには、最初にSiemensの命令ライブラリパッケージInstruction Libraryをインストールする必要があります。Instruction Libraryをインストールすると、インストールされたSTEP 7-Micro/WINバージョンが最新であれば、対応するバージョンの新しいInstruction Libraryを入手できます。Micro/WINのアップグレード·パッケージService Packをインストールすると、命令ベースのバージョンも更新されます。

Siemens Instruction Libraryソフトウェアインストールパッケージは、以下から直接入手できます。

シーメンスS 7 - 200 Modbus RTU 通信方式插图5Instruction Library

STEP 7-Micro/WIN V 4.0 SP5の最新バージョンは、以下のシーメンス標準ライブラリをサポートしています。

  • USS通信プロトコルライブラリ
    CPU通信ポートポートポート0とポート1は、マイクロマスター 3(MM3シリーズ)とマイクロマスター 4(MM420、MM430、MM440などのMM4シリーズ)、SINAMICS G 110シリーズUSS通信制御、いくつかの事前プログラムされたサブルーチンと割込みプログラムを介して、インバータの動作を簡単に制御し、そのパラメータを読み書きすることができます。
    Micro/WIN V 4.0のUSS命令ライブラリは、シーメンスのマスタードライブ用に最適化されました。
  • Modbus RTU Slave(スレーブ)通信プロトコルライブラリ:
    CPUポート0はModbus RTUスレーブ通信機能をサポートします。
  • Modbus RTU Master (マスター)通信プロトコルライブラリシーメンスS 7 - 200 Modbus RTU 通信方式插图12
    CPUポート0とポート1はModbus RTUマスター通信機能をサポートします。

シーメンスS 7 - 200 Modbus RTU 通信方式插图8以上の通信プロトコルライブラリは、S 7 - 200 CPUのフリーポート通信機能を使用しています。

シーメンスS 7 - 200 Modbus RTU 通信方式插图13

図1.。シーメンスライブラリは薄い青色のアイコンで表示されるMicro/WIN V4.0 SP5

STEP 7-Micro/WIN命令ライブラリは、以下の2つの方法で入手できます。

  • STEP 7-Micro/WIN32アドオンパッケージInstruction Library V1.1、注文番号6ES7830- 2 BC 00-0YX0をインストールします。
  • STEP 7-Micro/WIN32 V3.1とToolbox V1.0(TP070用に設定されたTP Designerと古い命令ライブラリを含む、注文番号6ES 7810-2TC00-0YX0)をインストールした後、正式なSTEP 7-Micro/WIN32 V3.2(またはV4.0)バージョンをインストールすると、新しい命令ライブラリが自動的に入手できる。新旧バージョンのソフトウェアとその命令ライブラリは、1台のコンピュータ上で共存可能である(V4.0の各アップグレードパッケージは共存できない)。

シーメンスS 7 - 200 Modbus RTU 通信方式插图6注意点:

  • すべての古いCPU 21xは新しい命令ベースを使用できない
  • 古いバージョンの命令ライブラリは、同じプロジェクトファイル内で新しい命令ライブラリと共存できない
  • 新しいバージョンの命令ライブラリをインストールすると、古いバージョンの命令ライブラリは表示されなくなります。
  • ユーザ定義の命令ライブラリは、シーメンスのライブラリと重複することはできません

シーメンスS 7 - 200 Modbus RTU 通信方式插图11システムやソフトウェアのインストールに問題があるため、Siemens標準ライブラリをインストールしてもSiemens標準ライブラリが表示されないことがあります。標準ライブラリを追加してみてください。標準ライブラリのファイルは、Micro/WINインストールディレクトリ内のStandard Libsディレクトリにあります。

3.1ライブラリ·ディレクティブ·データ領域の割当て

STEP 7 - Mciro/WIN32 V3.2 Instruction Library(命令ライブラリ)を呼び出すには、ライブラリ命令データ領域(Library Memory)を割り当てる必要がある。ライブラリ命令データ領域は、対応するライブラリのサブルーチンと割込みプログラムが使用する変数記憶領域です。

プログラミング時にライブラリ命令データ領域を割り当てないと、コンパイル時に多くの同じエラーが発生します(エラー 18)。

動作手順(Modbus RTUライブラリ命令の例):

命令ツリーの“Project”で、“Program Block”を右クリックし、ポップアップのショートカットメニューから“Library Memory”を選択します。図2に示すように:シーメンスS 7 - 200 Modbus RTU 通信方式插图14

Figure 2より

図2に示すように、ポップアップタブでライブラリ命令データセクションを設定します。シーメンスS 7 - 200 Modbus RTU 通信方式插图15

デフォルトではVB0から開始されますが、Modbusのホールドと競合するため、手動でVB2000に変更します。“Suggest Address”ボタンを押すと、自動的に割り当てることもできます。

シーメンスS 7 - 200 Modbus RTU 通信方式插图6データエリアはSuggest Addressを使用して設定できますが、プログラミングソフトウェアによって設定されるデータエリアアドレスは、Modbusデータ保持レジスタ領域などの設定ではなく、他の一般的なアドレス指定のみを考慮していることに注意してください。他のデータ領域と重複したり競合したりしないようにしてください。Suggest Addressボタンを繰り返し押してはいけません。そうしないと混乱が発生します。

シーメンスS 7 - 200 Modbus RTU 通信方式插图6STEP 7-Micro/WIN 32 V 3.1では、割り当てられたライブラリ命令データ領域は異なる操作方法を持ち、シンボルテーブルに最初のアドレスを設定する必要があります。その時点で最新のバージョンを使用することを強くお勧めします。

3.2命令ライブラリの追加

シーメンスS 7 - 200 Modbus RTU 通信方式插图6注意点:カスタムディレクティブライブラリを追加するには、ライブラリのディレクティブを編集するプロジェクトを閉じて、新しいプロジェクトを作成する必要があります。他のソースのライブラリディレクティブを追加する場合は、当然必要ありません。

最初のステップ:Micro/WINのFileファイルメニューで、ライブラリの追加と削除を選択します。.. [命令ライブラリの追加/削除]コマンド;または、命令ツリーのLibraries [命令ライブラリ]ブランチを右クリックして、Add/Remove Libraries...シーメンスS 7 - 200 Modbus RTU 通信方式插图16

図4。命令ベースの追加/削除コマンドの選択

追加/削除ダイアログには、Micro/WINにネイティブに統合されたユーザー定義の命令ライブラリが表示されます。シーメンスS 7 - 200 Modbus RTU 通信方式插图17

図5.。インストールされたライブラリディレクティブ

第二のステップ:Add追加ボタンを押して、新しく定義されたライブラリファイルのパスを選択します。ユーザー定義ライブラリは、Micro/WINコマンドツリーのLibrariesブランチの下に自動的に追加されます。シーメンスS 7 - 200 Modbus RTU 通信方式插图18

図6.。ライブラリファイルの選択

シーメンスS 7 - 200 Modbus RTU 通信方式插图6 デフォルトでは、Micro/WINは図8のパスにあるライブラリディレクティブファイルを探します。ユーザーは別のパスを指定することもできます。ただし、ライブラリファイルはリムーバブルではないメディアに保存する必要があります。リムーバブルハードディスクを指定すると、ハードディスクがないときにライブラリが見つからないとエラーが発生します。デフォルト設定を使用することをユーザーに推奨します。

3.3ライブラリディレクティブの削除

最初のステップ:命令ベースの追加/削除コマンドの選択シーメンスS 7 - 200 Modbus RTU 通信方式插图19

図7に。コマンドの選択

第二のステップ:アンインストールするライブラリのライブラリファイルを選択し、Removeボタンを押します。シーメンスS 7 - 200 Modbus RTU 通信方式插图20

図8。削除するライブラリディレクティブファイルの選択

RS-48 5ネットワーク

S 7 - 200システムでサポートされているPPI、MPI、PROFIBUS-DPプロトコルは、通常、RS-485電気ネットワークに基づいています。
RS-485シリアル通信規格は、平衡信号伝送方式、または差動モードを採用しています。平衡伝送方式は、伝送中の干渉を効果的に抑制できます。
平衡方式は一対の導線を採用し、2本の導線間の電圧差を利用して伝送信号を伝送する。この2つのワイヤはA(TxD/RxD-)とB(TxD/RxD+)と呼ばれます。Bの電圧がAよりも高い場合、伝送されるのは論理的な“ハイ”レベルとみなされ、Bの電圧がAよりも低い場合、伝送されるのは論理的な“ロー”レベル信号とみなされる。効果的に動作できる差動電圧の範囲は非常に広く、ゼロから10ボルト近くまでの範囲があります。
RS-485通信ポートは、高い通信速度、長い通信距離、および複数のポートを並列に接続することができます。

シーメンスS 7 - 200 Modbus RTU 通信方式插图6平衡通信モードの有効動作は、コモンモード電圧差の影響を受けます。RS-485インタフェースの2本のワイヤと通信対象の信号グランドの電圧差がコモンモード電圧です。非電気的に絶縁されたRS-485インタフェースは、一定範囲のコモンモード電圧による通信干渉に耐性があります。

S 7 - 200 CPUの通信ポートのコモンモード抑制電圧は12Vです。したがって、このような非絶縁型RS-485ポートでは、通信ポート間の信号グランド等電位を確保することが非常に重要であり、それらを一緒に接続するのが最善です(グランドである必要はありません)。

S 7 - 200システムのRS-485ポートは半二重であり、同時に信号を送受信することはできません。
S 7 - 200システムでは、適切な通信機器を選択して、ボーレート1200 ~ 12M、単一セグメント距離1000m、単一セグメントサイト32通信ネットワークを達成することができます。リピータを介して、RS-485電気ネットワークは通信距離を拡張し、通信サイトを増やすこともできます。詳細については、S 7 - 200システムマニュアルの通信セクションをご参照ください。
一般的なRS-485通信デバイスは基本的に電気的性能が同じですが、物理インタフェースは多様であり、統一された規制はありません。

シーメンスS 7 - 200 Modbus RTU 通信方式插图6 SiemensシステムのD-Sub 9ピンタイプRS-485ポートは、ピン定義が基本的に一貫しています。

4.1 S7 - 200システムでの-485通信

S 7 - 200システムでは、CPU上の通信ポート(プログラミングポート)とEM277モジュール上の通信ポートは、RS-485電気規格に準拠しています。しかし、それらも異なります。

  • S7 - 200 CPU上の通信ポートは非絶縁型で、最高通信速度は187.5Kボー
  • EM277上の通信ポートは絶縁されており、最大通信レートは12Mであり、レートは適応可能です。

以下の3つのプロトコルはすべてRS-485ハードウェア上で通信できます。

  • PPI(プログラミング通信、S 7 - 200 CPU間、S 7 - 200 CPUとHMI間の通信などを含む)
  • MPI(S 7 - 200 CPUとS 7 - 30 0/400 CPU、S 7 - 200 CPUとHMI、EM277とHMIなどの通信)
  • PROFIBUS-DP(EM277と他のPROFIBUS-DPマスター間の通信)

シーメンスS 7 - 200 Modbus RTU 通信方式插图21実際には、各通信局のアドレスが異なり、通信ボーレートが同じであれば、上記の3つのプロトコルはRS-485ネットワーク上で同時に通信を実現することができます。もちろん、サイトがサポートするプロトコルは、独自の条件によって制限されます。

したがって、上記の電気ネットワークの通信を検討する際には、RS-485ネットワークの電気基盤によって制約されることに注意する必要があります。上記のネットワークに使用されるネットワークハードウェアは基本的に同じです。

RS-485ネットワークのハードウェア構成

S 7 - 200システムでは、PPI、MPI、RPOFIBUS-DPネットワーク、またはModbus RTUネットワークを構成するかどうかにかかわらず、使用される主要コンポーネントは同じです。

  • PROFIBUSケーブル:さまざまなケーブルモデルがありますが、最も基本的なものはPROFIBUS FC標準ケーブル(注文番号6 XV 1 83 0 -0EH10)です。
  • PROFIBUSネットワークコネクタ:ネットワークコネクタには、異なる出力角度など、さまざまな形態があります。

5.1ネットワークコネクタの接続

A.。ケーブルとワイヤストリッパー。FC技術は裸の銅線を剥がさないでください。シーメンスS 7 - 200 Modbus RTU 通信方式插图22

図1.。高速ワイヤストリッパー(FCS、注文番号6GK1905- 6 AA 0 0)でPROFIBUSケーブルの一端を剥がします。

B.。PROFIBUSネットワークコネクタを開く。まず、ケーブル張力解放圧力ブロックを開き、コアロックを開きます。シーメンスS 7 - 200 Modbus RTU 通信方式插图23

図2の図。開いたPROFIBUSコネクタ

C.はPROFIBUSケーブルの芯線の外側の保護層を除去し、芯線を対応するカラーマークに従って芯線ロックに挿入し、ロックブロックを強く押して内部導体を接触させます。ケーブルが剥がされたシールド層がシールド接続シートと接触するように注意すべきである。シーメンスS 7 - 200 Modbus RTU 通信方式插图24

図3に示す。ケーブルの挿入

シーメンスS 7 - 200 Modbus RTU 通信方式插图6通信周波数が比較的高いため、通信ケーブルはデュアルエンド接地を採用しています。ケーブルの両端にシールド層を接続します。

D.。ケーブルインゴットをリセットし、ネジを締め、内部接続に対する外部張力の影響を排除します。

5.2ネットワークコネクタ

ネットワークコネクタには、プログラミングポート付きとなしの2種類があります。プログラミングポートのないプラグは一般的なネットワークに使用され、プログラミングポートを備えたプラグは、HMIなどのプログラミングまたは接続のためのプログラミング接続ポートを提供しながらネットワークに使用できます。シーメンスS 7 - 200 Modbus RTU 通信方式插图25

図4。左側には、プログラミングポートのないネットワークコネクタ(注文番号:6ES7 97 2 -0BA52- 0 XA 0)があります。
右側には、プログラミングポート付きネットワークコネクタ(注文番号:6ES7 97 2 -0BB52- 0 XA 0)があります。

5.3線種ネットワーク構造

PROFIBUSケーブルを介してネットワークプラグを接続し、バス型ネットワーク構造を構成する。シーメンスS 7 - 200 Modbus RTU 通信方式插图26

図5.。バス型ネットワーク接続

上の図では、ネットワークコネクタA、B、Cがそれぞれ3つの通信ステーションの通信ポートに接続されており、ケーブルAがプラグAとBを接続し、ケーブルBがプラグBとCを接続しています。線種構造は、このように拡張できます。

円の内側の“終端抵抗”スイッチの設定に注意してください。ネットワーク端末のプラグは、終端抵抗スイッチは“ON”位置に設定し、中間サイトのプラグは、終端抵抗スイッチは“OFF”位置に設定します。

5.4終端抵抗とバイアス抵抗

正規のRS-485ネットワークは終端抵抗とバイアス抵抗を使用します。端子およびバイアス抵抗は、ネットワーク接続ラインが非常に短い場合、一時的または実験室でのテストでは使用できません。

終端抵抗:ライン型ネットワークの両端(最も離れた2つの通信ポート)、通信ラインのペアに並列に接続された抵抗。伝送線理論によると、終端抵抗はネットワーク上の反射波を吸収し、信号強度を効果的に高めることができます。2つの端子抵抗を並列に接続した後の値は、通信周波数における伝送ラインの特性インピーダンスバイアス抵抗と基本的に等しくなければなりません。バイアス抵抗は、複雑な電気的条件下でA信号とB信号の相対関係を確保し、“0”と“1”信号の信頼性を確保するために使用されます。

シーメンスS 7 - 200 Modbus RTU 通信方式插图11SiemensのPROFIBUSネットワークコネクタには、端子とバイアス抵抗が内蔵されており、スイッチで簡単にオン/オフできます。終端抵抗とバイアス抵抗の値は、Siemens CommunicationsポートとPROFIBUSケーブルの要件に完全に準拠しています。

シーメンスS 7 - 200 Modbus RTU 通信方式插图11ネットワーク内のネットワークプラグの終端抵抗スイッチを閉じると、プラグの背後にあるネットワークの一部の信号伝送を簡単に遮断できます。

シーメンスS 7 - 200 Modbus RTU 通信方式插图6他のデバイスと通信する場合(PROFIBUSケーブルを使用)、相手の通信ポートがD-SUB9ピンでない場合や、ピン定義が全く異なる場合があります。シーメンスMM 4 x 0インバータ、端子配線の形でRS-485通信ポートなど、この場合、端子抵抗を接続する必要があり、シーメンスは比較的正常な外部抵抗を提供することができます。その他の機器については、“S 7 - 200システムマニュアル”の技術データを参照して作成することができる。

シーメンスS 7 - 200 Modbus RTU 通信方式插图6 シーメンスネットワークプラグの終端抵抗、バイアス抵抗のサイズは、シーメンスPROFIBUSケーブルの特性インピーダンスに一致しており、ユーザーがシーメンスPROFIBUSケーブルとネットワークプラグを使用することを強くお勧めします。多くのトラブルを回避できる。

シーメンスS 7 - 200 Modbus RTU 通信方式插图6インターネットの格言を覚えておいてください:あなたはそれをだます、それはあなたをだます!

この資料を実際のプロジェクトに活用しませんか?

ツールセンターで電文解析、CRCチェック、デバイスデバッグを行うか、要件を送信して選定と接続のアドバイスを受けましょう。

エンジニア会員

この記事を実行可能なデバッグ資料に

登録すると、高度な電文解析、資料パックのダウンロード、コード例、エンジニアリングケース、優先技術サポートが利用可能に。実際のプロジェクト納品に最適です。

高度なツール無制限
資料パックとコードパック
完全なエンジニアリングケースライブラリ
優先技術サポート窓口

发表回复

あなたのメールアドレスアドレス不会被公开。 必須項目已用 * 标注