0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

西門子博途中DB_ANY數(shù)據類型的使用

機器人及PLC自動化應用 ? 來源:機器人及PLC自動化應用 ? 2023-07-04 10:17 ? 次閱讀

使用 DB_ANY 數(shù)據類型 (S7-1200/1500)

DB_ANY 數(shù)據類型用來標識任意數(shù)據塊。對于 S7-1200/1500 系列的 CPU,可以選擇訪問編程期間尚不可用的數(shù)據塊。為此,請在訪問塊的塊接口中創(chuàng)建一個 DB_ANY 數(shù)據類型的塊參數(shù)。數(shù)據塊名稱或先前分配給數(shù)據塊名稱的 DB_ANY 數(shù)據類型的變量將在運行期間傳送到此參數(shù)??梢酝ㄟ^以下指令,處理數(shù)據塊中用符號表示的內容:

VARIANT_TO_DB_ANY:將 VARIANT 轉換為 DB_ANY

DB_ANY_TO_VARIANT:將 DB_ANY 轉換為 VARIANT

有關這些指令的更多信息,請參見“基本指令 > STL/SCL > 轉換操作 > VARIANT”(Basic instructions > STL/SCL > Conversion operations > VARIANT)。

該過程具有以下優(yōu)勢:不需要知道將要處理的數(shù)據塊就能創(chuàng)建程序代碼。

在本示例中需要使用以下對象:

4e777118-19a2-11ee-962d-dac502259ad0.png

編程示例

以下示例說明了如何使用 DB_ANY 數(shù)據類型:

沖孔機可以沖出各種各樣的幾何形狀。沖孔作業(yè)將傳送到機器,每個作業(yè)有特定的作業(yè)數(shù)據。作業(yè)數(shù)據的作業(yè)類型和數(shù)據值各有不同。

操作步驟 - 創(chuàng)建 PLC 數(shù)據類型

在第一個作業(yè)中,將在一塊金屬板上沖出一個圓孔。要使沖孔機能夠執(zhí)行此作業(yè),需要提供中心點坐標以及圓孔的半徑??梢酝ㄟ^ PLC 數(shù)據類型 (UDT) 將這些作業(yè)數(shù)據一起傳送到沖孔機。

4e9e2f10-19a2-11ee-962d-dac502259ad0.png

創(chuàng)建 PLC 數(shù)據類型“UDT_Hole”以傳送作業(yè)數(shù)據:

在項目樹中,雙擊“PLC 數(shù)據類型”(PLC data types) 文件夾中的命令“新增數(shù)據類型”(Add new data type)。
這樣,將創(chuàng)建并打開一個用于創(chuàng)建 PLC 數(shù)據類型的新聲明表。
在 PLC 數(shù)據類型中聲明以下行:
X-coordinate > REAL
Y-coordinate > REAL
Diameter > REAL
4eb70be8-19a2-11ee-962d-dac502259ad0.png
4eb70be8-19a2-11ee-962d-dac502259ad0.png

在第二個作業(yè)中,將在一塊金屬板上沖出一個矩形。對于此作業(yè),需要提供兩個坐標,分別定義此矩形的左上角和右下角??梢酝ㄟ^ PLC 數(shù)據類型“UDT_RectangleWindowStatic”將這些作業(yè)數(shù)據一起傳送到沖孔機。

4ee54558-19a2-11ee-962d-dac502259ad0.png

創(chuàng)建 PLC 數(shù)據類型“UDT_RectangleWindowStatic”:

在項目樹中,雙擊“PLC 數(shù)據類型”(PLC data types) 文件夾中的命令“新增數(shù)據類型”(Add new data type)。
這樣,將創(chuàng)建并打開一個用于創(chuàng)建 PLC 數(shù)據類型的新聲明表。
在 PLC 數(shù)據類型中聲明以下行:
X1-coordinate > REAL
Y1-coordinate > REAL
X2-coordinate > REAL
Y2-coordinate > REAL
4eff2432-19a2-11ee-962d-dac502259ad0.png
4eff2432-19a2-11ee-962d-dac502259ad0.png

“UDT_RectangleWindowStatic”的作業(yè)數(shù)據只能用于沖出其邊沿分別與 x 和 y 軸平行對齊的矩形。

如果要沖出具有不同對齊設置的矩形(即不與 x 和 y 軸平行對齊),則需要其它 PLC 數(shù)據類型。例如,在其它 PLC 數(shù)據類型中,可以指定高度和寬度,以及矩形與 x 軸的角度。

4f25ed7e-19a2-11ee-962d-dac502259ad0.png

