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