私はMoxa LinuxデバイスであるDebian 9を使用しており、port0モードをモード1、2線RS485に設定する必要があります。関連アプリケーションが再起動したときに動作するcrontabを介して起動された起動スクリプトを使用しますが、モードは毎回モード0、RS 232にリセットされます。これは台本ですが、アイデアはありますか?
ポートモードを手動で設定すると正常に動作しますが、常にモード0に戻ります。
以下は、動作する必要がある特定の行です。
mx-uart-ctl -p 0 -m 1
答え1
私はcrontabを試してログファイルを生成してみましたが、これが私が得たものです:
Set uart mode failed
mx-uart-ctlが依存するいくつかの初期サービスの前にcrontabがすでに実行されているようです。 mx-uart-ctlコマンドをシステムサービスとして実行することにしました。これは私の設定ファイルです。
[Unit]
Description=Enable RS485 2-W Mode
After=uc2100-base-system.service
[Service]
Type=oneshot
ExecStart=/home/moxa/rs485.sh
[Install]
WantedBy=multi-user.target
システムによっては、Afterパラメータを変更する必要があるかもしれません(networking.serviceも機能します)。
これは私のスクリプトです。
#!/bin/sh
mx-uart-ctl -p 0 -m 1
注:スクリプトが機能しない場合は、パスに/ sbin(またはmx-uart-ctlを含むディレクトリ)を追加してみてください。パスに/ sbinを追加すると、セキュリティやその他の問題に影響を与える可能性があると思われる場合は、パスにディレクトリへのシンボリックリンクを作成できます。sudo ln -s /sbin/mx-uart-ctl /usr/local/bin/