6ES7314-1AG14-0AB0詳細說明
6ES7314-1AG14-0AB0詳細說明
詳解西門子間接尋址<4>
L [MD100]
LAR1
與
L MD100
LAR1
有什么區別?
當將MD100以這種 [MD100] 形式表示時,你既要在對MD100賦值時考慮到所賦的值是否符合存儲器間接尋址雙字指針的規范,又要在使用這個尋址格式作為語句一部分時,是否符合語法的規范。
在你給出第一個例程的第一句:L [MD100]上,我們看出它犯了后一個錯誤。
存儲器間接尋址指針,是作為的存儲區域的確切數值單元來運用的。也就是說,指針不包含區域標識,它只是指明了一個數值。因此,要在 [MD100]前加上區域標識如: M、DB、I、Q、L等,還要加上存儲區尺寸大小如:X、B、W、D等。在加存儲區域和大小標識時,要考慮累加器加載指令L不能對位地址操作,因此,只能非位的地址。
為了對比下面的寄存器尋址方式,我們這里,修改為:L MD[MD100]。并假定MD100=8Hex,同時我們也假定MD1=85000018Hex。
當把MD100這個雙字作為一個雙字指針運用時,其存儲值的0-18bit將會按照雙字指針的結構Byte.bit來重新“翻譯",“翻譯"的結果才是指針指向的地址,因而MD100中的8Hex=1000B=1.0,所以下面的語句:
L MD[MD100]
LAR1
經過“翻譯"就是:
L MD1
LAR1
前面我們已經假定了MD1=85000018,同樣道理,MD1作為指針使用時,對0-18bit應該經過Byte.bit結構的“翻譯",由于是傳送給AR地址寄存器,還要對24-31bit進行區域尋址“翻譯"。這樣,我們得出LAR1中最終的值=DIX3.0。就是說,我們在地址寄存器AR1中存儲了一個指針,它指向DIX3.0。
-----------------------------
L MD100
LAR1
這段語句,是直接把MD100的值傳送給AR,當然也要經過“翻譯",結果AR1=1.0。就是說,我們在地址寄存器AR1中存儲了一個指針,它指向1.0,這是由MD100直接賦值的。
似乎,兩段語句,只是賦值給AR1的結果不同而已,其實不然。我們事先假定的值是考慮到對比的關系,特意的。如果MD100=CHex的呢?
對于前一段,由于CHex=1100,其0-3bit為非0,程序將立即出錯,無法執行。(因為沒有MD1.4這種地址!!)
后一段AR1的值經過翻譯以后,等于1.4,程序能正常執行
因為實數的數值范圍遠大于32位整數,所以有的實數不能成功地轉換為32位整數。如果被轉換的實數格式非法或超出了32位整數的表示范圍,則在累加器1中得不到有效結果,而且狀態字中的OV和OS被置1。
上面的指令都是將累加器1中的實數化整為32位整數,因化整的規則不同,所以在累加器1中得到的結果也不一致,如下表
LOGO! 0BA7 作為LOGO! 0BA6的補充 ,為客戶提供了更多樣的選擇,其新特點如下:
•LOGO! 0BA7 基本模塊集成以太網接口,輕松實現LOGO! 0BA7 基本模塊之間,LOGO! 0BA7 基本模塊與SIMATIC S7 控制器,西門子人機界面產品之間的以太網通訊;
•程序存儲區最多支持400個功能塊,是LOGO! 0BA6的2倍;
•數據歸檔功能,存儲自定義過程數據到LOGO! 內部存儲區或4GB 以下的標準SD存儲卡;
•用戶自定義函數,增加了功能的移植性,有利于優化程序結構;
•支持容量在4GB以下的標準SD存儲卡和SIMATIC MMC卡;
•實時時鐘掉電保持時間延長到480小時,是LOGO! 0BA6的6倍;
•8位移位寄存器增加到4個,滿足更加復雜的應用要求;
•診斷功能,可以通過軟件或集成面板查看故障信息。
同時,LOGO! 輕松軟件發布最新版本V7.0,新增如下特性:
•以太網通訊編程;
•新增5個特殊功能塊:天文時鐘,秒表,最大/最小值,平均值,模擬量濾波器;
•實時傳輸I/O狀態;
•離線模擬LOGO! 0BA7 基本模塊主站模式之間的以太網通訊;
•支持bbbbbb7操作系統,MAC 操作系統, LINUX操作系統。
執行的 指令 | 累加器l內容 | 說 明 | |
化整前 | 化整結果 | ||
RND | +99.5 | +100 | 將實數化整為的整數 |
RND+ | +99.5 | +100 | 將實數化整為大于或等于該實數的最小整數 |
RND- | +99.5 | +99 | 將實數化整為小于或等于該實數的最大整數 |
TRUNC | +99.5 | +99 | 只取實數的整數部分(截尾取整) |