RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

一文詳解PLC轉(zhuǎn)換指令

laidenongfhs ? 來源:中泰PLC自動(dòng)化教學(xué) ? 2023-12-12 13:48 ? 次閱讀

PLC的主要數(shù)據(jù)類型有字節(jié)型、整數(shù)型、雙整數(shù)型和實(shí)數(shù)型,數(shù)據(jù)的編碼類型主要有二進(jìn)制、十進(jìn)制、十六進(jìn)制、BCD碼和ASCII碼等。在編程時(shí),指令對(duì)操作數(shù)類型有一定的要求,如字節(jié)型與字型數(shù)據(jù)不能直接進(jìn)行相加運(yùn)算。為了讓指令能對(duì)不同類型數(shù)據(jù)進(jìn)行處理,要先對(duì)數(shù)據(jù)的類型進(jìn)行轉(zhuǎn)換。 轉(zhuǎn)換指令是一種轉(zhuǎn)換不同類型數(shù)據(jù)的指令。轉(zhuǎn)換指令可分為標(biāo)準(zhǔn)轉(zhuǎn)換指令、ASCII碼轉(zhuǎn)換指令、字符串轉(zhuǎn)換指令和編碼與解碼指令。

標(biāo)準(zhǔn)轉(zhuǎn)換指令

標(biāo)準(zhǔn)轉(zhuǎn)換指令可分為數(shù)字轉(zhuǎn)換指令、四舍五入取整指令和段譯碼指令。

1.數(shù)字轉(zhuǎn)換指令

數(shù)字轉(zhuǎn)換指令有字節(jié)與整數(shù)間的轉(zhuǎn)換指令、整數(shù)與雙整數(shù)間的轉(zhuǎn)換指令、BCD碼與整數(shù)間的轉(zhuǎn)換指令和雙整數(shù)轉(zhuǎn)實(shí)數(shù)指令。 BCD碼是一種用4位二進(jìn)制數(shù)組合來表示十進(jìn)制數(shù)的編碼。BCD碼的0000~1001分別對(duì)應(yīng)十進(jìn)制數(shù)的0~9。一位十進(jìn)制數(shù)的二進(jìn)制編碼和BCD碼是相同的,例如6的二進(jìn)制編碼為0110,BCD碼也為0110;但多位十進(jìn)制數(shù)兩種編碼是不同的,例如64的8位二進(jìn)制編碼為0100 0000,BCD碼則為0110 0100。由于BCD碼采用4位二進(jìn)制數(shù)來表示1位十進(jìn)制數(shù),故16位BCD碼能表示十進(jìn)制數(shù)的范圍是0000~9999。

1)指令說明

數(shù)字轉(zhuǎn)換指令說明如表6-29所示。

表6-29 數(shù)字轉(zhuǎn)換指令說明

fabda838-98ab-11ee-8b88-92fbcf53809c.png

fad4561e-98ab-11ee-8b88-92fbcf53809c.png

2)指令使用舉例

數(shù)字轉(zhuǎn)換指令的使用如圖6-14所示,當(dāng)I0.0觸點(diǎn)閉合時(shí),執(zhí)行I_DI指令,將C10中的整數(shù)轉(zhuǎn)換成雙整數(shù),然后存入AC1中。當(dāng)I0.1觸點(diǎn)閉合時(shí),執(zhí)行BCD_I指令,將AC0中的BCD碼轉(zhuǎn)換成整數(shù)。例如,指令執(zhí)行前AC0中的BCD碼為0000 0001 0010 0110(即126),執(zhí)行BCD_I指令后,AC0中的BCD碼被轉(zhuǎn)換成整數(shù)0000000001111110。

fadeac9a-98ab-11ee-8b88-92fbcf53809c.png

圖6-14 數(shù)字轉(zhuǎn)換指令的使用

2.四舍五入取整指令

1)指令說明

四舍五入取整指令說明如表6-30所示。

表6-30 四舍五入取整指令說明

faf6aa0c-98ab-11ee-8b88-92fbcf53809c.png

2)指令使用舉例

四舍五入取整指令的使用如圖6-15所示,當(dāng)I0.0觸點(diǎn)閉合時(shí),執(zhí)行ROUND指令,將VD8中的實(shí)數(shù)采用四舍五入取整的方式轉(zhuǎn)換成雙整數(shù),然后存入VD12中。

