西門子PLC常用數(shù)據(jù)的編程實(shí)例
發(fā)布于2022-04-06 10:43
227
2
標(biāo)簽:西門子PLC,編程
當(dāng)數(shù)據(jù)用規(guī)定的格式輸入后,在西門子plc的內(nèi)部存儲(chǔ)器中均需要以二進(jìn)制的形式存儲(chǔ),二進(jìn)制格式與實(shí)際數(shù)據(jù)間的關(guān)系較復(fù)雜,它常常會(huì)給程序的調(diào)試與檢查帶來(lái)困難,為了更清楚地說(shuō)明數(shù)據(jù)的使用方法與存儲(chǔ)形式,舉例如下。
【例1】利用數(shù)據(jù)裝載指令(指令代碼L),將各種十進(jìn)制、十六進(jìn)制數(shù)據(jù)讀入到累加器ACCU1。
程序指令如下:
①L 27 ,/將單字長(zhǎng)(16位)的十進(jìn)制常數(shù)27讀入到累加器l中;
②L1#一1 //將雙字長(zhǎng)(32位)的十進(jìn)制常數(shù)一l讀入到累加器l中:
③L2#1010 0000 0010 0001 //將單字長(zhǎng)(16位)的二進(jìn)制數(shù)1010 0000 0010 0001讀入到累
加器l中;
④LDW#16# AOFl_BCD4 //將雙字長(zhǎng)(32位)的十六進(jìn)制常數(shù)AOFl BCD4讀入到累加器l中;
⑤L-2.5 //將雙字長(zhǎng)(32位)的浮點(diǎn)數(shù)“-2.5”讀入到累加器l中(有關(guān)浮點(diǎn)數(shù)c1勺存
儲(chǔ)格式見(jiàn)后述)。
【例2】利用數(shù)據(jù)裝載指令(指令代碼L),將ASCII字符“END”讀入到累加器1中,并確定其執(zhí)行結(jié)果。
程序指令如下:
LfEND. ∥將ASCII字符“END”讀入到累加器l中
對(duì)照表8-5.2“ASCII代碼表”可知,E=45;N=4E D=44,所以本字符在累加器1中的執(zhí)行結(jié)果為:“454E44”。
【例3】利用數(shù)據(jù)裝載指令(指令代碼L),將定時(shí)器時(shí)間值、計(jì)數(shù)器計(jì)數(shù)值讀入到累加器1中,并確定其執(zhí)行結(jié)果。
程序指令如下:
①LT#500ms ∥將定時(shí)器時(shí)間值(500ms)讀入到累加器l中;
②LC#100 //將計(jì)數(shù)器計(jì)數(shù)值(100)讀入到累加器l中;
定時(shí)器時(shí)間值、計(jì)數(shù)器計(jì)數(shù)值以常數(shù)形式存儲(chǔ),因此,累加器l的執(zhí)行結(jié)果分別為500與100。
【例4】利用數(shù)據(jù)裝載指令(指令代碼L),將2字節(jié)(16位)的常數(shù)100、20分別讀入到累加器1的高、低字節(jié)中,并確定其執(zhí)行結(jié)果。
程序指令如下:
LB# (100,20) //將2字節(jié)(16位)的常數(shù)讀入到累加器l中;
本指令與常數(shù)讀入指令“L 27”的區(qū)別在于:
L 27指令:執(zhí)行指令是將常數(shù)27轉(zhuǎn)換為二進(jìn)制后存儲(chǔ)于累加器1,因?yàn)?7=(1B) 16,所以累加器l的執(zhí)行結(jié)果為“00 1B”。常數(shù)值的范圍為0~65535(即O—FFFF)。
L B# (100,20)指令:執(zhí)行指令是將2個(gè)十進(jìn)制常數(shù)轉(zhuǎn)換為二進(jìn)制后,分別存儲(chǔ)于存儲(chǔ)器的高字節(jié)與低字節(jié)中,因?yàn)?00=(64)16;20=(14) 16,所以累加器1的執(zhí)行結(jié)果為“64 14”。指令中括號(hào)內(nèi)的常數(shù)值的范圍為0~255(即O~FF)。
相關(guān)指令:
LB# (100,20,12,15) //將4字節(jié)(32位)的常數(shù)讀入到累加器l中。
【例5】利用數(shù)據(jù)裝載指令(指令代碼L),將4字節(jié)(32位)的地址數(shù)據(jù)10.2、M10.2分別讀入到累加器1中,并確定其執(zhí)行結(jié)果。
程序指令如下:
①LP#10.2 /,將雙字長(zhǎng)(32位)的地址數(shù)據(jù)讀入到累加器l中;
②LP#M10.2 //將雙字長(zhǎng)(32位)的地址數(shù)據(jù)讀入到累加器l中;
注意:地址數(shù)據(jù)在S7中的存儲(chǔ)格式如下:
地址位(bit31):“0”指針寄存器不含地址符,地址符bit24~bit26應(yīng)為0;“l(fā)”指針寄存器含地址符,地址符由bit24~bit26指定。
地址符(bit24~bit26):地址位(bit31)為“1”時(shí)用于指定存儲(chǔ)器地址,地址的編碼如下:
000:地址P:
001:,地址I;
010:地址Q;
011:地址M;
100:地址DBX;
101:地址DIX;
110:地址L:
111:地址VL。
因此,在累加器1中,指令“L P#10.2”的執(zhí)行結(jié)果為“0000 0052”;指令“L P#10.2”的執(zhí)行結(jié)果為“8300 0052”。
【例6】利用數(shù)據(jù)裝載指令(指令代碼L),將日期數(shù)據(jù)2006-11-18讀入到累加器1中,并確定其執(zhí)行結(jié)果。
程序指令如下:
LD#2006_ll—l8 //將雙字長(zhǎng)(32位)的日期讀入到累加器l中;
注意:日期在PLC中的存儲(chǔ)格式為表格數(shù)據(jù),且以1990年1月1日作為起點(diǎn)“O”;以后每天增加1,1990年1月2日為“l(fā)”。因此,2006年11月18日對(duì)應(yīng)累加器l的日期存儲(chǔ)數(shù)據(jù)為:6165;而2007年11月18日對(duì)應(yīng)累加器1的日期存儲(chǔ)數(shù)據(jù)為:6165 365= 6530。
【例7】利用數(shù)據(jù)裝載指令(指令代碼L),將時(shí)間數(shù)據(jù)13:20:33.125s讀入到累加器1中,并確定其執(zhí)行結(jié)果。
程序指令如下:
LTOD#13:20:33.125 ∥將雙字長(zhǎng)(32位)的對(duì)閱讀入到累加器l中。
注意:時(shí)間在PLC中的存儲(chǔ)格式為以ms為單位的數(shù)據(jù),如:
13:20:33.125s =(13×3600 20×60 33.125)s= 48033125 ms
因此,執(zhí)行本指令后累加器1的時(shí)間存儲(chǔ)數(shù)據(jù)為:48033125。
以上就是西門子PLC常用數(shù)據(jù)的編程實(shí)例的相關(guān)信息,你學(xué)會(huì)了嗎?還有很多優(yōu)質(zhì)的PLC編程入門視頻教程,有興趣可以去看看。學(xué)PLC,到技成培訓(xùn)網(wǎng)!