西門子PLC轉換指令
轉換指令是指對操作數的類型進行轉換,包括數據的類型轉換、碼的類型轉換以及數據和碼之間的類型轉換。 |
一、數據類型轉換 |
(一)字節與整數 1、字節到整數 BTI,字節轉換為整數指令。使能輸入有效時,將字節輸入數據IN轉換成整數類型,并將結果送到OUT輸出。字節型是無符號的,所以沒有符號擴展。 指令格式: BTI IN, OUT 例: BTI VB0, AC0 2、整數到字節 ITB,整數轉換字節指令。使能輸入有效時,將整數輸入數據IN轉換成字節類型,并將結果送到OUT輸出。輸入數據超出字節范圍(0~255)則產生溢出。 指令格式: ITB IN, OUT 例: ITB AC0, VB10 (二)整數與雙整數 1、雙整數到整數 DTI,雙整數轉換為整數指令。使能輸入有效時,將雙整數輸入數據IN轉換成整數類型,并將結果送到OUT輸出。輸入數據超出整數范圍則產生溢出。 指令格式: DTI IN, OUT 例: DTI AC0, VW20 2、整數到雙整數 ITD,整數轉換為雙整數指令。使能輸入有效時,將整數輸入數據IN轉換成雙整數類型(符號進行擴展),并將結果送到OUT輸出。 指令格式:ITD IN, OUT 例:ITD VW0, AC0 (三)雙整數與實數 1、實數到雙整數 ![]() ![]() 圖1 實數到雙整數 2、雙整數到實數 DTR,雙整數轉換實數指令。使能輸入有效時,將雙整數輸入數據IN轉換成實型,并將結果送到OUT輸出。 指令格式: DTR IN, OUT 例: DTR AC0, VD100 圖2 雙整數到實數 圖3 雙整數到實數 (四)整數與BCD碼 1、BCD碼到整數 BCDI,BCD碼轉換為整數指令。使能輸入有效時,將BCD碼輸入數據IN轉換成整數類型,并將結果送到OUT輸出。輸入數據IN的范圍為0~9999。 指令格式:BCDI OUT 例:BCDI AC0 ![]() 圖4 BCD碼到整數 2、整數到BCD碼 IBCD,整數轉換為BCD碼指令。使能輸入有效時,將整數輸入數據IN轉換成BCD碼類型,并將結果送到OUT輸出。輸入數據IN的范圍為0~9999。 指令格式:IBCD OUT 例:IBCD AC0 ![]() 圖5 整數到BCD碼 (五)程序實例 模擬量控制程序中的數據類型轉換。將模擬量輸入端采樣值由整數轉換為雙整數,然后由雙整數轉換為實數,再除以一個比例因子得到plc可以處理的范圍內的值。 圖6 程序實例 |
二、編碼和譯碼 |
1、編碼 ENCO,編碼指令。使能輸入有效時,將字型輸入數據IN的有效位(值為1的位)的位號輸出到OUT所的字節單元的低4位。即用半個字節來對一個字型數據16位中的1位有效位進行編碼。 指令格式: ENCO IN, OUT 例: ENCO AC0, VB0 以本指令為例,指令執行情況如表所示。 圖7 編碼指令執行結果 2、譯碼 DECO,譯碼指令。使能輸入有效時,將字節型輸入數據IN的低4位所表示的位號對OUT所的字單元的對應位置1,其他位置0。即對半個字節的編碼進行譯碼來選擇一個字型數據16位中的1位。 指令格式: DECO IN, OUT 例: DECO VB0, AC0 圖8 譯碼指令執行結果 |
三、七段碼 |
SEG,七段碼指令 使能輸入有效時,將字節型輸入數據IN的低4位有效數字產生相應的七段碼,并將其輸出到OUT所的字節單元。 |
四、字符串轉換 |
1、指令種類 2、指令介紹 下面僅以ASCII碼轉換16進制指令為例說明字符串與其他數據類型之間的轉換。 ATH,ASCII碼轉換16進制指令: 指令盒中有3個操作數:IN,開始字符的字節地址,字節類型;LEN,字符串的長度,字節類型,最大長度為255;OUT,輸出目的開始字節地址,字節類型。使能輸入有效 時,把從IN開始的長度為LEN的ASCII碼轉換為16進制數,并將結果送到OUT開始的字節進行輸出。 3、程序實例 以上面的指令為例,條指令的執行結果如表所示,程序如圖所示。 圖9 指令ATH執行結果 圖10 程序實例 |
免責聲明
- 凡本網注明“來源:化工儀器網”的所有作品,均為浙江興旺寶明通網絡有限公司-化工儀器網合法擁有版權或有權使用的作品,未經本網授權不得轉載、摘編或利用其它方式使用上述作品。已經本網授權使用作品的,應在授權范圍內使用,并注明“來源:化工儀器網”。違反上述聲明者,本網將追究其相關法律責任。
- 本網轉載并注明自其他來源(非化工儀器網)的作品,目的在于傳遞更多信息,并不代表本網贊同其觀點和對其真實性負責,不承擔此類作品侵權行為的直接責任及連帶責任。其他媒體、網站或個人從本網轉載時,必須保留本網注明的作品第一來源,并自負版權等法律責任。
- 如涉及作品內容、版權等問題,請在作品發表之日起一周內與本網聯系,否則視為放棄相關權利。