fgh1991
級(jí)別: 正式會(huì)員
|
我用FX3G PLC 把8348和8349用MOV傳送出來(lái),8349正常,8348是個(gè)很大的值。再用MOV傳值時(shí),8349減速設(shè)置的值無(wú)效,但會(huì)還會(huì)影響8348的值不知道怎么回事,??有沒(méi)有大神知道的 |
---|---|
|
john42tw
級(jí)別: 網(wǎng)絡(luò)英雄
|
應(yīng)該是受到其他設(shè)定影響 例如: MOV 寫(xiě)成 DMOV 將設(shè)定寫(xiě)到最後一行看看 |
---|---|
|
john42tw
級(jí)別: 網(wǎng)絡(luò)英雄
|
沒(méi)看到設(shè)定,不知道。 但推測(cè): 1.D3847 被設(shè)定到,影響D3848 2.D3848被設(shè)定32位,第16位符號(hào)被當(dāng)成數(shù)字。 ........................ 以下資料請(qǐng)參考 資料寄存器(D) a.為可對(duì)數(shù)值資料(-32768 ~ 32767 或 0000H ~ FFFFH) 進(jìn)行存儲(chǔ)的記憶體。 b.資料寄存器的位元結(jié)構(gòu) 1)1點(diǎn)數(shù)據(jù)寄存器由16 位組成,以16 位元為單位對(duì)資料進(jìn)行讀寫(xiě)操作。資料寄存器資料是帶符號(hào)使用的。在使用十六進(jìn)位的情況下,可對(duì) 0000H ~ FFFFH 進(jìn)行存儲(chǔ)。但是,由於最高位元為符號(hào)位元,因此只能指定-32768~ 32767 範(fàn)圍內(nèi)的十進(jìn)位數(shù)字。 2)在32 位元指令中使用資料寄存器時(shí),以連續(xù)2 點(diǎn)的資料寄存器(Dn 和Dn+1) 作為處理對(duì)象。低16 位元對(duì)應(yīng)於順控程式中指定的資料寄存器編號(hào)(Dn),高16 位元對(duì)應(yīng)於順控程式中指定的資料寄存器編號(hào)+1。 在DMOV 指令中指定D12 的情況下,D12 為低16 位,D13 為高16 位。在2 點(diǎn)的資料寄存器中可以存儲(chǔ)-2147483648 ~ 2147483647 或0H ~ FFFFFFFFH 範(fàn)圍內(nèi)的資料。(32 位元結(jié)構(gòu)中的最高位元為符號(hào)位元。) 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í),除數(shù)不可為0) [+ K10 K20 D0] 10 + 20 = D0 => D0= 30 D0數(shù)値必須在:-32768~32767之間,否則會(huì)產(chǎn)生溢位;造成數(shù)値判斷錯(cuò)誤。而溢位的數(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í),除數(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 之間,否則會(huì)造成數(shù)値判斷錯(cuò)誤。因?yàn)?D7)(D6)(D5)D4為64位元,而PLC只能判斷32位元也就是(D5)D4;當(dāng)多餘的數(shù)字跑到(D7)(D6)時(shí),會(huì)造成PLC只讀到(D5)D4而非(D7)(D6)(D5)D4的正確値。 [D/ D0 D2 D4] (D1)D0 / (D3)D2 =(D5)D4(商) (D7)D6 (餘數(shù)) |
---|---|
|