qiyun0528
級(jí)別: *
精華主題: * 篇
發(fā)帖數(shù)量: * 個(gè)
工控威望: * 點(diǎn)
下載積分: * 分
在線時(shí)間: (小時(shí))
注冊(cè)時(shí)間: *
最后登錄: *
查看qiyun0528的 主題 / 回貼
樓主  發(fā)表于: 2011-11-25 15:32
圖片:
最近我在學(xué)習(xí)300的編程,還是遇到了些問(wèn)題,希望大家的幫助,下面的這個(gè)截圖,希望知道的回答下,在次很感謝大家了?

為什么我接通I0。2的時(shí)候,然后再接通I0。0  Q0。0為什么沒有輸出呢?
cvlsam
富士低壓,POD(觸摸屏),PLC專賣
級(jí)別: VIP會(huì)員

精華主題: 3 篇
發(fā)帖數(shù)量: 6766 個(gè)
工控威望: 38367 點(diǎn)
下載積分: 2459 分
在線時(shí)間: 9495(小時(shí))
注冊(cè)時(shí)間: 2006-09-13
最后登錄: 2024-11-01
查看cvlsam的 主題 / 回貼
1樓  發(fā)表于: 2011-11-25 16:09
因?yàn)椋篗D4由MB4,MB5,MB6,MB7組成,其中MB6,MB7是他的低字
            MD6由MB6,MB7,MB8,MB9組成,其中MB6,MB7是他的高字。

你給MD4賦值為6,其寫入最低字中,也就是MB7中的值為6,其16進(jìn)制代碼為:16#0000 0006
由于MD4,與MD6存在交叉地址空間,因此此時(shí)的MD6的16進(jìn)制代碼為:16#0006 0000
接下來(lái),你給MD6賦值4,因此4寫入低字空間,MD6的16進(jìn)制代碼為 16#0000 0004,看見了沒有,這個(gè)操作將MD4的低字MB6,MB7同時(shí)清零了。

因此,此時(shí)MD4的值為0,而MD6的值為4.

又由于你使用CMP >=R 指令,而MD4的值為0,因此其浮點(diǎn)數(shù)也為0,而MD6的值為4,其浮點(diǎn)數(shù)必定不為0,16進(jìn)制4的浮點(diǎn)數(shù)應(yīng)該為:5.60519e-045)因此,MD6的值始終大于MD4的值,能流不導(dǎo)通。

在此段程序中,樓主做了兩個(gè)初學(xué)者極大的錯(cuò)誤:
1、使用地址重疊,一般不是特殊需求應(yīng)避免使用重疊地址,這可能導(dǎo)致正常數(shù)據(jù)被意外修改。
2、使用了浮點(diǎn)數(shù)比較,因?yàn)楦↑c(diǎn)數(shù)是近似值,因此使用浮點(diǎn)數(shù)比較可能導(dǎo)致一些意外情況。

Good Luck~