創(chuàng)建 PLC 數(shù)據類型“UDT_RectangleWindowFlexible”:

在項目樹中,雙擊“PLC 數(shù)據類型”(PLC data types) 文件夾中的命令“新增數(shù)據類型”(Add new data type)。
這樣,將創(chuàng)建并打開一個用于創(chuàng)建 PLC 數(shù)據類型的新聲明表。
在 PLC 數(shù)據類型中聲明以下行:
X-coordinate > REAL
Y-coordinate > REAL
Height > REAL
Width > REAL
Angle > REAL
4f4dce48-19a2-11ee-962d-dac502259ad0.png
4f4dce48-19a2-11ee-962d-dac502259ad0.png

用于指定矩形中心位置的 x 軸和 y 軸坐標。

操作步驟 - 創(chuàng)建數(shù)據塊

在下一部分,您將學習如何將簡單的幾何形狀(其作業(yè)數(shù)據已在 PLC 數(shù)據類型中定義)傳送到沖孔機。沖孔作業(yè)在程序代碼中被細分成多個沖孔操作,這些沖孔操作由沖孔機連續(xù)執(zhí)行。沖孔機有一個十字工作臺,金屬板將緊緊地夾在這個工作臺上??梢詫⑹止ぷ髋_沿 x 軸和/或 y 軸移動,就像在坐標系中一樣。十字工作臺由兩個電機推動。該工具有不同的印模用來在金屬板上沖出各種形狀,例如大小不同的圓形和矩形。該工具還可以最多旋轉 90 度來切出具有不同對齊角度的矩形。

現(xiàn)在,可使用 PLC 數(shù)據類型創(chuàng)建多個背景數(shù)據塊。之后,該背景數(shù)據塊將包含具體值,如圓孔的值。

創(chuàng)建背景數(shù)據塊“DB_OrderHole”:

雙擊“程序塊”(Program blocks) 文件夾下方的命令“添加新塊”(Add new block)。
“添加新塊”(Add new block) 對話框隨即打開。
單擊“數(shù)據塊 (DB)”(Data block (DB)) 按鈕。
指定名稱“DB_OrderHole”。
選擇數(shù)據塊“UDT_Hole”作為類型。
單擊“確定”(OK)。

輸入相應的起始值:

4f72c2c0-19a2-11ee-962d-dac502259ad0.png

要制造特定的金屬板部件,例如控制柜的側面板,則將必需的幾何形狀加載到沖孔機。為此需要創(chuàng)建另一個包含數(shù)據塊列表的數(shù)據塊。

創(chuàng)建數(shù)據塊“DB_OrderList”:

雙擊“添加新塊”(Add new block) 命令。
“添加新塊”(Add new block) 對話框隨即打開。
單擊“數(shù)據塊 (DB)”(Data block (DB)) 按鈕。
指定名稱“DB_OrderList”。
選擇“全局數(shù)據塊”(Global DB) 作為該數(shù)據塊的類型。
單擊“確定”(OK)。

在數(shù)據塊中創(chuàng)建以下作業(yè)列表:

4f84de88-19a2-11ee-962d-dac502259ad0.png

操作步驟 - 創(chuàng)建程序代碼

為每個作業(yè)類型,創(chuàng)建一個單獨的函數(shù)。在此,將沖孔作業(yè)細分為具體的各個沖孔操作,并包含在 ARRAY 中。

創(chuàng)建 PLC 數(shù)據類型“UDT_Punch”。
雙擊“PLC 數(shù)據類型”(PLC data types) 下方的命令“添加新數(shù)據類型”(Add new data type)。
將創(chuàng)建一個名為“UserDataType_x”的新 PLC 數(shù)據類型。
將 PLC 數(shù)據類型重命名為“UDT_Punch”。
在 PLC 數(shù)據類型中聲明以下行:
Tool > DINT
x > REAL
y > REAL
w > REAL
4fa176ba-19a2-11ee-962d-dac502259ad0.png
4fa176ba-19a2-11ee-962d-dac502259ad0.png
創(chuàng)建 ARRAY 數(shù)據塊“DB_PunchList”。
4fc88e76-19a2-11ee-962d-dac502259ad0.png
4fc88e76-19a2-11ee-962d-dac502259ad0.png

要為一個孔洞準備沖孔作業(yè)并將其細分為具體的各個沖孔操作,則需創(chuàng)建一個 SCL 函數(shù)并命名為“FC_PrepareHole”。

聲明該塊接口,如下所示:
4ff7ecd4-19a2-11ee-962d-dac502259ad0.png
4ff7ecd4-19a2-11ee-962d-dac502259ad0.png
編寫以下程序代碼:
501adb7c-19a2-11ee-962d-dac502259ad0.png
501adb7c-19a2-11ee-962d-dac502259ad0.png

