PLC控制器上位機(jī)通信控制
時(shí)間:2022-06-07 06:09:00
導(dǎo)語(yǔ):PLC控制器上位機(jī)通信控制一文來(lái)源于網(wǎng)友上傳,不代表本站觀點(diǎn),若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。
可編程邏輯控制器plc作為一種高性能的控制裝置,在控制領(lǐng)域已經(jīng)得到了廣泛應(yīng)用,在使用PLC的控制方式中,上位監(jiān)控系統(tǒng)是其中的重要組成部分。目前PLC與上位機(jī)PC(計(jì)算機(jī))通信方式主要有以下幾種:
1)通過(guò)PLC開(kāi)發(fā)商提供的系統(tǒng)協(xié)議與網(wǎng)絡(luò)適配器,構(gòu)成特定公司產(chǎn)品的內(nèi)部網(wǎng)絡(luò),其通信協(xié)議不公開(kāi)?;ヂ?lián)通信必須使用開(kāi)發(fā)商提供的上位組態(tài)軟件,并采用支持相應(yīng)協(xié)議的外設(shè)。這種方式顯示畫面和功能往往難以滿足不同用戶的需要。
2)購(gòu)買通用的上位組態(tài)軟件,實(shí)現(xiàn)上位機(jī)與PLC的通信。這種方式除了要增加系統(tǒng)投資外,其應(yīng)用的靈活性也受到一定的局限。
3)利用PLC廠商提供的標(biāo)準(zhǔn)通信口或由用戶自定義的自由通信口實(shí)現(xiàn)上位機(jī)與PLC互聯(lián)通信。這種方式不需要增加投資,有較好的靈活性,特別適合小規(guī)??刂葡到y(tǒng)。
不同的通信方式,有著不同的成本價(jià)格和不同的適用范圍。本文就西門子公司的S7-200系列PLC與上位機(jī)通信方法的實(shí)現(xiàn),介紹一種通過(guò)上位機(jī)的RS-232口與PLC進(jìn)行自由口通信的實(shí)現(xiàn)方法。
1通信裝置的硬件實(shí)現(xiàn)
PLC與上位機(jī)之間進(jìn)行通信,可使二者互補(bǔ)功能上的不足,PLC用于控制領(lǐng)域,既方便又可靠,而上位機(jī)在圖形顯示,數(shù)據(jù)處理,打印報(bào)表,以及中文顯示等方面有強(qiáng)大的功能。因此,各PLC制造廠商紛紛開(kāi)發(fā)了適用于本公司產(chǎn)品與計(jì)算機(jī)通信的端口或模塊。西門子S7-200系列控制器的通信端口支持自由口通信模式,其通信口符合歐洲標(biāo)準(zhǔn)EN50170中PROFIBUS標(biāo)準(zhǔn)的RS-485兼容9針D型連接器。表1列出了為通信口提供物理連接的連接器,并描述了通信端口的針腳分配。上位機(jī)的串行通信端口為9針D型RS-232標(biāo)準(zhǔn)的端口,為了實(shí)現(xiàn)PLC與上位機(jī)通信,必須將RS-232標(biāo)準(zhǔn)轉(zhuǎn)換成RS-485標(biāo)準(zhǔn)。RS-232采用負(fù)邏輯,用-5~-15表示邏輯狀態(tài)“1”,用+5~+15表示邏輯狀態(tài)“0”。RS-232的最大通信距離為15m,最高傳輸速率為20kbit/s,只能進(jìn)行一對(duì)一的通信。RS-485為半雙工通信方式,只有一對(duì)平衡差分信號(hào)線,不能同時(shí)發(fā)送和接收。將RS-232信號(hào)轉(zhuǎn)換成RS-485信號(hào),使用RS-232/RS-485轉(zhuǎn)換器即可,使用時(shí)轉(zhuǎn)換器插在計(jì)算機(jī)9針D型通信口,PLC與轉(zhuǎn)換器之間通過(guò)信號(hào)線A、B進(jìn)行兩根線通信,即使用針3和針8。
2通信裝置的軟件實(shí)現(xiàn)
自由口通信是通過(guò)用戶程序控制PLC通信口的操作模式,利用自由口模式,可以實(shí)現(xiàn)用戶定義的通信協(xié)議,連接多種智能設(shè)備。PLC與上位機(jī)之間的通信是以上位機(jī)發(fā)出數(shù)據(jù)的請(qǐng)求命令,PLC向其發(fā)送數(shù)據(jù)的方式進(jìn)行通信的。
2.1通信協(xié)議
通過(guò)使用接收中斷,發(fā)送中斷,發(fā)送指令(XMT)和接收指令(RCV),用戶程序可以實(shí)現(xiàn)在自由口模式下對(duì)通信端口的控制,在自由口模式下,通信協(xié)議完全由用戶程序控制。使用通信端口0與計(jì)算機(jī)通信時(shí),通過(guò)SMB30允許自由口模式,而且只有在PLC處于RUN模式時(shí)才能允許,當(dāng)PLC處于STOP模式時(shí),自由口通信停止,通信口轉(zhuǎn)換成正常的PPI協(xié)議操作。由于通信只使用A、B兩線制進(jìn)行數(shù)據(jù)傳送,不能利用硬件信號(hào)作為檢測(cè)手段,故在上位機(jī)與PLC通信發(fā)生誤碼時(shí),將不能通過(guò)硬件判斷是否發(fā)生誤碼,或者當(dāng)上位機(jī)與PLC工作速率不一樣時(shí)就會(huì)發(fā)生沖突。這些通信錯(cuò)誤將導(dǎo)致PLC控制程序不能正常工作,因此必須使用軟件,以保證通信的可靠性。
2.2通信過(guò)程
通信程序的工作過(guò)程是:PLC接收到上位機(jī)送出的請(qǐng)求數(shù)據(jù)后,先進(jìn)行數(shù)據(jù)比較成功后,向上位機(jī)發(fā)送數(shù)據(jù),而后再次處于接收狀態(tài)。采用軟件后,不管上位機(jī)與PLC的速度相差多遠(yuǎn),發(fā)送方永遠(yuǎn)也不會(huì)超前于接收方。下面是將通信端口0初始化為自由口模式的一段程序,見(jiàn)圖1。圖1程序Ⅰ該段程序只在PLC上電或由STOP轉(zhuǎn)為RUN模式后第一掃描周期運(yùn)行,圖1中,通過(guò)程序的執(zhí)行,自由口模式運(yùn)行的端口0具體通信設(shè)置參數(shù)為:不進(jìn)行奇偶校驗(yàn),每個(gè)字符的數(shù)據(jù)為8位/字符,波特率為9600bit/s,自由端口協(xié)議;檢測(cè)報(bào)文的開(kāi)始和空閑狀態(tài);以5ms為單位的空閑線時(shí)間間隔;接收的最大字符數(shù)為4;接收中斷事件號(hào)為23;發(fā)送中斷事件號(hào)為9;允許用戶中斷;接收的字符放在以VB200開(kāi)始的字節(jié),使用通信端口0進(jìn)行通信。當(dāng)PLC接收到上位機(jī)發(fā)送的4個(gè)字節(jié)1、3、5、7時(shí)見(jiàn)圖2,10ms后啟動(dòng)發(fā)送程序INT_3向上位機(jī)發(fā)送數(shù)據(jù),每次接收不到上位機(jī)發(fā)送來(lái)的字節(jié)時(shí)都會(huì)啟動(dòng)接收程序,也就是說(shuō),PLC一直處于接收、發(fā)送、再接收的循環(huán)往復(fù)中。圖3表示,PLC將接從通信端口0接收到的字符,放在以VB200開(kāi)始的字節(jié)中。