問題タブ [rs485]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
serial-port - 9 ピンのシリアル接続を Arduino に配線するにはどうすればよいですか?
私の質問はとても簡単です。背面に RS-485 接続を備えた大きな古いマシンと、RS-485 から 9 ピン シリアルへのコンバーターがあります。
接続しているデバイスは、ACK 信号を送信して、何かが接続されているかどうかを確認します。Arduino (Uno) を 9 ピンのシリアル コネクタに接続して、ACK を読み取って (後で書き戻して)、シリアル モニタに ACK 信号を表示するにはどうすればよいですか?
python - Pythonでmodbus経由でレジスタに書き込む(値を更新する)
関数コードとして使用して modbus でレジスタ値を読み取ることができます。03
さらに、Modbus プロトコルを介してレジスタ内にある同じ値で現在存在する値を再書き込みすることもできますが、変更しようとするとレジスタの内容は、というエラーが発生しますsocket.timeout: timed out
。Modbus プロトコル経由でレジスタの内容を変更する方法を教えてください。
これがコードです。
linux - RS485 シリアル通信
私は2つの組み込みマシン(同じ製造)を持っています。2 線 Rs485 シリアル通信で 2 台のマシンを接続しました。私はこのように配線しました (machine1-pin Tx+ から machine2- ピン Tx+ および machine1- ピン Tx- から machine2- ピン Tx-)。minicom ツールでデータ転送をテストしました。その1つのmachine1では、データを送信するだけで、他のmachine2は受信機として機能します。machine1 を受信機として、machine2 を送信機として機能させるにはどうすればよいでしょうか? ボーレート:9600、ハードウェアとソフトウェアのフロー制御なし、Xon/off-None。
java - Java - jSSC ライブラリと RTS シグナルがアクティブ/非アクティブにならない
私は jSSC ライブラリを使用しており、RS-485 クライアントに接続する必要があるため、RTS 信号を実装する必要があるため、この信号を SN75176 の DE/RE に使用します。問題は、RTS 信号をアクティブまたは非アクティブにするときに、RTS がアクティブかどうかを示すために MAX232 と SN75176 の間に LED があることですが、必要に応じて動作していないようです。これはコードです:
そして、これは出力です:
run: ポート名: COM1 開いたポート: true Params setted: true Set Flow Control Mode setted: true Get Flow Control Mode: 3 Primer RTS tiene que ser False RTS signal: false
顧客数: 1
Ingrese rele que desea activar (A = 1、B = 2、M = 3、N = 4、OFF = 6): 1
クライアント数: 2
Ingrese rele que desea activar (A = 1、B = 2、M = 3、N = 4、OFF = 6): 2
クライアント数: 3
Ingrese rele que desea activar (A = 1、B = 2、M = 3、N = 4、OFF = 6): 3
Enviando datos al Cliente numero 1 Segundo RTS tiene que ser True RTS signal: false Paso el segundo RTS (True) y esta por mandar
BUILD STOPPED (合計時間: 57 分 38 秒)
私は何を間違っていますか?
不足している情報や不足している情報がある場合は、お気軽にお問い合わせください。不明です。
よろしくお願いいたします。
serial-communication - Modbus RTU - 3.5 文字の時間
私は Modbus の初心者で、Modbus RTU を使用してアプリケーションを開発しています。RTU メッセージのフレーム分離時間を調べる方法を教えてください。Modbus RTU 仕様では、3.5 文字の時間について言及されていますが、この間隔を決定する方法に関するデータはこれ以上ありません。何か案が?
python - RS-485シリアル通信時のRTSライン制御
カーネル 2.6.39 の Linux マシンで、シリアル インターフェイス RS-485 経由で通信しようとしています。このブレイクアウト ボードをpySerialモジュールと一緒に使用しています。インターフェイスを介して何かを書き込むと、データが破損することがよくあります。ブレイクアウトボードの製品ページで、誰かが言及しました:
最初から、シリアル データを送信してから RTS ラインを Low にする前に約 25 ミリ秒の遅延が必要であることに気付きました。
バイトを書き込むとすぐに RTS ラインが高くなり、書き込み直後に低くなることがわかりました。そのラインを(もう少し長く)高く保つにはどうすればよいですか?
networking - RS485: シンプルで信頼性の高いプロトコル
2 線 RS485 バス用のシンプルで信頼性の高いマスター/スレーブ プロトコルを設計しようとしています。
バス上のすべてのノードには固有のアドレスがあります。1 つのノードは、通信を開始できる唯一のノードであるマスターです。他のすべてのノードは、マスターが要求を送信するまで何も送信できません。
私は単純な「要求/応答」プロトコルについて考えていました。マスターは要求をスレーブに送信し、その応答を待ちます。その後、M は別のスレーブにリクエストを送信します。3 つのシナリオが発生する可能性があります。
- どちらのフレーム (リクエストとレスポンス) も宛先で正しく受信され、トランザクションは問題なく終了します。
- マスターからの要求がスレーブに届かない (チェックサム エラー)。タイムアウトの後、マスターは再度要求を送信します。問題ない。
- スレーブからの応答がマスターに届かない (チェックサム エラー)。タイムアウト後、マスターはリクエストを再度送信できます。
私見、最後のシナリオには問題があります。スレーブは、2 番目の要求が最初の要求とまったく同じかどうかを理解できないため、要求を 2 回処理します。リクエストが「モーターを 2 歩動かして」、「最後のリクエスト以降にスイッチが押されたら教えて」、「リレーを切り替えて」などの場合はどうなりますか?
アプリケーションレベルがプロトコルの制限を知っていて、2回送信されると危険なリクエストを回避しない限り、最も単純な「リクエスト/レスポンス」プロトコルはうまく機能しないと思います。
提案するための、シンプルで信頼できる良いプロトコルはありますか? 車輪の再発明はしたくありません。
ascii - Modbus RTU と ASCII
USB コンバーターを備えた Linux ホスト PC から RS-485 ネットワークへのデバイスをクエリすると、Modbus RTU またはチェックサム付きの ASCII を使用する可能性があります。
Linux PC を使用しているとすれば、libmodbus を使用する C プログラムまたはその他の高水準言語を使用して ASCII を使用する自由があります。
各アプリケーション プロトコルの長所と短所はどれですか?
ASCII がプロトコルではないことは理解していますが、ここではアプリケーション プロトコルのように機能します。
この投稿は役に立ちますが、私の意見では完全に明確ではありません。第一印象では、Modbus RTU は軽量である必要があるため、CRC に対してより速く、おそらくより安全です。
実世界での経験は素晴らしいでしょう!
communication - modbus RTU 3.5 文字時間の計算
Modbus は初めてで、Modbus RTU を使用してアプリケーションを開発しています。RTU メッセージのフレーム分離時間を調べる方法を教えてください。Modbus RTU 仕様では、3.5 文字の時間について言及されていますが、この間隔をどのように決定できるかについてのデータはこれ以上ありません。分離時間を計算する手順は何ですか?