fb100678-98ab-11ee-8b88-92fbcf53809c.png

圖6-15 四舍五入取整指令的使用

3.段譯碼指令

段譯碼指令的功能是將IN端指定單元中的低4位數(shù)轉(zhuǎn)換成能驅(qū)動(dòng)七段數(shù)碼顯示器顯示相應(yīng)字符的七段碼。

1)七段數(shù)碼顯示器與七段碼

七段數(shù)碼顯示器是一種采用七段發(fā)光體來顯示十進(jìn)制數(shù)0~9的顯示裝置,其結(jié)構(gòu)和外形如圖6-16所示。當(dāng)某段加有高電平“1”時(shí),該段發(fā)光。例如,要顯示十進(jìn)制數(shù)“5”,可讓gfedcba=1101101,這里的1101101為七段碼,七段碼只有七位,通常在最高位補(bǔ)0組成8位(一個(gè)字節(jié))。段譯碼指令I(lǐng)N端指定單元中的低4位實(shí)際上是十進(jìn)制數(shù)的二進(jìn)制編碼值,經(jīng)指令轉(zhuǎn)換后變成七段碼存入OUT端指定的單元中。十進(jìn)制數(shù)、二進(jìn)制數(shù)、七段碼及顯示字符的對(duì)應(yīng)關(guān)系見表6-31。

fb2ceaea-98ab-11ee-8b88-92fbcf53809c.png

圖6-16 七段數(shù)碼顯示器

表6-31 十進(jìn)制數(shù)、二進(jìn)制數(shù)、七段碼及顯示字符的對(duì)應(yīng)關(guān)系

fb37430a-98ab-11ee-8b88-92fbcf53809c.png

2)指令說明

段譯碼指令說明如表6-32所示。

表6-32 段譯碼指令說明

fb5c0db6-98ab-11ee-8b88-92fbcf53809c.png

3)指令使用舉例

fb7ba932-98ab-11ee-8b88-92fbcf53809c.png

圖6-17 段譯碼指令的使用

段譯碼指令的使用如圖6-17所示,當(dāng)I0.0觸點(diǎn)閉合時(shí),執(zhí)行SEG指令,將VB40中的低4位數(shù)轉(zhuǎn)換成七段碼,然后存入AC0中。例如,VB40中的數(shù)據(jù)為00000110,執(zhí)行SEG指令后,低4位0110轉(zhuǎn)換成七段碼01111101,存入AC0中。

ASCII碼轉(zhuǎn)換指令

ASCII碼轉(zhuǎn)換指令包括整數(shù)、雙整數(shù)、實(shí)數(shù)轉(zhuǎn)ASCII碼指令和十六進(jìn)制數(shù)與ASCII碼轉(zhuǎn)換指令。

1.關(guān)于ASCII碼知識(shí) ASCII碼意為美國(guó)標(biāo)準(zhǔn)信息交換碼,是一種使用7位或8位二進(jìn)制數(shù)編碼的方案,最多可以對(duì)256個(gè)字符(包括字母、數(shù)字、標(biāo)點(diǎn)符號(hào)、控制字符及其他符號(hào))進(jìn)行編碼。ASCII編碼表見表6-33。計(jì)算機(jī)等很多數(shù)字設(shè)備的字符采用ASCII編碼方式,例如,當(dāng)按下鍵盤上的“8”鍵時(shí),鍵盤盤內(nèi)的編碼電路就將該鍵編碼成011 1000,再送入計(jì)算機(jī)處理。如果在7位ASCII碼最高位加0就是8位ASCII碼。

表6-33 ASCII編碼表

fb91d540-98ab-11ee-8b88-92fbcf53809c.png

fb9cb5dc-98ab-11ee-8b88-92fbcf53809c.png

2.整數(shù)轉(zhuǎn)ASCII碼指令

1)指令說明

整數(shù)轉(zhuǎn)ASCII碼指令說明如表6-34所示。

表6-34 整數(shù)轉(zhuǎn)ASCII碼指令說明

fbaa8716-98ab-11ee-8b88-92fbcf53809c.png

