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