S 7 -1200 Modbus RTU通信とV 3コマンド機能

無料無料技术资料

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

S 7 -1200 Modbus RTU通信とV 3コマンド機能

(イ)概要

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通信をサポートします。

通信モジュール/通信ボード注文番号。
CM1241 RS2326ES7241-1AH32-0XB0
CM1241 RS422/4856ES7241-1CH32-0XB0
CB 1241 RS4856ES7241-1CH30-1XB0

注意点:

(1)通信モジュールCM 1241 RS 232をModbus RTUマスターとして使用する場合、1つのスレーブとのみ通信できます。
通信モジュールCM 1241 RS 485をModbus RTUマスタとして使用すると、最大32台のスレーブとの通信が可能になります。

(3)通信ボードCB 1241 RS 485を使用する場合は、CPUファームウェアがV 2.0以上で、使用ソフトウェアがSTEP 7 Basic V 11またはSTEP 7 Professional V 11以上であること。

Modbus RTU命令のバージョンと制限

RTUソフトウェアとS 7 -1200 CPUファームウェアの継続的な更新に伴い、S 7 -1200 Modbus RTU命令の異なるバージョンも登場した。ユーザーは、使用するソフトウェアとハードウェアに応じて、Modbus RTU 通信を実現するために、S 7 -1200 Modbus RTU命令を正しく選択する必要があります。ソフトウェアとハードウェアの要件と命令バージョンは以下のとおりです。

S 7 -1200 Modbus RTU命令の送信

ボーアにはModbus RTU命令の2つのバージョンが提供されている。図1に示すように:

  • Modbus RTU命令の初期バージョン(図1). MODBUS V2.2は、CM1241通信モジュールまたはCB1241 通信ボードを介した通信のみが可能です。
  • Modbus RTU命令の新しいバージョン(図1)MODBUS(RTU)V3.0はModbus RTUの機能を拡張し、CM1241通信モジュール、CB1241 通信ボードをサポートするほか、PRO FINETまたはPROFIBUS分散I/Oラック上のPTP 通信モジュールをサポートしてModbus RTU 通信を実現します。

(2)Modbus RTU命令の新バージョンの使用制限
CM1241通信モジュールまたはCB1241通信ボードを介してModbus RTU通信を行う新しいバージョンのModbus RTU命令は、以下の条件を満たす必要があります。
A.。S7-1200 CPUのファームウェアバージョンはV4.1より前のものではありません。
b.。CM1241通信モジュールV2.1 以上またはCB1241

S 7 -1200 Modbus RTU通信とV 3コマンド機能插图

図1.。Modbus RTU命令の2バージョン

(3)よくある質問

S 7 -1200はModbus ASCII 通信モードに対応していますか?

シーメンスは上記の通信モードをサポートする既製のコマンドを提供しておらず、ユーザー自身がフリーポートモードでプログラミングする必要があります。

Modbus RTU命令V 1とV 2の違いは何ですか?