在ITA指令中,IN端為整數(shù)型操作數(shù),F(xiàn)MT端指定字節(jié)單元中的數(shù)據(jù)用來定義ASCII碼字符串在OUT存儲(chǔ)區(qū)的存放格式,OUT存儲(chǔ)區(qū)是指OUT端指定首地址的8個(gè)連續(xù)字節(jié)單元,又稱輸出存儲(chǔ)區(qū)。FMT端單元中的數(shù)據(jù)定義如下。

fbc32244-98ab-11ee-8b88-92fbcf53809c.png

2)指令使用舉例

整數(shù)轉(zhuǎn)ASCII碼指令的使用如圖6-18所示,當(dāng)I0.0觸點(diǎn)閉合時(shí),執(zhí)行ITA指令,將IN端VW10中的整數(shù)轉(zhuǎn)換成ASCII碼字符串,保存在OUT端指定首地址的8個(gè)連續(xù)單元(VB12~VB19)構(gòu)成的存儲(chǔ)區(qū)中,ASCII碼字符串在存儲(chǔ)區(qū)的存放形式由FMT端VB0單元中的數(shù)據(jù)低4位規(guī)定。

fbdb6c5a-98ab-11ee-8b88-92fbcf53809c.png

圖6-18 整數(shù)轉(zhuǎn)ASCII碼指令的使用

例如,VW10中整數(shù)為12,VB0中的數(shù)據(jù)為3(即00000011),執(zhí)行ITA指令后,VB12~VB19單元中存儲(chǔ)的ASCII碼字符串為“0.012”,各單元具體存儲(chǔ)的ASCII碼見表6-35,其中VB19單元存儲(chǔ)“2”的ASCII碼“00110010”。

輸出存儲(chǔ)區(qū)的ASCII碼字符串格式有以下規(guī)律:

①正數(shù)值寫入輸出存儲(chǔ)區(qū)時(shí)沒有符號(hào)位。

②負(fù)數(shù)值寫入輸出存儲(chǔ)區(qū)時(shí)以負(fù)號(hào)(-)開頭。

③除小數(shù)點(diǎn)左側(cè)最靠近的0外,其他左側(cè)0去掉。

④輸出存儲(chǔ)區(qū)中的數(shù)值是右對(duì)齊的。

表6-35 FMT單元取不同值時(shí)存儲(chǔ)區(qū)中ASCII碼的存儲(chǔ)形式

fbe4450a-98ab-11ee-8b88-92fbcf53809c.png

3.雙整數(shù)轉(zhuǎn)ASCII碼指令

1)指令說明

雙整數(shù)轉(zhuǎn)ASCII碼指令說明如表6-36所示。

表6-36 雙整數(shù)轉(zhuǎn)ASCII碼指令說明

fbfaf552-98ab-11ee-8b88-92fbcf53809c.png

在DTA指令中,IN端為雙整數(shù)型操作數(shù),F(xiàn)MT端字節(jié)單元中的數(shù)據(jù)用來指定ASCII碼字符串在OUT存儲(chǔ)區(qū)的存放格式,OUT存儲(chǔ)區(qū)是指OUT端指定首地址的12個(gè)連續(xù)字節(jié)單元。FMT端單元中的數(shù)據(jù)定義與整數(shù)轉(zhuǎn)ASCII碼指令相同。

2)指令使用舉例

雙整數(shù)轉(zhuǎn)ASCII碼指令的使用如圖6-19所示,當(dāng)I0.0觸點(diǎn)閉合時(shí),執(zhí)行DTA指令,將IN端VD10中的雙整數(shù)轉(zhuǎn)換成ASCII碼字符串,保存在OUT端指定首地址的8個(gè)連續(xù)單元(VB14~VB21)構(gòu)成的存儲(chǔ)區(qū)中,ASCII碼字符串在存儲(chǔ)區(qū)的存放形式由VB0單元(FMT端指定)中的低4位數(shù)據(jù)規(guī)定。

fc0d103e-98ab-11ee-8b88-92fbcf53809c.png

圖6-19 雙整數(shù)轉(zhuǎn)ASCII碼指令的使用

例如,VD10中雙整數(shù)為3456789,VB0中的數(shù)據(jù)為3(即00000011),執(zhí)行DTA指令后,VB14~VB21中存儲(chǔ)的ASCII碼字符串為“3456.789”。

