S 7 - 200はModbus RTU Communicationプロトコルをサポートします。
- S 7 - 200 CPUのポート0は、Commandベース経由でModbus RTUスレーブモードをサポートします。
- S 7 - 200 CPUのポート0と1 (ポート0とポート1)は、Commandベースを介してModbus RTUマスターモードをサポートします。
S 7 - 200 CPU CommunicationポートではRS 485半二重通信を実現し、S 7 - 200のフリーポート機能を使用しています。
Modbus CommunicationプロトコルはS 7 - 200 CPU Communicationポートのフリーポートモードで実装されており、無線データ局などの低速通信機器を介して伝送することができます。これにより、S 7 - 200間のシンプルな無線通信ネットワークの形成が容易になります。
詳細は、“S 7 - 200システムマニュアル”(2002 year 10 月以降)の該当項をご参照ください。
S 7 - 200はModbus ASCII Communicationモードをサポートしますか?
Siemens s 7 - 200は上記のモードをサポートする既製のCommandライブラリを提供しておらず、ユーザー自身がフリーポートモードでプログラミングする必要がある。
Modbus RTUマスター
Modbus RTUマスターCommandライブラリ
SiemensはMicro/WIN V 4.0 SP5でModbus RTUマスタープロトコルライブラリ(Siemens標準ライブラリCommand)を正式に発表した。

注意点は:
1. Modbus RTUマスターCommandライブラリの機能は、ユーザプログラム内であらかじめプログラムされたプログラム機能ブロックを呼び出すことによって実現され、ポート0とポート1で有効である。Commandライブラリは、Communicationポートをフリーポートモードで動作させるように設定します。
2. Modbus RTUマスターCommandライブラリは一部のユーザ割込み機能を使用しており、他のプログラムはユーザプログラム内の割込みを禁止できない。
3. Modbus RTUマスターライブラリにはCPUのバージョンが必要です。CPUのバージョンは2.00または2.01(つまり注文番号6ES721 *-**23- 0BA *)である必要があり、バージョン1.22以前(バージョン1.22を含む)のS7 - 200 CPUはサポートされていない。
Modbus RTUマスターCommandライブラリを使用して、Modbus RTUスレーブのデジタル、アナログI/O、および保持レジスタを読み書きすることができます。
Modbus RTUマスターCommandライブラリを使用するには、以下の手順に従います。
1.Siemens Standard Libraryのインストール
2.要求に従ってModubs RTUマスターCommandライブラリを呼び出すユーザプログラムを記述する
Modbus RTUマスター機能プログラミング
Modbus RTUマスター初期化および制御サブルーチンの呼び出し
SM 0.0を使用してMBUS_CTRLを呼び出し、マスターステーションの初期化を完了し、その機能制御を開始します。

各パラメータの意味は次のとおりです。
A.。ENイネーブル:各スキャンサイクルをイネーブルする必要があります(SM 0.0を使用)。
b.。モードモード:1の場合、Modbusプロトコル機能を有効にし、0の場合、システムPPIプロトコルに戻る。
C.。ボーレート:1200、2400、48 0 0、96 00、19200、38400、576 00、115200のCommunicationボーレートをサポートしています。
D.。Parity検证:検证方式选択
0=検証なし
1=奇妙なテスト
2=比較テスト
E.。タイムアウトタイムアウト:マスターがスレーブからの応答を待つ時間(ミリ秒単位)。標準的な設定値は1000ミリ秒(1 秒)で、設定可能な範囲は1 ~ 32 7 67です。
注:この値は、スレーブが応答する時間を確保するのに十分な大きさに設定する必要があります。
F.。Done完了ビット:初期化が完了し、自動的に1に設定されます。MBUS_MSGの読み書きOperationを開始するために使用できます(ルーチン参照)。
G.。エラー初期化エラーコード(Doneビットが1の場合のみ有効):
0=エラーなし
1=不正な選択
2=違法な選択
3=違法なモデル選択
Modbus RTUマスタープログラムMBUS_MSGを呼び出し、Modbusリクエストを送信します。

