一区免费视频_亚洲精品成人av在线_久久99国产精品久久99果冻传媒_毛片网站多少

  為機床工具企業提供深度市場分析                     

用戶名:   密碼:         免費注冊  |   申請VIP  |  

English  |   German  |   Japanese  |   添加收藏  |  
廣州數控
數控系統

車床 銑床 鉆床 數控系統 加工中心 鍛壓機床 刨插拉床 螺紋加工機床 齒輪加工機床
磨床 鏜床 刀具 功能部件 配件附件 檢驗測量 機床電器 特種加工 機器人

數控系統

電工電力 工程機械 航空航天 汽車 模具
儀器儀表 通用機械 軌道交通 船舶

搜索
熱門關鍵字:

數控機床

 | 數控車床 | 數控系統 | 滾齒機 | 數控銑床 | 銑刀 | 主軸 | 立式加工中心 | 機器人
您現在的位置:數控系統網> 技術前沿>NC程序與PLC數據交換功能應用
NC程序與PLC數據交換功能應用
2021-7-15  來源:成都天翔環境股份有限公司  作者:安保鋼
      西門子840D和840D s l系統中,NC和PLC有高速數據交換區。數據交換的內容可自由配置,能夠實現特定的功能,NC程序獲取PLC一側的機床傳感器狀態,使NC程序更加靈活地運行;也可以使用NC程序收集PLC所需的一些配置數據。數據交換區在NC一側是系統變量$A_DBB[]、$A_DBW[]、$A_DBD[]及$A_DBR[],在PLC一側需通過FC21進行訪問。

      1. NC與PLC數據傳輸原理
 
      (1)高速數據交換區是一塊NC和PLC共享的內存區域,彼此進行寫入和讀取。
   
      (2)高速數據交換區的訪問方式:NC使用系統變量$A_DBB[n],$A_DBW[n],$A_DBD[n]及$A_DBR[n]訪問高速數據交換區;PLC使用FC21訪問高速數據交換區。高速數據交換區的存儲單位是字節。
   
      2. NC對高速數據交換區的訪問
 
    默認情況下NC對高速數據交換區進行讀操作,向數據區寫數據需要使通道機床數據28150$MC_MM_NUM_VDIVAR_ELEMENTS配置可寫的數量。否則會出現報警,如圖1所示。
 
圖 1 
    
      (1)各系統變量: $ A _DBB[n]用來訪問1字節數據,包括BYTE、CHAR,n為字節地址$A_DBW[n]用來訪問2字節整數,n為字節地址,應為2的整數倍;$A_DBD[n]用來訪問4字節整數,n為字節地址,應為4的整數倍;$A_DBR[n]用來訪問浮點數,n為字節地址,應為4的整數倍。
   
      高速數據交換區以字節地址訪問, 以整數為例第一個整數$A_DBW[0],第二個整數$A_DBW[2]。如果下標錯誤,例如$A_DBW[1]則報警,如圖2所示。
 
圖2 
   
      (2)$A_D B B [ n ] 、$A_DBW[n]和$A_DBD[n]的賦值數據格式:整數格式——例如$A_DBW[0]=1;$A_DBW[0]=-1。字符格式——例如$A_DBB[0]='a'。二進制格式—— 例如$ A _
DBB[0]='B10000010'。十六進制格式——例如$A_DBW[0]='H2E0F'。
   
      (3)$A_DBR[n]的賦值數據格式:$A_DBR[n]應為浮點格式,例如$A_DBR[4]=123.456。
   
    (4)數據類型轉換:NC程序在使用高速數據交換區時可進行數據類型轉換,例如:對$A_DBB[n]、$A_DBW[n]和$A_DBD[n]賦值浮點類型,系統不認為這是編程錯誤,而是轉換為整數后賦值。$A_DBB[0]=1.23,則結果是$A_DBB[0]=1。向浮點變量賦值整數也有相應過程。
   
      如果對數據類型轉換沒有充分了解,則要盡量避免,否則與預期可能存在偏差。例如:$A_DBB[0]=-1,R10=$A_DBB[0],結果是R10=255.0,而不是R10=-1。
 
      (5)系統在賦值時對變量的取值范圍進行檢測,如果超出范圍則報警。例如:Byte變量取值范圍0到255,則$A_DBB[0]=256會引發報警,如圖3所示。 
 