輸出存儲(chǔ)區(qū)的ASCII碼字符串格式有以下規(guī)律。

①正數(shù)值寫入輸出存儲(chǔ)區(qū)時(shí)沒有符號(hào)位。

②負(fù)數(shù)值寫入輸出存儲(chǔ)區(qū)時(shí)以負(fù)號(hào)(-)開頭。

③除小數(shù)點(diǎn)左側(cè)最靠近的0外,其他左側(cè)0去掉。

④輸出存儲(chǔ)區(qū)中的數(shù)值是右對(duì)齊的。

4.實(shí)數(shù)轉(zhuǎn)ASCII碼指令

1)指令說明

實(shí)數(shù)轉(zhuǎn)ASCII碼指令說明如表6-37所示。

表6-37 實(shí)數(shù)轉(zhuǎn)ASCII碼指令說明

fc1602a2-98ab-11ee-8b88-92fbcf53809c.png

在RTA指令中,IN端為實(shí)數(shù)型操作數(shù),F(xiàn)MT端指定單元中的數(shù)據(jù)用來定義OUT存儲(chǔ)區(qū)的長(zhǎng)度和ASCII碼字符串在OUT存儲(chǔ)區(qū)的存放形式。FMT端單元中的數(shù)據(jù)定義如下。

fc293a7a-98ab-11ee-8b88-92fbcf53809c.png

2)指令使用舉例

實(shí)數(shù)轉(zhuǎn)ASCII碼指令的使用如圖6-20所示,當(dāng)I0.0觸點(diǎn)閉合時(shí),執(zhí)行RTA指令,將IN端VD10中的實(shí)數(shù)轉(zhuǎn)換成ASCII碼字符串,保存在OUT端指定首地址的存儲(chǔ)區(qū)中,存儲(chǔ)區(qū)的長(zhǎng)度由FMT端VB0單元中的數(shù)據(jù)高4位規(guī)定,ASCII碼字符串在存儲(chǔ)區(qū)的存放形式由FMT端VB0單元中的低4位數(shù)據(jù)規(guī)定。

fc2ce18e-98ab-11ee-8b88-92fbcf53809c.png

圖6-20 實(shí)數(shù)轉(zhuǎn)ASCII碼指令的使用

例如,VD10中實(shí)數(shù)為1234.5,VB0中的數(shù)據(jù)為97(即01100001),執(zhí)行RTA指指令后,VB14~VB19中存儲(chǔ)的ASCII碼字符串為“1234.5”。FMT單元取不同值時(shí)存儲(chǔ)區(qū)中ASCII碼的存儲(chǔ)格式見表6-38。

表6-38 FMT單元取不同值時(shí)存儲(chǔ)區(qū)中ASCII碼的存儲(chǔ)格式

fc0d103e-98ab-11ee-8b88-92fbcf53809c.png

輸出存儲(chǔ)區(qū)的ASCII碼字符串格式有以下規(guī)律。正數(shù)值寫入輸出存儲(chǔ)區(qū)時(shí)沒有符號(hào)位。負(fù)數(shù)值寫入輸出存儲(chǔ)區(qū)時(shí)以負(fù)號(hào)(-)開頭。除小數(shù)點(diǎn)左側(cè)最靠近的0外,其他左側(cè)0去掉。若小數(shù)點(diǎn)右側(cè)數(shù)據(jù)超過規(guī)定位數(shù),會(huì)按四舍五入去掉低位以滿足位數(shù)要求。輸出存儲(chǔ)區(qū)的大小應(yīng)至少比小數(shù)點(diǎn)右側(cè)的數(shù)字位數(shù)多3字節(jié)。輸出存儲(chǔ)區(qū)中的數(shù)值是右對(duì)齊的。

5.ASCII碼轉(zhuǎn)十六進(jìn)制數(shù)指令

1)指令說明

ASCII碼轉(zhuǎn)十六進(jìn)制數(shù)指令說明如表6-39所示。

表6-39 ASCII碼轉(zhuǎn)十六進(jìn)制數(shù)指令說明

fc4ba5ba-98ab-11ee-8b88-92fbcf53809c.png

2)指令使用舉例