各パラメータの意味は次のとおりです。
A.。ENイネーブル:一度に1つの読み書き機能(MBUS_MSG)のみを有効にできます。
注:すべての読み書きCommandがループするように、すべての読み書き機能(すなわちMBUS_MSG)は、最後のMBUS_MSGCommandのDone完了ビットでアクティブにすることを推奨します(ルーチン参照)。
b.。最初の読み書き要求ビット:新しい読み書き要求はすべてパルスでトリガーする必要があります。
C.。スレーブアドレス:選択可能な範囲1 - 247
D.。RWスレーブアドレス: 0 =読み取り、1 =書き込み
注意点:
1.スイッチング量出力およびホールドレジスタは、読み取りおよび書き込み機能をサポートします。
2.スイッチング入力とアナログ入力は読み取り機能のみをサポート
E.。Addrはスレーブのデータアドレスを読み書きします。
読取りおよび書込みのデータ型の選択
00001 ~ 0 xxxx:スイッチング量出力
10001 ~ 1xxxx -スイッチ量入力
30001から3xxxx -シミュレーション入力
40001 ~ 4 xxxx:レジスタを保持
F.。Communicationされたデータの数(ビットまたは単語の数)。
注: Modbusマスターが読み書きできるデータの最大量は120ワードです(MBUS_MSGCommandあたり)。
G.。Datarデータポインタ: 1.読み取りCommandの場合、読み戻されたデータはこのデータ領域に置かれます。
書き込みCommandの場合、書き込むデータはこのデータ領域に置かれます。
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データ内のライブラリCommandにストアLibrary Memoryを割り当てる
Modbus Masterライブラリには284バイトのグローバルVストアが必要である。
1.3 Modbus RTUマスタープロトコルとアドレス
これは、Siemensが正式にリリースした標準ライブラリCommandの説明です。
Modbus RTU MasterプロトコルとPPIプロトコルの切り替え:
Modbus RTUマスタープロトコルCommandライブラリは、マイクロ/WINソフトウェアとCommunicationできないフリーポートモードでCommunicationポートを動作させます。PPIプロトコルに戻るには:
- MBUS_CommandのMode入力を“0”にする
- CPUの許可モード選択スイッチをSTOP 位置にする
Modbus RTU Masterプロトコルライブラリの実行時間:
Modbus RTUマスタープロトコルライブラリのMBUS_CTRLCommandは、長い実行時間を必要としません。MBUS_は初期化に1.11 msを必要とし、後続の各スキャンサイクルでは0.41 msしか消費しません。
MBUS_MSGサブルーチンを呼び出すと、処理時間が長くなります。ほとんどの時間はCRCの計算に費やされます。データの読み書きには1.85 msのスキャン時間が必要です。最大データ(120ワードの読み書き)の場合、スキャン時間は約222 ms増加します。読み取りOperationの時間は主にデータの受信に費やされ、書き込みOperationの時間は主にデータの送信に費やされます。
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プロトコルライブラリを介してCommunicationする場合、ModbusアドレスとS 7 - 200内のメモリアドレスのマッピング関係は類似しています。

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

