sxdo
級別: *
|
第一個程序: LD X0 INCP D0 LD M8000 MOV D0 D10 LD X1 SFWRP D10 K4Y0 K8 第二個程序: LD X0 INCP D0 LD M8000 MOV D0 D10 LD X1 SFWRP DIO D20 K8 BCD D20 K4Y0 為什么兩種情況下Y0輸出不同?請高手幫忙,謝謝!! [ 此帖被sxdo在2010-10-23 15:14重新編輯 ] |
---|---|
|
hxl202319
工資就像大姨媽,一月一次,一周就沒了
級別: 網絡英雄
|
最主要的區別就是BCD, 上個程序是直接用二進制的,下面的是二—十進制的 |
|
---|---|---|
|
sjm213
有小知識,無大學問。
級別: 論壇版主
|
1. SWFR指令的【D·】位不僅確定了數據的個數,而且確定了數筆數據存儲的位置。程序1中D0的數據被依次放到K4Y20、K4Y40……,而程序2中D0數據只是放入D寄存器,不會映射到輸出點上,這是不同之一; 2. 即使單就K4Y0來看,由于程序2中多了一個BCD指令,也有可能造成輸出的不同。然而這個程序中SWFR記錄的數據量較小,倒是K4Y0輸出兩者應該是一致的。 |
---|---|
|
sxdo
級別: *
|
謝謝sjm213的熱情回復,不過,通過三菱仿真軟件,正如你所講, 程序1,當X0閉合1次,X1閉合1次,K4Y0的輸出中Y0 ,Y20. 當X0閉合第2次,X1閉合第2次,K4Y0的輸出中Y0 ,Y1,Y20. 當X0閉合第3次,X1閉合第3 次,K4Y0的輸出中Y0 ,Y2,Y20. 為什么會有Y20閉合呢? 而程序2,是隨X0,X1閉合的次數,依次輸出Y0,Y1 Y2....... 原因在哪里?再次感謝!! |
---|---|
|
sjm213
有小知識,無大學問。
級別: 論壇版主
|
你用的仿真?那么應該能看到不只是Y20有輸出,Y41、Y60、Y61沒有變化嗎? 原因就在SWFR指令,你先去看看這個指令會產生什么樣的動作,看明白了就理解了。 |
---|---|
|