ModbusにはASCI IとRTUの2つのシリアル伝送モードがあります。Modbusは、単一マスターマスターマスターのマスタースレーブ通信モードであり、Modbusネットワーク上のマスターは1つしか存在できず、Modbusネットワーク上のマスターはアドレスを持たず、各スレーブは一意のアドレスを持たなければならず、スレーブのアドレス範囲は0 - 247であり、0はブロードキャストアドレスであり、スレーブの実際のアドレス範囲は1 - 247です。Modbus RTU通信はマスタースレーブ方式でデータを伝送し、伝送の過程でModbus RTUマスターがアクティブな当事者であり、マスターがスレーブにデータ要求メッセージを送信し、Modbus RTUスレーブは応答メッセージを返します。S 7 -1200はModbus RTU通信をサポートします。
注意点は1.通信モジュールCM 1241 RS 232をModbus RTUマスターとして使用する場合、1つのスレーブとのみ通信できます。2.通信モジュールCM 1241 RS 485をModbus RTUマスターとして使用すると、最大32台のスレーブとの通信を確立できます。3.通信ボードCB 1241 RS 485を使用する場合は、CPUファームウェアがV2.0以上で、使用ソフトウェアがSTEP 7 Basic V11またはSTEP 7 Professional V11 以上である必要があります。TIA PORATLソフトウェアとS 7 -1200 CPUファームウェアの継続的な更新に伴い、S 7 -1200 Modbus RTU命令の異なるバージョンが登場した。ユーザーは、使用するソフトウェアとハードウェアに応じて、準拠したS 7 -1200 Modbus RTUコマンドを適切に選択してModbus RTU 通信を実装する必要があります。ソフトウェア、ハードウェア要件、および命令のバージョンは以下のとおりです。ソフトウェアSTEP 7 V 11でのS 7 -1200 Modbus RTU命令ソフトウェアバージョン7 V 11以降では、下図1に示すように、“命令”→“通信プロセッサ”→“MODBUS”の下から“MB_COMM_LOAD”と“MB_MASTER”または“MB_SLAVE”命令を直接呼び出すことができます。
図1 Modbus RTU命令Modbus RTU命令にはV 1とV 2の2種類がある。バージョンV1は当初STEP 7 Basic V10.5で提供され、バージョンV2はSTEP 7 Basic/Professional V11で提供された。ソフトウェアSTEP 7 V 13 SP 1でのS 7 -1200 Modbus RTU命令TIA V 13 SP 1リリースソフトウェアでは、Modbus RTU命令の2つのバージョンが利用可能です。下図2:Modbus RTU命令の初期バージョン(図2)MODBUS V2.2は、CM1241通信モジュールまたはCB1241 通信ボードを介した通信のみが可能です。Modbus RTU命令の新しいバージョン(図2)MODBUS(RTU)V3.0はModbus RTUの機能を拡張し、CM1241通信モジュール、CB1241 通信ボードをサポートするほか、PRO FINETまたはPROFIBUS分散I/Oラック上のPTP通信モジュールをサポートしてModbus RTU 通信を実現します。注意:新バージョンのModbus RTU命令の使用制限条件 新バージョンのModbus RTU命令がCM1241通信モジュールまたはCB1241通信ボードを介してModbus RTU通信を行う場合、以下の条件を満たす必要がある。a。S7-1200 CPUのファームウェアバージョンはV4.1より前のものにする必要があります。b. CM1241通信モジュールV2.1 以上または1241。
図2の図。Modbus RTU命令の2バージョンよくある質問
図3に示す。CM1241構成ストップビット·パラメータModbus_Commload命令の背景DBでStatic修正STOP_BITS停止ビット数2(デフォルト=1)
図4。Modbus RTU 通信停止ビットの変更Modbus RTUの新バージョンTIA V 13 SP 1リリースソフトウェアでは、Modbus RTU命令の2つのバージョンが利用可能です。
図1.。Modbus RTU命令の2バージョンModbus RTU命令の以前のバージョン(図1のMODBUS(V2.2))は、CM1241通信モジュールまたはCB1241通信ボードを介してのみModbus RTU通信を行うことができます。Modbus RTU命令の新しいバージョン(図1のMODBUS RTU V3.0)は、Modbus RTUの機能を拡張し、CM1241通信モジュール、CB1241通信ボード、PRO FINETまたはPROFIBUS分散I/Oラック上のPTP通信モジュールをサポートしてModbus RTU通信を実現します。Modbus RTU命令の新しいバージョンでサポートされるPTPモジュールは次の図2に示します。
図2の図。Modbus RTU命令の新バージョンでサポートされるPTPモジュールModbus RTU命令の新バージョンModbus RTU命令の新バージョンには、Modbus RTUマスター命令とスレーブ命令が含まれる。本稿では、CPU 1217C +CM1241 RS 422/485+ET200SP CM PTPモジュールを例に、Modbus RTU命令マスター·スレーブ通信の新しいバージョンのプログラミング手順を紹介する。CPUラックCM1241 RS 422/485はModbus RTUスレーブステーションとして機能し、分散ラックET200SPのCMPTPモジュールはModbus RTUマスターステーションとして機能します。ネットワーク構成図は以下の通り。
図3に示す。Modubus RTUネットワーク通信構造図使用するハードウェアとソフトウェアは以下の通りです。ハードウェア:① CPU1217C(注文番号(6 ES7 217- 1AG40 - 00)、ファームウェアバージョンV4.1.3 ② CM1241 422/485モジュール(注文番号(6 ES7 241-1CH32- 00)、ファームウェアバージョンV2.1 ③ 24V PS307(注文番号)6 ES7307 - 1KA02 - 00) ④ ET200 SP IM155-6PN HF(注文番号(6 ES7155 - 6AU00 - 0CN 0) ⑤ CMモジュール(注文番号)6ES7137 - 6A00 - 0BA0)ソフトウェア:TIA V 13 SP 1 UP 9I.設備の構成1CM1241 RS 422/485モジュールの構成打开デバイス视图,追加S7-1200CPU,并在硬件目录里找到“通信モジュール”→“点到点”→“CM1241(RS422/485)”,拖拽此モジュール至CPU左侧即可,如下图4所示:
図4。CM 1241 RS422/485モジュールの追加注:ファームウェアバージョン= CM 1241 RS 422/485モジュールのV 2.1は、Modbus RTU命令の新しいバージョンをサポートします。次に、“デバイス表示”でCM1241(RS422/485)モジュールをマウスで選択し、“プロパティ”→“ポート構成”でこのモジュールのハードウェアインターフェースパラメータを設定します。この例では、転送レート= 9.6 Kbps、パリティ=パリティなし、データビット=8ビット文字、ストップビット=1を例に示します。CM 1241ポート構成は、図5に示すように設定されている。
図5.。CM1241 RS 422/485モジュールポート構成最後に、“ハードウェア識別子”でハードウェア識別子が269であることを確認します(このパラメータはプログラムプログラミングで使用されます)。
図6.ハードウェア識別子さらに、S 7 -1200はシステムおよびクロックメモリ機能を提供し、後続の命令を容易にするために有効にすることを推奨します。図7に示すように、CPUの“プロパティ”→“一般”→“システムとクロックメモリ”でシステムとクロックメモリ機能を有効にします。
図7に。システムとクロックメモリ機能2ET200 SP CM PtPモジュールの構成
図8。ET200SPサイトの挿入
図9。CM PTPオペレーション·モード次に,“プロパティ”→“一般”→“インターフェイス”→“ポート構成”でこのモジュールのポート構成パラメータを設定し,この例では“プロトコル”:“Freeport/Modbus”;“ポートパラメータ”設定:転送レート=9.6Kbps,パリティ=パリティなし,データビット=8ビット文字,ストップビット=1を例として設定する.ポート構成設定は、次の図10に示します。
図10。CM PTPポート構成最後に、CM PTPモジュールハードウェア識別子は、プログラムプログラミングで使用される“ハードウェア識別子”で確認する必要があります。II.ソフトウェアプログラミング1Modbus RTUマスタープログラミングModbus RTUマスタープログラミングは、Modbus_Comm_Load命令およびModbus_Master命令を呼び出すことを必要とし、Modbus_Comm_Load命令は、Modbus RTUプロトコルを介して通信モジュールを構成し、Modbus_Master命令は、Modbus_Comm_Load命令によって構成されたポートを介してModbusマスターとして通信することができ、Modbus_Comm_Load命令のMB_DBパラメータは、Modbus_Master命令の静的MB_DBパラメータに接続されなければならない。この例では、分散ラックET200SPのCM PTPモジュールがModbus RTUマスターとして機能し、関連するプログラミング手順は以下のとおりです。
図11より。Modbus RTUマスターコマンドModbs_Comm_Loadディレクティブのパラメータの意味は次の表1に示されています。
表1 MB_COMM_LOAD命令のパラメータの意味Modbus_Master命令のパラメータの意味を以下の表2に示します。
表2 Modbus_Master命令パラメータの意味注意点は① Modbus_Comm_Load命令は、起動組織ブロックOB100では呼び出されず、OB1で呼び出されることが推奨される。Modbs_Comm_Load命令がOB1で呼び出されると、入力ビット“REQ”は立ち上がりエッジを使用してトリガされます。この場合、入力ビットは“First Scan”システムメモリビットを使用します。Modbus_Comm_Load命令バックグラウンドデータブロック内の静的変数“MODE”は、PTPモジュールの動作モードを記述するために使用されます。· 0 =全二重232· 1 =全二重(RS422)4線式モード(ポイントツーポイント)· 2 = 全二重(RS422)4線式モード(マルチポイントマスタ局、CM PtP − ET 200SP)· 3 = 全二重(RS422)4線式モード(マルチスレーブ、CM PtP(ET 200SP))· 4 = 半二重(RS485)2線モード静的変数“MODE”のデフォルトデータは0(RS 232全二重モード)であり、CM PTPモジュールの実際の構成に応じて値を変更する必要があります。この例では、CM PTPモジュールはRS 485半二重モードで動作しており、図12に示すように値を4に変更する必要があります。
図12より。Modbus_Comm_Loadバックグラウンドデータブロック静的変数“MODE”を4に修正Modbs_Master命令の“DATA_PTR”パラメータは、最適化されたアクセスブロックまたは非最適化された(標準)データブロックをサポートする、データの書き込みまたは読み取りのためのデータ領域のアドレスを指します。図13に示すように、データ領域は非最適化アクセスのデータブロックであり、データブロックのプロパティで“最適化ブロックアクセス”をキャンセルすることで、データブロックを非最適化アクセスのデータブロックに変更することができます(データブロックを右マウスボタンし、“属性”を選択し、“最適化ブロックアクセス”をキャンセルします)。
図13より。データ·ブロックを最適化されていないアクセスとして設定するModbs_Master命令の“DATA_PTR”が最適化されていないデータブロックを指している場合、入力パラメータはP #DB 3.DBX 0.0 WORD 5のようなポインタで入力する必要があります。Modbus RTUネットワーク内に複数のmodbus RTUスレーブまたは1つのmodbus RTUスレーブが読み書き操作を同時に必要とする場合、複数のModbus Master命令を呼び出す必要があり、Modbus Master命令間でポーリング方式を使用する必要があります。以下の図14は、2つのModbus_Master命令が呼び出しをポーリングする方法を説明するために使用される。
図14. Modbus_Masterポーリング呼び出し
図15より。_Comm_注意点は① OB83でModbs_Comm_Load命令を呼び出す背景データブロックは、OB1で呼び出すModbs_Comm_Load命令の背景データブロックと同じである必要がある。② CMモジュールのハードウェア子は、図16のように、“PLC変数”---“システム定数”でクエリすることもできる。示されたもの
図16。システム定数
図17より。OB86におけるModbus_Comm_Load命令の呼び出し注意点は① OB86においてModbs_Comm_Load命令が呼び出される背景データブロックは、OB1において呼び出されるModbs_Comm_Load命令の背景データブロックと同じである必要がある。分散IOサイトのハードウェア識別子は、“PLC変数”-“システム定数”で照会することもできます。2 Modbus RTUスレーブプログラミングModbus RTUスレーブプログラミングでは、Modbus RTUプロトコルを介して通信モジュールを構成するModbus_Comm_Load命令とModbus Slave命令を呼び出す必要があり、Modbus Sレーブ命令はModbus RTUプロトコルを介して通信モジュールを構成し、Modbus Sレーブ命令はModbusスレーブとして動作し、Modbus Sレーブ命令のMB_DBパラメータはModbus Sレーブ命令の(静的)MB_DBパラメータに接続する必要があります。この例では、CPUラックCM1241 RS 422/485をModbus RTUスレーブとして使用し、関連するプログラミング手順は以下のとおりです。
図18。Modbus RTUスレーブコマンドのドラッグModbs_Slaveディレクティブのパラメータの意味を表3に示します。
表3 Modbus Slave命令のパラメータの意味注意点は① Modbus_Comm_Load命令は、起動組織ブロックOB100では呼び出されず、OB1で呼び出されることが推奨される。Modbs_Comm_Load命令がOB1で呼び出されると、入力ビット“REQ”は立ち上がりエッジを使用してトリガされます。この場合、入力ビットは“First Scan”システムメモリビットを使用します。Modbus_Comm_Load命令バックグラウンドデータブロック内の静的変数“MODE”は、PTPモジュールの動作モードを記述するために使用されます。· 0 =全二重232· 1 =全二重(RS422)4線式モード(ポイントツーポイント)· 2 = 全二重(RS422)4線式モード(マルチポイントマスタ局、CM PtP − ET 200SP)· 3 = 全二重(RS422)4線式モード(マルチスレーブ、CM PtP(ET 200SP))· 4 = 半二重(RS485)2線モード静的変数“MODE”のデフォルトデータは0(RS 232全二重モード)であり、CM1241 RS 422/485モジュールの実際の構成に応じて値を変更する必要があります。この例では、CM1241 RS 422/485モジュールはRS 485半二重モードで動作しています。この値を4に変更する必要があります。Modbs_Slave命令の“MB_HOLD_REG”は、Modbus保持レジスタのデータ領域アドレスを指すために使用されます。このデータ領域は、最適化されたアクセスブロックまたは非最適化された(標準)データブロックをサポートします。この例で使用されるデータ領域は非最適化アクセスデータブロックであり、入力パラメータはP #DB 6.DBX 0.0 WORD 100のようなポインタで入力する必要があります。データブロックのプロパティで“最適化されたブロックアクセス”をキャンセルする方法については、図13を参照してください。示されたものPLCにプログラムをダウンロードし、Profibus DP通信ケーブルを使用してCM1241 RS 422/485をCM PTPシリアルモジュールに接続すると、Modbus RTU通信をテストできます。III.よくある質問の概要1. Modbus RTU命令の新しいバージョンの使用には制限がありますか?CM1241通信モジュールまたはCB1241通信ボードを介してModbus RTU通信を行う新しいバージョンのModbus RTU命令は、以下の条件を満たす必要があります。A.。S 7 -1200 CPUのファームウェアバージョンはV 4.1以下でなければなりません。b.。CM1241通信モジュールまたはCB1241通信ボードのファームウェアは、V2.1より低いものにすることはできません。S 7 -1200 V 4.0ファームウェアCPUはファームウェアによりV 4.1にアップデートでき、V 2.0ファームウェアのCM1241通信モジュールもファームウェアアップデートによりV 2.1にアップデートできます。2 .Modbus_Comm_Load命令背景データブロック内の静的変数MODE "の役割は何ですかなぜプロジェクトでこの変数を変更する必要があるのですか?Modbus RTU命令の新しいバージョンは、Modbus RTUの機能を拡張し、CM1241通信モジュール、CB1241通信ボード、PRO FINETまたはPROFIBUS分散I/Oラック上のPTP通信モジュールをサポートします。分散I/Oラック上のPTP通信モジュールは、RS 232、RS 485、RS 422などのさまざまな動作モードをサポートできるET200SP CM PtPモジュール(注文番号:6ES7137- 6 AA 00-0BA0)を例にとると、さまざまな動作モードをサポートできます。Modbus_Comm_Loadディレクティブのバックグラウンドデータブロック内の静的変数“MODE”は、PTPモジュールの動作モードを定義するために使用されます。MODE "のデフォルト値は0で、"全二重RS232 "動作モードを表します。この変数は、実際の動作モードに合わせて実際のプロジェクト構成で変更する必要があります。3. Modbus_Comm_Load命令が起動組織ブロックOB100で呼び出されますかModbus_Comm_Load命令は、起動組織ブロックOB100において呼び出されることは推奨されない。Modbus RTU命令の新しいバージョンは、Modbus RTUの機能を拡張し、PRO FINETまたはPROFIBUS分散I/Oラック上のPtP通信モジュールをサポートしてModbus RTU通信を実現します。オペレーティングシステムは、分散I/Oラック上のPtPモジュールとModbus RTU通信を可能にするために、データレコードの読み取りや書き込みなどの命令を呼び出す必要があります。リードデータ記録およびライトデータ記録命令は、非同期読み書き命令であり、命令の実行にNスキャンサイクルを要するので、Modbus_Comm_Load命令を起動組織ブロックOB100で呼び出すことは推奨されない。4. Modbus RTU通信エラー時のエラーコードの照会方法Modbs_Master命令を例にとると、通信エラーが発生した場合、Modbs_Master命令の“ERROR”出力ビットはTRUEになるが、スキャン期間は1回だけであるため、TIAソフトウェアプログラムによって監視されてもエラーを照会することはできない。Modbus_Masterコマンドの“STATUS”パラメータのエラーコードは、“ERROR” = TRUEのスキャン期間中のみ有効であり、Modbus RTU通信エラーのエラーコードを取得するには、次の図19を使用します。プログラムの方法。
図19。通信エラーコードSTATUSの取得
通信モジュール/通信ボード | 注文番号。 |
CM1241 RS232 | 6ES7 241-1AH32-0XB0 |
CM1241 RS485 | 6ES7 241-1CH30-0XB0 |
CM1241 RS422/485 | 6ES7 241-1CH32-0XB0 |
CB 1241 RS485 | 6ES7 241-1CH30-1XB0 |


シーメンスはMODBUS-ASCII通信モードをサポートする既製の命令を提供しておらず、ユーザー自身がフリーポートモードでプログラミングする必要がある。
Modbus RTU命令バージョンV 2では、“MB_COMM_LOAD”命令にパラメータ“REQ”と“DONE”が追加されます。さらに、“MB_MASTER”および“MB_SLAVE”命令の“MB_ADDR”パラメータは、拡張アドレス指定のためにUInt値を許容するようになった。
V 1(V 1.x)とV 2(V 2.y)の命令バージョンを同じCPUプログラムで同時に使用することはできません。ユーザプログラムのModbus命令は同じメジャーバージョン番号を持つ必要があり、メジャーバージョングループ内の命令は異なるマイナーバージョン番号を持つことができる。
S 7 -1200 通信モジュールCM1241を構成し、“MB_COMM_LOAD”コマンドを呼び出すことで、Modbus RTU通信モードに設定できます。S 7 -1200 通信モジュールCM1241は、“MB_MASTER”命令をプログラム的に呼び出すことによってModbus RTUマスターとして機能することができ、または“MB_SLAVE”命令を呼び出すことによって、S 7 -1200 通信モジュールCM1241はModbus RTUスレーブとして機能することができる。
S 7 -1200 通信モジュールCM1241がModbus RTUマスターまたはスレーブとして機能するかどうかにかかわらず、プログラミングのために“MB_COMM_LOAD”コマンドを呼び出す必要があります。
S 7 -1200 CM1241/CB1241 Modbus RTU 通信は2ビットストップビットをサポートしている。S 7 -1200 CM1241/CB1241属性で停止ビットを設定できますが、Modbus 通信で使用する場合、この設定された停止ビットは無効であり、Modbus CommloadコマンドのバックグラウンドDBでSTOP_BITS停止ビットの値を2に静的に変更する必要があります。
図3、4に示すように:









a)ET200SP分散サイトを挿入します。図8に示すように、ネットワーク·ビューを開き、ET200 SPサイトをドラッグして、適切なIOコントローラ(この例ではCPU1217 CはIOコントローラ)に割り当てます。

