2011年8月20日 星期六

台達PLC串行通訊應用原理

摘 要:本文根據串行通訊的基本原理,以台達PLC與鬆下變頻器通訊為案例,詳細討論台達PLC的串行通迅功能及在項目中實際應用。主要介紹如何使用台達PLC完善的通訊功能完成各種實際應用,體現了台達PLC強大的通訊技術特性。

  關鍵詞:串行通訊 PLC RS485 MODBUS協議 變頻器、自由口通訊 EASY LINK

  1引言

  隨著計算器技術的發展,通訊傳輸在工業自動化控製領域得到越來越廣泛的應用。由於串行通訊方式具有使用線路少、成本低、簡單易用,特別是在遠程傳輸時,避免了多條線路特性的不一致而被廣泛采用。現在各PLC生產廠家都極其重視通訊在PLC推廣中的應用,並且各具有優勢特點,合理利用PLC串行通讯功能將極大的降低自動化項目成本,提高產品競爭力。

  2 串行通訊簡介

  計算機通訊即是不同的設備通過線路互相交換編碼數據,其主要目的在於將數據從某端傳送到另一端,實現信息的交換。通訊通常有並行和串行兩種方式,由於並行傳輸方式在數據電壓傳送的過程中容易衰減互擾,並且線路工程費用較高,而串行通訊方式則能很好的解決這些問題,因此在工業應用中絕大多數使用串行通訊。

  串行通訊的基本接口方式分為RS-232和RS-485兩種標準。

  2.1 RS-232接口

  (1) RS-232-C接口連接器一般使用型號為DB-9的9芯插頭座,隻需三條接口線,即"發送數據"、"接收數據"和"信號地"即可傳輸數據,其9支腳位的定義如下表1所示。   表1 RS-232-C接口連接器定義

  

    (2) 在RS232的規範中,電壓域值在+3V---+15V(一般使用+6V)之間稱為"0"或"ON";電壓在-3V----15V(一般使用-6V)之間稱為"1"或"OFF";計算機上的RS-232"高電位"約9V,而"低電位"則約-9V。

  (3) RS-232為全雙工工作模式,其訊號準位是參考地線而得,分別作為數據的傳送和接收;實際應用中其傳輸距離可以達到15米。隻具有單站功能,即一對一通訊。

  2.2 RS485接口

  (1)采用正負兩根信號線作為傳輸線路。

  (2)RS-485的電氣特性:邏輯"1"以兩線間的電壓差為+(2-6) V表示;邏輯"0"以兩線間的電壓差為-(2-6)V表示。

  (3)RS485為半雙工工作模式,其訊號是正負兩條線路訊號準位相減而得,是差動式輸入方式,抗共模幹能力增強,即抗噪聲幹擾性好;實際應用中其傳輸距離可達1200米。具有多站能力,即一對多的主從通訊。

  3 台達PLC的串行通訊功能

  台達DVP係列PLC各型主機均內建2個通訊口的標準配置,即一個RS232和一個RS485通訊口,其RS232口主要用於上下載程序或作為與上位機、觸摸屏通訊,而RS485口主要用於組建485網絡,實現通訊控製。尤其值得一提的是EH機型可通過通訊功能卡擴充一個RS232或RS485通訊口,使得在組建多重通訊網絡更加方便。

  相對於通訊口的硬件配置,台達PLC在軟件指令上對通訊的支持也是相當豐富和便利,主要通過以下三種方式完成485通訊功能:

  3.1 自由通訊方式

  該方式通過串行數據傳輸指令RS來完成主站與從站之間的數據交換,可以實現無協議的自由通訊。許多接口設備如變頻器、儀表等…若配備RS-485串行通訊,且該設備之通訊格式也有公開即可由PLC使用者以RS指令設計程序來傳輸PLC與接口設備之間數據。

  3.2 MODBUS通訊方式(GB/Z 19582)

  MODBUS協議是目前國際上公開的標準串行通迅協議,也是中華人民共和國國家標準化指導性技術文件GB/Z 19582:基於Modbus協議的工業自動化網絡規範。台達PLC通訊符合MODBUS協議,並且台達其它產品如變頻器、溫控儀、司服控製器等485通訊均符合MODBUS協議,對於符合MODBUS之通訊格式的產品,台達PLC提供了更加便利的通訊指令MODRD 、MODWR、MODRW來實現數據的讀寫,程序編寫中不需關注傳送的字符,校驗碼的轉換等等,隻需要確定通訊地址及寫入讀出的數據即可,不過在多指令讀寫時需要考慮通訊時序問題,避免通訊衝突。

  3.3 台達PLC最有特色的通訊命令EASY LINK

  基於MODBUS通訊協議,台達EP/EH係列PLC機型提供了更為方便快捷的通訊方式--EASYLINK。EASY LINK通訊是台達PLC最有特色的通訊命令,可以提供主站與32個從站通訊,每個從站讀寫各100項數據的能力,且不需要複雜編程即可高速快捷的完成通訊控製,節省大量的編程時間。

  綜合比較上述三種通訊方式,自由通訊方式的編程最為複雜,但它可以與非MODBUS協議的設備通訊,設備選擇自由靈活不受限製;MODBUS通訊方式的編程則簡單的多,且也具有一定的編程靈活性,如可優先與某個從站通訊;而EASY LINK通訊方式是針對符合MODBUS協議互連設備最簡單的通訊方式,幾乎不需要編程即可完成,不需要考慮半雙工通訊方式中通訊時序問題,隻需要指定讀出寫入數據的寄存器和數據項數,啟動LINK連接即可完成設備之間的數據通訊。因此對於符合MODBUS協議的設備建議采用LINK通訊方式。

  3.4串行通訊工程要點問題

  在工業自動化控製中,有許多數據信號需要采集、處理,特別對於遠距離的設備,一般的傳感器電壓訊號如果傳輸距離過遠的話,會造成訊號的衰減,如此一來,將得不到正確的結果,因此,采用傳感器訊號就地處理,而數據傳輸通過數字通訊方式能夠有效的解決這一問題,保證數據的正確性與準確性;但通訊同樣也會受到外界的幹擾,使得通訊質量下降,甚至根本無法建立通訊。要保證通訊正常,在組建通訊網絡時應該注意以下幾點:

  (1)保證通訊協議一致,所有聯機之從站接口設備波特率及通訊格式需與主站相同,合理分配各從站的站地址,避免地址衝突。

  (2)合理布線,減少外界幹擾對通訊的影響。走線走得好,可以很大程度減少幹擾的影響,提高通訊的可靠性,走線應遵循兩個原則:遠離電源線,變頻器等幹擾源;當網線不能與電源線等幹擾源避開時應與電源線垂直,不能平行,並采用質量高的雙絞線走線

  (3)通訊速率的選擇,一般來說提高通訊波特率能夠提高通訊效率,但並非一味的提高就肯定好,傳輸速率的提高同時加大了傳輸錯碼率,使傳輸質量下降,特別是在工業控製場合外界幹擾比較大的情況下,有時適當降低傳輸速率會得到更好的傳輸效率。

  (4)正確編製通訊程序。PLC通訊程序的編製在實現串行通訊中也是非常關鍵的一步,一個合理的通訊程序能夠提高通訊效率,而不完善的通訊程序則會導致通訊效率下降,甚至通訊失敗,使PLC出現運行錯誤。由於RS485通訊采用半雙工的工作模式,因此通訊程序的編寫主要是對通訊指令的分時處理程序,在此用以下兩個通訊程序來描述如何合理編製PLC通訊程序,程序主要是PLC通過485通訊方式讀寫三台變頻器的頻率,均實際測試運行過:

  3.5 台達PLC通訊程序要點

  (1)"固定時序通訊程序"是台達PLC通訊技術工程處理通訊常用方法,利用固定計時的方法來實現分時通訊,這樣的寫法比較容易造成通訊時序上的問題。Modbus 通訊規格是采用主/從模式,也就是主站發通訊命令給從站,從站收到之後再回應主站,這一收一回才算完成一個完整的通訊資料交換,該程序有使用到M1127來判斷,但是決定下一個通訊指令是否運行的接點開關卻不是由通訊旗標來決定,而是由100ms 的 timer來決定,這樣很容易有問題生成,因為通訊的整個時間包含通訊資料在線上傳輸的時間加上通訊資料在主/從站處理的時間,若這時間超過100ms,那就很容易造成從站回傳,而主站送資料出去,造成資料在線上碰撞,因而影響傳輸的正確性,如果把timer時間延長,還是會碰到有問題,因為這種寫法,通訊旗標的動作與決定傳送的旗標本身並未同步,因而會有時間差,造成資料不正確。該程序在EH機型上測試,發現通訊速度比較慢,且讀回來的數據有時會發生交叉的現象,即從站2的頻率讀到從站4的寄存器上,錯誤讀寫的情況可見圖一。使用這種編程方法在通訊正常時沒有問題,一旦當通訊數據錯亂時,就會造成數據傳送錯誤,嚴重時甚至導致PLC死機,參見圖1。   圖1 錯誤讀寫,紅圈部分信道D200數據變為K3000,應該是K1000

  (2)"通訊旗標方式程序"是調整後的程序,可以比較一下,其主要區別在於Modbus Read/Write 指令在程序使用上搭配M1127, M1129, M1140, M1141 來判斷,由這幾個旗標的狀態來決定下一個通訊指令的運行時間,能夠很好的處理串行通訊的時序問題,保證通訊的可靠及效率,正常通訊監控畫麵如圖二。在用固定時序通訊中,即使通訊正常完成,那末也要等到100MS以後做下一個通訊,比如寫指令通訊完成耗時20MS,則需要等待80MS,降低了通訊效率,而采用通訊旗標會在通訊完成或出現錯誤的情況下轉入執行下一個通訊指令,有效利用了時間,參見圖2。   圖2 正常通訊監控畫麵

  4 台達PLC與鬆下變頻器通訊案例

  采用台達ES係列PLC,用通訊方式來改變鬆下VF0C係列變頻器的設定頻率,PLC端使用485口,無協議方式來模擬VF0C變頻器的通訊協議。

  4.1通訊協議

  VF0C係列變頻器留有485通訊口,並提供內部通訊協議如下:

  寫:% [站號] #WD [功能號] [起始地址] [結束地址] [數據] [BCC] /CR

  讀:% [站號] #RD [功能號] [起始地址] [結束地址] [BCC] /CR

  如果寫正確,返回:%01$WD BCC/CR

  如果讀正確,返回:%01$RD [數據] BCC/CR

  起始碼 站號 間隔 功能 功能號 起始 結束 數據 校驗碼 結束碼

  % 01~31 # WD D 00000 00000 0000 BCC /CR

  1 2 1 2 1 5 5 4、… 2 1

  分別規定了字節數,在以下表格以寫數據為例做詳細說明:

  在鬆下VF0C係列變頻器中,站號默認為01,通訊格式為9600、N、8、1,通訊方式是ASCII方式,數據為十六進製,存儲模式為8位模式。設定頻率的地址是DT237,而讀設定頻率的地址為DT133,而且在DT237和DT133的數據都是以0.01Hz為單位的。下麵以寫頻率為例,來做詳細說明。

  4.2實例說明

  假設要寫入的頻率是43.5Hz,那麼需要寫入的數值應為10FE(4350),變頻器的存儲模式為8位模式,應從低位開始寫入,那麼應該先寫FE後寫10。校驗碼是把從起始碼到數據碼所有的字節進行異或所得。

  XOR:%01#WDD0023700237FE10=52(HEX)

  那麼得出以下所有通訊格式碼:

  %01#WDD0023700237FE1052/CR

  通訊方式是ASCII方式,數據是十六進製格式,把這些格式碼按正確的次序發出,就可以把數據43.5HZ寫入到變頻器設定頻率DT237中。

  4.3 梯形圖設計

  在PLC中,無協議通訊也是從低位開始發送數據的,可選用8位模式和16位模式傳送,不同就在於發送數據寄存器中的8位數據還是16位數據,在這裏以16位模式做說明。梯形圖如下:把格式碼數據253031235744443030323337303032333745463130520D按照從低位到高位的順序依次存入到D0~D11中去,占用12個連續的數據寄存器,就是說有24個字節的數據。設定通訊參數9600,N,8,1,ASCII方式,16位模式。當M0接通一次,就可以發送一次數據,寫一次頻率。

  4.4 程序優化

  如果再加上讀頻率的程序,就可以做成小閉環,完成讀寫頻率的程序優化。因為在寫頻率的數據發送成功後,可做延時3秒後讀頻率,在讀成功以後,把讀回的頻率數據和要寫入的頻率數據做比較,如果相等,則通訊程序停止,如果不相等,再執行寫頻率-->讀頻率-->比較。

  5 結束語

  綜上所述,台達PLC具有強大的串行通訊功能,且相關應用指令豐富,能夠很好的完成各種通訊需求,合理利用通訊功能將大大降低設備的製造成本,節省配線,提高抗幹擾能力,由於台達產品均符合MODBUS協議,因此可以把台達產品通過通訊方式整合在一起,實現各種各樣的功能要求。

