壹、問題分析
壹臺好好的電梯怎麽會這樣呢?而且通力的人解決起來也很方便不要動任何東西,只要插上調試工具,按幾個鍵就OK了。這能該變什麽呢,只能改變內存中的數據,而這些數據代表了電梯的各種設置。只要將數據改對了,設置也就對了,電梯就OK了。
二、解決辦法
基於以上分析,本人想出了用通用編程器修改內存數據的方案。然而3000的內存是32K的NVSRAM,有32768個字節,怎麽知道這個設置在哪個字節中?這個字節中的什麽值才是正確的設置呢?我想到壹臺正常的同型號電梯,肯定包含了這個設置,肯定在相應的內存地址中,而且其值也肯定是正確的。理論上講將它們比較壹下就能找出來。但是內存中包含太多的內容,從樓層到井道信息,從開關門時間到運行曲線,即使是同層站的電梯這些值也是不同的。要從著麽多不同的值中找出壹個特定的值,非常困難。怎麽辦?開始我想到了用優選法,即用32768乘0.618得20250(4F1AH),把好梯中的前20250個數據(0000H~4F1AH)考到壞梯的相應內存區域中,然後看電梯的V3FOK燈是否亮。如果亮了說明這個設置在前20250個字節中(0000H~4F1AH),不亮則說明在後面的12518個字節中(4F1AH~7FFFH)。反復重復以上步驟,19次就能找出這個元兇。將其值按好梯中的內容修改壹下,壹切OK了!至此困擾了用戶和我們壹個多月的問題終於徹底解決了!
後記:在實際操作中我並沒用優選法,而是簡單的將32768除2得16384(4000H),因32768是2的15次方,每壹次試驗都能確定N-1次方的範圍,因此15次試驗就能確定了。壹***用了1個小時左右。二進制文件的復制拷貝比較麻煩,不是人人都能操作。