來(lái)源:昌昇自動(dòng)化時(shí)間:2021-09-07
PLC維修廠家介紹MCGS中PLC已經(jīng)將串口通訊的波特率設(shè)置等功能集成至串口父設(shè)備中,因此PLC設(shè)備驅(qū)動(dòng)是作為MCGS監(jiān)控軟件設(shè)備管理窗口中的子設(shè)備提供的。它可以使用父設(shè)備的通訊功能,即可以與其他設(shè)備共享父設(shè)備的通訊功能。由于使用串口的PLC設(shè)備較多,在這里我們以使用串口通訊方式的PLC為例進(jìn)行說(shuō)明PLC通用驅(qū)動(dòng)的構(gòu)架的開發(fā)。如使用自定義編程電纜方式或使用以太網(wǎng)方式連接,此PLC驅(qū)動(dòng)構(gòu)架同樣適用。
使用串口通訊的PLC與上位機(jī)的通訊方式中,有RS232、RS485、RS422多種方式。如果設(shè)備是采用RS232方式通訊,那么在一個(gè)串口下面只能掛接一個(gè)設(shè)備。如果采用RS485或者RS422的方式通訊,那么可以使用多個(gè)設(shè)備構(gòu)成一個(gè)網(wǎng)絡(luò),在這個(gè)網(wǎng)絡(luò)中,PLC維修廠家為了識(shí)別各個(gè)不同的設(shè)備,給每一個(gè)設(shè)備加上一個(gè)標(biāo)志,一般來(lái)說(shuō)把這個(gè)標(biāo)志稱作設(shè)備地址。
這個(gè)總線上的設(shè)備分為主設(shè)備和從設(shè)備兩類。在工作時(shí),從設(shè)備一直在監(jiān)聽通訊線路上的數(shù)據(jù),并對(duì)這些數(shù)據(jù)進(jìn)行分析,當(dāng)收到對(duì)自己的請(qǐng)求時(shí),會(huì)發(fā)送一個(gè)相應(yīng)的應(yīng)答幀。主設(shè)備在工作時(shí)會(huì)根據(jù)需要向從設(shè)備發(fā)送請(qǐng)求幀,請(qǐng)求一些數(shù)據(jù)或者是發(fā)送一條命令,在發(fā)完請(qǐng)求幀后主設(shè)備需等待從設(shè)備的回答,這個(gè)等待的過(guò)程有一個(gè)超時(shí)時(shí)間限制。如果過(guò)了一定的時(shí)間還沒有收到回答,它會(huì)認(rèn)為本次通訊失敗,然后按照一定的邏輯判斷是應(yīng)該重發(fā)請(qǐng)求還是放棄。
通訊使用的通訊協(xié)議,分為ASCII通訊和16進(jìn)制通訊兩類。PLC的通訊協(xié)議中大多數(shù)都是使用16進(jìn)制通訊。而且在串口通訊中,為了保證通訊的正確性、完整性,通常在通訊幀的尾部加上校驗(yàn),常見的有和校驗(yàn),異或校驗(yàn),CRC校驗(yàn)等等。
在通訊過(guò)程中,上位機(jī)的MCGS監(jiān)控軟件調(diào)用PLC驅(qū)動(dòng),根據(jù)具體協(xié)議,向PLC設(shè)備發(fā)送寄存器的讀寫命令,并接收應(yīng)答數(shù)據(jù)。