伺服馬達|自動增益調整,好還是不不好?|Automatic gain adjustment, good or not good?

自動增益調整功能,這個功能很方便。
Automatic gain adjustment, this feature is very convenient.

伺服控制器,會根據目前的扭力輸出,適時的調整增益的數值。
Servo controller, based on the current torque output, timely adjustment of gain.

讓使用者,不用再為調整增益而花費許多時間。
Let users do not have to adjust the gain and spend a lot of time.

但不代表所有的機台,都適合隨時隨地都在調整增益。
It does not mean all of the machines, are suitable for adjusting the gain anytime, anywhere.

特別是CNC機台,非常不適合隨時調整增益。
Especially the CNC machine, is not suitable for adjusting the gain at any time.

例:兩軸CNC畫圓,在0°,90°,180°,270°,都會有馬達反轉的動作。
Example: two-axis CNC Circle, in the 0 °, 90 °, 180 °, 270 °, will have a motor reverse the action.

如果開啟自動增益調整,就會瞬間增益不夠,而讓圓變形。
If you turn on automatic gain adjustment, it will instantly gain is not enough, and let the rounddeformation.

自動增益最好的使用時機是,讓機台在最大負載的情形下,
讓控制器調整增益,調整完畢後,就關閉自動增益調整功能。
Automatic gain the best use of time is to let the machine in case of maximum load,
Allow the controller to adjust the gain adjustment is completed, you turn off the automaticgain adjustment.