圖3 
 

      3. PLC對高速數據交換區的訪問

      PLC使用FC21 T r a n s f e r訪問高速數據交換區。其中: E n a b l e —— 啟動傳送;Funct——WORD類型,等于3是讀取操作,等于4是寫入操作;S7Var——Any類型,指定PLC存儲地址;IVAR1——INT類型,指定高速數據交換區的訪問地址;IVAR2——INT 類型,指定信號量;Error——BOOL類型,等于1則程序出錯;ErrCode——出錯時存儲錯誤代碼。程序如下:

      CALLTransfer

      Enable :=TRUE

      Funct :=B#16#3

      S7Var :=P#L 0.0 INT 7

      IVAR1 :=1000

      IVAR2 :=1001

      Error :=#error

      ErrCode:=#errcode

 

      A n y類型中分別指定起始地址、數據類型和重復次數。P#L0.0 INT 7解釋為起始地址L0.0,數據類型INT,重復次數7IVAR1=1000高速數據交換區的訪問地址是$A_DBB[1000]

 

      上文程序從$A_DBB[1000]起始讀取7個整數,存儲到L0.0起始的7INTLW0LW7

   

      4. 字節順序

 

      NCPLC的字節順序是不同的。NC字節順序:16位高8位在后,低8位在前;32位高16位在后,低16位在前。PLC字節順序與之相反。FC21運行時會根據數據類型轉換字節順序,使傳輸的數值保持正確。在編程時要注意這一點。例如:LW0存儲16進制數 270ELB0存儲27LB1存儲0E;傳送到$A_DBW[0],則$A_DBB[0]存儲0E$A_DBB[1]存儲27

 

      5. 信號量

 

      信號量確保N CP L C之間如有一方對一段地址連續訪問, 則禁止另一方訪問這段地址。信號量在FC21IVAR2 中指定,VAR2=1001即指定$A_DBB[1001]為信號量。

 

      使用信號量時的讀寫過程:PLC——只有在信號量等于1時對數據區讀寫,讀寫完成后把信號量置0,由FC21執行。NC——只有在信號量等于0時對數據區讀寫, 讀寫完成后把信號量置1 。使用同步動作執行。例如WHENEVER $A_DBB[1001]==1DO RDISABLE ,當信號量等于1時讀入禁止。

 

      6. PLCNC傳送BOOL信號

 

      為了使BOOL信號傳送到NC,可把多個BOOL信號保存在字節變量中,然后向NC傳送這個字節變量。NC使用位指令檢測相應的位。 

 

      例如:PLC把某開關信號賦值給L0.3,然后通過FC21LB0傳送給$A_DBB[0]NC使用位指令檢測第三位,即($A_DBB[0]B_AND'B00001000'),如果開關BOOL量等于1,($A_DBB[0]B_AND 'B00001000')不等于0;如果開關BOOL量等于0,( $A_DBB[0] B_AND'B00001000')等于0

 

      PLCNC傳送數組或結構:傳送數組在S7Var中把數組的起始地址、數據類型和數據長度指定即可。由于NCPLC字節順序不同,對于結構則應對其內部各變量逐個按其類型傳送。PLC編程時結構和數組可直接賦值給ANY類型的參數,但變量類型為BYTE,有可能在字節順序上出錯。

 

      7. NCPLC任意傳送數據的試驗

 

      NCPLC傳送數據,首先NC把數據寫入數據交換區,然后PLC從數據交換區讀取數據。PLC要想取得數據首先要知道數據的起始位置、數據量,讀到哪里,這些信息必須在編寫PLC程序時在FC21參數S7VarIVAR1指定。

 

      使NCPLC任意位置傳送數據的方法如下:首先NC把需要傳送的數據寫入數據交換區并寫入數據的起始位置,然后在數據交換區指定位置建立一個ANY結構指定PLC地址數據、類型和數量;PLC調用1FC21讀取數據的起始位置和ANYA結構;PLC調用第2FC21以第1FC21讀取的起始位置和ANYA為參數讀取。

 

      4所示為把所需傳送數據的地址存在1002,在交換區10041013處建立一個ANY結構,1000設為信號量。圖5所示為兩次調用FC21。圖6所示為臨時變量表,第1次調用的FC21 P#L0.0 INT 7涵蓋了變量c t rDepartureDestination。在第2次調用FC21時使用這些變量。

 

圖4 

 

圖5 

 

  

圖6 

 

      8. 結語

 

      全文講述了NC變量和PLC1字節、2字節及4字節基本數據類型的數據交換,以及BOOL變量的傳輸及檢取、數組和結構體的傳輸,可以為具體的應用提供依據,這樣原來需要頻繁編寫或選擇程序的可以具體處理,提高設備的應用性。 
 
 
    投稿箱:
        如果您有機床行業、企業相關新聞稿件發表,或進行資訊合作,歡迎聯系本網編輯部, 郵箱:skjcsc@vip.sina.com