欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 9012|回復: 0
打印 上一主題 下一主題
收起左側

S7-200當整數相除遇到余數

[復制鏈接]
跳轉到指定樓層
樓主
ID:26188 發表于 2015-5-28 00:51 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
大家注意到沒有,為什么S7-200編程軟件里面除了有DIV_I指令,還要有DIV指令,它們不都是實現整數相除的功能嗎?”。這樣說是有道理的,那它們之間的差異在哪兒呢?先來看看兩個指令的功能說明:


1. DIV指令是將兩個16位的整數相除,得出一個32位的結果,其中包括一個16位的余數(高位)和一個16位的商(低位)。

2. DIV_I指令是將兩個16位的整數相除,產生一個16位的商,不保留余數。

看來區別是在結果上面,一起來做個實驗看看吧:


    其中,VW0是被除數,VW2是除數,VD4的低十六位(即VW6 = 16#000D)是整數相除得到的商(VW6十進制值是13);高十六位(即VW4 = 16#00DC)是整數相除得到的余數(VW4十進制值是220)。



其中,VW0是被除數,VW2是除數,VW10是整數相除得到的商,余數沒有保留。由此,這兩個功能塊的區別就顯而易見了。

    那我們再反過來看看“S7-300中哪個指令塊可以實現S7-200中DIV指令塊的功能嗎?”。經過一番查找,在STEP7中整數運算的指令塊,也沒有見到與DIV指令完全相同功能的指令塊,但卻發現了MOD_DI功能塊是可以單獨取余數的。那么,我們接著實驗:

    其中,MD0為被除數,MD4為除數,MD8為雙整數相除得到的余數 ,不保留商。


其中,MD0為被除數,MD4為除數,MD12為雙整數相除得到的商,不保留余數。
看來我們寫程序想要實現一個指令塊既得商,又得余數的功能不得不分步實施啦。雖然說在STEP7的編程中不存在DIV同樣功能的指令塊,但它的實現更為靈活——將余數與商分開,根據工藝的需要單獨取之。另外,在S7-200中實現整數取余有一定的局限性,就是DIV指令塊只能實現16位的整數相除取余,而STEP 7中的MOD_DI則可以使用32位的雙整數直接取余。

   通過實驗是不是更清楚明了呢?相信您已經牢牢記住了。













分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表