cctv197910
級別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 29 個(gè)
工控威望: 133 點(diǎn)
下載積分: 405 分
在線時(shí)間: 17(小時(shí))
注冊時(shí)間: 2017-11-06
最后登錄: 2024-10-24
查看cctv197910的 主題 / 回貼
樓主  發(fā)表于: 2019-07-17 14:15
圖片:
圖片:
圖片:
FX3U的PLC,其中寄存器D600被使用多次,會根據(jù)不同導(dǎo)通條件傳送入不同的值,使用一段時(shí)間后其它的D600值不會根據(jù)當(dāng)前輸入值改變而變?yōu)?64094,更換新的寄存器地址后正常,但使用十幾天時(shí)間后又和以前一樣,現(xiàn)在只能每半個(gè)月更換一次地址。求大神們幫忙解惑。
zhangqi_1234
級別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 342 個(gè)
工控威望: 493 點(diǎn)
下載積分: 4015 分
在線時(shí)間: 250(小時(shí))
注冊時(shí)間: 2013-03-22
最后登錄: 2024-11-12
查看zhangqi_1234的 主題 / 回貼
1樓  發(fā)表于: 2019-07-17 21:49
1、兩個(gè)32位字元件的乘積,存四個(gè)地址連續(xù)的16位字元件(64位)。用DMUL指令,表示用D334-D335這2個(gè)16位字元件組成的32位數(shù)(D334存低16位,D335存高16位,其中最高位為符號位,最高位為1表示負(fù)數(shù),負(fù)數(shù)以補(bǔ)碼形式存儲),與K100相乘后的乘積,存D600-D603中,D600存最低16位,D603存最高16位。同樣,最高位為符號位。因此,在使用帶D的乘積指令時(shí),要保證相鄰若干的寄存器,不得受到其它指令的影響。32位寄存器的取值范圍:-2147483648~+2147483647。64位的取值范圍:-9223372036854775808 ~+ 9223372036854775807。2、用M8000這個(gè)觸頭執(zhí)行DMUL指令,表示PLC處于RUN狀態(tài)時(shí),每一個(gè)掃描周期都執(zhí)行乘法指令。也就是說,是循環(huán)不斷地執(zhí)行。這樣會導(dǎo)致運(yùn)算結(jié)果溢出。3、其它諸如:SUB指令,也是在觸頭條件滿足的每一個(gè)掃描周期都執(zhí)行。也可能導(dǎo)致運(yùn)算結(jié)果溢出。
[ 此帖被zhangqi_1234在2019-07-18 01:37重新編輯 ]
本帖最近評分記錄:
  • 下載積分:+1(sdif000)
  • 下載積分:+1(mylover132) 熱心助人!
    zhangqi_1234
    級別: 略有小成
    精華主題: 0
    發(fā)帖數(shù)量: 342 個(gè)
    工控威望: 493 點(diǎn)
    下載積分: 4015 分
    在線時(shí)間: 250(小時(shí))
    注冊時(shí)間: 2013-03-22
    最后登錄: 2024-11-12
    查看zhangqi_1234的 主題 / 回貼
    2樓  發(fā)表于: 2019-07-18 23:45
    補(bǔ)充:問題出現(xiàn)在D375上,[DMOV D374 D600]功能是把D374-D375存儲的32位數(shù)據(jù),賦值給D600-D601。D374存低16位,D375存高16位,D375的最高位是1,因此被認(rèn)為是負(fù)數(shù)。程序中應(yīng)該是有其他指令對D375的值作了改變。