PLC串行通訊應用原理
圖1 錯誤讀寫(xiě),紅圈部分信道D200數據變?yōu)镵3000,應該是K1000
?。?)“通訊旗標方式程序”是調整后的程序,可以比較一下,其主要區別在于Modbus Read/Write 指令在程序使用上搭配M1127, M1129, M1140, M1141 來(lái)判斷,由這幾個(gè)旗標的狀態(tài)來(lái)決定下一個(gè)通訊指令的運行時(shí)間,能夠很好的處理串行通訊的時(shí)序問(wèn)題,保證通訊的可靠及效率,正常通訊監控畫(huà)面如圖二。在用固定時(shí)序通訊中,即使通訊正常完成,那末也要等到100MS以后做下一個(gè)通訊,比如寫(xiě)指令通訊完成耗時(shí)20MS,則需要等待80MS,降低了通訊效率,而采用通訊旗標會(huì )在通訊完成或出現錯誤的情況下轉入執行下一個(gè)通訊指令,有效利用了時(shí)間,參見(jiàn)圖2。
圖2 正常通訊監控畫(huà)面
4 臺達PLC與松下變頻器通訊案例
采用臺達ES系列PLC,用通訊方式來(lái)改變松下VF0C系列變頻器的設定頻率,PLC端使用485口,無(wú)協(xié)議方式來(lái)模擬VF0C變頻器的通訊協(xié)議。
4.1通訊協(xié)議
VF0C系列變頻器留有485通訊口,并提供內部通訊協(xié)議如下:
寫(xiě):% [站號] #WD [功能號] [起始地址] [結束地址] [數據] [BCC] \CR
讀:% [站號] #RD [功能號] [起始地址] [結束地址] [BCC] \CR
如果寫(xiě)正確,返回:%01$WD BCC\CR
如果讀正確,返回:%01$RD [數據] BCC\CR
分別規定了字節數,在以下表格以寫(xiě)數據為例做詳細說(shuō)明:
在松下VF0C系列變頻器中,站號默認為01,通訊格式為9600、N、8、1,通訊方式是ASCII方式,數據為十六進(jìn)制,存儲模式為8位模式。設定頻率的地址是DT237,而讀設定頻率的地址為DT133,而且在DT237和DT133的數據都是以0.01Hz為單位的。下面以寫(xiě)頻率為例,來(lái)做詳細說(shuō)明。
4.2實(shí)例說(shuō)明
假設要寫(xiě)入的頻率是43.5Hz,那么需要寫(xiě)入的數值應為10FE(4350),變頻器的存儲模式為8位模式,應從低位開(kāi)始寫(xiě)入,那么應該先寫(xiě)FE后寫(xiě)10。校驗碼是把從起始碼到數據碼所有的字節進(jìn)行異或所得。
XOR:%01#WDD0023700237FE10=52(HEX)
那么得出以下所有通訊格式碼:
%01#WDD0023700237FE1052\CR
通訊方式是ASCII方式,數據是十六進(jìn)制格式,把這些格式碼按正確的次序發(fā)出,就可以把數據43.5HZ寫(xiě)入到變頻器設定頻率DT237中。
4.3 梯形圖設計
在PLC中,無(wú)協(xié)議通訊也是從低位開(kāi)始發(fā)送數據的,可選用8位模式和16位模式傳送,不同就在于發(fā)送數據寄存器中的8位數據還是16位數據,在這里以16位模式做說(shuō)明。梯形圖如下:把格式碼數據253031235744443030323337303032333745463130520D按照從低位到高位的順序依次存入到D0~D11中去,占用12個(gè)連續的數據寄存器,就是說(shuō)有24個(gè)字節的數據。設定通訊參數9600,N,8,1,ASCII方式,16位模式。當M0接通一次,就可以發(fā)送一次數據,寫(xiě)一次頻率。
4.4 程序優(yōu)化
如果再加上讀頻率的程序,就可以做成小閉環(huán),完成讀寫(xiě)頻率的程序優(yōu)化。因為在寫(xiě)頻率的數據發(fā)送成功后,可做延時(shí)3秒后讀頻率,在讀成功以后,把讀回的頻率數據和要寫(xiě)入的頻率數據做比較,如果相等,則通訊程序停止,如果不相等,再執行寫(xiě)頻率——》讀頻率——》比較。
5 結束語(yǔ)
綜上所述,臺達PLC具有強大的串行通訊功能,且相關(guān)應用指令豐富,能夠很好的完成各種通訊需求,合理利用通訊功能將大大降低設備的制造成本,節省配線(xiàn),提高抗干擾能力,由于臺達產(chǎn)品均符合MODBUS協(xié)議,因此可以把臺達產(chǎn)品通過(guò)通訊方式整合在一起,實(shí)現各種各樣的功能要求。
評論