臺達(dá)PLC串行通訊應(yīng)用原理,臺達(dá)DVP系列PLC各型主機(jī)均內(nèi)建2個通訊口的標(biāo)準(zhǔn)配置,即一個RS232和一個RS485通訊口,其RS232口主要用于上下載程序或作為與上位機(jī)、觸摸屏通訊,而RS485口主要用于組建485網(wǎng)絡(luò),實(shí)現(xiàn)通訊控制。
正確編制通訊程序。PLC通訊程序的編制在實(shí)現(xiàn)串行通訊中也是非常關(guān)鍵的一步,一個合理的通訊程序能夠提高通訊效率,而不完善的通訊程序則會導(dǎo)致通訊效率下降,甚至通訊失敗,使PLC出現(xiàn)運(yùn)行錯誤。由于RS485通訊采用半雙工的工作模式,因此通訊程序的編寫主要是對通訊指令的分時處理程序,在此用以下兩個通訊程序來描述如何合理編制PLC通訊程序,程序主要是PLC通過485通訊方式讀寫三臺變頻器的頻率,均實(shí)際測試運(yùn)行過。
臺達(dá)PLC通訊程序要點(diǎn):
(1)“固定時序通訊程序”是臺達(dá)PLC通訊技術(shù)工程處理通訊常用方法,利用固定計時的方法來實(shí)現(xiàn)分時通訊,這樣的寫法比較容易造成通訊時序上的問題。Modbus 通訊規(guī)格是采用主/從模式,也就是主站發(fā)通訊命令給從站,從站收到之后再回應(yīng)主站,這一收一回才算完成一個完整的通訊資料交換,該程序有使用到M1127來判斷,但是決定下一個通訊指令是否運(yùn)行的接點(diǎn)開關(guān)卻不是由通訊旗標(biāo)來決定,而是由100ms 的 timer來決定,這樣很容易有問題生成,因?yàn)橥ㄓ嵉恼麄€時間包含通訊資料在線上傳輸?shù)臅r間加上通訊資料在主/從站處理的時間,若這時間超過100ms,那就很容易造成從站回傳,而主站送資料出去,造成資料在線上碰撞,因而影響傳輸?shù)恼_性,如果把timer時間延長,還是會碰到有問題,因?yàn)檫@種寫法,通訊旗標(biāo)的動作與決定傳送的旗標(biāo)本身并未同步,因而會有時間差,造成資料不正確。該程序在EH機(jī)型上測試,發(fā)現(xiàn)通訊速度比較慢,且讀回來的數(shù)據(jù)有時會發(fā)生交叉的現(xiàn)象,即從站2的頻率讀到從站4的寄存器上,錯誤讀寫的情況可見圖一。使用這種編程方法在通訊正常時沒有問題,一旦當(dāng)通訊數(shù)據(jù)錯亂時,就會造成數(shù)據(jù)傳送錯誤,嚴(yán)重時甚至導(dǎo)致PLC死機(jī)。
(2)“通訊旗標(biāo)方式程序”是調(diào)整后的程序,可以比較一下,其主要區(qū)別在于Modbus Read/Write 指令在程序使用上搭配M1127, M1129, M1140, M1141 來判斷,由這幾個旗標(biāo)的狀態(tài)來決定下一個通訊指令的運(yùn)行時間,能夠很好的處理串行通訊的時序問題,保證通訊的可靠及效率,正常通訊監(jiān)控畫面如圖二。在用固定時序通訊中,即使通訊正常完成,那末也要等到100MS以后做下一個通訊,比如寫指令通訊完成耗時20MS,則需要等待80MS,降低了通訊效率,而采用通訊旗標(biāo)會在通訊完成或出現(xiàn)錯誤的情況下轉(zhuǎn)入執(zhí)行下一個通訊指令,有效利用了時間。