2011年8月19日 星期五

伺服馬達|執行回原點動作,跑出兩個點?action execution back to the origin, ran out of the two points?

一般回原點動作,都是先到機台的原點sensor,再找馬達的Z點。
General movement back to the origin, the origin of the machine are first sensor, and thenfind the Z motor point.

如此一來,應該只會有一個點,不應該跑出兩個點位!?
So, it should be only one point, two points should not run out!?

但如果在碰到原點sensor時,也剛好在馬達的Z點呢!!
If you encounter the origin sensor, the Z also just point it at the motor!!

有可能這次原點,剛好過Z點一個脈波,
May be the origin, just over a pulse point Z,

下次回原點剛好在Z點前,
Next back to the origin point in the Z just before the

就會產生回原點有兩個不同點的情形了。(兩個點位的距離是馬達一圈的距離。)
Will produce two different points back to the origin of the case. (The distance between twopoints is the distance around the motor.)


解決方式:
把原點SENSOR,移開現在的位置,就可以了。
Resolution:
The origin SENSOR, remove the current position on it.

Servo motor | Why can not put the origin of the middle to put the limit at the negative side!?!?

Servo motor | Why can not put the origin of the middle to put the limit at the negative side!?!?


Origin are generally placed next to the limit in the negative, almost no one put the middle, is why!?

