表格指令包括填表指令、查表指令、先進(jìn)先出提令、后進(jìn)先出指令和存儲(chǔ)區(qū)填充指令。
填表指令
1.指令說(shuō)明
填表指令說(shuō)明如表6-45所示。
表6-45 填表指令說(shuō)明
2.指令使用舉例
填表指令的使用如圖6-26 所示,在PLC上電運(yùn)行時(shí),SM0.1觸點(diǎn)接通一個(gè)掃描周期,MOV_W指令執(zhí)行,將“6”送入VW200單元中(用來(lái)定義表的最大格數(shù));當(dāng)I0.0觸點(diǎn)閉合時(shí),上升沿P觸點(diǎn)接通一個(gè)掃描周期,ATT(AD_T_TBL)指令執(zhí)行,由于VW200單元中的數(shù)據(jù)為6,ATT指令則將VW200~VW214共8個(gè)單元定義為表。其中,第3~8共6個(gè)單元(VW204~VW214)定義為表的填表區(qū),第1單元(VW200)為填表區(qū)最大格數(shù),第2單元(VW202)為填表區(qū)實(shí)際使用格數(shù),如果先前表的第2單元VW202中的數(shù)據(jù)為0002,指令認(rèn)為填表區(qū)的兩個(gè)單元V204、V206已填入數(shù)據(jù),會(huì)將VW100中的數(shù)據(jù)填入后續(xù)單元VW208中,同時(shí)VW202單元數(shù)據(jù)自動(dòng)加1,變?yōu)?003。如果I0.0觸點(diǎn)第二次閉合時(shí)VW100中的數(shù)據(jù)仍為1234,則ATT指令第二次執(zhí)行后,1234則被填入VW210單元,VW202中的數(shù)據(jù)會(huì)自動(dòng)變?yōu)?004。
圖6-26 填表指令的使用
當(dāng)表的第2單元的數(shù)值(實(shí)際使用格數(shù))等于第1單元的數(shù)值(表最大格數(shù))時(shí),如果再執(zhí)行ATT指令,表出現(xiàn)溢出,會(huì)使SM1.4=1。
查表指令
1.指令說(shuō)明
查表指令說(shuō)明如表6-46所示。
表6-46 查表指令說(shuō)明
2.指令使用舉例
查表指令的使用如圖6-27所示,當(dāng)I0.0觸點(diǎn)閉合時(shí),執(zhí)行FND指令,從VW202為首地址單元的表中查找數(shù)據(jù)等于3130(由CMD和PTN設(shè)定的條件)的單元,再將查找到的滿足條件的單元編號(hào)存入AC1中。
圖6-27 查表指令的使用
如果要從表的0單元開(kāi)始查表,在執(zhí)行FND指令查表前,應(yīng)用有關(guān)指令將AC1置0;執(zhí)行FND指令后,AC1中存放的為第1個(gè)滿足條件的單元編號(hào)。如果需要查表的剩余單元,在再次執(zhí)行FND指令前,須將AC1的值加1,當(dāng)查到表的最后單元沒(méi)有找到符合條件的單元時(shí),AC1的值變?yōu)镋C值(實(shí)際填表數(shù))。
FND指令的TBL端指定單元存放的是實(shí)實(shí)際使用填表數(shù),而ATT指令的TBL端指定單元存放的是最大填表數(shù),因此,如果要用FND指令查ATT指令建立的表,F(xiàn)ND指令的TBL端指定單元應(yīng)較ATT指令高2字節(jié)。
先進(jìn)先出和后進(jìn)先出指令
1.指令說(shuō)明
先進(jìn)先出和后進(jìn)先出指令說(shuō)明如表6-47所示。
表6-47 先進(jìn)先出和后進(jìn)先出指令說(shuō)明
2.指令使用舉例
先進(jìn)先出指令的使用如圖6-28所示,當(dāng)I0.0觸點(diǎn)閉合時(shí),執(zhí)行FIFO指令,將VW200為首地址的表中第一個(gè)數(shù)據(jù)移到VW400單元,如果FIFO執(zhí)行前表中第一個(gè)數(shù)據(jù)為5431,則FIFO指令執(zhí)行后,5431被移到VW400中;表中第二個(gè)及后續(xù)數(shù)據(jù)(8942、1234)會(huì)依次上移一個(gè)單元,同時(shí)表的實(shí)際填表數(shù)(VW202單元中的數(shù))會(huì)減1,由0003變?yōu)?002。
圖6-28 先進(jìn)先出指令的使用
后進(jìn)先出指令的使用如圖6-29所示,當(dāng)I0.1觸點(diǎn)閉合時(shí),執(zhí)行LIFO指令,將VW200為首地址的表中最后一個(gè)數(shù)據(jù)移到VW300單元,如果LIFO執(zhí)行前表中最后一個(gè)數(shù)據(jù)為1234,則LIFO指令執(zhí)行后,1234被移到VW300中,表的實(shí)際填表數(shù)(VW202單元中的數(shù))會(huì)減1,由0003變?yōu)?002。
如果試圖從空表中移走數(shù)據(jù),會(huì)使SM1.5=1。
圖6-29 后進(jìn)先出指令的使用
存儲(chǔ)區(qū)填充指令
1.指令說(shuō)明
存儲(chǔ)區(qū)填充指令說(shuō)明如表6-48所示。
表6-48 存儲(chǔ)區(qū)填充指令說(shuō)明
2.指令使用舉例
存儲(chǔ)區(qū)填充指令的使用如圖6-30所示,當(dāng)I0.1觸點(diǎn)閉合時(shí),F(xiàn)ILL指令執(zhí)行,將IN端指定的數(shù)據(jù)0填充到VW200為首地址(OUT端指定)的10個(gè)(N端指定)連續(xù)字單元中,結(jié)果VW200、VW202~VW218共10個(gè)單元中的數(shù)據(jù)全部為0。
圖6-30 存儲(chǔ)區(qū)填充指令的使用
-
plc
+關(guān)注
關(guān)注
5010文章
13271瀏覽量
463044 -
指令
+關(guān)注
關(guān)注
1文章
607瀏覽量
35692
原文標(biāo)題:PLC表格指令
文章出處:【微信號(hào):PLC與自控設(shè)備,微信公眾號(hào):PLC與自控設(shè)備】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論