西門子 S7-300/400 系列 CPU 擁有兩個數據塊寄存器,它們保存著當前打開的數據塊編號: DB 寄存器保存著打開的共享數據塊編號 DI 寄存器保存著打開的背景數據塊編號特別提示:DI 寄存器主要用于 FB 引用背景數據塊,但也常用于程序中同時打開兩個數據塊的操作。如下圖的程序即完成了將 DB1.DBW0(16#2222)傳送到 DB4.DBW0 中的工作。用戶請注意程序中的格式(如 T DIW0),詳細信息請參考 STEP7 編程手冊中的尋址方式部分。


那么上述兩者有何區別呢?從兩圖中的對比可以看出:
| L | DBW0 | //不改變 DB 寄存器的內容 |
| T | DIW0 | //不改變 DI 寄存器的內容 |
| L | DB1.DBW0 | //改變DB 寄存器的內容 |
| T | DB4.DBW0 | //改變DB 寄存器的內容,相當于增加了 OPN DB4 的指令。 |
也就是說,對于數據塊中地址的完整引用,將影響到DB 寄存器的內容。那么對于下面的程序,我們將很容易發現其中的錯誤。
程序原目的:
將 3333 傳送至 DB1.DBW0
將 4444 傳送至 DB1.DBW2

故障分析:
由于程序的 Network5 中使用了對于 DB4.DBW0 的比較指令,此指令改變了 DB 寄存器的內容,因而我們將得到如下的錯誤結果,DB1.DBW2 并沒有得到正確數值,正確數值 4444 被錯誤地送到了DB4.DBW2中:

審核編輯:郭婷
-
寄存器
+關注
關注
31文章
5608瀏覽量
129966 -
cpu
+關注
關注
68文章
11277瀏覽量
224946 -
西門子
+關注
關注
98文章
3310瀏覽量
120369
原文標題:數據塊寄存器使用錯誤
文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應用】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
工業無線數傳模塊實現西門子 S7-300?與 S7-200 SMART 300米 Profinet?無線通訊
西門子S7-1500 PLC和S7-300 PLC Profibus-DP通訊的組態實例
西門子S7-300 PLC借助于MPI以太網通訊處理器實現與MES的雙向通訊
西門子S7-300 PLC通過MPI以太網通訊處理器達成與MES雙向通訊
【教程】Profinet分布式IO(P31系列)與西門子PLC S7-200smart 連接例程
西門子S7-300PLC MPI轉以太網通訊模塊在840DSL數控系統中的應用案例
PLC以太網通訊模塊實現:西門子S7-300與S7-1200、觸摸屏及變頻器通訊案例
西門子S7-300PLC借助于MPI轉以太網模塊同時和S7-1200PLC、觸摸屏以及ModbusRTU協議的變頻器通訊案例
PLC 以太網通訊模塊:助力 S7-300 同時聯動 S7-1200、觸摸屏與 Modbus RTU 變頻器
MPI 轉以太網模塊案例:西門子 S7-300PLC 借此與 S7-1200、觸摸屏及 ModbusRTU 變頻器通訊
西門子PLC(S7-1200/1500/300/400)的數據采集與監控方案
Modbus RTU 轉 Profibus 網關實現V5 - F5 變頻器與西門子 S7-300 PLC數據交互
ProfibusDP轉MODBUSRTU智能網關:施耐德M340主站連接西門子S7-300從站通信方案
西門子S7-300/400系列CPU數據塊寄存器使用錯誤
評論