1.4 Modbus RTUマスタールーチン
Modbusマスタのプログラミングをよりよく理解するには、以下のルーチンを参照してください。
例プログラム1複数のMBUS_MSGCommandポーリング実行、
注意点は
- 1.このルーチンはMicro/WIN V4.0 SP5を使用して保存されます。
- 2.このルーチンは1つのスレーブにのみアクセスし、異なるスレーブにアクセスする場合はスレーブアドレスを変更することで実現できます。
Modbus RTUマスターCommandベースアプリケーションルーチン
手順2:単一のMBUS_MSGコマンドを繰り返し起動する:
Modbus RTUマスタ可変アドレス方式ポーリングアクセスアプリケーションルーチン
注意点:このライブラリ/プログラムの作成者および所有者は、ソフトウェアの機能性および互換性について責任を負いません。ソフトウェアの使用は、ユーザー自身のリスクで行われます。無料であるため、保証、エラー訂正、ホットラインサポートは提供されておらず、ユーザーはシーメンスのテクニカルサポート&サービスに連絡する必要はありません。
1.5 Modbus RTUマスターよくある質問
Modbus RTUマスターライブラリにはCPUバージョンの要件がありますか?なぜサンプルプログラムをコンパイルすると4つのエラーが発生するのですか?
Modbus RTUマスターライブラリにはCPUのバージョン要件があり、CPUのバージョンは2.00または2.01(すなわち、注文番号は6 ES721 *-**23-0BA*)でなければならず、バージョン1.22以前(バージョン1.22を含む)のS7 - 200 CPUはサポートされていない。
Modbusライブラリが起動した後、同じCommunicationポートからCPUを監視する方法は?
ModbusCommandライブラリはCPUのフリーポート通信機能を使用しており、フリーポートモードで動作するCommunicationポートはMicro/WINのPPIプログラミング通信監視を使用することはできません。Communicationポートがすでに占有されている場合は、以下を考慮します。
- Communicationモジュール(EM 277、CP 24 3 -1、EM 241など)を追加して、プログラミングCommunicationポートを拡張します。
- CPUのモードスイッチをRUNからSTOPにダイヤルするか、RUN状態のままにしてプログラムでCommandライブラリのModbusモードをStopする(Commandライブラリアプリケーションを参照)。
Modbusアドレスと関数コードの違いは何ですか?
ModbusアドレスとModbus関数コードは2つのレベルの概念です。
Modbus Communicationプロトコルによると、Modbusデータのアドレスは0 xxxx、1 xxxx、3 xxxx、4 xxxxの形式を使用し、それぞれデジタル出力、デジタル入力、アナログ入力などのデータアドレスを表します。S 7 - 200のCommandベースを使用する場合、ModbusデータアドレスとS 7 - 200のI/Oおよびデータストアアドレスには特定の対応があります。
一部のデバイスはModbus RTU Communicationプロトコルをサポートしているが、Modbus局のアドレス指定方法、読み書きデータの種類、長さなど、読み書きデータの詳細なCommunicationフレームフォーマットも提供している。データフレームには、このCommandによって読み書きされるデータの種類とアドレスを示す特定のバイトがあり、このバイトのデータ内容はいわゆる“機能コード”と呼ばれ、機能1のように、単一/複数の数値出力ポイントの値を読み取ることを指定します。
Modbusプロトコルをサポートするデバイスまたはソフトウェアは、ユーザーが直接設定または表示するModbusデータアドレスでなければなりません。Modbusアドレスがアクセスするデータは、さまざまな“機能”によって読み書きされます。関数コードはModbusアドレスの下位レベルである。Modbus Communicationの当事者が提供するいわゆるModbusプロトコルが機能コードのみである場合、この機能番号とModbusアドレスの対応に注意する必要があります。
9999より大きいキープトレジスタアドレスにアクセスするには?
通常、Modbusプロトコルの保持レジスタアドレスは40001から49999の間である。ほとんどのアプリケーションでは十分です。しかし、一部のModbusスレーブは9999を超えるアドレスを保持レジスタ領域にマップする。
Modbus Masterプロトコルライブラリは9999以上の保持レジスタアドレスをサポートしている。アドレス範囲は400001 ~ 46553 6です。MBUS_MSGサブルーチンを呼び出すときに、Addrパラメータに適切な値(416768など)を割り当てるだけです。
Modubs Master拡張アドレスモードは、保持レジスタ領域のみをサポートし、他のアドレスタイプはサポートしません。
S 7 - 200がModbusマスタとして受信するデータ形式がサードパーティ製デバイスと異なる場合はどうなりますか?
Siemens PLCデータの格納フォーマットは、ハイローストレージモードです。例:VD200にはVW200とVW202が含まれ、VW202はローワード、VW200はハイワードです。サードパーティ製デバイスとシーメンスのデータストレージフォーマットが異なる場合、低および低ストレージの方法である場合、通信上のデータにエラーがあり、使用するために変換する必要があります。プログラミングの方式は比較的多様であり,ダブルワードでの高低ワードの交換にはSWAP(ワードスワップ)Commandが用いられ,バイト交換であれば巡回シフトCommandが考えられる.
S 7 - 200はModbus TCPなどの他のプロトコルをサポートしますか?
サポートはなし。S 7 - 200のCommunicationポートや通信拡張モジュールは、Modbus TCP、CANopen、DeviceNet、BACnet Communicationプロトコルをサポートしていません。
ModbusマスタとしてS 7 - 200がMBUS_MSGコマンドでエラー 6を返すのはなぜですか?
6番エラーの原因は主に2つある:1.複数のMBUS_MSGCommandが同時に実行可能になる;2. Modbusライブラリストアに割り当てられた推奨アドレス領域は、プログラミングですでに使用されているVストアと重複しています。
2Modbus RTUスレーブ
2.1 CPUのポート0はModbus RTUスレーブCommunicationプロトコルをサポートします。
S 7 - 200 CPUのポート0はModbus RTUプロトコルをサポートし、Modbus RTUスレーブとなる。この機能は、S 7 - 200のフリーポートCommunicationモードによって実現されているため、無線データ局などの低速通信機器を介して送信することができます。
詳細については、S 7 - 200システムマニュアルの関連セクションを参照してください。
Modbus RTUCommunicationを実装するには、STEP 7-Micro/WIN 32 V 3.2以上のプログラミングソフトウェアと、STEP 7-Micro/WIN 32 V 3.2 Instruction Libraryが必要です。Modbus RTU機能は、Commandライブラリにあらかじめプログラムされたプログラム機能ブロックによって実現されます。
Modbus RTUスレーブCommandライブラリはCPU上のポート0のみをサポートしている。
2.2プログラミングの基本ステップ:
Micro/WINのソフトウェアバージョンを確認してください。STEP 7-Micro/WIN V 3.2以上です。
Micro/WINのCommandツリーにModbus RTUスレーブCommandライブラリがexistenceするかどうかを確認します(図1)。ライブラリにはMBUS_INITとMBUS_SLAVEの2つのサブルーチンが含まれている必要があります。そうでない場合は、Micro/WIN 32 V 3.2用のInstruction Libraryパッケージをインストールする必要があります。
図1.。Commandツリー内のライブラリCommand
サブプログラムMBUS_INITをSM 0.1で呼び出して初期化し、MBUS_SLAVEをSM 0.0で呼び出して適切なパラメータを指定します。引数の詳細な説明は、サブルーチンのローカル変数テーブルにあります。
図2の図。Modbus RTU通信命令ライブラリの呼び出し
パラメータの意味は以下の通りです。
- モード選択:Modbusの起動/Stop、1=起動、0=Stop
- スレーブアドレス:Modbusスレーブアドレス、値1~247
- ボーレート:1200、2400、48 0 0、96 00、19200、38 400、576 00、115200
- パリティ0=无し、1=奇、2=偶
- 遅延追加文字間の遅延、デフォルト値は0です。
- Maximum I/Q Bit:Communicationに参加するI/Oポイントの最大数。S 7 - 200のI/Oイメージ領域は128/128、デフォルトは128です。
- 最大AIワード数:Communicationに参加するAIチャネルの最大数(16または32)
- 最大保持レジスタ領域:Communicationに関与するVワード(VW)
- 保持レジスタ領域の開始アドレス:VBXで指定(間接アドレス指定)
- 初期化完了フラグ成功初期化後1
- 初期化エラーコード
- Modbus実行:通信中は1、Modbus Communicationアクティビティがない場合は0です。
- エラーコード:0=エラーなし
テーブル表 1. 駅からのエラーコード
| エラーコード | 説明する。 |
|---|---|
| 0エラーなし | |
| 1 | ストア範囲のエラー |
| 2 | 不正なボーレートまたは検証 |
| 3 | 違法な住所。 |
| 4 | Modbusパラメータの不正な値 |
| 5 | Modbusスレーブシンボルアドレスと重複するレジスタ |
| 6 | 受信検証エラー |
| 7 | CRCエラーの受信 |
| 8 | 不正な機能要求/サポートされていない機能 |
| 9 | 要求に不正なストアアドレスがあります |
| 10 | スレーブ機能が有効になりません |
CPUのVデータ領域内ライブラリディレクティブデータ領域の割り当て;
必要に応じて、マスターソフトウェアを使用します。
注意点:サブルーチンパラメータHoldStartとMaxHoldで指定された保持レジスタ領域は、S 7 - 200 CPUのVデータストアに割り当てられます。このデータ領域は、ライブラリCommandデータ領域と重複することはできません。さもなければ、実行時にエラーが発生し、正常なCommunicationができません。Modbusのホールドレジスタ領域は“ワード”でアドレス指定されます。つまり、MaxHoldはVBではなくVWの数を指定します。
図2の例では,Modbusの保持レジスタ領域はVB0から始まり(HoldStart = VB0),保持レジスタは1000ワード(MaxHold=1000)と定められているが,保持レジスタはワード(2バイト)単位であるため,実際にはこのCommunicationバッファはVB0 〜 VB1999の合計2000バイトを占めている.そのため、割り当てライブラリディレクティブは少なくともVB2000からデータ領域を保持する必要がある。しかし、ポジションはVB0から始める必要はありません。
注意点:選択したCPUのVストレージサイズ! CPUモデルによってVデータストアサイズが異なります。Modbus保持レジスタ領域のサイズは、必要に応じて選択してください。
Modbus RTUスレーブCommandライブラリを含むプロジェクトがコンパイルされてCPUにダウンロードされた後、プログラミングコンピュータ(PG/PC)上でModbusテストソフトウェアを実行すると、S 7 - 200のModbus RTUCommunicationが正常であることが確認され、障害点を見つけるのに役立ちます。テストソフトウェアは、コンピュータシリアルポート(RS-232)とPC/PPIケーブルを介してCPUに接続されます。必要に応じて、PC/PPIケーブルはフリーポートCommunicationモードに設定してください。
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 ~ 00128 | Q0.0 ~ Q15.7 |
| 10001 ~ 10128 | I0.0 ~ I15.7 |
| 30001 ~ 30032 | AIW0 ~ AIW62 |
| 40001 ~ 4xxxx | T ~ T + 2 * (xxxx -1) |
ここで、TはS 7 - 200のバッファ開始アドレス、すなわちHoldStartです。
S 7 - 200のVメモリアドレスが既知の場合、Modbusアドレスの計算式は次のようになります。
Modbusアドレス= 40000 + T/2+1、Tは偶数
2.4 Modbus RTUスレーブCommandライブラリがサポートする機能コード
Modbus RTUスレーブCommandライブラリは特定のModbus機能をサポートする。このCommandライブラリを使用するマスターステーションにアクセスするには、このCommandライブラリの要件に従う必要があります。
テーブル3。Modbus RTUスレーブ機能コード
| 関数コードの特徴 | マスターは対応する機能コードを使用してこのスレーブに作用する効用を |
|---|---|
| 1 | 単一/複数のコイル(離散出力ポイント)の状態を読み取ります。機能1任意の個数の出力ポイント(Q)のON/OFF状態を返します。 |
| 2 | 単一/複数接点(離散量入力点)の状態を読み取ります。機能2任意の個数の入力点(I)のON/OFF状態を返す. |
| 3 | 単一/複数の保持レジスタを読み込む。機能3Vストアの内容を返す. Modbusプロトコルでは、レジスタはすべて“ワード”値で保持され、1回のリクエストで最大120ワードのデータを読み取ることができます。 |
| 4 | シングル/マルチ入力レジスタを読み込みます。機能4は、S7 - 200のアナログvalueデータ値を返す。 |
| 5 | 個々のコイル(離散量出力点)を書き込みます。機能5は、離散量出力ポイントを指定値に設定します。この点は強制されず、ユーザープログラムはModbus 通信要求によって書き込まれた値を上書きすることができる。 |
| 6 | 単一の保持レジスタを書き込む。Function 6 S 7 - 200のVメモリ領域のホールドレジスタに値を書き込む。 |
| 15 | 複数のコイル(離散量出力点)を書き込みます。機能15は、複数の離散量出力点の値をS7 − 200の出力イメージレジスタ(Qゾーン)に書き込む。出力ポイントのアドレスはバイト境界(Q 0.0やQ 2.0など)から始まり、出力ポイントの数は8の整数倍でなければなりません。これは、このModbus RTUスレーブCommandライブラリの制限です。いくつかのポイントは強制されず、ユーザープログラムはModbus 通信要求によって書き込まれた値を上書きできる。 |
| 16 | 複数の保持レジスタ。機能16は、S 7 - 200のVメモリ領域の保持レジスタに複数の値を書き込む。1回のリクエストで最大120文字のデータを書き込むことができます。 |
2.5 Modbus RTUスレーブルーチン
STEP 7-Micro/WIN V 4.0 SP 3以上が必要です。
2.6 Modbus RTUスレーブよくあるご質問
ModbusスレーブのネットワークアドレスとS 7 - 200のCPUネットワークアドレスの関係は何ですか?
関係ないよネットワークCommunicationをサポートするCommunicationプロトコルには、独自のネットワークアドレス指定が必要です。ModbusスレーブのアドレスはModbusネットワーク上のアドレスであり、一般的にS 7 - 200 CPUアドレスと呼ばれるものはSiemensのPPIネットワーク上のCPUのステーションアドレスである。S 7 - 200 CPUの通信機能の大部分は、プログラミング、ネットワーク読み書きCommunicationなど、PPIネットワークを介して行われます。
Modbusアドレスと関数コードの違いは何ですか?
ModbusアドレスとModbus関数コードは2つのレベルの概念です。
Modbus Communicationプロトコルによると、Modbusデータのアドレスは00xxx、10xxx、30xxx、40xxxの形式を用い、それぞれデジタル量出力、デジタル量入力、アナログ量入力などのデータアドレスを表す。S 7 - 200のCommandベースを使用する場合、ModbusデータアドレスとS 7 - 200のI/Oおよびデータストアアドレスには特定の対応があります。
一部のデバイスはModbus RTU Communicationプロトコルをサポートしているが、Modbus局のアドレス指定方法、読み書きデータの種類、長さなど、読み書きデータの詳細なCommunicationフレームフォーマットも提供している。データフレームには、このCommandによって読み書きされるデータの種類とアドレスを示す特定のバイトがあり、このバイトのデータ内容はいわゆる“機能コード”と呼ばれ、機能1のように、単一/複数の数値出力ポイントの値を読み取ることを指定します。
Modbusプロトコルをサポートするデバイスまたはソフトウェアは、ユーザーが直接設定または表示するModbusデータアドレスでなければなりません。Modbusアドレスがアクセスするデータは、さまざまな“機能”によって読み書きされます。関数コードはModbusアドレスの下位レベルである。Modbus Communicationの当事者が提供するいわゆるModbusプロトコルが機能コードのみである場合、この機能番号とModbusアドレスの対応に注意する必要があります。
Modbusライブラリが起動した後、同じCommunicationポートからCPUを監視する方法は?
ModbusCommandライブラリはCPUのフリーポート通信機能を使用しており、フリーポートモードで動作するCommunicationポートはMicro/WINのPPIプログラミング通信監視を使用することはできません。Communicationポートがすでに占有されている場合は、以下を考慮します。
- Communicationモジュール(EM 277、CP 24 3 -1、EM 241など)を追加して、プログラミングCommunicationポートを拡張します。
- CPUのモードスイッチをRUNからSTOPにダイヤルするか、RUN状態のままにしてプログラムでCommandライブラリのModbusモードをStopする(Commandライブラリアプリケーションを参照)。
Modbus RTUを使用してS 7 - 200の実数を読み取るHMIソフトウェアでエラーが発生する理由は?
一部のHMIソフトウェアはModbus RTUCommunicationプロトコルを使用する場合、データ保持レジスタに格納された実数(浮動小数点数)をシーメンスの実数保存フォーマットとは異なる方法で扱う。シーメンスのPLCは、“ハイバイト低アドレス、ローバイト高アドレス”のルールに従います。
Modbus RTUの保持レジスタは常に“ワード(ダブルワード)”単位であるのに対し、実数は4バイト(ダブルワード)で表される。HMIソフトウェアは処理中にレジスタを保持する2つの“単語”を交換し、シーメンス形式の実数を認識できない可能性があります。HMIソフトウェア側がこのような実数を処理できない場合は、S 7 - 200 CPUでデータバッファ(保持レジスタ領域)に格納される実数のハイワードとローワードの交換をプログラムすることができます。
Modbus RTUを使用したHMIソフトウェアは、スレーブとしてS 7 - 200の内容を読み取ることができますが、書き込むことはできません。
おそらく、このソフトウェアはModbus機能15(複数のディスクリートを書き込む)または同様の機能(機能16)を使用しています。S7 - 200ステーションプロトコルは、“Q0.0、Q2.0のようなフルバイトアドレス境界で始まり、8の整数倍をビット数とする”というに従う。HMIソフトウェアがこのルールを厳密に適用しないと、書き込みエラーが発生します。
S 7 - 200はModbus ASCIIモードをサポートしますか?
S 7 - 200は上記のモードをサポートしているが、Commandライブラリはなく、ユーザー自身がプログラムする必要がある。
プロジェクトのコンパイル後にエラーが多いのはなぜですか?
Commandライブラリを使用する場合、コンパイル後にエラーが発生するのは、通常、ライブラリCommandデータストアが指定されていないためです。参照してください。関連する記事。
S 7 - 200 CPUのポート1はModbus RTUプロトコルをサポートできますか?
できるよ。ユーザーは自分でプログラムできます。
S7 - 200の“Tips and Tricks”ヘルプドキュメントでは、Tip041はModbus RTUスレーブプログラムであり、ユーザーは参照できます。
S 7 - 200はModbus RTUCommunicationネットワークを構成できますか?ネットワークはどうですか?
S 7 - 200は、RS-485ベースのModbus RTUネットワークを構成することができます。通信相手が異なる規格のCommunicationポートの場合は、変換が必要な場合があります。
こちらもご覧ください。RS-485ネットワークの構成
STEP 7-Micro/WIN V 4.0以降は内部に新しいライブラリが付属していますが、Siemens Instruction Libraryパッケージがインストールされていないと表示できません。
Siemensの標準命令ライブラリを使用するには、最初にSiemensのCommandライブラリパッケージInstruction Libraryをインストールする必要があります。Instruction Libraryをインストールすると、インストールされたSTEP 7-Micro/WINバージョンが最新であれば、対応するバージョンの新しいInstruction Libraryを入手できます。Micro/WINのアップグレード·パッケージService Packをインストールすると、Commandベースのバージョンも更新されます。
Siemens Instruction Libraryソフトウェアインストールパッケージは、以下から直接入手できます。
STEP 7-Micro/WIN V 4.0 SP5の最新バージョンは、以下のシーメンス標準ライブラリをサポートしています。
- USSCommunicationプロトコルライブラリ
CPUCommunicationポートポートポート0とポート1は、マイクロマスター 3(MM3シリーズ)とマイクロマスター 4(MM420、MM430、MM440などのMM4シリーズ)、SINAMICS G 110シリーズUSS通信制御、いくつかの事前プログラムされたサブルーチンと割込みプログラムを介して、インバータの動作を簡単に制御し、そのパラメータを読み書きすることができます。
Micro/WIN V 4.0のUSSCommandライブラリは、シーメンスのマスタードライブ用に最適化されました。 - Modbus RTU Slave(スレーブ)Communicationプロトコルライブラリ:
CPUポート0はModbus RTUスレーブ通信機能をサポートします。 - Modbus RTU Master (マスター)Communicationプロトコルライブラリ

