fgh1991
級別: 正式會員
|
我用FX3G PLC 把8348和8349用MOV傳送出來,8349正常,8348是個很大的值。再用MOV傳值時,8349減速設置的值無效,但會還會影響8348的值不知道怎么回事,??有沒有大神知道的 |
---|---|
|
遇上方知有
路漫漫其修遠兮 吾將上下而求索
級別: 家園常客
|
建議看手冊,上面寫的很清楚的 |
|
---|---|---|
|
fgh1991
級別: 正式會員
|
看過手冊的 ,里面就只有簡單的提到8348 和8349是加減速時間 |
---|---|
|
lin10663
Ivan
級別: VIP會員
|
十六改三十二~~~一次佔四個資料 女的搞工控~~加油~~粉累滴 [ 此帖被lin10663在2018-07-24 14:07重新編輯 ] |
|
---|---|---|
|
fgh1991
級別: 正式會員
|
確實和十六位 三十二位有關,把顯示值改為16位正常了。再請教下,16位的數值用32位表達會有異常嗎?為什么減速時間沒問題呢? |
---|---|
|
john42tw
級別: 網絡英雄
|
沒看到設定,不知道。 但推測: 1.D3847 被設定到,影響D3848 2.D3848被設定32位,第16位符號被當成數字。 ........................ 以下資料請參考 資料寄存器(D) a.為可對數值資料(-32768 ~ 32767 或 0000H ~ FFFFH) 進行存儲的記憶體。 b.資料寄存器的位元結構 1)1點數據寄存器由16 位組成,以16 位元為單位對資料進行讀寫操作。資料寄存器資料是帶符號使用的。在使用十六進位的情況下,可對 0000H ~ FFFFH 進行存儲。但是,由於最高位元為符號位元,因此只能指定-32768~ 32767 範圍內的十進位數字。 2)在32 位元指令中使用資料寄存器時,以連續2 點的資料寄存器(Dn 和Dn+1) 作為處理對象。低16 位元對應於順控程式中指定的資料寄存器編號(Dn),高16 位元對應於順控程式中指定的資料寄存器編號+1。 在DMOV 指令中指定D12 的情況下,D12 為低16 位,D13 為高16 位。在2 點的資料寄存器中可以存儲-2147483648 ~ 2147483647 或0H ~ FFFFFFFFH 範圍內的資料。(32 位元結構中的最高位元為符號位元。) 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位元: + - * / > < = <> (作除法時,除數不可為0) [+ K10 K20 D0] 10 + 20 = D0 => D0= 30 D0數値必須在:-32768~32767之間,否則會產生溢位;造成數値判斷錯誤。而溢位的數値將跑到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 (餘數) [> D0 D2 ] 若D0 > D2 條件成立 [> D0 D2 ]=ON 若D0 < D2 條件不成立 [> D0 D2 ]=OFF 32位元:D+ D- D* D/ D> D< D= D<> (作除法時,除數不可為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數値必須在:-2147483648~2147483647 之間,否則會造成數値判斷錯誤。因為(D7)(D6)(D5)D4為64位元,而PLC只能判斷32位元也就是(D5)D4;當多餘的數字跑到(D7)(D6)時,會造成PLC只讀到(D5)D4而非(D7)(D6)(D5)D4的正確値。 [D/ D0 D2 D4] (D1)D0 / (D3)D2 =(D5)D4(商) (D7)D6 (餘數) |
---|---|
|