cvlsam
富士低壓,POD(觸摸屏),PLC專賣
級別: VIP會員
![]() ![]() ![]() ![]() |
很明顯,地址越界…… |
---|---|
|
qiaoshougang
級別: 略有小成
![]() |
謝謝回答,就是這個錯誤,可是怎么弄才能解決這個問題呢?我弄了好長時間了,望賜教,謝謝! |
|
---|---|---|
|
cvlsam
富士低壓,POD(觸摸屏),PLC專賣
級別: VIP會員
![]() ![]() ![]() ![]() |
解決你的程序,那是你的編程錯誤,增加對數據塊長度的檢測,然后通過比較指令將你的尋址范圍控制在可控范圍內…… Regards |
---|---|
|
qiaoshougang
級別: 略有小成
![]() |
首先謝謝指教! 1.數據塊長度檢測: ![]() 2.尋址范圍絕對超不過255 一個字節(jié) 是否是因為 L MD 116 SLD 3 //左移3位,形成指針格式,用于間接尋址。 T MD 120 OPN DB 1 L DBD [MD 120] T MD 124 中的MD 120 本身是一個32位的數據?而CPU誤以為越界了呢?請指教.......謝謝! |
|
---|---|---|
|
cvlsam
富士低壓,POD(觸摸屏),PLC專賣
級別: VIP會員
![]() ![]() ![]() ![]() |
唉~~~~~ 數據塊長度檢測并不是通過頁面設定,而是通過編程來決定的。 通過裝入DBLG來得到數據塊的長度,因為長度的反饋值為字節(jié),因此,如果你的數據塊的數據為4個字節(jié)的Real類型的話,你就要除以4,那就是一個塊中的最大尋址,然后用比較去控制你的尋址指針。 正如你表示的,不超過255,可是,你顯示的數據塊中數據才51條,你尋址尋址52就越界,Ok? 對于這個問題已經討論的足夠深度了,你或許的編程水平還沒有達到這個水平,你需要花足夠的時間參閱StL手冊。 Regards |
---|---|
|
qiaoshougang
級別: 略有小成
![]() |
嘿嘿,首先我承認我的水平一般(剛開始學習西門子PLC),的確小白一個, ![]() 可是:我確定MD116中的數據不會超過204的 即使MD116中的數據是4,還是不行,但是讀取MD124中的數據是正確的,如圖: ![]() |
|
---|---|---|
|