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