西門子 S7-300/400 系列 CPU 擁有兩個數(shù)據(jù)塊寄存器,它們保存著當(dāng)前打開的數(shù)據(jù)塊編號: DB 寄存器保存著打開的共享數(shù)據(jù)塊編號 DI 寄存器保存著打開的背景數(shù)據(jù)塊編號特別提示:DI 寄存器主要用于 FB 引用背景數(shù)據(jù)塊,但也常用于程序中同時打開兩個數(shù)據(jù)塊的操作。如下圖的程序即完成了將 DB1.DBW0(16#2222)傳送到 DB4.DBW0 中的工作。用戶請注意程序中的格式(如 T DIW0),詳細(xì)信息請參考 STEP7 編程手冊中的尋址方式部分。
那么上述兩者有何區(qū)別呢?從兩圖中的對比可以看出:
L | DBW0 | //不改變 DB 寄存器的內(nèi)容 |
T | DIW0 | //不改變 DI 寄存器的內(nèi)容 |
L | DB1.DBW0 | //改變DB 寄存器的內(nèi)容 |
T | DB4.DBW0 | //改變DB 寄存器的內(nèi)容,相當(dāng)于增加了 OPN DB4 的指令。 |
也就是說,對于數(shù)據(jù)塊中地址的完整引用,將影響到DB 寄存器的內(nèi)容。那么對于下面的程序,我們將很容易發(fā)現(xiàn)其中的錯誤。
程序原目的:
將 3333 傳送至 DB1.DBW0
將 4444 傳送至 DB1.DBW2
故障分析:
由于程序的 Network5 中使用了對于 DB4.DBW0 的比較指令,此指令改變了 DB 寄存器的內(nèi)容,因而我們將得到如下的錯誤結(jié)果,DB1.DBW2 并沒有得到正確數(shù)值,正確數(shù)值 4444 被錯誤地送到了DB4.DBW2中:
審核編輯:郭婷
-
寄存器
+關(guān)注
關(guān)注
31文章
5433瀏覽量
124395 -
cpu
+關(guān)注
關(guān)注
68文章
11075瀏覽量
216976 -
西門子
+關(guān)注
關(guān)注
98文章
3172瀏覽量
118224
原文標(biāo)題:數(shù)據(jù)塊寄存器使用錯誤
文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應(yīng)用】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
西門子PLC免點表數(shù)據(jù)采集方案

西門子PLC(S7-1200/1500/300/400)的數(shù)據(jù)采集與監(jiān)控方案
Modbus RTU 轉(zhuǎn) Profibus 網(wǎng)關(guān)實現(xiàn)V5 - F5 變頻器與西門子 S7-300 PLC數(shù)據(jù)交互

MODBUS RTU轉(zhuǎn)ProfibusDP網(wǎng)關(guān):西門子S7-300主站與歐姆龍CP1H通信整合方案

ProfibusDP轉(zhuǎn)MODBUSRTU智能網(wǎng)關(guān):施耐德M340主站連接西門子S7-300從站通信方案

西門子S7 PLC通過深控技術(shù)無點表工業(yè)網(wǎng)關(guān)實現(xiàn)數(shù)據(jù)采集與智能決策方案
OPC UA數(shù)采網(wǎng)關(guān)實現(xiàn)西門子PLC數(shù)據(jù)采集到MES平臺

西門子S7-300 PLC的詳細(xì)介紹

Profinet 轉(zhuǎn) EtherNet/IP 網(wǎng)關(guān)怎樣化解西門子 S7 - 1500 PLC 與 AB PLC 之間的通訊難題

如何選擇西門子plc數(shù)據(jù)采集網(wǎng)關(guān)?注意事項
西門子300PLC ProfibusDP轉(zhuǎn)MODBUS TCP與巴魯夫傳感器數(shù)據(jù)通訊解決方案

評論