要為一個窗口準備沖孔作業(yè),則需通過一個函數(shù)將四個沖孔操作序列組合到一個沖孔作業(yè)中。創(chuàng)建一個 SCL 函數(shù)并命名為“FC_PrepareWindowStatic”。

聲明該塊接口,如下所示:
5036a3ca-19a2-11ee-962d-dac502259ad0.png
5036a3ca-19a2-11ee-962d-dac502259ad0.png
編寫以下程序代碼:
5057bd26-19a2-11ee-962d-dac502259ad0.png
5057bd26-19a2-11ee-962d-dac502259ad0.png

要為一個可變矩形準備沖孔作業(yè),則需通過一個函數(shù)將四個沖孔操作序列組合到一個沖孔作業(yè)中。創(chuàng)建一個 SCL 函數(shù)并命名為“FC_PrepareWindowFlexible”。

聲明該塊接口,如下所示:
5095fbe0-19a2-11ee-962d-dac502259ad0.png
5095fbe0-19a2-11ee-962d-dac502259ad0.png
編寫以下程序代碼:
50c5b07e-19a2-11ee-962d-dac502259ad0.png
50c5b07e-19a2-11ee-962d-dac502259ad0.png

沖孔機現(xiàn)在應該會開始處理作業(yè)。如果它已經在處理作業(yè),則應從作業(yè)列表中獲取下一個作業(yè)并進行準備。

創(chuàng)建一個 SCL 函數(shù)塊。
雙擊“添加新塊”(Add new block) 命令。
“添加新塊”(Add new block) 對話框隨即打開。
單擊“函數(shù)塊 (FB)”(Function block (FB)) 按鈕。
指定名稱“FB_PrepareNextOrder”。
聲明該塊接口,如下所示:
50f5f0cc-19a2-11ee-962d-dac502259ad0.png
50f5f0cc-19a2-11ee-962d-dac502259ad0.png
聲明全局變量“AllOrdersDone”:
511f88e2-19a2-11ee-962d-dac502259ad0.png
511f88e2-19a2-11ee-962d-dac502259ad0.png
編寫以下程序代碼:
513a3f0c-19a2-11ee-962d-dac502259ad0.png
513a3f0c-19a2-11ee-962d-dac502259ad0.png

通過將當前沖孔作業(yè)細分成幾個沖孔操作,為列表中的下一個作業(yè)做好了準備。沖孔機必須能夠識別當前正在處理哪個沖孔作業(yè)。

創(chuàng)建一個 SCL 函數(shù)。
雙擊“添加新塊”(Add new block) 命令。
“添加新塊”(Add new block) 對話框隨即打開。
單擊“函數(shù) (FC)”(Function (FC)) 按鈕。
指定名稱“FC_PrepareOrder”。
聲明該塊接口,如下所示:
5162d552-19a2-11ee-962d-dac502259ad0.png
5162d552-19a2-11ee-962d-dac502259ad0.png
編寫以下程序代碼:
518a63c4-19a2-11ee-962d-dac502259ad0.png
518a63c4-19a2-11ee-962d-dac502259ad0.png

在 SCL 函數(shù)塊“FB_PrepareNextOrder”中調用 SCL 函數(shù)“FC_PrepareOrder”

513a3f0c-19a2-11ee-962d-dac502259ad0.png

之后,在 OB1 中調用“FB_PrepareNextOrder”:

51f1d45a-19a2-11ee-962d-dac502259ad0.png

除了上述的操作方式之外,還通過在預定義作業(yè)中使用數(shù)據塊“DB_OrderList”將作業(yè)加載到沖孔設備中,動態(tài)生成作業(yè)列表。此外,也可選擇不同的作業(yè)列表。在執(zhí)行一個作業(yè)列表后,再將新的作業(yè)列表加載到沖孔設備中。為此,需額外編寫以下代碼:

為函數(shù)塊“FB_PrepareNextOrder”創(chuàng)建一個背景數(shù)據塊。

雙擊“程序塊”(Program blocks) 文件夾下方的命令“添加新塊”(Add new block)。
“添加新塊”(Add new block) 對話框隨即打開。
單擊“數(shù)據塊 (DB)”(Data block (DB)) 按鈕。
指定名稱“DB_FB_PrepareNextOrder”。
選擇數(shù)據塊“FB_PrepareNextOrder”作為類型。
單擊“確定”(OK)。

5215ea98-19a2-11ee-962d-dac502259ad0.png

如需交換作業(yè)列表,則需額外創(chuàng)建一個 SCL 函數(shù):