ASCII碼轉(zhuǎn)十六進(jìn)制數(shù)指令的使用如圖6-21所示,當(dāng)I1.0觸點(diǎn)閉合時(shí),執(zhí)行ATH指令,將IN端VB30為首地址的連續(xù)3個(gè)(LEN端指定)字節(jié)單元(VB30~VB32)中的ASCII碼字符串轉(zhuǎn)換成十六進(jìn)制數(shù),保存在OUT端VB40為首地址的連續(xù)字節(jié)單元中。

fc617dc2-98ab-11ee-8b88-92fbcf53809c.png

圖6-21 ASCII碼轉(zhuǎn)十六進(jìn)制數(shù)指令的使用

例如,VB30、VB31、VB32單元中的ASCII碼字符分別是3(00110011)、E(01000101)、A(01000001),執(zhí)行ATH指令后,VB30~VB32中的ASCII碼轉(zhuǎn)換成十六進(jìn)制數(shù),并存入VB40、VB41單元,其中VB40存放十六進(jìn)制數(shù)3E(即00111110),VB41存放Ax(即1010xxxx),x表示VB41原先的數(shù)值不變。

6.十六進(jìn)制數(shù)轉(zhuǎn)ASCII碼指令

1)指令說明

十六進(jìn)制數(shù)轉(zhuǎn)ASCII碼指令說明如表6-40所示。

表6-40 十六進(jìn)制數(shù)轉(zhuǎn)ASCII碼指令說明

fc7195e0-98ab-11ee-8b88-92fbcf53809c.png

2)指令使用舉例

十六進(jìn)制數(shù)轉(zhuǎn)ASCII碼指令的使用如圖6-22所示,當(dāng)I1.0觸點(diǎn)閉合時(shí),執(zhí)行HTA指令,將IN端VB30為首地址的連續(xù)2個(gè)(LEN端指定)字節(jié)單元(VB30、VB31)中的十六進(jìn)制數(shù)轉(zhuǎn)換成ASCII碼字符,保存在OUT端VB40為首地址的連續(xù)字節(jié)單元中。

例如,VB30、VB31單元中的十六進(jìn)制數(shù)分別是3E(0011 1110)、1A(00011010),執(zhí)行HTA指令后,VB30、VB31中的十六進(jìn)制數(shù)轉(zhuǎn)換成ASCII碼,并存入VB40~VB43單元中,其中VB40存放3的ASCII碼(00110011),VB41存放E的ASCII碼,VB42存放1的ASCII碼,VB43存放A的ASCII碼。

在ATH、HTA指令中,有效的ASCII碼字符為0~9、A~F,用二進(jìn)制數(shù)表示為00110011~00111001、01000001~01000110,用十六進(jìn)制數(shù)表示為33~39、41~46。另外,ATH、HTA指令可轉(zhuǎn)換的ASCII碼和十六進(jìn)制數(shù)的最大個(gè)數(shù)為255個(gè)。

fc8ccda6-98ab-11ee-8b88-92fbcf53809c.png

圖6-22 十六進(jìn)制數(shù)轉(zhuǎn)ASCII碼指令的使用

字符串轉(zhuǎn)換指令

字符串轉(zhuǎn)換指令包括整數(shù)、雙整數(shù)、實(shí)數(shù)轉(zhuǎn)字符串指令和字符串轉(zhuǎn)整數(shù)、雙整數(shù)、實(shí)數(shù)指令。

1. 整數(shù)、雙整數(shù)、實(shí)數(shù)轉(zhuǎn)字符串指令

1)指令說明

整數(shù)、雙整數(shù)、實(shí)數(shù)轉(zhuǎn)字符串指令說明如表6-41所示。

表6-41 整數(shù)、雙整數(shù)、實(shí)數(shù)轉(zhuǎn)字符串指令說明

fc9ab3c6-98ab-11ee-8b88-92fbcf53809c.png

整數(shù)、雙整數(shù)、實(shí)數(shù)轉(zhuǎn)字符串指令中FMT的定義與整數(shù)、雙整數(shù)、實(shí)數(shù)轉(zhuǎn)ASCII碼指令基本相同,兩者的區(qū)別在于:字符串轉(zhuǎn)換指令中OUT端指定的首地址單元用來存放字符串的長(zhǎng)度,其后單元才存入轉(zhuǎn)換后的字符串。對(duì)于整數(shù)、雙整數(shù)轉(zhuǎn)字符串指令,OUT首地址單元的字符串長(zhǎng)度值分別固定為8、12;對(duì)于實(shí)數(shù)轉(zhuǎn)字符串指令,OUT首地址單元的字符串長(zhǎng)度值由FMT的高4位來決定。

