lanjinghao
師夷洋技以制夷!!!
級別: 略有小成
|
程序說明:EM235用采樣交流電壓信號,1ms執行一次采樣中斷。將采樣值存儲到VW4000~VW4198中100個空間。并將VW4000~VW4198的值在觸摸屏顯示出來,用于觀察交流電壓信號波形。現在建立一個指針VD4488,并且把指針指向VW4000地址。然后將AIW0賦給×VD4488,然后VD4488加2進行指針偏移。當VD4488=4198時再重新初始化指針VD4488。 AIW0數據處理 數據存儲處理 ----------------------- 現在問題出來了: VD4488的值竟然為134222128,而不是4000~4198之間的值。無法執行指針偏移以下的指令。這是為什么啊?VD4488存儲空間的值應該是個地址啊,怎么會是134222128? |
|
---|---|---|
|
lanjinghao
師夷洋技以制夷!!!
級別: 略有小成
|
怎么沒人指導啊? 我用填表指令解決這個問題了,還是搞不懂上面的指針問題 |
|
---|---|---|
|
以恒
Blog: http://ye_w.plcjs.cn/
級別: 工控俠客
|
指針是VW4000對應的實際物理地址,而不是VW4000本身 |
|
---|---|---|
本帖最近評分記錄:
|
以恒
Blog: http://ye_w.plcjs.cn/
級別: 工控俠客
|
地址指針是先建立后使用,你弄反了 |
|
---|---|---|
|
lanjinghao
師夷洋技以制夷!!!
級別: 略有小成
|
指針我已經建立了,在初始化時就建立了。沒有貼出來而已。WOVD &VB4000 VD4488. 按理來說VD4488存儲空間的值應該是VB4000的地址了,那VD4488的值是否為4000? |
|
---|---|---|
|
醉湮邃虞
醉湮邃虞話老黑
級別: 略有小成
|
感覺你有概念性的錯誤。網絡2是中斷程序吧? 首先VD4488中如果是PLC的地址,那個數值是沒有錯誤的,在PLC表示的絕對地址的表述是那樣的。所以網絡2中的比較指令是錯誤,比較指令錯誤的。如果需要,你比須這樣試驗一下: MWD &VB4000 VD0 mwd &vb4198 vd4 運行后觀察 VD0和VD4的值。不同類型的PLC可能數值也不相同, 我用的224XP,這分別是:134221728 和 134221926 你的指針賦值也有問題,建議你在VD4448中,放置偏移量。 然后這樣 賦值指針: MOVD &VB4000 ,AC1 ADD AC1,VD4488 保存數據及修正指針 MOVE 數據 *AC1 INC VD4488 INC VD4488 IF VD4488>100 than vd4488=0 中斷返回 你的程序中,找不到指針移動的語句。或許你在中斷以外移動了。(這不可能) 或許你認為那句是移動了,但是按照你程序的思想,你使用了>號,故移動指針指令是不執行的(實際因為概念性錯誤是永遠執行的,指針數據因此在大約4秒后,遭到破壞)、而而指針初始化操作的地址,VD4488也寫成了,VD488,所以,你的中斷程序沒有對指針進行任何操作。 這樣程序很清晰,AC0中是數據,AC1是地址指針。VD4488中是偏移量 這樣做還有個好處,特別是指針操作,使用累加器比使用內存來的快的多。畢竟你的程序使用了1毫秒中斷,需要很高的處理速度,有可能會發上上個中斷還沒處理完,另個中斷已經到來了,會發生中斷隊列溢出,、而而造成系統崩潰或采集數據失真。PLC的掃描周期通常在7毫秒左右,視程序大小,大的會長些,小的會短些。 你中斷程序中竟然還要調用子程序,你應該把數據準備好,或者直接讀取原始數據,分析與處理放在中斷以外。 其實你完全沒有必要使用1毫秒中斷,觸摸屏的顯示與PLC中的數據通常不同步,長的能相差2秒以上呢。如果把中斷調整到10或50毫秒,調試起來會很輕松。也沒必要追求指令執行時間。 [ 此帖被醉湮邃虞在2009-07-17 13:04重新編輯 ] |
|
---|---|---|
本帖最近評分記錄:
|
lanjinghao
師夷洋技以制夷!!!
級別: 略有小成
|
呵呵,謝謝樓上的指導。上午我用指針加計數器勉強解決這個問題,你提出的方案更好一些。我已經把指針處理的程序移到中斷之外了,中斷僅僅做數據采樣,而且我發現調用庫里頭的數據處理子程序算出來的數據有問題,可能和1ms的中斷時間太短有關。后來改為自己計算處理,勉強能得出合理的數據。這個程序主要是想顯示電壓波形,沒辦法50HZ工頻只能用1ms的中斷來采樣了。 現在還有個問題是,觸摸屏不能顯示負整型數值,也就是說不能顯示負值,把正負標志位當成1來顯示了,有什么辦法來解決這個問題啊?改為實數也有這個問題。 |
|
---|---|---|
|
lanjinghao
師夷洋技以制夷!!!
級別: 略有小成
|
ac0是不是全局變量?從程序中發現好像是局部變量啊 |
|
---|---|---|
|