1. 外部電路設計
由于多數(shù)廠可能是首次使用HEIDENHAIN的TNC320系統(tǒng),對系統(tǒng)了解的不多,所以我們先從為外電路設計中關于在數(shù)控系統(tǒng)及伺服上電的控制,機床急?;芈?,進給軸使能和主軸使能的控制等主要部分進行介紹。
在HEIDENHAIN每一款數(shù)控系統(tǒng)的技術文檔中,我們都會找到一張與系統(tǒng)對應的主體控制回路的示例,該示例用于指導機床制造廠商進行外圍電路的設計??赡苁强紤]到歐洲安全規(guī)范的標準,HEIDENHAIN的控制回路示例中用了很多安全繼電器等安全模塊,一個普通的安全繼電器價格通常都是上千元的,這樣的高成本對于國內眾多中小企業(yè)來說顯然是不適宜的,為此,我們對HEIDENHAIN示例中采用繼電器模組搭建的控制上電邏輯和急停鏈的方式進行了改變,使用普通繼電器進行組合來實現(xiàn)類似的功能,這樣既降低了成本又取得了較好的效果。
根據(jù)HEIDENHAIN所提供的外圍控制回路示例,我們在不改變其原理及功能的前提下將三個繼電器模組分解為由多個繼電器所組成的控制回路,具體分解如下:
模組SSK1:
將模組SSK1 分解成為3個繼電器,分別為SSK1-1,SSK1-2,SSK1-3。見下圖
如上圖所示對于SSK1而言,只是將其做了拆分,并沒有改變其基本原理,其中在繼電器SSK1-2這條回路上,按照HEINDENHAIN的要求將急停以及各軸硬限位串在了一起,并且硬限位采用了“編碼”的形式,該模組為急停測試模組,最后給主繼電器K2,K3的線圈通電,影響各個軸的驅動能使。而二極管的作用是為了防止在撞到硬限位的情況下,按超程解除鍵,在繼電器K16觸點閉合時,電流不會而引起誤信號的情況出現(xiàn)。其中K16為超程解除繼電器的常開觸點。
模組SSK2:
模組SSK2和模組SSK3為許可繼電器模組。
模組SSK2和模組SSK3共分解成為3個繼電器SSK2-1,SSK2-2,SSK2-3,即可滿足要求。如下圖所示:
上圖為許可繼電器模組,K4,K5為軸驅動能使繼電器。由于HENDENHAIN要求在保護門打開時機床要掉電,而該模組的作用就是為了在這種情況下,打開操作臺的特殊鍵,從而用手脈控制機床的運行。SK24,SK25分別為手脈允許和門保護的輸入信號的輸入點,這里的兩個二極管的作用同上面提到的作用相同,均是為了防止在接通回路時產生誤信號。
模組SSK2及模組SSK3的關系
在模組SS1完成后,主繼電器K2,K3輸出,模組SSK2,SSK3完成后,給各伺服軸能使,K6,K7即為給各軸能使的繼電器。原理圖如下:
在這里,HENDENHAIN要求各軸在下電時要延時關斷,時間約為1秒,是為了防止在加工急停時各進給軸停止后,主軸未完全停止,從而引起打刀的情況出現(xiàn),故要求斷電延時,在上圖中是用的繼電器K9及通電延時繼電器,轉成的斷電延時繼電器,從而實現(xiàn)其斷電延時的要求。
下圖為HEIDENHAIN示例中的一部分,在我們的實際使用中發(fā)現(xiàn),將安全繼電器模組改為繼電器組合成的類似的功能塊后,若完全按照示例中的接線方式連接時,在TNC320運行時會產生誤信號,導致系統(tǒng)無法通過開機后的第一次急?;芈窚y試。
經實驗分析,由于將安全繼電器模組改為繼電器組群后,在下電時繼電器K4和繼電器K5的常開觸點斷開較慢,所以會對PLCX42/4腳產生蓄能,產生誤信號。故而將其改為下圖所示的樣子:
以上就是在使用TNC320時,外圍電路設計中最為核心的部分,其他外圍控制回路的設計只要按照大家以往的設計經驗就可以設計出一個滿足客戶要求的控制回路了。
1. PLC軟件設計
在機床電氣設計中,除了外圍電路的設計外,另外一大塊就是系統(tǒng)的PLC的設計。HEIDENHAIN使用語句表的形式進行PLC編程,可能對不少用慣了梯形圖程序的人員來說,頭一次接觸的時候會覺的很難,其實不然,HEIDENHAIN為機床制造商免費提供了與系統(tǒng)軟件對應的PLC基本程序庫,該程序庫基本包括了常見銑床,加工中心的所有功能,因此,在使用TNC320時我們只要直接拿來使用,并對少許功能稍做改動即可,為我們做PLC設計時節(jié)約了很多時間。
本次介紹的重點是配置TNC320的PLC程序。
對于主軸帶掛檔在銑床中是較為多見的,在HEIDENHAIN所提供的PLC基本程序庫中也包含有掛檔的基本程序,在程序編在了名為GEAR.SRC的文件中,要對其進行配置只需將OEM.mcg中的 DEFINE Cfg_spindle_with_gear = "inactive"
改為 DEFINE Cfg_spindle_with_gear = "active"
這樣便啟用了掛檔程序,接下來就要配置IO點了,HEIDENHAIN的語句表編程是可以認所分地址的名稱的,所以為了方便編程,就需要把名稱起好,便于后期的編程使用。同樣HEIDENHAIN也在PLC的程序庫中定義了常見的IO點,并起好了名稱,我們只需打開名為GLB_IO.DEF的定義文件,找到檔位的輸出信號(以兩檔為例),并將地址賦予該信號即可。(O7,O8即為檔位1,2的輸出地址,而O_gear_range_1和O_gear_range_2即為名稱 )。
O_gear_range_1 O7
O_gear_range_2 O8
同理在GLB_IO.DEF中找到檔位到達信號,然后賦予其地址即可(I21和I22為檔位到達信號)。
I_gear_range_1 I21
I_gear_range_1 I22
這樣一個主軸掛擋的基本配置就已經完成了。
此外對于大多數(shù)常用的功能,均編在了HEIDENHAIN的PLC基本程序中,都只要在文件GLB_IO.DEF中找到IO點,并賦予其地址即可完成配置。甚至是對于加工中心,其PLC更是包含了多達16種的換刀方式及10種刀庫類型,可根據(jù)機床的實際的情況來選擇組合應用,確定后只需在OEM.mcg中,寫入刀具及刀庫類型。
下面為PLC中所提供的換刀及刀庫類型,以基本滿足實際需求。標記“X”為所具有的功能。
Tool changing system (Z is always the tool axis)
* inactive - only manual tool change posible
* TC_type_xx -> 01 02 03 04
* single arm X X X X
* pickup Z Y X
* pickup Z X
* pickup Z X X
* pickup Z X+/X-/Y+/Y- X
* mag moving with X axis X
* mag moving to spindle X
* mag on fixed position X
* no magazine X
* TC_type_xx -> 05 06 07 08 09 10 11 12
* double arm X X X X X X X X
* (hydraulic system)
* TC arm middle position X X X X
* (as basic position)
* TC arm middle position X X X X
* (for exchange Tspecial)
* TC gripper X X X X
* (output)
* TC_type_xx -> 13 14 15 16
* double arm X X X X
* (cam driven)
* TC arm middle position X X
* (Tfest oder Tsonder)
* TC gripper X X
DEFINE Cfg_Tool_changing_system = "TC_type_13"
上例由DEFINE Cfg_Tool_changing_system = "TC_type_13" 可知,選用的是“TC_type_13”的換刀類型,再看上表TC_TYPE_XX-> 行的“13”下的“X”標記可知,選用的是雙手臂凸輪換刀。大家可根據(jù)實際情況選用合適的換刀方式,然后在DEFINE Cfg_Tool_changing_system里寫上所選用的類型即可。
Tool magazine system
* inactive - only manual tool change posible
* Mag_type_xx -> 01 02 03 04 05 06 07 08 09 10
* Pulse X X X X X X X X
* Reference sensor X X X X
* Pocket 90 deg shift X X X X
* Index X X X X
* PLC axis X X
* Pocket 90 deg shift X
DEFINE Cfg_TC_magazine_system = "Mag_type_02"
同理,由所選類型“Mag_type_02”可知,刀庫類型為脈沖式帶零點開關且刀套可90度翻轉。經過如上兩個的填寫對于換刀的配置就已基本完成。
由此可知,HEIDENHAIN的PLC所擁有的強大功能,并因此給程序編輯帶來了極大的便利,從而在程序編輯上節(jié)省出了大量的時間,剩下的只需在實際應用中根據(jù)實際情況做適當?shù)男薷恼{整即可。
對于一些附加功能的設備,并不包含在PLC的基本程序庫中,此時就需要編程人員來自己編程。
以所遇到的平衡油缸來說,它有兩個壓力檢測信號,分別為壓力低點(I_hydraulic_low)和壓力高點信號(I_hydraulic_high)。要求在壓力低點時,液壓站工作(O_hydraulic_pump_ON),給油缸打油并在到達壓力高點時停止打油。
首先要在GLB_IO.DEF中定義其IO點,并賦予地址及名稱。
I_hydraulic_low I20
I_hydraulic_high I21
O_hydraulic_pump_ON O20
以上IO地址可根據(jù)實際情況進行分配,并不唯一。
然后在OEM_FUNC.SRC文件中進行程序的編制。其中OEM_FUNC.SRC文件為HEIDENHAIN專為用戶額外添寫程序時所設定的,用戶可將自己編寫的程序寫入其中。如下在OEM_FUNC.SRC中所添加的平衡油缸的程序。
L I_control_operational
A I_hydraulic_low
S O_hydraulic_pump_ON
L I_hydraulic_high
ON I_control_operational
R O_hydraulic_pump_ON