关于左移右移问题,帮忙注释下程序谢谢

读取DATE_AND_TIME 变量的专用字节并从这两位数所在ASCII码中创建专用位。DB1.DBB0=13 从plc读的到的年(13年)BCD码 0001 0011 
  示例:
  L DB1.DBB0      
  SLD 12   //左移双字(32位) 变成 0000 0000 0001 0011 0000 0000 0000
  SRW 4  //右移字(16位) 0001 0011 0000 0000
  SRD 8  //右移双字(32位) 不是又变回 0001 0011吗
  L W#16#3030   //加48 48变成字符
  + I 
  T DB1.DBW16
是这么移的吗,为什么这么移就能变成字符
谢谢?!!!

最佳答案

应该是这样的:
    L DB1.DBB0 //ACCU1= 0001 0011    
  SLD 12   //ACCU1= 0001 0011 0000 0000 0000
  SRW 4  //ACCU1= 0001 0000 0011 0000 0000
  SRD 8  //ACCU1= 0001 0000 0011
  L W#16#3030 // 0011 0000 0011 0000  
  + I 
  T DB1.DBW16  // 结果=0011 0001 0011 0011(3133)
其中31就是1的ASCII码,33是3的ASCII码,对应字符‘1‘和‘3’

提问者对于答案的评价:
3q

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc236394.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2018年12月1日 下午3:44
下一篇 2018年12月1日 下午3:44

相关推荐