sihu国产精品永久免费_日韩午夜在线视频_久久99中文字幕伊人_古代男男嗯…啊h总攻

bigluo
級別: 家園常客
精華主題: 0
發帖數量: 387 個
工控威望: 912 點
下載積分: 2724 分
在線時間: 73(小時)
注冊時間: 2007-12-14
最后登錄: 2021-05-15
查看bigluo的 主題 / 回貼
樓主  發表于: 2008-05-30 10:25
最近準備用MT500連接松下的PLC,出于成本考慮,PLC沒有時鐘模塊,由觸摸屏在上電時將時鐘寫入到PLC的寄存器。
觸摸屏的時鐘格式是BCD碼,而松下的時鐘貯存格式是二進制,而且是一個字里面貯存年/月兩個內容,這樣就要使用二進制轉換。
我的宏指令是這樣的:

Macro_Command main()
  short iYear, iMonth, iDay, iHour, iMinute, iSecond
  short iTemp
  //取得年月日
  GetData(iYear, RW_Bcdplc, 60005, 1)
  GetData(iMonth, RW_Bcdplc, 60004, 1)
  GetData(iDay, RW_Bcdplc, 60003, 1)
  GetData(iHour ,RW_Bcdplc ,60002,1)
  GetData(iMinute ,RW_Bcdplc ,60001,1)
  GetData(iSecond ,RW_Bcdplc ,60000,1)
  iTemp = 0xFF And iYear 
  SetData(iTemp ,RW_Binplc ,0,1) 
End Macro_Command

在iTemp = 0xF and iYear這一行,本來是想得到數字8的,沒想到結果竟是1!
想來想去,這是不是因為宏解釋器把AND作為了布爾運算符了?
這該怎樣解決呢?
謝謝了!
bigluo
級別: 家園常客
精華主題: 0
發帖數量: 387 個
工控威望: 912 點
下載積分: 2724 分
在線時間: 73(小時)
注冊時間: 2007-12-14
最后登錄: 2021-05-15
查看bigluo的 主題 / 回貼
1樓  發表于: 2008-05-30 11:07
找到原因了。
原來二進制運算的“與”是用"&"作為標識符的。