Servo motors in the past to find the origin, only to find a direction.

If the motor stop position is at the origin of the positive direction, negative direction to find no problem.

However, if the motor stop position is at the origin of the negative direction,
To find the origin or to the negative direction, it will hit the limit.

Although the servo drive has been to find the origin, the encounter limit, will go the opposite direction to find the origin of the function.
However, the relative waste of time will be longer.

People may say, I recorded the coordinates, if it is at the origin of the positive, negative to go aboard,
If it is at the origin of the negative, go out walking.
The question is: first to the positive or the negative go!? For motor after the positive or negative to!?

Servo motor | highest pulse number, related to the maximum speed

Servo motor | highest pulse number, related to the maximum speed

To pulse control servo motors, in addition to the electronic gear ratio to take into account,
There is also maximum speed considerations.

Some can receive 200kpps, 500kpps What's the difference!?

200kpps = 200k per second, a pulse / sec

A pulse of 1um, the
1 seconds to go 200000um = 200mm
1 minute = 200mm/sx60 seconds = 12000mm/min = 12 m / min


500kpps = 500k per second, a pulse / sec

A pulse of 1um, the
1 seconds to go 500000um = 500mm
1 minute = 500mm/sx60 seconds = 30000mm/min = 30 m / min

From the above calculation that, in setting the electronic gear ratio,
Also need to take into account the maximum pulse number, as it will affect the speed.

