加入收藏 在線留言 聯系我們
        關注微信
        手機掃一掃 立刻聯系商家
        全國服務熱線13185520415
        公司新聞
        使用 HMI 變量作為塊輸入輸出參數時,為什么有時會出現通過觸摸屏不能修改 CPU 數據
        發布時間: 2024-04-09 21:14 更新時間: 2024-11-22 08:00
        觀看使用 HMI 變量作為塊輸入輸出參數時,為什么有時會出現通過觸摸屏不能修改 CPU 數據視頻

        在 PLC 處理調用塊期間,HMI 變量可能會改變輸入輸出參數的值,然而在塊調用結束后會覆蓋HMI的寫操作(當回寫時)。

        STEP 7 (TIA Portal) 在內部傳送數據可以使用指針方式或者復制方式,取決于參數的傳送區域和數據類型。

        如果數據作為副本傳送(值傳遞),塊調用時操作數的值將被復制到被調用塊的 Input 參數。例如,FB 的副本是存儲在背景數據塊,FC 的副本是存儲在塊堆棧區。

        如果使用結構型變量(像數據類型ARRAY,STRUCT,STRING,...)作為塊參數,那么 STEP7 是以指針傳遞數據的(引用傳遞)。

        以下表格對比了兩種數據傳遞方式之間的不同之處。

           

        數據作為副本傳遞(值傳遞)

        數據作為指針傳遞(引用傳遞)

        塊調用時,塊使用的是參數的值,并不直接使用參數。塊使用參數所指向的內存地址。
        寫訪問只改變副本,而不會改變塊中的值。寫訪問直接改變參數。
        *副本需要額外的內存。因為沒有副本,所以不需要額外的內存。

        *備注
        在使用 InOut 參數的情況下,即便副本并沒有在塊中被修改,在塊結束的時候操作數的副本也將寫入操作數。這意味著在塊運行期間,操作數(或操作數的一部分)的異步改變(通過 HMI 寫訪問或者更高優先等級的運行系統)將會丟失,因為塊被調用后,操作數的值會被覆蓋。

        補救方法
        在共享數據塊中定義變量,并且使用共享DB塊變量作為塊參數。

        在 S7-1200/S7-1500 塊調用中,被傳遞的變化的數據存儲在 InOut 參數中,那么以上所述內容也會發生。


        例子
        一個有 “優化的塊訪問” 選項的功能塊,調用一個沒有 “優化的塊訪問” 選項并且包含一個使用 PLC 數據類型作為 InOut 參數的功能塊。

        備注
        不要使用M存儲區的原因如下:

      1. 由于兼容性的問題,M存儲區并沒有被優化,所以優化的全局DB比M存儲區更好用。

      2. 每種控制器的M存儲區大小不一樣,所以使用共享 DB 塊就可以隨意使用你的程序。

      3. 聯系方式

        • 電  話:13510737515
        • 聯系人:董海波
        • 手  機:13185520415
        • 微  信:13185520415