臺達(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í)間延長,還是會碰到有問題,因?yàn)檫@種寫法,通訊旗標(biāo)的動作與決定傳送的旗標(biāo)本身并未同步,因而會有時(shí)間差,造成資料不正確。該程序在EH機(jī)型上測試,發(fā)現(xiàn)通訊速度比較慢,且讀回來的數(shù)據(jù)有時(shí)會發(fā)生交叉的現(xiàn)象,即從站2的頻率讀到從站4的寄存器上,錯(cuò)誤讀寫的情況可見圖一。使用這種編程方法在通訊正常時(shí)沒有問題,一旦當(dāng)通訊數(shù)據(jù)錯(cuò)亂時(shí),就會造成數(shù)據(jù)傳送錯(cuò)誤,嚴(yán)重時(shí)甚至導(dǎo)致PLC死機(jī),參見圖1。
(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)會在通訊完成或出現(xiàn)錯(cuò)誤的情況下轉(zhuǎn)入執(zhí)行下一個(gè)通訊指令,有效利用了時(shí)間,參見圖2。