淄博西門子代理商
4.1.1 執(zhí)行用戶程序
在掃描周期的執(zhí)行階段,CPU
執(zhí)行主程序,,從*條指令開始并繼續(xù)執(zhí)行到后一個指令,。
在主程序或中斷例程的執(zhí)行過程中,使用立即 I/O 指令可立即訪問輸入和輸出,。
如果在程序中使用子例程,,則子例程作為程序的一部分進行存儲。主程序,、另一個子例程或中斷例程調(diào)用子例程時,,執(zhí)行子例程。
從主程序調(diào)用時子例程的嵌套深度是 8 級,,從中斷例程調(diào)用時嵌套深度是 4 級,。
如果在程序中使用中斷,則與中斷事件相關的中斷例程將作為程序的一部分進行存儲,。 在正常掃描周期中并不一定執(zhí)行中斷例程,,而是當發(fā)生中斷事件時才執(zhí)行中斷例程(可以是掃描周期內(nèi)的任何時間)。
為 14 個實體中的每一個保留局部存儲器:
主程序、八個子例程嵌套級別(從主程序啟動時),、一個中斷例程和四個子例程嵌套級別(從中斷程序啟動時),。
局部存儲器有一個局部范圍,局部存儲器僅在相關程序?qū)嶓w內(nèi)可用,,其它程序?qū)嶓w無法訪問,。 有關局部存儲器的詳細信息,請參見本章中的局部存儲區(qū): L,。
下圖描述了一個典型的掃描流程,,該流程包括局部存儲器使用和兩個中斷事件(一個事件發(fā)生在程序執(zhí)行階段,另一個事件發(fā)生在掃描周期的通信階段),。
子例程由下一個較高級別調(diào)用,,并在調(diào)用時執(zhí)行。
沒有調(diào)用中斷例程,;發(fā)生相關中斷事件時才調(diào)用中斷例程,。