Modbus RTU命令バージョンV 2では、“MB_COMM_LOAD”命令に引数“REQ”と“DONE”が追加されている。略称は“MB_”。MASTER(写真はこちら"および" MB_SLAVE "命令の" MB_ADDR "パラメータは、拡张アドレスのために1つのUInt値を许容するようになった。

同じCPUプログラムでModbus RTU命令のV 1とV 2の異なるバージョンを同時に使用することはできますか?

V 1(V 1.x)とV 2(V 2.y)の命令バージョンを同じCPUプログラム内で同時に使用することはできません。ユーザプログラムのModbus命令は同じメジャーバージョン番号を持つ必要があり、メジャーバージョングループ内の命令は異なるマイナーバージョン番号を持つことができる。

S 7 -1200 通信モジュールCM1241は、Modbus RTUマスターまたはModbus RTUスレーブとして機能しますか?

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”命令を呼び出す必要があります。

(5)S 7 -1200 CM1241/CB1241 Modbus RTU 通信は2ビットストップビットをサポートしますか?

サポートする。

注意点:S 7 -1200 CM1241/CB1241属性で停止ビットを設定できますが、Modbus 通信で使用する場合、この設定された停止ビットは無効であり、Modbus CommloadコマンドのバックグラウンドDBでSTOP_BITS停止ビットの値を2に静的に変更する必要があります。下図2-3に示すように:

S 7 -1200 Modbus RTU通信とV 3コマンド機能插图1

図2の図。CM1241構成ストップビット·パラメータ

Modbus_Commload命令の背景 DBでStatic修正STOP_BITS停止ビット数2(デフォルト=1)

S 7 -1200 Modbus RTU通信とV 3コマンド機能插图2

図3に示す。Modbus RTU 通信停止ビットの変更

パート2:V 3命令機能

(1)Modbus RTU命令の概要

RTU V 13 SP 1ソフトウェアには2つのModbus RTU命令が含まれている。

S 7 -1200 Modbus RTU通信とV 3コマンド機能插图3

図1.。Modbus RTU命令の2バージョン

(1)Modbus RTU命令の初期バージョン(図1). MODBUS V2.2は、CM1241通信モジュールまたはCB1241通信ボードを介した通信のみが可能です。
(2)Modbus RTU命令の新バージョン(図1). MODBUS(RTU)V3.0はModbus RTUの機能を拡張し、CM1241通信モジュール、CB1241通信ボードをサポートするほか、PRO FINETまたはPROFIBUS分散I/Oラック上のPTP通信モジュールをサポートしてModbus RTU通信を実現します。

(3)Modbus RTU命令の新バージョンでサポートされているPTPモジュールは、下図2のとおりです。

S 7 -1200 Modbus RTU通信とV 3コマンド機能插图4

図2の図。Modbus RTU命令の新バージョンでサポートされるPTPモジュール

(2)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マスターステーションとして機能します。

1、ネットワーク構造図は以下の通り。

S 7 -1200 Modbus RTU通信とV 3コマンド機能插图5

図3に示す。Modubus RTUネットワーク通信構造図

2、本プロジェクトで使用したハードウェアとソフトウェアは以下の通りです。

1)ハードウェア:
① CPU 1217C(注文番号:6ES 7 217-1AG40- 00)、ファームウェアバージョンV4.1.3
② CM1241 422/485モジュール(注文番号:6ES7 241- 1 CH 32- 00)、ファームウェアバージョンV2.1
③ 24 V電源PS307(注文番号:6ES7307-1KA02-0AA0)
④ ET200 SP IM155-6PN HF(注文番号:6ES7155-6AU00- 0CN 0)
⑤ CMモジュール(注文番号:6ES7137- 6 AA 00-0BA0)

(2)ソフトウェア:
SP 1 UP 9。

(3)設備の構成例

CM1241 RS 422/485モジュールの構成

(1)デバイスビューを開き、S 7 -1200CPUを追加し、ハードウェアカタログで“通信モジュール”→“ポイントツーポイント”→“CM1241(RS 422/485)”を見つけ、図4に示すように、このモジュールをCPUの左側にドラッグします。

S 7 -1200 Modbus RTU通信とV 3コマンド機能插图6

図4。CM 1241 RS422/485モジュールの追加

注ファームウェアバージョン=V2.1 CM 1241 RS 422/485モジュールはModbus RTU命令の新しいバージョンをサポートしている。

(2)次に、“デバイスビュー”でCM1241(RS 422/485)モジュールをマウスで選択し、“プロパティ”→“ポート構成”でこのモジュールのハードウェアインターフェースパラメータを設定します。この例では、転送レート= 9.6 Kbps、パリティ=パリティなし、データビット=8ビット文字、ストップビット=1を例にとります。CM 1241ポート構成は、図5に示すように設定されている。

S 7 -1200 Modbus RTU通信とV 3コマンド機能插图7

図5.。CM1241 RS 422/485モジュールポート構成

(3)最後に、図6に示すように、“ハードウェア識別子”でハードウェア識別子が269であることを確認します(このパラメータはプログラムプログラミングで使用されます)。

S 7 -1200 Modbus RTU通信とV 3コマンド機能插图8

図6ハードウェア識別子

(4)また、S 7 -1200はシステムおよびクロックメモリ機能を提供しており、後続の命令を容易にするために有効にすることを推奨します。図7に示すように、CPUの“プロパティ”→“一般”→“システムとクロックメモリ”でシステムとクロックメモリ機能を有効にします。

S 7 -1200 Modbus RTU通信とV 3コマンド機能插图9

図7に。システムとクロックメモリ機能

ET200 SP CM PtPモジュールの構成

(1)ET 200SP分散サイトを挿入し、ネットワークビューを開き、ET 200SPサイトをドラッグし、対応するIOコントローラ(この例ではCPU1217CがIOコントローラ)に割り当てます。図8に示すように、