2)指令使用舉例

圖6-23為實(shí)數(shù)轉(zhuǎn)字符串指令的使用,當(dāng)I0.0觸點(diǎn)閉合時(shí),執(zhí)行R_S指令,將IN端VD10中的實(shí)數(shù)轉(zhuǎn)換成ASCII碼字符串,保存在OUT端指定首地址的存儲(chǔ)區(qū)中,存儲(chǔ)區(qū)的長(zhǎng)度由FMT端VB0單元中的數(shù)據(jù)高4位規(guī)定,ASCII碼字符串在存儲(chǔ)區(qū)的存放形式由FMT端VB0單元中的低4位數(shù)據(jù)規(guī)定。

fcaa0cae-98ab-11ee-8b88-92fbcf53809c.png

圖6-23 實(shí)數(shù)轉(zhuǎn)字符串指令的使用

例如,VD10中實(shí)數(shù)為1234.5,VB0中的數(shù)據(jù)為97(即01100001),執(zhí)行R_S指令后,VB14~VB20中存儲(chǔ)的ASCII碼字符串為“61234.5”。FMT單元取不同值時(shí)存儲(chǔ)區(qū)中ASCII碼字符串的存儲(chǔ)形式見表6-42。

表6-42 FMT單元取不同值時(shí)存儲(chǔ)區(qū)中ASCII碼字符串的存儲(chǔ)形式

fcb51766-98ab-11ee-8b88-92fbcf53809c.png

整數(shù)、雙整數(shù)、實(shí)數(shù)轉(zhuǎn)字符串指令中的輸出存儲(chǔ)區(qū)存放ASCII碼字符串格式與整數(shù)、雙整數(shù)、實(shí)數(shù)轉(zhuǎn)ASCII碼指令基本相同,主要區(qū)別在于前者的輸出存儲(chǔ)區(qū)首地址單元存放字符串長(zhǎng)度,其后才存入字符串。

2. 字符串轉(zhuǎn)整數(shù)、雙整數(shù)、實(shí)數(shù)指令

1)指令說明

字符串轉(zhuǎn)整數(shù)、雙整數(shù)、實(shí)數(shù)指令說明如表6-43所示。

在字符串轉(zhuǎn)整數(shù)、雙整數(shù)、實(shí)數(shù)指令中,INDX端用于設(shè)置開始轉(zhuǎn)換單元相對(duì)首地址的偏移量,通常設(shè)置為1,即從首地址單元中的字符串開始轉(zhuǎn)換。INDX也可以被設(shè)置為其他值,可以用于避開轉(zhuǎn)換非法字符(非0~9的字符)。例如,IN端指定首地址為VB10,VB10~VB17單元存儲(chǔ)的字符串為“Key:1236”,如果將INDX設(shè)為5,則轉(zhuǎn)換從VB14單元開始,VB10~VB13單元中的字符串“Key”不會(huì)被轉(zhuǎn)換。

表6-43 字符串轉(zhuǎn)整數(shù)、雙整數(shù)、實(shí)數(shù)指令說明

fcb8da5e-98ab-11ee-8b88-92fbcf53809c.png

字符串轉(zhuǎn)實(shí)數(shù)指令不能用于轉(zhuǎn)換以科學(xué)計(jì)數(shù)法或者指數(shù)形式表示實(shí)數(shù)的字符串,強(qiáng)行轉(zhuǎn)換時(shí),指令不會(huì)產(chǎn)生溢出錯(cuò)誤(SM1.1=1),但會(huì)轉(zhuǎn)換指數(shù)之前的字符串,然后停止轉(zhuǎn)換。例如,轉(zhuǎn)換字符串“1.234E6”時(shí),轉(zhuǎn)換后的實(shí)數(shù)值為1.234,并且沒有錯(cuò)誤提示。