圖 4-1 典型掃描流程
4.1 訪問數(shù)據(jù)
CPU 將信息存儲在不同存儲單元,每個位置均具有的地址,??梢燥@式標識要訪問的存儲器地址。 這樣程序?qū)⒅苯釉L問該信息,。
要訪問存儲區(qū)中的位,,必須地址,該地址包括存儲器標識符,、字節(jié)地址和位號(也稱為“字節(jié).位"尋址),。
表格 4- 2 位尋址
位地址元素 | 說明 |

| A | 存儲區(qū)標識符 |
B | 字節(jié)地址: 字節(jié) 3 |
C | 分隔符(“字節(jié).位") |
D | 位在字節(jié)中的位置(位 4,共 8 位,,編號 7 到 0 的位) |
E | 存儲區(qū)的字節(jié) |
F | 選定字節(jié)的位 |
在此示例中,,存儲區(qū)和字節(jié)地址(“M3")代表 M 存儲器的第 3個字節(jié),用句點(“.")與位地址(位 4)分開,。
使用“字節(jié)地址"格式可按字節(jié),、字或雙字訪問多數(shù)存儲區(qū)(V、I,、Q,、M、S,、L 和SM)中的數(shù)據(jù),。
要按字節(jié)、字或雙字訪問存儲器中的數(shù)據(jù),,必須采用類似于位地址的方法地址,。這包括區(qū)域標識符,、數(shù)據(jù)大小標識和字節(jié)、字或雙字值的起始字節(jié)地址,,如下圖所示,。

下表給出了不同數(shù)據(jù)長度可表示的整數(shù)值范圍
淄博西門子代理商
表格 4- 3 不同數(shù)據(jù)長度表示的十進制和十六進制數(shù)范圍
表示方式 | 字節(jié) (B) | 字 (W) | 雙字 (D) |
無符號整數(shù) | 0 到 255 16#00 到 16#FF | 0 到 65,535 16#0000 到 16#FFFF | 0 到 4,294,967,295 16#00000000 到 16#FFFFFFFF |
有符號整數(shù) | -128 到 +127 | -32,768 到 +32,767 | -2,147,483,648 到 +2,147,483,647 |
| 16#80 到 16#7F | 16#8000 到 16#7FFF | 16#8000 0000 到 16#7FFF FFFF |
實數(shù)(IEEE | 不適用 | 不適用 | +1.175495E-38 到 |
32 |
|
| +3.402823E+38(正數(shù)) |
位浮點數(shù)) |
|
| -1.175495E-38 到 -3.402823E+38(負數(shù)) |
使用包括區(qū)域標識符和設備編號的地址格式來訪問其它 CPU 存儲區(qū)(如 T、C,、HC和累加器)中的數(shù)據(jù),。
4.1.1 訪問存儲區(qū)
I(過程映像輸入)
CPU
在每次掃描周期開始時對物理輸入點采樣,然后將采樣值寫入過程映像輸入寄存器,。用戶可以按位,、字節(jié)、字或雙字來訪問過程映像輸入寄存器:
表格 4- 4 I 存儲器的尋址
位: | I[字節(jié)地址].[位地址] | I0.1 |
字節(jié),、字或雙字: | I[大小][起始字節(jié)地址] | IB4,、 IW7,、 ID20 |
Q(過程映像輸出)
掃描周期結(jié)束時,,CPU
將存儲在過程映像輸出寄存器的值復制到物理輸出點。用戶可以按位,、字節(jié),、字或雙字來訪問過程映像輸出寄存器:
表格 4- 5 Q 存儲器的尋址
位: | Q[字節(jié)地址].[位地址] | Q1.1 |
字節(jié)、字或雙字: | Q[大小][起始字節(jié)地址] | QB5,、QW 14,、QD28 |
V(變量存儲器)
可以使用 V 存儲器存儲程序執(zhí)行程序中控制邏輯操作的中間結(jié)果。 也可以使用 V
存儲器存儲與過程或任務相關的其它數(shù)據(jù),。 可以按位,、字節(jié)、字或雙字訪問 V 存儲器:
表格 4- 6 V 存儲器的尋址
位: | V[字節(jié)地址].[位地址] | V10.2 |
字節(jié),、字或雙字: | V[大小][起始字節(jié)地址] | VB16,、 VW100、 VD2136 |
M(標志存儲器)
可以將標志存儲區(qū)(M
存儲器)用作內(nèi)部控制繼電器來存儲操作的中間狀態(tài)或其它控制信息,??梢园次弧⒆止?jié),、字或雙字訪問標志存儲區(qū):
表格 4- 7 M 存儲器的尋址
位: | M[字節(jié)地址].[位地址] | M26.7 |
字節(jié),、字或雙字: | M[大小][起始字節(jié)地址] | MB0、MW 11,、MD20 |
T(定時器存儲器)
CPU 提供的定時器能夠以 1 ms,、10 ms 或 100 ms
的精度(時基增量)累計時間。定時器有兩個變量:
當前值: 該 16位有符號整數(shù)可存儲定時器計數(shù)的時間量,。
定時器位: 比較當前值和預設值后,,可置位或清除該位。預設值是定時器指令的一部分。
可以使用定時器地址(T + 定時器編號)訪問這兩個變量,。訪問定時器位還是當前值取決于所使用的指令:
帶位操作數(shù)的指令會訪問定時器位,,而帶字操作數(shù)的指令則訪問當前值。
如下圖所示,,“常開觸點"指令訪問的是定時器位,,而“移動字"指令訪問的是定時器的當前值。

表格 4- 8 T 存儲器的尋址
C(計數(shù)器存儲器)
CPU 提供三種類型的計數(shù)器,,對計數(shù)器輸入上的每一個由低到高的跳變事件進行計數(shù): 一種類型僅向上計數(shù),,一種僅向下計數(shù),還有一種可向上和向下計數(shù),。
有兩個與計數(shù)器相關的變量:
當前值: 該 16位有符號整數(shù)用于存儲累加的計數(shù)值,。
計數(shù)器位: 比較當前值和預設值后,可置位或清除該位,。預設值是計數(shù)器指令的一部分,。
可以使用計數(shù)器地址(C + 計數(shù)器編號)訪問這兩個變量。訪問計數(shù)器位還是當前值取決于所使用的指令:
帶位操作數(shù)的指令會訪問計數(shù)器位,,而帶字操作數(shù)的指令則訪問當前值,。
如下圖所示,“常開觸點"指令訪問的是計數(shù)器位,,而“移動字"指令訪問的是計數(shù)器的當前值,。
表格 4- 9 C 存儲器的尋址

圖 4-3 訪問計數(shù)器位或計數(shù)器的當前值
HC(高速計數(shù)器)
高速計數(shù)器獨立于 CPU 的掃描周期對高速事件進行計數(shù)。 高速計數(shù)器有一個有符號 32 位整數(shù)計數(shù)值(或當前值),。 要訪問高速計數(shù)器的計數(shù)值,,您需要利用存儲器類型 (HC)和計數(shù)器編號高速計數(shù)器的地址。
高速計數(shù)器的當前值是只讀值,,僅可作為雙字(32 位)來尋址,。
表格 4- 10 HC 存儲器的尋址
高速計數(shù)器 | HC[高速計數(shù)器編號] | HC1 |
AC(累加器)
累加器是可以像存儲器一樣使用的讀/寫器件。
例如,,可以使用累加器向子例程傳遞參數(shù)或從子例程返回參數(shù),,并可存儲計算中使用的中間值。 CPU 提供了四個 32 位累加器(AC0,、AC1,、AC2 和 AC3)。
可以按位,、字節(jié),、字或雙字訪問累加器中的數(shù)據(jù)。
被訪問的數(shù)據(jù)大小取決于訪問累加器時所使用的指令,。
如下圖所示,,當以字節(jié)或字的形式訪問累加器時,,使用的是數(shù)值的低 8 位或低 16 位。
當以雙字的形式訪問累加器時,,使用全部 32 位,。
表格 4- 11 AC 存儲器的尋址

圖 4-4 訪問累加器
SM(特殊存儲器)
SM 位提供了在 CPU 和用戶程序之間傳遞信息的一種方法??梢允褂眠@些位來選擇和控制 CPU 的某些特殊功能,,例如:
在*個掃描周期接通的位、以固定速率切換的位或顯示數(shù)學或運算指令狀態(tài)的位,??梢园次弧⒆止?jié),、字或雙字訪問 SM 位:
表格 4- 12 SM 存儲器的尋址