1. <del id="sqmd4"></del>
      <object id="sqmd4"></object>
      1. <object id="sqmd4"></object>
          加入收藏 在線留言 聯系我們
          關注微信
          手機掃一掃 立刻聯系商家
          全國服務熱線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