fgh1991
級別: 正式會員
精華主題: 0
發(fā)帖數(shù)量: 13 個
工控威望: 90 點
下載積分: 473 分
在線時間: 7(小時)
注冊時間: 2018-07-23
最后登錄: 2020-01-09
查看fgh1991的 主題 / 回貼
樓主  發(fā)表于: 2018-07-23 21:37
我用FX3G PLC 把8348和8349用MOV傳送出來,8349正常,8348是個很大的值。再用MOV傳值時,8349減速設(shè)置的值無效,但會還會影響8348的值不知道怎么回事,??有沒有大神知道的
john42tw
級別: 網(wǎng)絡(luò)英雄
精華主題: 0
發(fā)帖數(shù)量: 1278 個
工控威望: 6109 點
下載積分: 52272 分
在線時間: 1123(小時)
注冊時間: 2012-04-24
最后登錄: 2024-12-19
查看john42tw的 主題 / 回貼
1樓  發(fā)表于: 2018-07-24 08:10
應(yīng)該是受到其他設(shè)定影響

例如:
MOV  寫成 DMOV

將設(shè)定寫到最後一行看看
john42tw
級別: 網(wǎng)絡(luò)英雄
精華主題: 0
發(fā)帖數(shù)量: 1278 個
工控威望: 6109 點
下載積分: 52272 分
在線時間: 1123(小時)
注冊時間: 2012-04-24
最后登錄: 2024-12-19
查看john42tw的 主題 / 回貼
2樓  發(fā)表于: 2018-07-25 08:20
引用
引用第5樓fgh1991于2018-07-24 21:56發(fā)表的  :


確實和十六位 三十二位有關(guān),把顯示值改為16位正常了。再請教下,16位的數(shù)值用32位表達(dá)會有異常嗎?為什么減速時間沒問題呢?

沒看到設(shè)定,不知道。
但推測:
1.D3847 被設(shè)定到,影響D3848
2.D3848被設(shè)定32位,第16位符號被當(dāng)成數(shù)字。
........................


以下資料請參考


資料寄存器(D)
a.為可對數(shù)值資料(-32768 ~ 32767 或 0000H ~ FFFFH) 進(jìn)行存儲的記憶體。

b.資料寄存器的位元結(jié)構(gòu)
1)1點數(shù)據(jù)寄存器由16 位組成,以16 位元為單位對資料進(jìn)行讀寫操作。資料寄存器資料是帶符號使用的。在使用十六進(jìn)位的情況下,可對 0000H ~ FFFFH 進(jìn)行存儲。但是,由於最高位元為符號位元,因此只能指定-32768~ 32767 範(fàn)圍內(nèi)的十進(jìn)位數(shù)字。
2)在32 位元指令中使用資料寄存器時,以連續(xù)2 點的資料寄存器(Dn 和Dn+1) 作為處理對象。低16 位元對應(yīng)於順控程式中指定的資料寄存器編號(Dn),高16 位元對應(yīng)於順控程式中指定的資料寄存器編號+1。
在DMOV 指令中指定D12 的情況下,D12 為低16 位,D13 為高16 位。在2 點的資料寄存器中可以存儲-2147483648 ~ 2147483647 或0H ~ FFFFFFFFH 範(fàn)圍內(nèi)的資料。(32 位元結(jié)構(gòu)中的最高位元為符號位元。)



MOV : 16位元傳送
[MOV K5 D0]    將 5     (0000 0000 0000 0101) 傳送到 D0   => D0 = 0101 = 5
[MOV K1X0 D0]  將 X3~X0 (0000 0000 0000 0111) 傳送到 D0   => D0 = 0111 = 7
[MOV K5 K1Y0]  將 5     (0000 0000 0000 0101) 傳送到 Y3~Y0 =5 => Y2 Y0 = ON
[MOV K2X0 K2Y0]將 X7~X0 (0000 0000 0010 0111) 傳送到 Y7~Y0 =39 => Y6 Y2 Y0 = ON


DMOV : 32位元傳送
[DMOV K5 D0]    將 5     (0000 0000 0000 0000 0000 0000 0000 0101) 傳送到 (D1)D0
(D1)D0 =0000 0000 0000 0000  0000 0000 0000 0101  = 5
(D1)               (D0)




16位元: + - * / > < = <>  (作除法時,除數(shù)不可為0)
[+ K10 K20 D0]    10 + 20 = D0 => D0= 30
D0數(shù)値必須在:-32768~32767之間,否則會產(chǎn)生溢位;造成數(shù)値判斷錯誤。而溢位的數(shù)値將跑到D1。

[- D0  D2  D4]    D0 – D2 =D4

[* D0  D2  D4]    D0 * D2  =(D5)D4

[/ K10 K3  D4]    10 /  3  = 3…1 => D4=3 (商) D5=1 (餘數(shù))

[> D0  D2  ]      若D0 > D2 條件成立    [> D0  D2  ]=ON
若D0 < D2 條件不成立  [> D0  D2  ]=OFF


32位元:D+  D-  D*  D/  D>  D<  D=  D<>  (作除法時,除數(shù)不可為0)
[D+ D0  D2  D4]    (D1)D0 + (D3)D2 =(D5)D4

[D* D0  D2  D4]    (D1)D0 * (D3)D2 =(D7)(D6)(D5)D4
(D7)(D6)(D5)D4數(shù)値必須在:-2147483648~2147483647 之間,否則會造成數(shù)値判斷錯誤。因為(D7)(D6)(D5)D4為64位元,而PLC只能判斷32位元也就是(D5)D4;當(dāng)多餘的數(shù)字跑到(D7)(D6)時,會造成PLC只讀到(D5)D4而非(D7)(D6)(D5)D4的正確値。

[D/ D0  D2  D4]    (D1)D0 / (D3)D2 =(D5)D4(商) (D7)D6 (餘數(shù))