例如:有一個掃碼槍,掃碼完成后的數據要求存入數組中,而后由其它指令來進行取數據,每次只能取走一個數據,而且要先存的先取走,并且隨時可以再存入
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網關連接銳<b class='flag-5'>碼</b><b class='flag-5'>掃</b><b class='flag-5'>碼</b><b class='flag-5'>槍</b>](https://file1.elecfans.com//web2/M00/8D/A0/wKgZomS-OyGAD_E1AABKTU-GkzQ207.jpg)
RS232轉Profinet網關連接銳碼掃碼槍
![RS232轉Profinet網關連接銳<b class='flag-5'>碼</b><b class='flag-5'>掃</b><b class='flag-5'>碼</b><b class='flag-5'>槍</b>](https://file1.elecfans.com/web2/M00/8E/D3/wKgaomTKEn-AWIWbAADqU3KhtNc389.png)
RS232轉profinet網關掃碼槍自由口與1500程序對比
![RS232轉profinet網關<b class='flag-5'>掃</b><b class='flag-5'>碼</b><b class='flag-5'>槍</b>自由口與1500程序對比](https://file1.elecfans.com/web2/M00/B7/E8/wKgZomWAAe2ASY06AAclRncKi-s797.png)
通過232轉Profinet將霍尼韋爾掃碼槍連接到PLC上
![通過232轉Profinet將霍尼韋爾<b class='flag-5'>掃</b><b class='flag-5'>碼</b><b class='flag-5'>槍</b>連接到<b class='flag-5'>PLC</b>上](https://file1.elecfans.com/web2/M00/BC/56/wKgZomWhC7-ADQhiAAPt9Sih8TA003.png)
羅克韋爾Ethernet/IP協議PLC轉霍尼韋爾232自由協議掃碼槍
![羅克韋爾Ethernet/IP協議<b class='flag-5'>PLC</b>轉霍尼韋爾232自由協議<b class='flag-5'>掃</b><b class='flag-5'>碼</b><b class='flag-5'>槍</b>](https://file1.elecfans.com/web1/M00/F4/26/wKgaoWcksrmAdX4oAAMItYbLV_4644.png)
評論