問題タブ [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.
javascript - modbus rtu スレーブが要求に応答せず、スレーブに C-ERR ライトが点灯する
状況 オリエンタル モーターの LSD-KD ステッピング モーター ドライバーがあり、PC -> USB -> RS232 -> RS485 -> ドライバー経由で接続しています。ドライバーは RS485 Modbus RTU を使用し、伝送速度 38400、データビット 8、ストップビット 1、偶数パリティ、スレーブ番号 2 で送信されます。
0x02,0x06,0x02,0x4b,0x00,0x50,0xf8,0x6b を送信しようとしていますが、これはレジスタを正しくする必要があります。応答がなく、C-DAT/C-ERR が赤くなります。
私はこのJavascriptコードを少し持っています
コードを実行すると、次のように表示されます。
RS485 にはエコーがあるため、これは例外です。しかし、私は奴隷から何も受け取っていません。
編集:構成の詳細。RS232 <-> RS485 コンバーターで 'T.ON R.ON' と 'DCE' に設定されているのはこのデバイスです。デバイス ページ。
ドライバーでは、次のように設定されています。
SW1は2に設定され、SW1はスレーブ番号に対応します
SW2 は 2 に設定され、値が 2 の SW2 は 38400 の伝送速度を示します。
SW3は「1:オフ、2:オン、3:オフ、4:オン」に設定
RS232 <-> RS485 コンバータの出力ポートをドライバに接続します。出力ポートはコンバータの入力ポートにも接続されています。したがって、エコー。
java - 複数のデバイスとの RS-485 半二重通信
RS-485 ネットワークは、1 つのマスター (RxTx を備えたマイクロ サーバー) と 2 つのスレーブ デバイスで構成されます。スレーブデバイスの 1 つは実際のデバイスで、もう 1 つは前述のデバイスのシミュレータです。
シミュレーターはRxTxを使用せず、マイクロサーバー上で動作するように作成されています。stty コマンドでいくつかのオプションを設定した後、FileInput/OutputStream で /dev/ttySx を読み込みます。そして、あたかも複数のデバイスがあるかのように動作します。
マスターはスレーブにデータを定期的に取得するように要求します。
問題は、実機のターンではシミュレータが何もしないのに、シミュレータで実行するとマスターが実機からデータを取得できないことです。
c# - stx データ etx crc の c# rs485 crc
ディスペンサーに送信されるメッセージの crc を計算したいと思います。メッセージフォーマットはSTX + DATA + ETX + CRCであり、「crcは、7fhとSTXを除くETXを含むすべての文字の合計の間でAND演算子を使用するか、40hとすべての文字の合計の間でOR演算子を使用して計算できます。 ETXを含み、STXを除く。」
この情報から CRC の形式を取得できませんでした。任意のアイデアやサンプルを歓迎します。
ご心配ありがとうございます
c# - シリアルデータが正しく送信されない
USB から RS485 へのアダプターを使用して VFD を制御するプログラムに取り組んでいます。
コマンドを送信しようとすると、VFD が一瞬だけ点滅するという問題がありました。
さらに詳しく確認するために、ループバック テスト (送信ピンを受信ピンに配線し、送信されたデータも受信されるかどうかを確認する) を実行して、USB から RS485 へのコンバーターをテストすることにしました。
さまざまなシリアル テスト アプリケーションを使用して、動作することを確認できました。データを送信すると、送信と受信の両方が表示されます。
ただし、私が書いているプログラムでは機能しません。プログラムが起動すると、「.enq.」という送受信シグナルがいくつか送られてきます。ただし、プログラムを実行すると、データが送信されたことは示されますが、受信されたことは示されません。シリアルポートの設定方法に誤りがあるかどうかはわかりませんでした。
これが私のセットアップコードです。
メッセージを送信するために使用するコードは次のとおりです。
繰り返します:
-サードパーティ製ソフトウェア (無料のデバイス監視スタジオ (FDMS)) を介して送信すると、ループバック テストが成功します - MY ソフトウェアを起動すると、いくつかの .enq が表示されます。メッセージ。- プログラムがデータを送信しようとすると、FDMS はデータが送信されたが受信されなかったと表示します。
皆さんが与えることができるどんな助けも大歓迎です!
android - Android rs232 ポートを使用して rs485 データを受信する方法は?
私のAndroidデバイスにはRS232ポートがあり、RS232ポートを備えたキーボードがあるので、「android-serialport-api」を使用し、キーボードの入力を受け取るアプリを作成して成功します。
しかし、別のキーボードはrs485を使用しているので、rs232からrs485へのアダプターを使用して変換します。しかし、ケアされたアプリはもう入力データを取得できません。
どうして...?そのための新しいアプリを作成する必要がありますか?この問題を解決する方法はありますか? 皆さんありがとう。
c - main while ループ (C プログラミング) から脱出するにはどうすればよいですか?
外部停止キーが押された場合、メインループから脱出しようとしています。現在、START キーと STOP キーが実装されている RS485 通信を介して AT32UC と ATmega128 を通信しています。RS485 レシーバー割り込みは、0x10 = 開始および 0x11 = 停止のレシーバー側で処理するデータがある場合に呼び出されます。
私の問題は、開始キーと停止キーが適切に認識され、開始するとメインループが続行され、停止キーが押された場合にメインループを終了したいことです。したがって、それに応じて開始フラグと停止フラグを設定しました。しかし、ストップ(エスケープ)の実装に苦労しています。以下は、割り込みルーチンとメイン ループの短い抜粋です。
c - Usart 割り込み登録
アプリケーションに AT32UC シリーズ (カスタム ボード) を使用していますが、現在、Usart RS485 割り込みが原因で困っています。Rx 割り込みをセットアップして動作させています。データを送信できる場合に呼び出される Tx 割り込みを追加しようとしています。私の問題は、tx 割り込みが呼び出されないことです。これのために数時間戦った後、私は奇妙なものを見つけました。
上記から、rx 割り込みが機能し、INTC rx 割り込みの順序を tx 割り込みで変更すると、tx 割り込みが機能し、rx 割り込みは発生しません。各割り込みを呼び出す関数もメインです。誰かが割り込みの実装における私の理解の何が問題なのかを説明できますか? さらに参照できるように、関連するコードのスニペットも添付しました。
前もって感謝します!
c - AVR32 uc3b Tx エンプティ割り込みが機能しない
現在、AT32UCB1258 カスタム ボードで RS485 usart 割り込みに取り組んでおり、txempty 割り込みに苦労しています。基本的には、5 バイト送信後に tx を無効にしたいと考えています。私の rx 割り込み (マスター ボードからの受信コマンド) と tx レディ割り込みは正しく発生していますが、tx empty 割り込みはまったく発生していません。USART2 割り込みハンドラで発生する割り込みを区別するために、チャネル ステータス レジスタをチェックしています。どんな助けでも大歓迎です。前もって感謝します!
現在、txempty 割り込みがある場合に gpio_pin06 が Low になるのを監視していますが、その段階に進むことはありません。他の割り込みが正しく起動しているため、usart の初期化、gpio 有効化モジュール、および割り込みレジスタが正しく設定されていると思います。