指令在轉(zhuǎn)換時(shí),當(dāng)?shù)竭_(dá)字符串的結(jié)尾或者遇到第一個(gè)非法字符時(shí),轉(zhuǎn)換指令結(jié)束。當(dāng)轉(zhuǎn)換產(chǎn)生的整數(shù)值過大以致輸出值無法表示時(shí),溢出標(biāo)志(SM1.1)會(huì)置位。

2)指令使用舉例

字符串轉(zhuǎn)整數(shù)、雙整數(shù)、實(shí)數(shù)指令的使用如圖6-24所示,當(dāng)I0.0觸點(diǎn)閉合時(shí),依次執(zhí)行S_I、S_DI、S_R指令。S_I指令將相對(duì)VB0偏移量為7的VB6及后續(xù)單元中的字符串轉(zhuǎn)換成整數(shù),并保存在VW100單元中;S_DI指令將相對(duì)VB0偏移量為7的VB7及后續(xù)單元中的字符串轉(zhuǎn)換成雙整數(shù),并保存在VD200單元中;S_R指令將相對(duì)VB0偏移量為7的VB7及后續(xù)單元中的字符串轉(zhuǎn)換成實(shí)數(shù),并保存在VD300單元中。

fcddc698-98ab-11ee-8b88-92fbcf53809c.png

圖6-24 字符串轉(zhuǎn)整數(shù)、雙整數(shù)、實(shí)數(shù)指令的使用

如果VB0~VB11單元中存儲(chǔ)的ASCII碼字符串為 “11、T、e、m、p、空格、空格、9、8、.、6、F”,執(zhí)行S_I、S_DI、S_R指令后,則在VW100單元中得到整數(shù)98,在VD200單元中得到雙整數(shù)98,在VD300單元中得到實(shí)數(shù)98.6。

編碼與解碼指令

1.指令說明

編碼與解碼指令說明如表6-44所示。

表6-44 編碼與解碼指令說明

fcee59f4-98ab-11ee-8b88-92fbcf53809c.png

2.指令使用舉例

編碼與解碼指令的使用如圖6-25所示,當(dāng)I0.0觸點(diǎn)閉合時(shí),執(zhí)行ENCO和DECO指令,在執(zhí)行ENCO(編碼)指令時(shí),將AC3中最低有效位1的位號(hào)“9”寫入VB50單元的低4位;在執(zhí)行DECO指令時(shí),根據(jù)AC2中低半字節(jié)表示的位號(hào)“3”將VW40中的第3位置1,其他位全部清0。

fd0adb7e-98ab-11ee-8b88-92fbcf53809c.png

圖6-25 編碼與解碼指令的使用

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • plc
    plc
    +關(guān)注

    關(guān)注

    5010

    文章

    13271

    瀏覽量

    463053
  • 二進(jìn)制
    +關(guān)注

    關(guān)注

    2

    文章

    795

    瀏覽量

    41643
  • 指令
    +關(guān)注

    關(guān)注

    1

    文章

    607

    瀏覽量

    35692
  • ASCII
    +關(guān)注

    關(guān)注

    5

    文章

    172

    瀏覽量

    35089

原文標(biāo)題:舉例子詳解:PLC轉(zhuǎn)換指令