b)ET200SPサイトの構成。ET 200SPの“ユニット·ビュー”環境で、ET 200SPサイトにシグナル、通信モジュール、サーバー·モジュールを追加します。この例ではCM PTPモジュールとサーバー·モジュールのみを追加します。注:ET200SPサイトでは、サーバーモジュールを構成する必要があります。サーバーモジュールはインタフェースモジュールと一緒に購入するため、別途購入する必要はありません。ET200SPインタフェースモジュールにはIPアドレスとデバイス名が必要です。ET200 SP分散IO構成の詳細な手順については、“ET200 SPの使用に関するクイックスタート”を参照してください。『 ET200 SPの使用に関するクイックスタート』のダウンロード·リンクhttps://support.industry.siemens.com/cs/cn/zh/view/78304711ET200SPの“ユニット表示”でCM PTPをマウスで選択し、“プロパティ”→“全般”→“インタフェース”→“動作モード”でこのモジュールのハードウェア·インタフェース·パラメータを設定します。この例では、“動作モードの指定”:“半二重(RS485)2線式動作”、“受信回線の初期状態”:“なし”を設定します。下の図9に示す。


OB1にFC関数を挿入し、Modbs_Comm_Load命令とModbs_Master命令を関数にドラッグします。図11に示すように

ピンピン | 説明書は |
REQ | 上昇エッジトリガー |
PORT | 通信ポートのハードウェア識別子 |
BAUD | ボーレート:36 00、6000、12000、2400、48 0 0、96 00、19200、38 400、576 00、76 8 0 0、115200 |
PARITY | パリティ选択0-なし、1-奇検査、2-偶検査 |
FLOW_CTRL | フロー制御选択0-デフォルトフロー制御なし |
RTS_ON_DLY | 遅延选択 |
RTS_OFF_DLY | RTSオフ遅延選択0-デフォルト |
RESP_TO | レスポンス·タイムアウトデフォルト= 1000 ms。MB_MASTERスレーブが応答するために使用できる時間(ミリ秒単位)。 |
MB_DB | Modbus_MasterまたはModbus_Slave命令のバックグラウンドデータブロックへの参照。MB_DBパラメータは、Modbs_Master命令またはModbs_Slave命令の静的変数MB_DBパラメータに接続する必要があります。 |
DONE | 最後のリクエストがエラーなしで完了した場合、DONEビットはTRUEに変わり、1期間保持されます。 |
ERROR | 最後の要求がエラーで完了した場合、ERRORビットはTRUEに変わり、1サイクル保持されます。STATUSパラメータのエラー·コードは、ERROR = TRUEの期間中のみ有効です。 |
STATUS | ポート構成エラーコードについては、TIAソフトウェアオンラインヘルプまたはS 7 -1200システムマニュアルを参照してください。 |
ピンピン | 説明書は |
EN | Enable Endシングル |
REQ | TRUE = Modbusスレーブへのデータ送信リクエストの送信、立ち上がりエッジトリガーを推奨 |
MB_ADDR | Modbus RTUスレーブアドレス。デフォルトのアドレス范囲0 ~ 247、拡张アドレス范囲0 ~ 65535。値0は、すべてのModbusスレーブにメッセージをブロードキャストするために予約されます。 |
MODE | モード選択リクエストのタイプ読み取りまたは書き込みを指定します。 |
DATA_ADDR | スレーブ内の開始アドレス:Modbusスレーブ内のアクセス可能なデータの開始アドレスを指定します。 |
DATA_LEN | ≪データ長| Data Length | emdw ≫このリクエストでアクセスするビット数またはワード数を指定します。 |
DATA_PTR | データポインタデータ书き込みまたはデータ読み込みの対象となるタグまたはデータブロックアドレスを指す。 |
DONE | 完了ビット:最後のリクエストがエラーなしで完了した後、DONEビットは1スキャンサイクル時間TRUEのままです。 |
BUSY | FALSE Modbus_Masterアクティブ化コマンドなしTRUE Modbus_Masterコマンド実行中 |
ERROR | Modbus_MasterまたはModbus_Slave命令のバックグラウンドデータブロックへの参照。MB_DBパラメータは、Modbs_Master命令またはModbs_Slave命令の静的変数MB_DBパラメータに接続する必要があります。 |
STATUS | 最後のリクエストがエラーなしで完了した場合、DONEビットはTRUEに変わり、1期間保持されます。 |
ERROR | 最後の要求がエラーで完了した場合、ERRORビットはTRUEに変わり、1サイクル保持されます。STATUSパラメータのエラー·コードは、ERROR = TRUEの期間中のみ有効です。 |
STATUS | エラーコード |