If you do not need to um-level accuracy, the electronic gear can be relaxed,
Speed ​​can also be demanding.

PLC | contact input selection? A Contact (NO), B (NC)

PLC | contact input selection? A Contact (NO), B (NC)

A contact (NO), B contacts (NC), the use of that too!?

Generally not often encountered in the switch, but important, such as emergency EMS, the limit to protect the switch.
Will use the B contact.

So the signal remains live. If the line cut off, will know immediately.
Also coupled with a line check function.

Other detector signal, the A contact can be used.

========================
Some special cases:
Such as the minimum level detector,
Because the level is usually more than the lower limit position, it will always know to check.
If we use B contact, but no signal has been lost protection.
So the use of contact A, so that in the normal level, the lower limit, or has been output.

Servo motor | HOME point blank length calculation

Servo motor | HOME point blank length calculation
HOME point blank length calculation
(Positive and negative limit is the same)

Conditions:
1.10 mm / turn
2 The most high-speed = 3000 r / min
3. Deceleration = 100ms

Calculation:

10 (mm / r) x 3000 (r / min) = 30000 (mm / min)
30000 (mm / min) / 60 s = 500 (mm / s)
500 (mm / s) / 1000 = 0.5 (mm / ms)

Minimum length of the blank = 0.5 (mm / ms) x 100 ms / 2 = 50 mm

2011年8月18日 星期四

折床機其實也只是2軸的CNC/Brake machine is actually only 2-axis CNC

折床機其實也只是2軸的CNC
Brake machine is actually only 2-axis CNC

一軸送料,另一個軸控制下壓量
One axis feeding,Another axis Control the volume under pressure

重點在於加工件的材料、厚度,會有不同的彈性系數。
Focused on the processed material, thickness,
have different elasticity.

好的折床機控制器可以把加工件的材料、厚度考慮進去,並加以補正。
Good Brake Controller can calculate processed material, thickness into account, and make corrections.

原理簡單,但要收集所有的資料,卻是不容易的事。
Simple in principle, but to collect all the information, but it is not an easy task.

伺服馬達|HOME點擋片長度計算

HOME點擋片長度計算
(正、負極限也一樣)

條件:
1.10 mm/轉
2.最高速=3000轉/min
3.加減速=100ms

計算:

10(mm/r) x 3000 (r/min) =30000(mm/min)
30000 (mm/min) / 60 s = 500 (mm/s)
500 (mm/s) / 1000 = 0.5 (mm/ms)

最小擋片長度=0.5 (mm/ms) x 100 ms / 2 = 25mm 50 mm  


CNC|雕刻印章的機器也是三軸的CNC

雕刻印章的機器,
就是在電腦當中,先編輯好文字內容,
電腦再把路徑圖規劃好,
再給機器來開始雕刻。

有X、Y、Z(深度),加上主軸

