編程示例
在此編程示例中,將移動(dòng)在生產(chǎn)班次期間為示例收集的數(shù)據(jù)值以作進(jìn)一步處理。收集的數(shù)據(jù)放在 ARRAY 中。通過(guò)“MOVE_BLK_VARIANT:移動(dòng)塊”(Move block) 指令,可以動(dòng)態(tài)或以類型安全方式移動(dòng)整個(gè) ARRAY 或個(gè)別 ARRAY 元素??梢詾樵春湍繕?biāo) ARRAY 自由選擇 ARRAY 限值,這些限值不必匹配。但是,要移動(dòng)的數(shù)據(jù)值的數(shù)據(jù)類型必須匹配。該指令在所有編程語(yǔ)言中都可用。
通過(guò) VARIANT 數(shù)據(jù)類型,也可以使用已創(chuàng)建的程序代碼并通過(guò)在塊調(diào)用中指定不同的源和目標(biāo)區(qū)域來(lái)移動(dòng)另一個(gè)生產(chǎn)班次的數(shù)據(jù)。
步驟
使用 SCL 編程語(yǔ)言創(chuàng)建函數(shù)并將其命名為“FC_PartialArrayCopy”。 按如下方式聲明塊接口: 按如下方式創(chuàng)建 SCL 程序代碼: 可以找到以下程序代碼作為模板。 創(chuàng)建 PLC 數(shù)據(jù)類型“UDT_MyStruct”: 創(chuàng)建全局?jǐn)?shù)據(jù)塊“DB_WithArrays”: 在組織塊(例如 OB1)中調(diào)用“FC_PartialArrayCopy”函數(shù),并使用 DB_WithArrays 數(shù)據(jù)塊初始化參數(shù)。輸入指定的常量: 也可以使用第三個(gè)和第四個(gè) ARRAY(數(shù)據(jù)類型為 REAL)來(lái)代替使用前兩個(gè) ARRAY (數(shù)據(jù)類型為 UDT_MyStruct)。 |
結(jié)果
在程序周期中調(diào)用“FC_PartialArrayCopy”塊后,會(huì)將從第四個(gè)元素開(kāi)始的兩個(gè)數(shù)據(jù)值立即從“DB_WithArrays”全局?jǐn)?shù)據(jù)塊的第一個(gè) ARRAY 復(fù)制到該數(shù)據(jù)塊的第二個(gè) ARRAY 中。復(fù)制的數(shù)據(jù)值將插入到第二個(gè) ARRAY 中(從第四個(gè)元素開(kāi)始)。
用于復(fù)制的 SCL 程序代碼:
IF IS_ARRAY(#SourceArray) AND TypeOfElements(#SourceArray) = TypeOfElements(#DestinationArray) THEN |
#Error := MOVE_BLK_VARIANT(COUNT := #Count, SRC := #SourceArray, SRC_INDEX := #SourceIndex, |
DEST => #DestinationArray, DEST_INDEX := #DestinationIndex); |
END_IF; |
#FC_PartialArrayCopy := #Error; |
SCL |
---|
審核編輯:彭菁
-
編程
+關(guān)注
關(guān)注
88文章
3616瀏覽量
93735 -
移動(dòng)數(shù)據(jù)
+關(guān)注
關(guān)注
0文章
42瀏覽量
10561 -
Array
+關(guān)注
關(guān)注
99文章
18瀏覽量
17867 -
程序代碼
+關(guān)注
關(guān)注
4文章
42瀏覽量
15438
原文標(biāo)題:西門子博途:移動(dòng)數(shù)據(jù)的示例
文章出處:【微信號(hào):gh_a8b121171b08,微信公眾號(hào):機(jī)器人及PLC自動(dòng)化應(yīng)用】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論