b.“Pull or plug of modules”割り込みOB83を挿入する。この例では、Modbus RTUマスターモジュールは分散IOサイトにインストールされているので、プログラムでは分散IOサイト障害、CM PTPモジュールの挿入モジュールなどの障害を考慮する必要があります。OB83は、分散IOサイトにモジュールを挿入または挿入する際に、オペレーティングシステムから1回呼び出されます。OB83インターフェイス領域の入力変数“16 #Event_Class”によって、故障したモジュールとタイプが判別されます。イベントタイプ16 #39はモジュールが引き抜かれたことを示し、イベントタイプ16 #38はモジュールが挿入されたことを示します。CM PTPモジュールが再挿入された場合、割り込みOB83においてModbus_Comm_Loadコマンドを呼び出して通信モジュールを再構成する必要がある(図15に示す)。


c、“Rack or Station failure”割り込みOB86を挿入する。OB86は、分散型IOサイトの障害時と復旧時に、オペレーティング·システムから1回呼び出されます。OB86インターフェイス領域の入力変数“16 #Event_Class”によって障害を判断するモジュールとタイプ:イベントタイプ16 #39はサイト障害を示し、イベントタイプ16 #38はサイト復旧を示します。CM PTPモジュールが位置するIOサイトが復旧する場合、割り込みOB86においてModbus_Comm_Loadコマンドを呼び出して通信モジュールを再構成する必要がある(図17に示す)。