創(chuàng)建 STL函數(shù)“FC_SwapOrderList”。
聲明該塊接口,如下所示:
522f73f0-19a2-11ee-962d-dac502259ad0.png
522f73f0-19a2-11ee-962d-dac502259ad0.png
聲明全局變量“NewModelNr”:
52630530-19a2-11ee-962d-dac502259ad0.png
52630530-19a2-11ee-962d-dac502259ad0.png
編寫以下程序代碼:
527f4aba-19a2-11ee-962d-dac502259ad0.png
527f4aba-19a2-11ee-962d-dac502259ad0.png

創(chuàng)建數(shù)據塊“DB_OrderRepository”:

雙擊“程序塊”(Program blocks) 文件夾下方的命令“添加新塊”(Add new block)。
“添加新塊”(Add new block) 對話框隨即打開。
單擊“數(shù)據塊 (DB)”(Data block (DB)) 按鈕。
指定名稱“DB_OrderRepository”。
選擇“全局數(shù)據塊”(Global DB) 作為該數(shù)據塊的類型。
單擊“確定”(OK)。

529ba0ca-19a2-11ee-962d-dac502259ad0.png

之后,在 OB1 中調用“FC_SwapOrderList”:

52b0623a-19a2-11ee-962d-dac502259ad0.png

結果

以下示例說明了如何使用指令“DB_ANY_TO_VARIANT:將 DB_ANY 轉換為 VARIANT”來確定數(shù)據塊的 PLC 數(shù)據類型,以及如何據此選擇和執(zhí)行適當?shù)暮瘮?shù)。

審核編輯:湯梓紅
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • plc
    plc
    +關注

    關注

    5006

    文章

    13109

    瀏覽量

    461463
  • cpu
    cpu
    +關注

    關注

    68

    文章

    10804

    瀏覽量

    210846
  • 西門子
    +關注

    關注

    93

    文章

    2996

    瀏覽量

    115491
  • 數(shù)據類型

    關注

    0

    文章

    236

    瀏覽量

    13596

原文標題:西門子博途:使用 DB_ANY 數(shù)據類型