S 7 -1200 Modbus RTU通信とV 3コマンド機能插图10

図8。ET200SPサイトの挿入

(2)ET200SPサイトを構成するには、ET 200SPの“ユニットビュー”環境で、ET200SPサイトに信号、通信モジュール、サーバーモジュールを追加します。この例ではCM PTPモジュールとサーバーモジュールのみを追加します。ET200SPの“ユニット表示”でCM PTPをマウスで選択し、“プロパティ”→“全般”→“インタフェース”→“動作モード”でこのモジュールのハードウェア·インタフェース·パラメータを設定します。この例では、“動作モードの指定”:“半二重(RS485)2線式動作”、“受信回線の初期状態”:“なし”を設定します。下の図9に示す。

S 7 -1200 Modbus RTU通信とV 3コマンド機能插图11

図9。CM PTPオペレーション·モード

注:ET200SPサイトでは、サーバーモジュールを構成する必要があります。サーバーモジュールはインタフェースモジュールと一緒に購入するため、別途購入する必要はありません。ET200SPインタフェースモジュールはIPアドレスとデバイス名を割り当てる必要があります。ET200 SP分散IO構成の詳細な手順については、“ET200 SPの使用に関するクイックスタート”を参照してください。この例では、Profinet IO通信の関連設定と手順については説明しません。『 ET200 SPの使用に関するクイックスタート』のダウンロードリンク:

https://support.industry.siemens.com/cs/cn/zh/view/78304711

(3)次に,“プロパティ”→“一般”→“インタフェース”→“ポート構成”でこのモジュールのポート構成パラメータを設定し,この例では“プロトコル”:“Freeport/Modbus”;“ポートパラメータ”設定:転送レート=9.6Kbps,パリティ=パリティなし,データビット=8ビット文字,ストップビット=1を例にとる.ポート構成設定は、次の図10に示します。

S 7 -1200 Modbus RTU通信とV 3コマンド機能插图12

図10。CM PTPポート構成

(4)最後に、CM PTPモジュールハードウェア識別子を“ハードウェア識別子”で確認する必要があります。このパラメータはプログラムプログラミングで使用します。

(4)ソフトウェアプログラミングの例

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

Modbus RTUマスタープログラミングでは、Modbus RTUプロトコルを介して通信モジュールを構成するModbus_Comm_Load命令とModbus Master命令の呼び出しが必要であり、Modbusマスター命令はModbus RTUプロトコルを介してModbusマスター命令と、Modbusマスター命令はModbusマスター命令の(静的)MB_DBパラメータに接続する必要がある。この例では、分散ラックET200SPのCM PTPモジュールがModbus RTUマスターとして機能し、関連するプログラミング手順は以下のとおりです。

(1)OB1にFC関数を挿入し、Modbs_Comm_Load命令とModbs_Master命令を関数内にドラッグします。Figure 11に示すように:

S 7 -1200 Modbus RTU通信とV 3コマンド機能插图13

図11より。Modbus RTUマスターコマンド

Modbs_Comm_Loadディレクティブのパラメータの意味は次の表1に示されています。

ピンピン説明書は
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_DLYRTSオフ遅延選択0-デフォルト
RESP_TOレスポンス·タイムアウトデフォルト= 1000 ms。MB_MASTERスレーブが応答するために使用できる時間(ミリ秒単位)。
MB_DBModbus_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システムマニュアルを参照してください。

表1 MB_COMM_LOAD命令パラメータの意味

Modbs_Master命令のパラメータの意味を次の表2に示します。

ピンピン説明書は
ENEnable Endシングル
REQTRUE = Modbusスレーブへのデータ送信リクエストの送信、立ち上がりエッジトリガーを推奨
MB_ADDRModbus RTUスレーブアドレス。デフォルトのアドレス范囲0 ~ 247、拡张アドレス范囲0 ~ 65535。値0は、すべてのModbusスレーブにメッセージをブロードキャストするために予約されます。
MODEモード選択リクエストのタイプ読み取りまたは書き込みを指定します。
DATA_ADDRスレーブ内の開始アドレス:Modbusスレーブ内のアクセス可能なデータの開始アドレスを指定します。
DATA_LEN≪データ長| Data Length | emdw ≫このリクエストでアクセスするビット数またはワード数を指定します。
DATA_PTRデータポインタデータ书き込みまたはデータ読み込みの対象となるタグまたはデータブロックアドレスを指す。
DONE完了ビット:最後のリクエストがエラーなしで完了した後、DONEビットは1スキャンサイクル時間TRUEのままです。
BUSYFALSE Modbus_Masterにアクティブ化コマンドなし
TRUE Modbus_Masterコマンド実行中
ERRORModbus_MasterまたはModbus_Slave命令のバックグラウンドデータブロックへの参照。
MB_DBパラメータは、Modbs_Master命令またはModbs_Slave命令の静的変数MB_DBパラメータに接続する必要があります。
STATUS最後のリクエストがエラーなしで完了した場合、DONEビットはTRUEに変わり、1期間保持されます。
ERROR最後の要求がエラーで完了した場合、ERRORビットはTRUEに変わり、1サイクル保持されます。STATUSパラメータのエラー·コードは、ERROR = TRUEの期間中のみ有効です。
STATUSエラーコード

