- 艾寶物聯(lián)IOBOV? ─ 工業(yè)無(wú)線測(cè)控專家
在上述通信方式下,由于只用兩根線進(jìn)行數(shù)據(jù)傳送,所以不能夠利用硬件握手信號(hào)作為檢測(cè)手段。因而在PC機(jī)與PLC通信中發(fā)生誤碼時(shí),將不能通過(guò)硬件判斷是否發(fā)生誤碼,或者當(dāng) PC與 PLC工作速率不一樣時(shí),就會(huì)發(fā)生沖突。這些通信錯(cuò)誤將導(dǎo)致PLC控制程序不能正常工作,所以必須使用軟件進(jìn)行握手,以保證通信的可靠性。
由于通信是在PC機(jī)以及PLC之間協(xié)調(diào)進(jìn)行的,所以PC機(jī)以及PLC中的通信程序也必須相互協(xié)調(diào),即當(dāng)一方發(fā)送數(shù)據(jù)時(shí)另一方必須處于接收數(shù)據(jù)的狀態(tài)。如圖7-18、圖7-19所示分別是PC、PLC的通信程序流程。
圖7-18 PC機(jī)通信程序流程圖
圖7-19 S7-PLC通信程序流程圖
通信程序的工作過(guò)程:PC每發(fā)送一個(gè)字節(jié)前首先發(fā)送握手信號(hào),PLC收到握手信號(hào)后將其傳送回PC,PC只有收到PLC傳送回來(lái)的握手信號(hào)后才開始發(fā)送一個(gè)字節(jié)數(shù)據(jù)。PLC收到這個(gè)字節(jié)數(shù)據(jù)以后也將其回傳給PC,PC將原數(shù)據(jù)與PLC傳送回來(lái)的數(shù)據(jù)進(jìn)行比較,若兩者不同,則說(shuō)明通信中發(fā)生了誤碼,PC機(jī)重新發(fā)送該字節(jié)數(shù)據(jù);若兩者相同,則說(shuō)明PLC收到的數(shù)據(jù)是正確的,PC機(jī)發(fā)送下一個(gè)握手信號(hào),PLC收到這個(gè)握手信號(hào)后將前一次收到的數(shù)據(jù)存入指定的存儲(chǔ)區(qū)。這個(gè)工作過(guò)程重復(fù)一直持續(xù)到所有的數(shù)據(jù)傳送完成。
采用軟件握手以后,不管PC與PLC的速度相差多遠(yuǎn),發(fā)送方永遠(yuǎn)也不會(huì)超前于接收方。軟件握手的缺點(diǎn)是大大降低了通信速度,因?yàn)閭魉兔恳粋€(gè)字節(jié),在傳送線上都要來(lái)回傳送兩次,并且還要傳送握手信號(hào)。但是考慮到控制的可靠性以及控制的時(shí)間要求,犧牲一點(diǎn)速度是值得的,也是可行的。
PLC方的通信程序只是PLC整個(gè)控制程序中的一小部分,可將通信程序編制成PLC的中斷程序,當(dāng)PLC接收到PC發(fā)送的數(shù)據(jù)以后,在中斷程序中對(duì)接收的數(shù)據(jù)進(jìn)行處理。PC方的通信程序可以采用VB、VC等語(yǔ)言,也可直接采用西門子專用組態(tài)軟件,如STEP7、WinCC。