2011年8月17日 星期三

伺服馬達|回原點的種類、方式

伺服馬達|回原點的種類、方式

伺服馬達,每轉一圈,都會產生一個Z信號。
所以在程式上,再加上一個原點開關,配合Z信號,
才會每次都回到相同的位置。

回原點的動作有:(依驅動器種類不同,不一定都有)

A:
1.負方向移動找回原點開關。
2.碰到 原點開關 後,再繼續往『負方向』移動。
3.離開 原點開關 後,開始減速,再往『負方向』找馬達Z點。
4.找到Z點,完成找原點動作。

B:
1.負方向移動找回原點開關。
2.碰到 原點開關 後,再繼續往『負方向』移動。

3.離開 原點開關 後,開始減速,再往『正方向』找馬達Z點。
4.找到Z點,完成找原點動作。


C:
1.負方向移動找回原點開關。
2.碰到 原點開關 後,往 『正方向』 移動。
3.離開 原點開關 後,開始減速,再往『負方向』找馬達Z點。
4.找到Z點,完成找原點動作。

D:
1.負方向移動找回原點開關。
2.碰到 原點開關 後,往『正方向』移動。

3.離開 原點開關 後,開始減速,再往『正方向』找馬達Z點。
4.找到Z點,完成找原點動作。






2011年8月16日 星期二

伺服馬達|原點為什麼不能擺中間,要擺在負極限旁!?!?

伺服馬達|原點為什麼不能擺中間,要擺在負極限旁!?!?

一般原點都是擺在負極限旁邊,幾乎沒有人擺中間,是為什麼呢!?

以前伺服馬達在找原點時,只會往一個方向找。

如果馬達停的位置是在原點的正方向,往負方向找就沒問題。

但如果馬達停的位置,是在原點的負方向,
找原點還是往負方向,就會撞到極限了。

雖然目前伺服驅動器,已經有找原點時,碰到極限,會往反方向再找原點的功能。
但相對浪費的時間會比較久一點。

也會有人說,我把座標記錄下來,如果是在原點的正向,就往負走,
如果是在原點的負向,就往正走。
問題是:第一次該往正or負走!? 換馬達後,該往正or負!?


2011年8月15日 星期一

PLC|伺服馬達|硬體極限開關的擺放位置!!

PLC|伺服馬達|硬體極限開關的擺放位置!!

一般人認為硬體極限,就設置在最兩旁就好了,有什麼學問的!?

硬體極限跟檔片之間的關系,如果沒有設計好,
就會發生,已經衝過極限,卻沒有硬體極限的警報發生。

一般來說影響到硬體極限的位置的有以下條件:
1.檔片的大小(感應物的大小)
2.馬達的加減速
3.馬達的最高速
4.PLC&SENSOR之間的速度

1.檔片大小:應該在最高速度X減速時間/2的長度。
太小,容易未停止時,又離開了硬體極限。
太大,可能會行程不夠。

2.馬達加減速:影響碰到硬體極限後的剎車長度。
太小,馬達起動不穩定。
太大,檔片長度需加長。

3.馬達最高速:影響碰到硬體極限後的剎車長度。
太小,機台速度不夠
太大,需要較長的剎車距離

4.PLC&SENSOR之間的速度:
SENSOR感應到物品,傳給PLC反應,之間也是有1Xms的反應時間。
很容易被忘記!!!!





2011年8月14日 星期日

PLC|輸入接點選用?A接點(常開)、B接點(常閉)

PLC|輸入接點選用?A接點(常開)、B接點(常閉)

A接點、B接點,該用那種呢!?

一般在不常碰到的開關,但很重要的,如緊急EMS、極限、保護開關。
都會用B接點。

讓信號一直保持住。如果線斷掉了,也會馬上知道。
也加上有線路檢查的功能。

其他檢知信號,就採用A接點即可。

========================
一些特殊情形:
如檢知液位下限,
因為液位通常超過下限位,所以會一直檢知到。
如果再採用B接點,反而一直是沒信號,失去保護功能。
所以要採用A接點,讓液位在正常時,下限位,還是一直輸出。