文章出處:【微信號(hào):中泰PLC自動(dòng)化教學(xué),微信公眾號(hào):中泰PLC自動(dòng)化教學(xué)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    詳解ARM指令與ARM匯編

    1、2、3、ARM嵌入式開發(fā)之ARM指令與ARM匯編入門4、ARM嵌入式開發(fā)之ARM匯編高級(jí)教程與APCS規(guī)范詳解視頻下載地址:內(nèi)容:01_ARM嵌入式開發(fā)之ARM基礎(chǔ)概念介紹...
    發(fā)表于 12-23 06:45

    arm匯編指令詳解

    arm匯編指令詳解
    發(fā)表于 02-11 10:51 ?216次下載
    arm匯編<b class='flag-5'>指令</b><b class='flag-5'>詳解</b>

    ARM指令詳解

    ARM指令詳解 內(nèi)容提要 ARM指令集 ARM指令集分類與指令格式 ARM指令的尋址方
    發(fā)表于 03-09 09:39 ?263次下載
    ARM<b class='flag-5'>指令</b>集<b class='flag-5'>詳解</b>

    PLC編程語(yǔ)言_操作指令_使用步驟詳解

    PLC編程語(yǔ)言_操作指令_使用步驟詳解,感興趣的小伙伴們可以瞧瞧。
    發(fā)表于 05-12 10:36 ?0次下載

    繼電器控制電路與PLC梯形圖詳解及怎么轉(zhuǎn)換PLC梯形圖

    今天給大家分享繼電器控制電路與PLC梯形圖詳解及怎么轉(zhuǎn)換PLC梯形圖
    的頭像 發(fā)表于 07-26 08:58 ?1.3w次閱讀
    繼電器控制電路與<b class='flag-5'>PLC</b>梯形圖<b class='flag-5'>詳解</b>及怎么<b class='flag-5'>轉(zhuǎn)換</b>為<b class='flag-5'>PLC</b>梯形圖

    三菱PLC、西門子指令詳解

    三菱PLC指令詳解 1 取指令與輸出指令(LD/LDI/LDP/LDF/OUT) 1)LD(取指令
    的頭像 發(fā)表于 01-17 10:48 ?6493次閱讀

    PLC指令的基本類型 PLC指令如何輸入

      PLC指令是可編程邏輯控制器(PLC)的指令集,也稱為PLC編程指令。這些
    發(fā)表于 03-15 14:36 ?4522次閱讀

    PLC指令的組成 PLC指令失效的原因

      PLC指令是可編程邏輯控制器(PLC)的指令集,也稱為PLC編程指令。
    發(fā)表于 03-15 16:49 ?2553次閱讀

    plc數(shù)據(jù)轉(zhuǎn)換指令原理

    plc初學(xué)者總是被這個(gè)問題困擾,編程軟件中有很多轉(zhuǎn)換指令,比如字節(jié)轉(zhuǎn)整數(shù)B-I,整數(shù)轉(zhuǎn)雙整數(shù)I-DI,雙整數(shù)轉(zhuǎn)實(shí)數(shù)DI-R,這些指令使用并不復(fù)雜,但為什么要
    發(fā)表于 04-17 12:35 ?1909次閱讀

    PLC指令大全詳解 PLC26個(gè)基本指令

    PLC指令是可編程邏輯控制器(PLC)使用的機(jī)器指令。
    的頭像 發(fā)表于 07-14 11:08 ?1.6w次閱讀
    <b class='flag-5'>PLC</b><b class='flag-5'>指令</b>大全<b class='flag-5'>詳解</b> <b class='flag-5'>PLC</b>26個(gè)基本<b class='flag-5'>指令</b>

    PLC功能指令詳解

    剛?cè)腴TPLC的大伙,想要掌握并熟悉好編程語(yǔ)言,指令是這當(dāng)中構(gòu)成的基本條件之,不論你的編程習(xí)慣與別人有多么不同,也必須是學(xué)會(huì)指令元素,程
    的頭像 發(fā)表于 09-11 15:21 ?5951次閱讀
    <b class='flag-5'>PLC</b>功能<b class='flag-5'>指令</b><b class='flag-5'>詳解</b>

    詳解pcb和smt的區(qū)別

    詳解pcb和smt的區(qū)別
    的頭像 發(fā)表于 10-08 09:31 ?3341次閱讀

    詳解pcb的msl等級(jí)

    詳解pcb的msl等級(jí)
    的頭像 發(fā)表于 12-13 16:52 ?9552次閱讀

    plc指令表和梯形圖的轉(zhuǎn)換關(guān)系

    介紹這兩種表示方法之間的轉(zhuǎn)換關(guān)系。 PLC指令表是種基于文本的表示方法,它使用不同的指令語(yǔ)句來描述邏輯控制序列。通過編寫
    的頭像 發(fā)表于 12-18 16:04 ?5143次閱讀

    plc基本指令的應(yīng)用有哪些

    控制、數(shù)據(jù)類型轉(zhuǎn)換、算術(shù)運(yùn)算、比較操作、程序控制以及基本的輸入輸出操作等多個(gè)方面。 、邏輯運(yùn)算指令 邏輯運(yùn)算指令PLC編程中最常用的
    的頭像 發(fā)表于 10-21 17:16 ?664次閱讀
    RM新时代网站-首页