Modbus プロトコルを介して、気水チラー用の uC2 SE コントローラーと通信しようとしています。USB ポート COM へのシリアル RS485 がコントローラに接続されており、レジスタを読み取ることができましたが、write_register 関数を使用してそれらの値を変更することはできません。テスターでも試しました。exe および Modscan64 ソフトウェアと結果は同じで、読み取りのみ可能で、書き込みは不可能です。ここでコードの一部が実行され、デバッグ応答を確認できることを紹介しました。事前に助けてくれてありがとう!
温度設定値の変更
冷却_設定値_REG = 41
試してください: print(instrument.read_register(COOLING_SETPOINT_REG,1)) を除いて IOError: print('Failed to read from instrument')
NEW_TEMPERATURE = 20.1
return_flag = instrument.write_register(COOLING_SETPOINT_REG, NEW_TEMPERATURE,1,functioncode = 6, signed = True) # レジスタ番号、値、ストレージの小数点以下の桁数 output_flag = 'SUCCESS' if return_flag else 'FAILURE' print('単一レジスタステータスの書き込み ' + output_flag + '\n' )
試してください: print(instrument.read_register(COOLING_SETPOINT_REG,1)) を除いて IOError: print('Failed to read from instrument')
Respuesta デバッグ:
MinimalModbus デバッグ モード。計測器に書き込みます (7 バイトが戻ることを期待): '\x01\x03\x00)\x00\x01UÂ' (01 03 00 29 00 01 55 C2) MinimalModbus デバッグ モード。ポート COM8 MinimalModbus デバッグ モードを開きます。ポート COM8 MinimalModbus デバッグ モードのシリアル バッファをクリアしています。書き込み前にスリープする必要はありません。前回の読み取りからの時間: 334030.00 ミリ秒、最小サイレント期間: 4.01 ミリ秒。MinimalModbus デバッグ モード。ポート COM8 MinimalModbus デバッグ モードを閉じています。計測器からの応答: '\x01\x03\x02\x00ȹÒ' (01 03 02 00 C8 B9 D2) (7 バイト)、往復時間: 62.0 ms。読み取りのタイムアウト: 1000.0 ミリ秒。
20.0 MinimalModbus デバッグ モード。計測器に書き込みます (8 バイトが戻ることを期待): '\x01\x06\x00)\x00É\x98T' (01 06 00 29 00 C9 98 54) MinimalModbus デバッグ モード。ポート COM8 MinimalModbus デバッグ モードを開きます。ポート COM8 MinimalModbus デバッグ モードのシリアル バッファをクリアしています。書き込み前にスリープする必要はありません。前回の読み取りからの時間: 47.00 ミリ秒、最小サイレント期間: 4.01 ミリ秒。MinimalModbus デバッグ モード。ポート COM8 MinimalModbus デバッグ モードを閉じています。計測器からの応答: '\x01\x06\x00)\x00É\x98T' (01 06 00 29 00 C9 98 54) (8 バイト)、往復時間: 47.0 ms。読み取りのタイムアウト: 1000.0 ミリ秒。
シングル レジスタ ステータスの書き込み FAILURE
MinimalModbus デバッグ モード。計測器に書き込みます (7 バイトが戻ることを期待): '\x01\x03\x00)\x00\x01UÂ' (01 03 00 29 00 01 55 C2) MinimalModbus デバッグ モード。ポート COM8 MinimalModbus デバッグ モードを開きます。ポート COM8 MinimalModbus デバッグ モードのシリアル バッファをクリアしています。書き込み前にスリープする必要はありません。前回の読み取りからの時間: 46.00 ミリ秒、最小サイレント期間: 4.01 ミリ秒。MinimalModbus デバッグ モード。ポート COM8 MinimalModbus デバッグ モードを閉じています。機器からの応答: '\x01\x03\x02\x00ȹÒ' (01 03 02 00 C8 B9 D2) (7 バイト)、往復時間: 47.0 ms。読み取りのタイムアウト: 1000.0 ミリ秒。