3 臺達PLC的串行通訊功能
臺達DVP系列PLC各型主機均內(nèi)建2個通訊口的標準配置,即一個RS232和一個RS485通訊口,其RS232口主要用于上下載程序或作為與上位機、觸摸屏通訊,而RS485口主要用于組建485網(wǎng)絡,實現(xiàn)通訊控制。尤其值得一提的是EH機型可通過通訊功能卡擴充一個RS232或RS485通訊口,使得在組建多重通訊網(wǎng)絡更加方便。
相對于通訊口的硬件配置,臺達PLC在軟件指令上對通訊的支持也是相當豐富和便利,主要通過以下三種方式完成485通訊功能:
3.1自由通訊方式
該方式通過串行數(shù)據(jù)傳輸指令RS來完成主站與從站之間的數(shù)據(jù)交換,可以實現(xiàn)無協(xié)議的自由通訊。許多接口設備如變頻器、儀表等…若配備RS-485串行通訊,且該設備之通訊格式也有公開即可由PLC使用者以RS指令設計程序來傳輸PLC與接口設備之間數(shù)據(jù)。
3.2MODBUS通訊方式(GB/Z 19582)
MODBUS協(xié)議是目前國際上公開的標準串行通迅協(xié)議,也是中華人民共和國國家標準化指導性技術文件GB/Z 19582:基于Modbus協(xié)議的工業(yè)自動化網(wǎng)絡規(guī)范。臺達PLC通訊符合MODBUS協(xié)議,并且臺達其它產(chǎn)品如變頻器、溫控儀、司服控制器等485通訊均符合MODBUS協(xié)議,對于符合MODBUS之通訊格式的產(chǎn)品,臺達PLC提供了更加便利的通訊指令MODRD 、MODWR、MODRW來實現(xiàn)數(shù)據(jù)的讀寫,程序編寫中不需關注傳送的字符,校驗碼的轉(zhuǎn)換等等,只需要確定通訊地址及寫入讀出的數(shù)據(jù)即可,不過在多指令讀寫時需要考慮通訊時序問題,避免通訊沖突。
3.3臺達PLC最有特色的通訊命令EASY LINK
基于MODBUS通訊協(xié)議,臺達EP/EH系列PLC機型提供了更為方便快捷的通訊方式——EASYLINK。EASY LINK通訊是臺達PLC最有特色的通訊命令,可以提供主站與32個從站通訊,每個從站讀寫各100項數(shù)據(jù)的能力,且不需要復雜編程即可高速快捷的完成通訊控制,節(jié)省大量的編程時間。
綜合比較上述三種通訊方式,自由通訊方式的編程最為復雜,但它可以與非MODBUS協(xié)議的設備通訊,設備選擇自由靈活不受限制;MODBUS通訊方式的編程則簡單的多,且也具有一定的編程靈活性,如可優(yōu)先與某個從站通訊;而EASY LINK通訊方式是針對符合MODBUS協(xié)議互連設備最簡單的通訊方式,幾乎不需要編程即可完成,不需要考慮半雙工通訊方式中通訊時序問題,只需要指定讀出寫入數(shù)據(jù)的寄存器和數(shù)據(jù)項數(shù),啟動LINK連接即可完成設備之間的數(shù)據(jù)通訊。因此對于符合MODBUS協(xié)議的設備建議采用LINK通訊方式。
3.4串行通訊工程要點問題
在工業(yè)自動化控制中,有許多數(shù)據(jù)信號需要采集、處理,特別對于遠距離的設備,一般的傳感器電壓訊號如果傳輸距離過遠的話,會造成訊號的衰減,如此一來,將得不到正確的結果,因此,采用傳感器訊號就地處理,而數(shù)據(jù)傳輸通過數(shù)字通訊方式能夠有效的解決這一問題,保證數(shù)據(jù)的正確性與準確性;但通訊同樣也會受到外界的干擾,使得通訊質(zhì)量下降,甚至根本無法建立通訊。要保證通訊正常,在組建通訊網(wǎng)絡時應該注意以下幾點:
?。?)保證通訊協(xié)議一致,所有聯(lián)機之從站接口設備波特率及通訊格式需與主站相同,合理分配各從站的站地址,避免地址沖突。
(2)合理布線,減少外界干擾對通訊的影響。走線走得好,可以很大程度減少干擾的影響,提高通訊的可靠性,走線應遵循兩個原則:遠離電源線,變頻器等干擾源;當網(wǎng)線不能與電源線等干擾源避開時應與電源線垂直,不能平行,并采用質(zhì)量高的雙絞線走線
?。?)通訊速率的選擇,一般來說提高通訊波特率能夠提高通訊效率,但并非一味的提高就肯定好,傳輸速率的提高同時加大了傳輸錯碼率,使傳輸質(zhì)量下降,特別是在工業(yè)控制場合外界干擾比較大的情況下,有時適當降低傳輸速率會得到更好的傳輸效率。
(4)正確編制通訊程序。PLC通訊程序的編制在實現(xiàn)串行通訊中也是非常關鍵的一步,一個合理的通訊程序能夠提高通訊效率,而不完善的通訊程序則會導致通訊效率下降,甚至通訊失敗,使PLC出現(xiàn)運行錯誤。由于RS485通訊采用半雙工的工作模式,因此通訊程序的編寫主要是對通訊指令的分時處理程序,在此用以下兩個通訊程序來描述如何合理編制PLC通訊程序,程序主要是PLC通過485通訊方式讀寫三臺變頻器的頻率,均實際測試運行過:
3.5 臺達PLC通訊程序要點
?。?)“固定時序通訊程序”是臺達PLC通訊技術工程處理通訊常用方法,利用固定計時的方法來實現(xiàn)分時通訊,這樣的寫法比較容易造成通訊時序上的問題。Modbus 通訊規(guī)格是采用主/從模式,也就是主站發(fā)通訊命令給從站,從站收到之后再回應主站,這一收一回才算完成一個完整的通訊資料交換,該程序有使用到M1127來判斷,但是決定下一個通訊指令是否運行的接點開關卻不是由通訊旗標來決定,而是由100ms 的 timer來決定,這樣很容易有問題生成,因為通訊的整個時間包含通訊資料在線上傳輸?shù)臅r間加上通訊資料在主/從站處理的時間,若這時間超過100ms,那就很容易造成從站回傳,而主站送資料出去,造成資料在線上碰撞,因而影響傳輸?shù)恼_性,如果把timer時間延長,還是會碰到有問題,因為這種寫法,通訊旗標的動作與決定傳送的旗標本身并未同步,因而會有時間差,造成資料不正確。該程序在EH機型上測試,發(fā)現(xiàn)通訊速度比較慢,且讀回來的數(shù)據(jù)有時會發(fā)生交叉的現(xiàn)象,即從站2的頻率讀到從站4的寄存器上,錯誤讀寫的情況可見圖一。使用這種編程方法在通訊正常時沒有問題,一旦當通訊數(shù)據(jù)錯亂時,就會造成數(shù)據(jù)傳送錯誤,嚴重時甚至導致PLC死機,參見圖1。
圖1 錯誤讀寫,紅圈部分信道D200數(shù)據(jù)變?yōu)镵3000,應該是K1000
?。?)“通訊旗標方式程序”是調(diào)整后的程序,可以比較一下,其主要區(qū)別在于Modbus Read/Write 指令在程序使用上搭配M1127, M1129, M1140, M1141 來判斷,由這幾個旗標的狀態(tài)來決定下一個通訊指令的運行時間,能夠很好的處理串行通訊的時序問題,保證通訊的可靠及效率,正常通訊監(jiān)控畫面如圖二。在用固定時序通訊中,即使通訊正常完成,那末也要等到100MS以后做下一個通訊,比如寫指令通訊完成耗時20MS,則需要等待80MS,降低了通訊效率,而采用通訊旗標會在通訊完成或出現(xiàn)錯誤的情況下轉(zhuǎn)入執(zhí)行下一個通訊指令,有效利用了時間,參見圖2。
圖2 正常通訊監(jiān)控畫面
4 臺達PLC與松下變頻器通訊案例
采用臺達ES系列PLC,用通訊方式來改變松下VF0C系列變頻器的設定頻率,PLC端使用485口,無協(xié)議方式來模擬VF0C變頻器的通訊協(xié)議。
4.1通訊協(xié)議
VF0C系列變頻器留有485通訊口,并提供內(nèi)部通訊協(xié)議如下:
寫:% [站號] #WD [功能號] [起始地址] [結束地址] [數(shù)據(jù)] [BCC] \CR
讀:% [站號] #RD [功能號] [起始地址] [結束地址] [BCC] \CR
如果寫正確,返回:%01$WD BCC\CR
如果讀正確,返回:%01$RD [數(shù)據(jù)] BCC\CR
分別規(guī)定了字節(jié)數(shù),在以下表格以寫數(shù)據(jù)為例做詳細說明:
在松下VF0C系列變頻器中,站號默認為01,通訊格式為9600、N、8、1,通訊方式是ASCII方式,數(shù)據(jù)為十六進制,存儲模式為8位模式。設定頻率的地址是DT237,而讀設定頻率的地址為DT133,而且在DT237和DT133的數(shù)據(jù)都是以0.01Hz為單位的。下面以寫頻率為例,來做詳細說明。
4.2實例說明
假設要寫入的頻率是43.5Hz,那么需要寫入的數(shù)值應為10FE(4350),變頻器的存儲模式為8位模式,應從低位開始寫入,那么應該先寫FE后寫10。校驗碼是把從起始碼到數(shù)據(jù)碼所有的字節(jié)進行異或所得。
XOR:%01#WDD0023700237FE10=52(HEX)
那么得出以下所有通訊格式碼:
%01#WDD0023700237FE1052\CR
通訊方式是ASCII方式,數(shù)據(jù)是十六進制格式,把這些格式碼按正確的次序發(fā)出,就可以把數(shù)據(jù)43.5HZ寫入到變頻器設定頻率DT237中。
4.3 梯形圖設計
在PLC中,無協(xié)議通訊也是從低位開始發(fā)送數(shù)據(jù)的,可選用8位模式和16位模式傳送,不同就在于發(fā)送數(shù)據(jù)寄存器中的8位數(shù)據(jù)還是16位數(shù)據(jù),在這里以16位模式做說明。梯形圖如下:把格式碼數(shù)據(jù)253031235744443030323337303032333745463130520D按照從低位到高位的順序依次存入到D0~D11中去,占用12個連續(xù)的數(shù)據(jù)寄存器,就是說有24個字節(jié)的數(shù)據(jù)。設定通訊參數(shù)9600,N,8,1,ASCII方式,16位模式。當M0接通一次,就可以發(fā)送一次數(shù)據(jù),寫一次頻率。
4.4 程序優(yōu)化
如果再加上讀頻率的程序,就可以做成小閉環(huán),完成讀寫頻率的程序優(yōu)化。因為在寫頻率的數(shù)據(jù)發(fā)送成功后,可做延時3秒后讀頻率,在讀成功以后,把讀回的頻率數(shù)據(jù)和要寫入的頻率數(shù)據(jù)做比較,如果相等,則通訊程序停止,如果不相等,再執(zhí)行寫頻率——》讀頻率——》比較。
5 結束語
綜上所述,臺達PLC具有強大的串行通訊功能,且相關應用指令豐富,能夠很好的完成各種通訊需求,合理利用通訊功能將大大降低設備的制造成本,節(jié)省配線,提高抗干擾能力,由于臺達產(chǎn)品均符合MODBUS協(xié)議,因此可以把臺達產(chǎn)品通過通訊方式整合在一起,實現(xiàn)各種各樣的功能要求。
轉(zhuǎn)載請注明出處。