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