在s7—200 plc指令系統(tǒng)中,一個表由表地址(表的首地址)指明。表地址和第二個字地址所對應的單元分別存放兩個表參數(shù)(最大填表數(shù)tl和實際填表數(shù)ec),之后是最多100個填表數(shù)據(jù),表只對字型數(shù)據(jù)存儲。包括表存數(shù)指令、表取數(shù)指令、表查找指令。
一、表存數(shù)指令
表只對字型數(shù)據(jù)存儲,表的格式如下表所示。
圖1 表的格式
att,表存數(shù)指令
該指令在梯形圖中有2個數(shù)據(jù)輸入端:data為數(shù)值輸入,指出將被存儲的字型數(shù)據(jù)或其地址;tbl表格的首地址,用以指明被訪問的表格。當使能輸入有效時,將輸入字型數(shù)據(jù)添加到指定的表格中。
表存數(shù)時,新存的數(shù)據(jù)添加在表中最后一個數(shù)據(jù)的后面。每向表中存一個數(shù)據(jù),實際填表數(shù)ec會自動加1。
圖2 指令att執(zhí)行結(jié)果
二、表取數(shù)指令
1、fifo,先進先出指令
當使能輸入有效時,從tbl指明的表中移出第一個字型數(shù)據(jù)并將其輸出到data所指定的字單元。
取數(shù)時,移出的數(shù)據(jù)總是最先進入表中的數(shù)據(jù)。每次從表中移出一個數(shù)據(jù),剩余數(shù)據(jù)依次上移一個字單元位置,同時實際填表數(shù)ec會自動減1。
指令格式: fifo tbl, data 。
例: fifo vw100, ac0
圖3 fifo先進先出指令
圖4 指令fifo執(zhí)行結(jié)果
2、lifo,后進先出指令
當使能輸入有效時,從tbl指明的表中移出最后一個字型數(shù)據(jù)并將其輸出到data所指定的字單元。
取數(shù)時,移出的數(shù)據(jù)是最后進入表中的數(shù)據(jù)。每次從表中取出一個數(shù)據(jù),剩余數(shù)據(jù)位置保持不變,實際填表數(shù)ec會自動減1。
指令格式: lifo tbl, data
例: lifo vw100, ac0
圖5 lifo后進先出指令
圖6 指令lifo執(zhí)行結(jié)果
三、表查找指令:fnd?
通過表查找指令可以從字型數(shù)表中找出符合條件的數(shù)據(jù)所在的表中數(shù)據(jù)編號,編號范圍為0~99。
在梯形圖中有4個數(shù)據(jù)輸入端:tbl表格的首地址,用以指明被訪問的表格;ptn是用來描述查表條件時進行比較的數(shù)據(jù);cmd是比較運算符“?”的編碼,它是一個1~4的數(shù)值,分別代表=、<>、<和>運算符;indx用來指定表中符合查找條件的數(shù)據(jù)的地址。
圖7 表查找指令
圖8 表查找指令執(zhí)行結(jié)果