sxdo
級別: *
精華主題: * 篇
發(fā)帖數量: * 個
工控威望: * 點
下載積分: * 分
在線時間: (小時)
注冊時間: *
最后登錄: *
查看sxdo的 主題 / 回貼
樓主  發(fā)表于: 2010-10-23 14:37
請先看程序

LD       X0
MOV    K5   K4M0
DECO   M0   D100   K3
DECO   M0   M20 K7


  當X0閉合一次,K5(二進制0101)傳送到K4M0中,因K4M0是16位位元件組成的字元件,所以M0=1   M1=0    M2=1  M3=0  
那么當執(zhí)行DECO指令時,因M0是K4M0中的一個位,即M0=1,所以 :D100=2   M20=0(OFF)     M21=1(ON)

  但我的理解是錯誤的。仿真的結果是:D100=32    M20=0(OFF)     M25=1(ON)

   那么K5傳送到K4M0中,是如何對應的??
sjm213
有小知識,無大學問。
級別: 論壇版主

精華主題: 7 篇
發(fā)帖數量: 5196 個
工控威望: 7419 點
下載積分: 158610 分
在線時間: 3153(小時)
注冊時間: 2007-11-21
最后登錄: 2024-11-10
查看sjm213的 主題 / 回貼
1樓  發(fā)表于: 2010-10-23 16:05
引用
K5(二進制0101)傳送到K4M0中,因K4M0是16位位元件組成的字元件,所以M0=1   M1=0    M2=1  M3=0

這是沒錯的;
您的判定結果與實際不符錯誤在于對DECO指令的理解。
DECO   M0   M20 K7這個指令是將M0~M6組合位元件的數值做判斷(實際上就是第一步里給過來的K5),然后置位M(20+K5)=M25;
DECO   M0   D100   K3本質上與上面沒什么不同,只是置位的是D100的b5位,所以D100=25=32。
sxdo
級別: *
精華主題: * 篇
發(fā)帖數量: * 個
工控威望: * 點
下載積分: * 分
在線時間: (小時)
注冊時間: *
最后登錄: *
查看sxdo的 主題 / 回貼
2樓  發(fā)表于: 2010-10-24 08:43
謝謝sjm213的解答!

一直搞不明白的,終于解決了。