tft每日頭條

 > 生活

 > 詳解西門子plc小數和負号如何編程

詳解西門子plc小數和負号如何編程

生活 更新时间:2024-05-09 10:51:29

詳解西門子plc小數和負号如何編程(BCD碼和十六進制要分清)1

容易讓人糊塗的BCD碼和十六進制

BCD碼(Binary-Coded Decimal‎)是二進制編碼的十進制數的縮寫,BCD碼用4位二進制數表示一位十進制數。BCD碼各位的數值範圍為2#0000~2#1001,對應于十進制數0~9。

BCD碼不能使用十六進制的A~F(2#1010~2#1111)這6個數字。BCD碼本質上是十進制數,因此相鄰兩位逢十進一。 BCD碼的最高位二進制數是符号位,負數的符号位為1,正數為0。16位BCD碼的範圍為–999~+999。

下圖的撥碼開關将顯示的數字轉換為4位二進制數。PLC用12個數字量輸入點讀取的是3位BCD碼,它的值為2#1000 0010 1001,即十六進制數16#829。

詳解西門子plc小數和負号如何編程(BCD碼和十六進制要分清)2

BCD碼沒有單獨的表示方法,而是借用了十六進制的表示方法,因此二者很容易混淆。

詳解西門子plc小數和負号如何編程(BCD碼和十六進制要分清)3

在程序中,怎麼知道一個數字是BCD碼還是十六進制數呢?

1)、看數據的來源和用途

BCD碼一般用于輸入和輸出,例如來自撥碼開關的數據是BCD碼,送給顯示電梯樓層的譯碼器芯片的是BCD碼。

2)、看手冊規定

例如數據類型DATE_AND_TIME中的日期和時間值是BCD碼,計數器的預設值PV和當前計數值CV_BCD為BCD碼。

怎樣監視BCD碼? 在變量表和程序狀态監控中,用十六進制格式監視BCD碼,怎樣輸入BCD碼?

從上圖可以看出,BCD碼用十六進制格式輸入,其最高位(符号位)為16#F(2#1111)。BCD碼的低3位各位隻能是0~9,如果是16#A~16#F則會出錯。 計數器的預設值PV是0~999的BCD碼,可以用格式為C#的常數(C#1~C#999)作為計數器的預設值。

下圖用MW42提供計數器的預設值PV,如果用MOVE指令将十進制數348(對應的十六進制數為16#15C)傳送給MW42,進入RUN模式時,操作系統将它轉換為BCD碼時出錯(16#15C不是BCD碼),不能切換到RUN模式。 輸入預設值348時,應改為将C#348傳送給MW42,它會自動地變為W#16#348,當然也可以直接輸入16#348。沒有必要用I_BCD指令将348轉換為BCD碼W#16#348後,再傳送給MW42。

詳解西門子plc小數和負号如何編程(BCD碼和十六進制要分清)4

FC和FB的需要注意的區别

詳解西門子plc小數和負号如何編程(BCD碼和十六進制要分清)5


詳解西門子plc小數和負号如何編程(BCD碼和十六進制要分清)6


詳解西門子plc小數和負号如何編程(BCD碼和十六進制要分清)7

尋址介紹表

詳解西門子plc小數和負号如何編程(BCD碼和十六進制要分清)8

詳解西門子plc小數和負号如何編程(BCD碼和十六進制要分清)9

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved