373932332
級(jí)別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 25 個(gè)
工控威望: 151 點(diǎn)
下載積分: 666 分
在線時(shí)間: 10(小時(shí))
注冊(cè)時(shí)間: 2016-07-17
最后登錄: 2023-03-02
查看373932332的 主題 / 回貼
樓主  發(fā)表于: 2018-01-12 15:23
圖片:
現(xiàn)在用的fx5uPLC,把讀卡器里的數(shù)據(jù)讀到D寄存器里,但是數(shù)據(jù)太大,一個(gè)放不了,怎么存放
讀取的時(shí)候是連著用的四個(gè)寄存器ADPRW指令,數(shù)據(jù)存放到了D100,d101,d102,d103四個(gè)里面,
是16位的,但是數(shù)值超過D寄存器的最大值,不知道怎么存儲(chǔ)才能不帶符號(hào),
后面連接的組態(tài)王讀取數(shù)據(jù),然后存儲(chǔ)到數(shù)據(jù)庫里,但是組態(tài)王里不知道怎么識(shí)別符號(hào),純數(shù)字沒問題,所以就想把PLC里的這個(gè)數(shù)值變成不帶符號(hào)的,
然后就想到,這個(gè)符號(hào)是因?yàn)閿?shù)值太大溢出所以出現(xiàn)了-號(hào),所以就想D數(shù)據(jù)寄存器足夠大就行了,然后DMOV指令,但是這個(gè)指令是把d10,d11兩個(gè)寄存器送到兩個(gè)寄存器,有沒有把一個(gè)D寄存器送到兩個(gè)寄存器里面的指令,跪求!!大神
梯形圖如下
恒頭
fcq417
14年plc工程實(shí)踐教學(xué),QQ(微信):2252241236
級(jí)別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 302 個(gè)
工控威望: 430 點(diǎn)
下載積分: 1259 分
在線時(shí)間: 50(小時(shí))
注冊(cè)時(shí)間: 2008-04-30
最后登錄: 2024-09-14
查看fcq417的 主題 / 回貼
1樓  發(fā)表于: 2018-01-12 17:18
"有沒有把一個(gè)D寄存器送到兩個(gè)寄存器里面的指令",-----高低字節(jié)單獨(dú)處理,然后處理掉不需要的部分,再傳送即可.

plc編程學(xué)習(xí)可以訪問書研自動(dòng)化網(wǎng)站 www.shuyanzdh.com
plc學(xué)習(xí)咨詢QQ:2252241236
plc編程及教學(xué):www.shuyanzdh.com
QQ(VX):2252241236
373932332
級(jí)別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 25 個(gè)
工控威望: 151 點(diǎn)
下載積分: 666 分
在線時(shí)間: 10(小時(shí))
注冊(cè)時(shí)間: 2016-07-17
最后登錄: 2023-03-02
查看373932332的 主題 / 回貼
2樓  發(fā)表于: 2018-01-14 10:42
圖片:
引用
引用第1樓fcq417于2018-01-12 17:18發(fā)表的  :
"有沒有把一個(gè)D寄存器送到兩個(gè)寄存器里面的指令",-----高低字節(jié)單獨(dú)處理,然后處理掉不需要的部分,再傳送即可.

plc編程學(xué)習(xí)可以訪問書研自動(dòng)化網(wǎng)站 www.shuyanzdh.com
plc學(xué)習(xí)咨詢QQ:2252241236

感謝感謝,感謝大神


測試梯形圖如下
恒頭
373932332
級(jí)別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 25 個(gè)
工控威望: 151 點(diǎn)
下載積分: 666 分
在線時(shí)間: 10(小時(shí))
注冊(cè)時(shí)間: 2016-07-17
最后登錄: 2023-03-02
查看373932332的 主題 / 回貼
3樓  發(fā)表于: 2018-01-14 14:04
有符號(hào)16位數(shù),數(shù)值范圍 -32768~32767 整數(shù)。
無符號(hào)16位數(shù),數(shù)值范圍 0~65535 整數(shù)。
32位浮點(diǎn)數(shù),數(shù)值范圍 3.4E-38~3.4E+38 實(shí)數(shù)。

16位二進(jìn)制數(shù)的范圍如下:
0000 0000 0000 0000 ~ 1111 1111 1111 1111
二進(jìn)制數(shù),不是任何人都懂的.
所以,通常都要換算成,小孩都能明白的十進(jìn)制.
就是 0~65535.
------------------
把最高位看做+、-號(hào),其余十五位的范圍,就是0~32767.
0111 1111 1111 1111=32767
那么,16位二進(jìn)制表示的有符號(hào)整數(shù),就是-32768~+32767.
恒頭
373932332
級(jí)別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 25 個(gè)
工控威望: 151 點(diǎn)
下載積分: 666 分
在線時(shí)間: 10(小時(shí))
注冊(cè)時(shí)間: 2016-07-17
最后登錄: 2023-03-02
查看373932332的 主題 / 回貼
4樓  發(fā)表于: 2018-01-14 14:14
1111 1111 1111 1111=65535

FX5U中的指令有  有符號(hào)16位數(shù)    轉(zhuǎn)成  無符號(hào)16位數(shù)    指令int2uint
                                 有符號(hào)32位數(shù)   轉(zhuǎn)成   無符號(hào)32位數(shù)   指令Dint2udint
                                無符號(hào)16位數(shù)    轉(zhuǎn)成   有符號(hào)32位數(shù)   指令uint2int
                               ..........(能想到的都有)

在手冊(cè)IQ-F fx5編程手冊(cè)(指令/通用FUN/FB篇)
3cpu模塊用指令》7基本指令》7.5數(shù)據(jù)轉(zhuǎn)換指令


問題終于解決了,看了網(wǎng)上的許多資料,感謝各位前輩,學(xué)到了很多,開心
恒頭