OB1にFC関数を挿入し、Modbs_Comm_Load命令とModbs_Slave命令を関数内にドラッグします。図18に示すように

ピンピン | 説明書は |
MB_ADDR | Modbusスレーブの標準アドレス指定:標準アドレス範囲(1 ~ 247)拡張アドレス範囲(0 ~ 655 3 5) |
MB_HOLD_REG | Modbus 保持レジスタのアドレスを指すデータポインタ。Modbus 保持レジスタはMメモリまたはDBデータ領域であることができる。Modbusの保持レジスタがDBデータゾーンの場合、DBデータゾーンは最適化されたアクセスブロックまたは非最適化されたアクセスブロックをサポートし、非最適化されたアクセスブロックを推奨します。 |
NDR | 利用可能な新しいデータ:FALSE:新しいデータなし· TRUE:新しいデータがModbusマスタによって書き込まれたことを示す前の要求がエラーなしで完了した場合、NDRビットはTRUEに変わり、1サイクル保持されます。 |
DR | データの読み取り:FALSE:新しいデータなし· TRUE:命令がModbusマスタが受信したデータをターゲット領域に格納したことを示す。最後のリクエストがエラーなしで完了した場合、DRビットはTRUEに変わり、1期間保持されます。 |
ERROR | 最後の要求がエラーで完了した場合、ERRORビットはTRUEに変わり、1サイクル保持されます。実行がエラーで終了した場合、STATUSパラメータのエラーコードはERROR = TRUEの期間のみ有効です。 |
STATUS | エラーコード |

发表回复