qiaoshougang
級別: 略有小成
![]() |
如題,已知 MW118 中的內容就是數據塊DB1中的地址。現在要將這個地址中的數據取出放到MD120中,該怎樣操作?【數據塊DB1中的數據都是浮點型的】 OPN DB 1 L DBD[MW118 T MD 120 以上編程不能通過,但是用 OPN DB 1 L DBD[MD118] T MD 120 可以通過,但是仿真時CPU是STOP狀態,本人剛接觸S7-300PLC,小白一個,望各位大佬賜教,謝謝! |
|
---|---|---|
|
cvlsam
富士低壓,POD(觸摸屏),PLC專賣
級別: VIP會員
![]() ![]() ![]() ![]() |
MD118與MD120發生了地址重疊 MD118由MW118,MW120組成,MD120由MW120與MW122組成。 造成CPU進入STOP狀態可能是地址重疊后,導致間接尋址越界,你可以診斷模塊看看是不是OB121塊沒有導致進入STOP狀態的。 例:訪問DB1.DBD100中的數據 L L#100 SLD 3 //左移3位,形成指針格式,用于間接尋址。 T MD116 OPN DB1 L DBD[MD116] T MD120 Good Luck~ |
---|---|
本帖最近評分記錄: |
cvlsam
富士低壓,POD(觸摸屏),PLC專賣
級別: VIP會員
![]() ![]() ![]() ![]() |
MD116中的數據必須是X.X格式,也就是左移3位或者乘以8后的數據,只能是這樣~ ![]() |
---|---|
|
cvlsam
富士低壓,POD(觸摸屏),PLC專賣
級別: VIP會員
![]() ![]() ![]() ![]() |
如果僅僅是為了防止PLC進入停機狀態,那么一個空的OB121足以…… |
---|---|
|
cvlsam
富士低壓,POD(觸摸屏),PLC專賣
級別: VIP會員
![]() ![]() ![]() ![]() |
仍然請進行模塊診斷并貼出診斷信息。 Good Luck~ |
---|---|
|
cvlsam
富士低壓,POD(觸摸屏),PLC專賣
級別: VIP會員
![]() ![]() ![]() ![]() |
很明顯,地址越界…… |
---|---|
|
cvlsam
富士低壓,POD(觸摸屏),PLC專賣
級別: VIP會員
![]() ![]() ![]() ![]() |
解決你的程序,那是你的編程錯誤,增加對數據塊長度的檢測,然后通過比較指令將你的尋址范圍控制在可控范圍內…… Regards |
---|---|
|
cvlsam
富士低壓,POD(觸摸屏),PLC專賣
級別: VIP會員
![]() ![]() ![]() ![]() |
唉~~~~~ 數據塊長度檢測并不是通過頁面設定,而是通過編程來決定的。 通過裝入DBLG來得到數據塊的長度,因為長度的反饋值為字節,因此,如果你的數據塊的數據為4個字節的Real類型的話,你就要除以4,那就是一個塊中的最大尋址,然后用比較去控制你的尋址指針。 正如你表示的,不超過255,可是,你顯示的數據塊中數據才51條,你尋址尋址52就越界,Ok? 對于這個問題已經討論的足夠深度了,你或許的編程水平還沒有達到這個水平,你需要花足夠的時間參閱StL手冊。 Regards |
---|---|
|