CPUポート0とポート1はModbus RTUマスター通信機能をサポートします。
以上のCommunicationプロトコルライブラリは、S 7 - 200 CPUのフリーポート通信機能を使用しています。

図1.。シーメンスライブラリは薄い青色のアイコンで表示されるMicro/WIN V4.0 SP5
STEP 7-Micro/WINCommandライブラリは、以下の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と古いCommandライブラリを含む、注文番号6ES 7810-2TC00-0YX0)をインストールした後、正式なSTEP 7-Micro/WIN32 V3.2(またはV4.0)バージョンをインストールすると、新しいCommandライブラリが自動的に入手できる。新旧バージョンのソフトウェアとそのCommandライブラリは、1台のコンピュータ上で共存可能である(V4.0の各アップグレードパッケージは共存できない)。
注意点:
- すべての古いCPU 21xは新しいCommandベースを使用できない
- 古いバージョンのCommandライブラリは、同じプロジェクトファイル内で新しいCommandライブラリと共存できない
- 新しいバージョンのCommandライブラリをインストールすると、古いバージョンのCommandライブラリは表示されなくなります。
- ユーザ定義のCommandライブラリは、シーメンスのライブラリと重複することはできません
システムやソフトウェアのインストールに問題があるため、Siemens標準ライブラリをインストールしてもSiemens標準ライブラリが表示されないことがあります。標準ライブラリを追加してみてください。標準ライブラリのファイルは、Micro/WINインストールディレクトリ内のStandard Libsディレクトリにあります。
3.1ライブラリ·ディレクティブ·データ領域の割当て
STEP 7 - Mciro/WIN32 V3.2 Instruction Library(Commandライブラリ)を呼び出すには、ライブラリCommandデータ領域(Library Memory)を割り当てる必要がある。ライブラリCommandデータ領域は、対応するライブラリのサブルーチンと割込みプログラムが使用する変数記憶領域です。
プログラミング時にライブラリCommandデータ領域を割り当てないと、コンパイル時に多くの同じエラーが発生します(エラー 18)。
動作手順(Modbus RTUライブラリCommandの例):
Commandツリーの“Project”で、“Program Block”を右クリックし、ポップアップのショートカットメニューから“Library Memory”を選択します。図2に示すように:
Figure 2より
図2に示すように、ポップアップタブでライブラリCommandデータセクションを設定します。
デフォルトではVB0から開始されますが、Modbusのホールドと競合するため、手動でVB2000に変更します。“Suggest Address”ボタンを押すと、自動的に割り当てることもできます。
データエリアはSuggest Addressを使用して設定できますが、プログラミングソフトウェアによって設定されるデータエリアアドレスは、Modbusデータ保持レジスタ領域などの設定ではなく、他の一般的なアドレス指定のみを考慮していることに注意してください。他のデータ領域と重複したり競合したりしないようにしてください。Suggest Addressボタンを繰り返し押してはいけません。そうしないと混乱が発生します。
STEP 7-Micro/WIN 32 V 3.1では、割り当てられたライブラリCommandデータ領域は異なる操作方法を持ち、シンボルテーブルに最初のアドレスを設定する必要があります。その時点で最新のバージョンを使用することを強くお勧めします。
3.2命令ライブラリの追加
注意点:カスタムディレクティブライブラリを追加するには、ライブラリのディレクティブを編集するプロジェクトを閉じて、新しいプロジェクトを作成する必要があります。他のソースのライブラリディレクティブを追加する場合は、当然必要ありません。
最初のステップ:Micro/WINのFileファイルメニューで、ライブラリの追加と削除を選択します。.. [Commandライブラリの追加/削除]コマンド;または、CommandツリーのLibraries [Commandライブラリ]ブランチを右クリックして、Add/Remove Libraries...
図4。Commandベースの追加/削除コマンドの選択
追加/削除ダイアログには、Micro/WINにネイティブに統合されたユーザー定義のCommandライブラリが表示されます。
図5.。インストールされたライブラリディレクティブ
第二のステップ:Add追加ボタンを押して、新しく定義されたライブラリファイルのパスを選択します。ユーザー定義ライブラリは、Micro/WINコマンドツリーのLibrariesブランチの下に自動的に追加されます。
図6.。ライブラリファイルの選択
デフォルトでは、Micro/WINは図8のパスにあるライブラリディレクティブファイルを探します。ユーザーは別のパスを指定することもできます。ただし、ライブラリファイルはリムーバブルではないメディアに保存する必要があります。リムーバブルハードディスクを指定すると、ハードディスクがないときにライブラリが見つからないとエラーが発生します。デフォルト設定を使用することをユーザーに推奨します。
3.3ライブラリディレクティブの削除
最初のステップ:Commandベースの追加/削除コマンドの選択
図7に。コマンドの選択
第二のステップ:アンインストールするライブラリのライブラリファイルを選択し、Removeボタンを押します。
図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通信ポートは、高い通信速度、長い通信距離、および複数のポートを並列に接続することができます。
平衡通信モードの有効動作は、コモンモード電圧差の影響を受けます。RS-485インタフェースの2本のワイヤと通信対象の信号グランドの電圧差がコモンモード電圧です。非電気的に絶縁されたRS-485インタフェースは、一定範囲のコモンモード電圧による通信干渉に耐性があります。
S 7 - 200 CPUのCommunicationポートのコモンモード抑制電圧は12Vです。したがって、このような非絶縁型RS-485ポートでは、Communicationポート間の信号グランド等電位を確保することが非常に重要であり、それらを一緒に接続するのが最善です(グランドである必要はありません)。
S 7 - 200システムのRS-485ポートは半二重であり、同時に信号を送受信することはできません。
S 7 - 200システムでは、適切な通信機器を選択して、ボーレート1200 ~ 12M、単一セグメント距離1000m、単一セグメントサイト32通信ネットワークを達成することができます。リピータを介して、RS-485電気ネットワークは通信距離を拡張し、Communicationサイトを増やすこともできます。詳細については、S 7 - 200システムマニュアルのCommunicationセクションをご参照ください。
一般的なRS-485通信デバイスは基本的に電気的性能が同じですが、物理インタフェースは多様であり、統一された規制はありません。
SiemensシステムのD-Sub 9ピンタイプRS-485ポートは、ピン定義が基本的に一貫しています。
4.1 S7 - 200システムでの-485通信
S 7 - 200システムでは、CPU上のCommunicationポート(プログラミングポート)とEM277モジュール上のCommunicationポートは、RS-485電気規格に準拠しています。しかし、それらも異なります。
- S7 - 200 CPU上のCommunicationポートは非絶縁型で、最高通信速度は187.5Kボー
- EM277上のCommunicationポートは絶縁されており、最大通信レートは12Mであり、レートは適応可能です。
以下の3つのプロトコルはすべてRS-485ハードウェア上でCommunicationできます。
- PPI(プログラミングCommunication、S 7 - 200 CPU間、S 7 - 200 CPUとHMI間のCommunicationなどを含む)
- MPI(S 7 - 200 CPUとS 7 - 30 0/400 CPU、S 7 - 200 CPUとHMI、EM277とHMIなどのCommunication)
- PROFIBUS-DP(EM277と他のPROFIBUS-DPマスター間のCommunication)
実際には、各通信局のアドレスが異なり、Communicationボーレートが同じであれば、上記の3つのプロトコルはRS-485ネットワーク上で同時にCommunicationを実現することができます。もちろん、サイトがサポートするプロトコルは、独自の条件によって制限されます。
したがって、上記の電気ネットワークのCommunicationを検討する際には、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技術は裸の銅線を剥がさないでください。
図1.。高速ワイヤストリッパー(FCS、注文番号6GK1905- 6 AA 0 0)でPROFIBUSケーブルの一端を剥がします。
B.。PROFIBUSネットワークコネクタを開く。まず、ケーブル張力解放圧力ブロックを開き、コアロックを開きます。
図2の図。開いたPROFIBUSコネクタ
C.はPROFIBUSケーブルの芯線の外側の保護層を除去し、芯線を対応するカラーマークに従って芯線ロックに挿入し、ロックブロックを強く押して内部導体を接触させます。ケーブルが剥がされたシールド層がシールド接続シートと接触するように注意すべきである。
図3に示す。ケーブルの挿入
通信周波数が比較的高いため、Communicationケーブルはデュアルエンド接地を採用しています。ケーブルの両端にシールド層を接続します。
D.。ケーブルインゴットをリセットし、ネジを締め、内部接続に対する外部張力の影響を排除します。
5.2ネットワークコネクタ
ネットワークコネクタには、プログラミングポート付きとなしの2種類があります。プログラミングポートのないプラグは一般的なネットワークに使用され、プログラミングポートを備えたプラグは、HMIなどのプログラミングまたは接続のためのプログラミング接続ポートを提供しながらネットワークに使用できます。
図4。左側には、プログラミングポートのないネットワークコネクタ(注文番号:6ES7 97 2 -0BA52- 0 XA 0)があります。
右側には、プログラミングポート付きネットワークコネクタ(注文番号:6ES7 97 2 -0BB52- 0 XA 0)があります。
5.3線種ネットワーク構造
PROFIBUSケーブルを介してネットワークプラグを接続し、バス型ネットワーク構造を構成する。
図5.。バス型ネットワーク接続
上の図では、ネットワークコネクタA、B、Cがそれぞれ3つのCommunicationステーションのCommunicationポートに接続されており、ケーブルAがプラグAとBを接続し、ケーブルBがプラグBとCを接続しています。線種構造は、このように拡張できます。
円の内側の“終端抵抗”スイッチの設定に注意してください。ネットワーク端末のプラグは、終端抵抗スイッチは“ON”位置に配置し、中間サイトのプラグは、終端抵抗スイッチは“OFF”位置に配置します。
5.4終端抵抗とバイアス抵抗
正規のRS-485ネットワークは終端抵抗とバイアス抵抗を使用します。端子およびバイアス抵抗は、ネットワーク接続ラインが非常に短い場合、一時的または実験室でのテストでは使用できません。
終端抵抗:ライン型ネットワークの両端(最も離れた2つのCommunicationポート)、Communicationラインのペアに並列に接続された抵抗。伝送線理論によると、終端抵抗はネットワーク上の反射波を吸収し、信号強度を効果的に高めることができます。2つの端子抵抗を並列に接続した後の値は、通信周波数における伝送ラインのcharacteristicインピーダンスバイアス抵抗と基本的に等しくなければなりません。バイアス抵抗は、複雑な電気的条件下でA信号とB信号の相対関係を確保し、“0”と“1”信号の信頼性を確保するために使用されます。
SiemensのPROFIBUSネットワークコネクタには、端子とバイアス抵抗が内蔵されており、スイッチで簡単にオン/オフできます。終端抵抗とバイアス抵抗の値は、Siemens CommunicationsポートとPROFIBUSケーブルの要件に完全に準拠しています。
ネットワーク内のネットワークプラグの終端抵抗スイッチを閉じると、プラグの背後にあるネットワークの一部の信号伝送を簡単に遮断できます。
他のデバイスとCommunicationする場合(PROFIBUSケーブルを使用)、相手のCommunicationポートがD-SUB9ピンでない場合や、ピン定義が全く異なる場合があります。シーメンスMM 4 x 0インバータ、端子配線の形でRS-485通信ポートなど、この場合、端子抵抗を接続する必要があり、シーメンスは比較的正常な外部抵抗を提供することができます。その他の機器については、“S 7 - 200システムマニュアル”の技術データを参照して作成することができる。
シーメンスネットワークプラグの終端抵抗、バイアス抵抗のサイズは、シーメンスPROFIBUSケーブルのcharacteristicインピーダンスに一致しており、ユーザーがシーメンスPROFIBUSケーブルとネットワークプラグを使用することを強くお勧めします。多くのトラブルを回避できる。
インターネットの格言を覚えておいてください:あなたはそれをだます、それはあなたをだます!
Leave a Reply