表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 = 全二重(RS 422)4線式モード(マルチスレーブ、CM PtP(ET 200SP))
  • 4 = 半二重(RS485)2線モード

静的変数“MODE”のデフォルトデータは0(RS 232全二重モード)であり、CM PTPモジュールの実際の構成に応じて値を変更する必要があります。この例では、CM PTPモジュールはRS 485半二重モードで動作し、図12に示すように値を4に変更する必要があります。

S 7 -1200 Modbus RTU通信とV 3コマンド機能插图14

図12より。Modbus_Comm_Loadバックグラウンドデータブロック静的変数“MODE”を次のように修正

Modbs_Master命令の“DATA_PTR”パラメータは、最適化されたアクセスブロックまたは非最適化された(標準)データブロックをサポートする、データの書き込みまたは読み取りのためのデータ領域のアドレスを指します。
この例で使用されるデータ領域は非最適化アクセスデータ·ブロックであり、図13に示すように、データ·ブロックのプロパティで“最適化ブロック·アクセス”をキャンセルすると、データ·ブロックを非最適化アクセスデータ·ブロックに変更できますデータ·ブロックを右マウス·マウス·ブロック、“属性”を選択し、“最適化ブロック·アクセス”をキャンセルできます。

S 7 -1200 Modbus RTU通信とV 3コマンド機能插图15

図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つのModbs_Master命令が呼び出しをポーリングする方法を説明します。

S 7 -1200 Modbus RTU通信とV 3コマンド機能插图16

図14. Modbus_Masterポーリング呼び出し

(2)挿入“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に示す)。

S 7 -1200 Modbus RTU通信とV 3コマンド機能插图17

図15より。_Comm_

注意点:
① OB83でModbs_Comm_Load命令を呼び出す背景データブロックは、OB1で呼び出すModbs_Comm_Load命令の背景データブロックと同じである必要がある。
図16に示すように、CM PTPモジュールのハードウェア識別子は、“PLC変数”-“システム定数”でも照会できます。

S 7 -1200 Modbus RTU通信とV 3コマンド機能插图18

図16。システム定数

(3)挿入“Rack or Station failure”割り込みOB86

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

S 7 -1200 Modbus RTU通信とV 3コマンド機能插图19

図17より。OB86におけるModbus_Comm_Load命令の呼び出し

注意点:
① OB86においてModbs_Comm_Load命令が呼び出される背景データブロックは、OB1において呼び出されるModbs_Comm_Load命令の背景データブロックと同じである必要がある。
分散IOサイトのハードウェア識別子は、“PLC変数”-“システム定数”で照会することもできます。

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スレーブとして使用し、関連するプログラミング手順は以下のとおりです。

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

S 7 -1200 Modbus RTU通信とV 3コマンド機能插图20

図18。Modbus RTUスレーブコマンドのドラッグ

Modbs_Slaveディレクティブのパラメータの意味を表3に示します。

ピンピン説明書は
MB_ADDRModbusスレーブの標準アドレス指定:
標準のアドレス指定範囲(1 ~ 247)
拡張アドレス範囲(0 ~ 65535)
MB_HOLD_REGModbus 保持レジスタのアドレスを指すデータポインタ。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エラーコード

表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 = 全二重(RS 422)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通信をテストできます。

(5)よくある質問

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にアップデートできます。関連するファームウェアのアップデート方法は、S 7 -1200ファームウェアアップデートを参照してください。

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を使用します。プログラムの方法。

S 7 -1200 Modbus RTU通信とV 3コマンド機能插图21

図19。STATUSの取得

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

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

エンジニア会員

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

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

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

发表回复

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