例如:有一個掃碼槍,掃碼完成后的數據要求存入數組中,而后由其它指令來進行取數據,每次只能取走一個數據,而且要先存的先取走,并且隨時可以再存入
1:新建一個FB塊,SCL語言寫,接口接口如下:
2:程序正文:
REGION 存數據
IF #啟動填充 = TRUE AND #INDEX <#count THEN //#啟動填充按鈕為真時,
#INDEX := #INDEX + 1; //索引加1,索引的初始化值為0,
IF #INDEX <= #count THEN //索引小于等于存入的數組的最大長度
#數據數組[#INDEX] := #填充數據;//把填充的數據存入數組
END_IF;
END_IF;
#啟動填充 := FALSE;//#啟動填充按鈕復位
END_REGION
REGION 取數據
IF #啟動取出 = TRUE AND #INDEX >= 1 THEN //#啟動取出按鈕為真時,
#取出數據 := #數據數組[1]; //把數組的第一個元素取出
FOR #i := 1 TO #count - 1 DO //把數組內的數據向前移動一個位置
#數據數組[#i] := #數據數組[#i + 1];
END_FOR;
#數據數組[#INDEX] := -9999; // 把數組的最后一個元素給-9999,表示說明被取走一個
#INDEX := #INDEX - 1; //取走數據,把索引減1
END_IF;
#啟動取出 := FALSE; //#啟動取出按鈕復位
END_REGION
3:開始寫入數據
4:一共存入10個數據
5:開始取數據
6:取完后的數據地址寫入-9999,表示數據已被取走
可以寫入數據長度為10個,如果想要更長的數組,把count改為更長即可
審核編輯 :李倩
-
plc
+關注
關注
5016文章
13388瀏覽量
465416 -
通訊
+關注
關注
9文章
911瀏覽量
35083
原文標題:SCL語言編程:PLC與掃碼槍通訊完成PLC數據隊列的操作
文章出處:【微信號:xue_PLC,微信公眾號:PLC技術圈】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
RS232轉Profinet網關連接銳碼掃碼槍

RS232轉Profinet網關連接銳碼掃碼槍

RS232轉profinet網關掃碼槍自由口與1500程序對比

通過232轉Profinet將霍尼韋爾掃碼槍連接到PLC上

羅克韋爾Ethernet/IP協議PLC轉霍尼韋爾232自由協議掃碼槍

評論