PLC的RS-485口與計(jì)算機(jī)通信實(shí)現(xiàn)遠(yuǎn)程監(jiān)控.doc_第1頁(yè)
PLC的RS-485口與計(jì)算機(jī)通信實(shí)現(xiàn)遠(yuǎn)程監(jiān)控.doc_第2頁(yè)
PLC的RS-485口與計(jì)算機(jī)通信實(shí)現(xiàn)遠(yuǎn)程監(jiān)控.doc_第3頁(yè)
PLC的RS-485口與計(jì)算機(jī)通信實(shí)現(xiàn)遠(yuǎn)程監(jiān)控.doc_第4頁(yè)
PLC的RS-485口與計(jì)算機(jī)通信實(shí)現(xiàn)遠(yuǎn)程監(jiān)控.doc_第5頁(yè)
已閱讀5頁(yè),還剩5頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

PLC的RS-485口與計(jì)算機(jī)通信實(shí)現(xiàn)遠(yuǎn)程監(jiān)控廈門(mén)世科自動(dòng)化工程有限公司 一、概述臺(tái)達(dá)DVP系列PLC因其功能齊全、結(jié)構(gòu)緊湊、組網(wǎng)簡(jiǎn)單、通信協(xié)議公開(kāi)等特點(diǎn)而受到海內(nèi)外客戶(hù)的盛譽(yù)!臺(tái)達(dá)DVP系列PLC集RS232、RS485于一身,且在組網(wǎng)方面PLC端無(wú)需增加任何通信轉(zhuǎn)接設(shè)備,網(wǎng)絡(luò)連接簡(jiǎn)單,通信穩(wěn)定可靠,可據(jù)用戶(hù)的意念對(duì)其進(jìn)行編寫(xiě)通信程序,使用方便。本文介紹計(jì)算機(jī)與臺(tái)達(dá)PLC之間用RS-485通信實(shí)現(xiàn)遠(yuǎn)程監(jiān)控,計(jì)算機(jī)作為主站,可以實(shí)現(xiàn)對(duì)PLC從站各寄存器的讀/寫(xiě)操作。計(jì)算機(jī)通過(guò)COM口發(fā)送指令到PLC的485口,PLC通過(guò)通信串行I/O(RS)指令,然后對(duì)指令進(jìn)行譯碼,譯碼后調(diào)用相應(yīng)的讀/寫(xiě)子程序?qū)崿F(xiàn)指令要求的操作,并通過(guò)通信串行I/O(RS)指令返回指令執(zhí)行的狀態(tài)信息。QQ名字文章用中央空調(diào)監(jiān)控系統(tǒng)為例子,為解決在計(jì)算機(jī)中能用RS-485與PLC通信,在計(jì)算機(jī)中加插一塊兩口的RS232/RS485轉(zhuǎn)換卡,口號(hào)為(COM3、COM4);現(xiàn)場(chǎng)用8臺(tái)臺(tái)達(dá)DVP20EX00R作為控制子站(J1J8),其中J1J4 5個(gè)子站連成一個(gè)485子網(wǎng)與計(jì)算機(jī)COM3口通信,J5J8 5個(gè)子站連成一個(gè)485子網(wǎng)與計(jì)算機(jī)COM4口通信。計(jì)算機(jī)上運(yùn)行的程序由VB6.0環(huán)境下實(shí)現(xiàn)(可用任一高級(jí)語(yǔ)言)。系統(tǒng)功能:A、 計(jì)算機(jī)從各PLC中讀取當(dāng)前的實(shí)時(shí)采樣資料(溫度、室內(nèi)壓力、濕度、各個(gè)風(fēng)閥的開(kāi)度與狀態(tài)、各IO及中間狀態(tài)); B、 對(duì)PLC設(shè)定溫度、濕度; C、 對(duì)PLC設(shè)定各個(gè)PID參數(shù)(每臺(tái)PLC 8個(gè)PID) D、 對(duì)PLC設(shè)定開(kāi)關(guān)機(jī)延時(shí)參數(shù) E、 對(duì)PLC設(shè)定溫濕控制中的快啟參數(shù)計(jì)算機(jī)在0.5秒內(nèi)完成對(duì)所有PLC資料的讀取、處理與顯示。二、系統(tǒng)方案及網(wǎng)絡(luò)結(jié)構(gòu)1、 出于如下考慮我們選用RS-485A、 DVP系列PLC具有RS-485口與通信能力;B、 整個(gè)系統(tǒng)有多臺(tái)PLC子系統(tǒng)組成;C、 原有RS-232已用于與其它設(shè)備通信;D、 各子系統(tǒng)相距較遠(yuǎn)(最大距離600米);E、 抗干擾性強(qiáng),有利于精確度的控制。2、 系統(tǒng)硬件組成 A、 DVP系列(DVP20EX00R)PLC:自帶RS232與RS485口,組網(wǎng)方便;B、 2芯帶屏蔽雙絞線(xiàn):抗干擾性強(qiáng);C、 工業(yè)控制計(jì)算機(jī):穩(wěn)定性好;D、 RS232/RS485轉(zhuǎn)換卡:安裝后,可象計(jì)算機(jī)自帶的RS232口一樣使用。三、通信實(shí)現(xiàn) DVP系列PLC的485通信方式較為靈活,通俗地說(shuō)其通信方式可分為:自由方式與可定義方式兩種。本文中用自由方式的通信格式(即不對(duì)起始字符與結(jié)束字符定義)。1、 通信串行I/O指令DVP系列PLC指令集中有一指令專(zhuān)用于RS485通信:RS指令,用此指令可實(shí)現(xiàn)DVP系列PLC與所有遵循標(biāo)準(zhǔn)RS-485通信功能的設(shè)備進(jìn)行485方式的通信操作。2、 與RS指令有關(guān)的M組件M1120:用于保持已設(shè)定的通信協(xié)議??稍赑LC RUN的瞬間(M1002)時(shí)用 SET M1120 指令:LD M1002 SET M1120在PLC RUN的瞬間,PLC會(huì)據(jù)D1120內(nèi)的設(shè)定資料作為當(dāng)前的通信協(xié)議。 M1122:通信條件開(kāi)關(guān)。無(wú)論用戶(hù)是要用RS指令發(fā)送資料或接收數(shù)據(jù),在RS指令之前,都要使M1122處于ON的狀態(tài),否則RS指令不執(zhí)行。當(dāng)RS指令執(zhí)行完成后,PLC將自動(dòng)把M1122置為OFF狀態(tài),用戶(hù)要在RS指令在下一次通信之前置把M1122置為ON狀態(tài)。 M1123:RS指令接收數(shù)據(jù)完畢標(biāo)志。當(dāng)RS指令接收資料完畢時(shí),PLC將把M1123置為ON狀態(tài),用戶(hù)可把此作為處理接收來(lái)資料的入口,處理完接收來(lái)的資料后,要實(shí)時(shí)把M1123置為OFF狀態(tài),以保通信程序的正確性。 M1161:通信位處理模式。OFF:16位;ON:8位 M1126:通信位處理模式。OFF:16位;ON:8位3、 通信協(xié)議參數(shù)的定義(D1120)D1120中存放的數(shù)據(jù)用于定義RS指令在進(jìn)行通信時(shí)所用到的基本參數(shù)。如用戶(hù)要使用9600,N,8,1 的參數(shù),則D1120中的資料需為 H81(0000 0000 1000 0001)D1120中的設(shè)定一定要與對(duì)方的設(shè)定通信參數(shù)一致,否則通信將不能成功。注:為使PLC中的資料在通信過(guò)程中確保不丟失,建議用8位的資料位。4、 通信格式的定義臺(tái)達(dá)DVP系列PLC在通信的字符格式方面沒(méi)有特別的規(guī)定,這樣就有利于用戶(hù)根據(jù)需要自由定義自己的通信字符格式。在本例系統(tǒng)中,因考慮到各PLC子系統(tǒng)離計(jì)算機(jī)較遠(yuǎn),在各個(gè)電氣柜中又有會(huì)產(chǎn)生干擾源的變頻器,為使確保資料在傳送過(guò)程中的正確性,在字符格式中增加了校驗(yàn)字符(一個(gè)字節(jié)),以校驗(yàn)數(shù)據(jù)的正確性。 在本例系統(tǒng)中,計(jì)算機(jī)向PLC發(fā)送的信息有8種(分為讀數(shù)與寫(xiě)設(shè)定資料),PLC又怎么識(shí)別計(jì)算機(jī)要PLC進(jìn)行何種操作呢?據(jù)此在字符格式中增加了操作功能字符(一個(gè)字節(jié)),用于使PLC識(shí)別計(jì)算機(jī)要PLC進(jìn)行何種操作。 在本例系統(tǒng)中,一個(gè)RS485子網(wǎng)中不只一臺(tái)PLC,要使PLC能識(shí)別計(jì)算機(jī)是否要與自己通信,在字符格式中還需要增加PLC站號(hào)字符(一個(gè)字節(jié)),用于使PLC識(shí)別計(jì)算機(jī)是否要與自己通信。據(jù)以上的要求,形成的通信字符格式為:PLC站號(hào)+操作功能號(hào)+要傳送的資料+校驗(yàn)字節(jié)四、PLC中通信程序的實(shí)現(xiàn)程序說(shuō)明:1、 由于篇幅所限,實(shí)際應(yīng)用中的程序有3000多步,在此只能列出簡(jiǎn)要的用于說(shuō)明RS485通信的程序段;2、 程序中PLC站號(hào)為2號(hào),當(dāng)PLC確定由計(jì)算機(jī)傳來(lái)的第一個(gè)字符為2時(shí),此程序段程序中數(shù)據(jù)處理才被執(zhí)行;3、 0號(hào)操作功能為從PLC中讀取實(shí)時(shí)數(shù)據(jù);1號(hào)操作功能為向PLC設(shè)定資料,PLC把已設(shè)定進(jìn)去(D536)的資料反傳給計(jì)算機(jī),以便計(jì)算機(jī)驗(yàn)正數(shù)據(jù)設(shè)定的成功與否;4、 D254為校驗(yàn)字節(jié)。六、計(jì)算機(jī)中通信程序的實(shí)現(xiàn)在計(jì)算機(jī)中用MSCOMM控件實(shí)現(xiàn)對(duì)COM3與COM4的操作通信。與臺(tái)達(dá)DVP系列PLC通信可用字符方式與二進(jìn)制方式,考慮到操作的方便性,本例子系統(tǒng)中用二進(jìn)制ASCII方式,為解決對(duì)大于255的資料,在PLC與計(jì)算機(jī)程序中要進(jìn)行分解處理。1、 MSCOMM屬性的定義通信口定義為3,通信方式定義為二進(jìn)制方式,通信參數(shù)定義為與PLC中的一致9600,N,8,1,使用通信事件捕獲與軟中斷方式。因MSCOMM控件為在Windows下的標(biāo)準(zhǔn)控件,在此不再詳細(xì)說(shuō)明。2、 在計(jì)算機(jī)中接收與發(fā)送資料程序Global SendToPLCString_485(11) As ByteGlobal ReadFromPLCString_485() As ByteGlobal ReadFromPLCStringLen As IntegerPublic Sub DoCommPort(DoType As Integer, PortNoTemp As Integer) 用于串口的打開(kāi)與關(guān)閉 On Error GoTo COMMError COMMOpenFlag(PortNoTemp) = False If DoType = 1 Then If FormMain.PLCComm(PortNoTemp).PortOpen = False Then FormMain.PLCComm(PortNoTemp).PortOpen = True End If Else If FormMain.PLCComm(PortNoTemp).PortOpen = True Then FormMain.PLCComm(PortNoTemp).PortOpen = False End If End If On Error GoTo 0 Exit SubCOMMError: If DoType = 1 Then MsgBox 打開(kāi)網(wǎng)絡(luò)連接端口 & Trim$(Str$(PortNoTemp) & 錯(cuò)誤! & Chr(13) & 系統(tǒng)將無(wú)法實(shí)現(xiàn)連網(wǎng)監(jiān)控或設(shè)定功能。, 0, 警告 COMMOpenFlag(PortNoTemp) = True Else MsgBox 關(guān)閉網(wǎng)絡(luò)連接端口錯(cuò)誤!, 0, 警告 End If On Error GoTo 0End SubPrivate Sub PLCComm_OnComm(Index As Integer) 用于接收串口的字節(jié)if PLCComm(Index).InBufferCount = 13 Then ReadFromPLCStringLen = FormMain.PLCComm(LinkCommNo).InBufferCount 位組長(zhǎng)度 ReadFromPLCString_485 = FormMain.PLCComm(LinkCommNo).Input 取字節(jié) FormMain.PLCComm(LinkCommNo).InBufferCount = 0 清除字節(jié) Dim ErrorFlag As Integer ErrorFlag = 0 For SampleI = 0 To 12 處理字節(jié) SampleString(SampleI) = ReadFromPLCString_485(SampleI) If SampleI 12 Then ErrorFlag = ErrorFlag + SampleString(SampleI) Next SampleI ErrorFlag = ErrorFlag Mod 256 算出校驗(yàn)字節(jié) If ErrorFlag SampleString(12) Then Exit SubPLCNoTemp = SampleString(0) 得出PLC站號(hào) End IfEnd SubPublic Sub SendToPLC_SelectPLC_485(PLCNoTemp As Integer) 發(fā)送字節(jié)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論