在回答這個問題之前,首先要清楚伺服電機的用途,相對于普通的電機來說,伺服電機主要用于精確定位,因此大家通常所說的控制伺服,其實就是對伺服電機的位置控制。其實,伺服電機還用另外兩種工作模式,那就是速度控制和轉矩控制,不過應用比較少而已。
速度控制一般都是有變頻器實現,用伺服電機做速度控制,一般是用于快速加減速或是速度精準控制的場合,因為相對于變頻器,伺服電機可以在幾毫米內達到幾千轉,由于伺服都是閉環(huán)的,速度非常穩(wěn)定。轉矩控制主要是 控制伺服電機的輸出轉矩,同樣是因為伺服電機的響應快。應用以上兩種控制,可以把伺服驅動器當成變頻器,一般都是用模擬量控制。
伺服電機最主要的應用還是定位控制,位置控制有兩個物理量需要控制,那就是速度和位置,確切的說,就是控制伺服電機以多快的速度到達什么地方,并準確的停下。
伺服驅動器通過接收的脈沖頻率和數量來控制伺服電機運行的距離和速度。比如,我們約定伺服電機每10000個脈沖轉一圈。如果PLC在一分鐘內發(fā)送10000個脈沖,那么伺服電機就以1r/min的速度走完一圈,如果在一秒鐘內發(fā)送10000個脈沖,那么伺服電機就以60r/min的速度走完一圈。
所以,PLC是通過控制發(fā)送的脈沖來控制伺服電機的,用物理方式發(fā)送脈沖,也就是使用PLC的晶體管輸出是最常用的方式,一般是低端PLC采用這種方式。而中高端PLC是通過通訊的方式把脈沖的個數和頻率傳遞給伺服驅動器,比如Profibus-DP CANopen,MECHATROLINK-II,EtherCAT等等。這兩種方式只是實現的渠道不一樣,實質是一樣的,對我們編程來說,也是一樣的。這也就是我想跟大家說的,要學習原理,觸類旁通,而不是為了學習而學習。
對于程序編寫,這個差別很大,日系PLC是采用指令的方式,而歐系PLC是采用功能塊的形式。但實質是一樣的,比如要控制伺服走一個絕對定位,我們就需要控制PLC的輸出通道,脈沖數,脈沖頻率,加減速時間,以及需要知道伺服驅動器什么時候定位完成,是否碰到限位等等。無論哪種PLC,無非就是對這幾個物理量的控制和運動參數的讀取,只是不同PLC實現方法不一樣。