文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應用】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    詳解PLC的工作原理和數(shù)據類型

    PLC的數(shù)據類型&&尋址方式 (這個地方要分清楚,PLC的存儲空間大小(位字節(jié)字雙字BIT BYTE WORD DWORD)、儲存器類型西門子DIDQAIAQMSMVLTCHTHC區(qū);三菱XYMDTCRVZ區(qū))、
    發(fā)表于 10-26 11:38 ?2743次閱讀

    暢銷西門子助聽器價格表_西門子助聽器價格大全

    暢銷西門子助聽器價格表_西門子助聽器價格大全 1、西門子盒式助聽器 AMIGA 176AO Pocket AMIGA 176AO 西門子助聽器價格:441元
    發(fā)表于 08-23 12:19 ?1.3w次閱讀
    暢銷<b class='flag-5'>西門子</b>助聽器價格表_<b class='flag-5'>西門子</b>助聽器價格大全

    西門子plc數(shù)據類型_西門子plc通訊方式

    西門子PLC的品質非常好,其網絡穩(wěn)定性、開放性深受工控人員的喜愛,而且編程軟件分類多,使用方便。在國內工控界具有顯著地位。雖然大家對西門子PLC都有一定的了解,但要你說出西門子PLC各種通信方式的特點,相信很多人都不能完整答出。
    發(fā)表于 07-25 10:57 ?1.4w次閱讀
    <b class='flag-5'>西門子</b>plc<b class='flag-5'>數(shù)據類型</b>_<b class='flag-5'>西門子</b>plc通訊方式

    西門子PLC模擬量輸入輸出相關數(shù)據類型轉換

    plc模擬量輸入輸出都會涉及到數(shù)據類型的互轉問題,然而西門子300系統(tǒng)對于數(shù)據格式有著明確的規(guī)定,一般的四則運算都是在同一數(shù)據類型下才能進行的,這也是一直以來困擾初學者的一個問題。
    發(fā)表于 03-19 08:42 ?1.5w次閱讀
    <b class='flag-5'>西門子</b>PLC模擬量輸入輸出相關<b class='flag-5'>數(shù)據類型</b>轉換

    對于ANY數(shù)據類型及參數(shù)傳遞的詳細解析

    ANY是一種用于傳遞指針的形參數(shù)據類型,可視為POINTE R 類型的擴展,較POINTER 類型為復雜,長度為10個字節(jié),增加的4 字節(jié),最高字節(jié) (Byte 0) 固定為B#16#
    的頭像 發(fā)表于 04-12 10:28 ?8922次閱讀
    對于<b class='flag-5'>ANY</b><b class='flag-5'>數(shù)據類型</b>及參數(shù)傳遞的詳細解析

    編程語言SCL中ANY數(shù)據類型

    ANY數(shù)據類型 在編程語言 SCL 和 STL 中,如果在塊參數(shù)中設定了一個 ANY 指針,則任意類型的存儲器都可以在塊調用時傳遞。 但是,ANY
    的頭像 發(fā)表于 05-25 11:02 ?5110次閱讀
    編程語言SCL中<b class='flag-5'>ANY</b><b class='flag-5'>數(shù)據類型</b>

    S7-1200:DB_ANY類型

    DB_ANY 數(shù)據類型用來標識任意數(shù)據塊。對于 S7-1200,可以選擇訪問編程期間尚不可用的數(shù)據塊。為此,在訪問塊的塊接口中創(chuàng)建一個 DB_ANY
    的頭像 發(fā)表于 03-11 09:33 ?4609次閱讀

    西門子途F型PLC數(shù)據類型與標準PLC數(shù)據類型的差別

    可以像使用標準 PLC 數(shù)據類型 (UDT) 那樣,聲明和使用 F 型 PLC 數(shù)據類型 (UDT) 。可以在安全程序中以及標準用戶程序中使用 F 型 PLC 數(shù)據類型 (UDT) 。
    的頭像 發(fā)表于 07-08 10:15 ?3228次閱讀

    利用物通聯(lián)工業(yè)網關實現(xiàn)西門子plc數(shù)據采集和控制

    西門子plc是目前工業(yè)智能化中常用的一種電氣設備,具有無連接、穩(wěn)定可靠等特點。運用物通聯(lián)工業(yè)網關可以實現(xiàn)對西門子plc的數(shù)據采集和控制。? 一、物通
    的頭像 發(fā)表于 02-23 17:20 ?883次閱讀
    利用物通<b class='flag-5'>博</b>聯(lián)工業(yè)網關實現(xiàn)<b class='flag-5'>西門子</b>plc<b class='flag-5'>數(shù)據</b>采集和控制

    C#使用西門子S7協(xié)議讀寫PLC DB

    是我們上位機要讀寫的DB ?3. 根據西門子S7 協(xié)議文檔讀取DB塊的方式有很多種,直接根據該DB的偏移量進行讀寫也行,但讀或寫數(shù)據都需要進
    發(fā)表于 04-19 10:05 ?21次下載
    C#使用<b class='flag-5'>西門子</b>S7協(xié)議讀寫PLC <b class='flag-5'>DB</b>塊

    西門子SCL-ANY數(shù)據類型

    在編程語言 SCL 和 STL 中,如果在塊參數(shù)中設定了一個 ANY 指針,則任意類型的存儲器都可以在塊調用時傳遞。
    的頭像 發(fā)表于 06-05 10:50 ?2058次閱讀
    <b class='flag-5'>西門子</b>SCL-<b class='flag-5'>ANY</b><b class='flag-5'>數(shù)據類型</b>

    西門子途中的SCL關系表達式

    以從指令框的下拉列表中選擇該比較指令的數(shù)據類型 VARIANT。支持以下數(shù)據類型的變量。
    的頭像 發(fā)表于 06-21 09:31 ?3183次閱讀

    西門子途中聲明STRUCT數(shù)據類型的變量

    要聲明 STRUCT 數(shù)據類型的變量,請按以下步驟操作。
    的頭像 發(fā)表于 06-21 09:32 ?3881次閱讀

    西門子途:使用PLC數(shù)據類型 (UDT)

    PLC 數(shù)據類型 (UDT) 是可自行定義且在程序中可以多次使用的數(shù)據結構。 此結構可包含不同數(shù)據類型的多個元素。 聲明 PLC 數(shù)據類型期間,可以定義各個元素的
    的頭像 發(fā)表于 07-12 17:36 ?7712次閱讀
    <b class='flag-5'>西門子</b><b class='flag-5'>博</b>途:使用PLC<b class='flag-5'>數(shù)據類型</b> (UDT)

    西門子PLC UDT數(shù)據類型的使用方法

    西門子PLC(Programmable Logic Controller)的自定義數(shù)據類型(User Defined Type,簡稱UDT)是一種自定義的數(shù)據結構,可以根據具體需求定義一種包含多個不同
    的頭像 發(fā)表于 07-19 15:01 ?3682次閱讀
    <b class='flag-5'>西門子</b>PLC UDT<b class='flag-5'>數(shù)據類型</b>的使用方法