為機床(chuáng)工具企業提供深度(dù)市場(chǎng)分析                     

用戶名(míng):   密碼:         免費注冊  |   申請VIP  |  

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

車床 銑床(chuáng) 鑽床 數控係統 加工中心 鍛壓機床(chuáng) 刨插拉(lā)床 螺紋(wén)加工機床 齒輪加工機床
磨床 鏜床(chuáng) 刀具 功能部件 配件附(fù)件 檢驗測量 機床電器 特種加工(gōng) 機器人

數控係統

電工電力 工程機械(xiè) 航空航天 汽車 模(mó)具
儀器儀表 通用機械 軌道交通 船舶

搜索
熱門關鍵(jiàn)字:

數控機床

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

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

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

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

      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類型中分別指定起始地址、數據類型和重(chóng)複次數。P#L0.0 INT 7解釋為(wéi)起始地址L0.0,數據類型INT,重複次數(shù)7IVAR1=1000高(gāo)速數據交換區的訪(fǎng)問地址是$A_DBB[1000]

 

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

   

      4. 字節順序

 

      NCPLC的字(zì)節順序是不同的。NC字節順序:16位高8位在後,低8位在前;32位高16位在後,低16位在前。PLC字(zì)節順(shùn)序與之相反。FC21運行(háng)時會根據數據類型(xíng)轉換字節(jiē)順序,使傳輸的(de)數值保持正確。在(zài)編程時要(yào)注意(yì)這(zhè)一點。例如:LW0存儲16進製數 270ELB0存儲27LB1存儲(chǔ)0E;傳送到$A_DBW[0],則$A_DBB[0]存儲0E$A_DBB[1]存儲27

 

      5. 信號量

 

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

 

      使用信號量時的讀寫(xiě)過程:PLC——隻有在信號量等於1時對數據區讀寫,讀寫(xiě)完成後把信號量置0,由FC21執行。NC——隻有在信(xìn)號量等於0時對數(shù)據(jù)區讀寫, 讀寫完成後把信號量(liàng)置1 。使(shǐ)用同步動作執行。例如WHENEVER $A_DBB[1001]==1DO RDISABLE ,當信號量等於1時讀入禁止(zhǐ)。

 

      6. PLCNC傳送(sòng)BOOL信號(hào)

 

      為了使(shǐ)BOOL信號傳送到NC,可把多(duō)個BOOL信號保存(cún)在(zài)字節變(biàn)量中,然後向NC傳送這個字節變量(liàng)。NC使用位指(zhǐ)令(lìng)檢(jiǎn)測相應的位。 

 

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

 

      PLCNC傳送數組或結構:傳送(sòng)數組在(zài)S7Var中把數(shù)組的起始地址、數據(jù)類型(xíng)和數據長度指定即可。由於NCPLC字節順序不(bú)同,對於結構則(zé)應(yīng)對其內(nèi)部各變(biàn)量逐(zhú)個按其類型傳送。PLC編程時結構和數組可直接賦值給ANY類型的參數,但變量類型為BYTE,有可能在(zài)字節順序上出錯。

 

      7. NCPLC任意傳送數據的(de)試驗(yàn)

 

      NCPLC傳送數據,首先NC把數據(jù)寫入數據(jù)交換(huàn)區,然後PLC從(cóng)數據交換區讀取數據。PLC要想取得數據首先要知道數(shù)據的起始位置、數據量,讀到哪裏(lǐ),這些信息必須在編寫PLC程序時在(zài)FC21參(cān)數S7VarIVAR1指(zhǐ)定。

 

      使NC向(xiàng)PLC任意位置傳送數據的方法如下(xià):首先NC把需要傳送的數(shù)據(jù)寫入數據交(jiāo)換區並寫(xiě)入數據的起始位置,然後在數據交換區指定位置建立一個ANY結構指(zhǐ)定PLC地址數據、類型和數量;PLC調用1FC21讀取數(shù)據的起始位置(zhì)和ANYA結構;PLC調用第2FC21以第1FC21讀取的起始位置和ANYA為參數讀取。

 

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

 

圖4 

 

圖5 

 

  

圖6 

 

      8. 結語

 

      全文講述了NC變量和PLC1字節、2字節及4字節基本數據(jù)類(lèi)型的數據交換,以及BOOL變量的傳輸及檢取、數組和結構體的傳輸,可以為(wéi)具體的應用提供依據(jù),這樣原來需要頻繁編(biān)寫或選擇程(chéng)序的可以具體處理,提高(gāo)設備(bèi)的應用性。 
 
 
    投稿箱:
        如果您有機床行業、企業(yè)相關新聞稿件(jiàn)發表(biǎo),或進行資訊合作,歡迎聯係本網編(biān)輯部, 郵(yóu)箱:skjcsc@vip.sina.com
国产999精品2卡3卡4卡丨日韩欧美视频一区二区在线观看丨一区二区三区日韩免费播放丨九色91精品国产网站丨XX性欧美肥妇精品久久久久久丨久久久久国产精品嫩草影院丨成人免费a级毛片丨五月婷婷六月丁香综合