アカウント名:
パスワード:
うぁひでぇ...と思ったらWDTタイムアウトで主動力切るって書いてあるよ?問題はそこじゃなくて...
あたりだろう。今回の原因は2から始まった1と4、特に1は凶悪で明らかなバグと言える。3はおそらく4の原因だし、2は1がなければリカバリ可能だが何かが根本的に間違ってる。3は、ビジーループで回したければ割り込みなんて使わずにタイマの値を直接読んで処理を回すべきだしなぁ...。
...てなところなんじゃなかろうか。
不具合(エラー)を検出した即時に停止すべきかどうかの判断は運転士が行います。
今回の問題は運転手が即時停止させようとしても動力が切れなかったことで加速中のモーターの駆動を止めても加速が止まるだけで慣性で車両は動きつづけます。それを止めるのがブレーキですよ。停止してはいけない場所で停止しても動き続けるよりは安全で、後続列車との衝突は列車監視システムが・・・なかったら確かに大惨事ですね(T_T
運転士が突然脳卒中とかで運転不能になったら?そのためのATSですが今回ATSが停止信号出していても列車の制御系がノイズでやられてたので役に立たなかったようで。ATSのようなシステムが無い場合は、もう一人人をつけておいてますね。航空機(!=軍用機)のように。
>ノイズが入る時点で負けです。その後の敗戦処理が下手なことは副次的な問題でしかありません。
原因は完全につぶせませんよ。今回たまたまノイズが原因だとわかりましたが、それ以外の原因で加速側にロックしたときにどう安全を確保するつもりですか?
まー本当の意味で「ノイズで誤動作」ならそうなんだけど、今回はソフトがgdgdだから...ソフトがちゃんとしてればリセットは期待できたケースだよ。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
Stableって古いって意味だっけ? -- Debian初級
心と体は別物? (スコア:2, 参考になる)
・制御プログラム(というか制御回路?)にはウォッチドッグタイマー
によるリセット機構があるが, これは制御プログラムはリセット
するがその際にはモーターの駆動力は維持される回路構成になっている。
・不正割り込みの処理の際にウォッチドッグリセットのためのタイマも
含めて禁止してそのまま放置してしまうためウォッチドッグリセット
がかからなくなる。
(報告書では不正なWDTリセット出力が継続と書かれているがこれはWDT
タイムアウト出力の間違いでは?)
・というわけでいったん不正割り込みがかかるとWDTタイムアウトが
継続的に発生して加減速シーケンスが妨害されるが駆動回路は制御
プログラムからの指示がない限り駆動力を維持する。
コレ正しいとすると私にはシステム構成バグにしか見えないんですが…
一番きついと思うのはWDTタイムアウトで駆動力が維持される部分。
こんなもんなんですか? それとも私の読み違い?
Re:心と体は別物? (スコア:3, 参考になる)
うぁひでぇ...と思ったらWDTタイムアウトで主動力切るって書いてあるよ?
問題はそこじゃなくて...
あたりだろう。今回の原因は2から始まった1と4、特に1は凶悪で明らかなバグと言える。
3はおそらく4の原因だし、2は1がなければリカバリ可能だが何かが根本的に間違ってる。
3は、ビジーループで回したければ割り込みなんて使わずにタイマの値を直接読んで処理を回すべきだしなぁ...。
...てなところなんじゃなかろうか。
Re: (スコア:0)
マイコンのフラッシュメモリに格納されたコードが化けているかもしれないし、メモリも化けているかもしれない。
一度だけでなく継続的に動作が怪しくなっている状況下では、ソフトウェアが堅牢に作られていても、正しく動作することは期待できません。
エラーを検出したら即時に停止すべきか・・・これは難しいですよ。
加速中にモーターの駆動をピタリと停止したら、乗客が怪我をします。立っている人が頭を強く打って亡くなることも。
また、停止してはいけない場所で停止すると別の事故が発生することも。
ノイズが入る時点で負けです。その後の敗戦処理が下手なことは副次的な問題でしかありません。
Re:心と体は別物? (スコア:1)
不具合(エラー)を検出した即時に停止すべきかどうかの判断は運転士が行います。
今回の問題は運転手が即時停止させようとしても動力が切れなかったことで
加速中のモーターの駆動を止めても加速が止まるだけで慣性で車両は動きつづけます。
それを止めるのがブレーキですよ。停止してはいけない場所で停止しても
動き続けるよりは安全で、後続列車との衝突は列車監視システムが・・・
なかったら確かに大惨事ですね(T_T
運転士が突然脳卒中とかで運転不能になったら?そのためのATSですが
今回ATSが停止信号出していても列車の制御系がノイズでやられてたので
役に立たなかったようで。ATSのようなシステムが無い場合は、もう一人
人をつけておいてますね。航空機(!=軍用機)のように。
>ノイズが入る時点で負けです。その後の敗戦処理が下手なことは副次的な問題でしかありません。
原因は完全につぶせませんよ。今回たまたまノイズが原因だとわかりましたが、
それ以外の原因で加速側にロックしたときにどう安全を確保するつもりですか?
Re:心と体は別物? (スコア:1)
まー本当の意味で「ノイズで誤動作」ならそうなんだけど、今回はソフトがgdgdだから...
ソフトがちゃんとしてればリセットは期待できたケースだよ。
報告書を見た (スコア:2, 興味深い)
不正割り込みが発生
→すべての割り込みを禁止(含むタイマ割り込み)
→起動カウンタが動かない
→加減速シーケンスが動かない
不正割り込みが発生したときのリカバリ処理で失敗してますね。
私的には、不正割り込みが掛かったら時点で WDT 保護動作を起動するのが正しい処理だと思ふ。
Re:心と体は別物? (スコア:1, 興味深い)
# ていうかタイマ割り込みまでWDリセットしてどうするんだよとorz
タイマ停止によってカウンタが上がらないので加減速シーケンスがスキップされて
WDTリセットがかけられ続けるのでWDTタイムアウトが発生しないけど加減速シーケンスも
実行されなくなるので、駆動力が維持されてしまうという話ですね。
で、結局システムの構成的に変だろうという意見は変わりませんが…
Re:心と体は別物? (スコア:1)
前にやった事のあるシステムで似たようなのがありました。
ソフト側の不具合を隠すために何かあったらWDTでリセットはするが、
ハードの設定は残しておいて欲しいと。
つまり、WDTでリセットがかかればソフトは「再起動」として動きますが、
ハード側からみれば、何事もなかったかのように動き続けるシステム構成ですね。
この場合、ネットワーク機器なので、それでもOKだと思いますが、
(パケットを止めるわけにもいかないので)
こういう駆動系のシステムだと、それはまずいですよねぇ・・・。
下手すればというより、人命に直結しますし。