基于VB實(shí)現(xiàn)臺(tái)達(dá)PLC與PC機(jī)串行通訊_第1頁(yè)
基于VB實(shí)現(xiàn)臺(tái)達(dá)PLC與PC機(jī)串行通訊_第2頁(yè)
基于VB實(shí)現(xiàn)臺(tái)達(dá)PLC與PC機(jī)串行通訊_第3頁(yè)
基于VB實(shí)現(xiàn)臺(tái)達(dá)PLC與PC機(jī)串行通訊_第4頁(yè)
基于VB實(shí)現(xiàn)臺(tái)達(dá)PLC與PC機(jī)串行通訊_第5頁(yè)
已閱讀5頁(yè),還剩1頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、基于VB實(shí)現(xiàn)臺(tái)達(dá)PLC與PC串行通訊隨著工業(yè)自動(dòng)化控制技術(shù)的不斷發(fā)展,可編程邏輯控制器(PLC)與上位機(jī)之間通訊的應(yīng)用越來越廣泛。在PLCW上位機(jī)組成的集散控制系統(tǒng)中,PLC乍為下位機(jī)完成現(xiàn)場(chǎng)各種信號(hào)和數(shù)據(jù)的采集、運(yùn)算和完成對(duì)系統(tǒng)的底層控制,上位機(jī)則可提供人機(jī)交互界面,實(shí)現(xiàn)數(shù)據(jù)的處理以及現(xiàn)場(chǎng)數(shù)據(jù)的實(shí)時(shí)顯示等監(jiān)視和遠(yuǎn)程控制等功能。為實(shí)現(xiàn)面向產(chǎn)品全生命周期的數(shù)字化遠(yuǎn)程服務(wù)經(jīng)營(yíng)理念的制造裝備的遠(yuǎn)程監(jiān)測(cè)、診斷與維護(hù)技術(shù),隨著移動(dòng)通訊市場(chǎng)的迅速擴(kuò)大,GSM無線數(shù)字蜂窩通訊網(wǎng)絡(luò)在我國(guó)得到了高速的發(fā)展,不但擁有較高的覆蓋率,而且相繼開放了SMS儂消息)、FAX(傳真)、DATA儆據(jù))等業(yè)務(wù),為選擇高效、廉價(jià)

2、的數(shù)據(jù)傳輸提供了新的思路。各種組態(tài)軟件,如:iFix、MCGS組態(tài)王等雖然可以實(shí)現(xiàn)PLC勺遠(yuǎn)程監(jiān)控,但不能實(shí)現(xiàn)PLCModbus®訊協(xié)'議與GSMI塊的通訊協(xié)議的轉(zhuǎn)換。本文就是基于這點(diǎn)考慮,運(yùn)用V踹制操作界面和通信功能,完成臺(tái)達(dá)PLC與PC機(jī)串行通訊,這是實(shí)現(xiàn)GSM模塊與PLC通訊的關(guān)鍵技術(shù)所在。1 通訊硬件及協(xié)議簡(jiǎn)介1.1 通訊硬件組成臺(tái)達(dá)PLC1帶有兩個(gè)通訊串口(EH!(列可擴(kuò)展第三個(gè)通訊口RS-485或RS-422)COM和COM2COM1用標(biāo)準(zhǔn)RS-232接口,它是一種近距離、低干擾、點(diǎn)對(duì)點(diǎn)的通訊協(xié)議。該接口在下載完P(guān)LCg序后一般都處于閑置狀態(tài)。COM是標(biāo)準(zhǔn)RS-4

3、85接口,可用于用抗干擾能力強(qiáng)、可多臺(tái)串接組網(wǎng)的通訊方式。在該生產(chǎn)線的控制系統(tǒng)中,COM2用于PLCW變頻器之間的通訊,而一般PCM都自帶標(biāo)準(zhǔn)RS-232接口。因此PCM與PLC±間通訊采用COM1(RS-232)接口,連接線采用臺(tái)達(dá)PLC勺編程電纜DVPACAB2301.2通訊協(xié)議介紹Modbus協(xié)議是應(yīng)用于電子控制器上的一種通用語(yǔ)言。通過此協(xié)議,控制器相互之間、控制器經(jīng)由網(wǎng)絡(luò)(例如以太網(wǎng))和其它設(shè)備之間可以通信。它已經(jīng)成為一通用工業(yè)標(biāo)準(zhǔn)。有了它,不同廠商生產(chǎn)的控制設(shè)備可以連成工業(yè)網(wǎng)絡(luò),進(jìn)行集中監(jiān)控。此協(xié)議定義了一個(gè)控制器能認(rèn)識(shí)使用的消息結(jié)構(gòu),而不管它們是經(jīng)過何種網(wǎng)絡(luò)進(jìn)行通信的。它

4、描述了一控制器請(qǐng)求訪問其它設(shè)備的過程,如果回應(yīng)來自其它設(shè)備的請(qǐng)求,以及怎樣偵測(cè)錯(cuò)誤并記錄。它制定了消息域格局和內(nèi)容的公共格式。當(dāng)在一Modbu函絡(luò)上通信時(shí),此協(xié)議決定了每個(gè)控制器須要知道它們的設(shè)備地址,識(shí)別按地址發(fā)來的消息,決定要產(chǎn)生何種行動(dòng)。如果需要回應(yīng),控制器將生成反饋信息并用Modbus#議發(fā)出。在其它網(wǎng)絡(luò)上,包含了Modbus#議的消息轉(zhuǎn)換為在此網(wǎng)絡(luò)上使用的幀或包結(jié)構(gòu)。這種轉(zhuǎn)換也擴(kuò)展了根據(jù)具體的網(wǎng)絡(luò)解決節(jié)地址、路由路徑及錯(cuò)誤檢測(cè)的方法??刂破髂茉O(shè)置為兩種傳輸模式(ASCII或RTU中的任何一種在標(biāo)準(zhǔn)的Modbus網(wǎng)絡(luò)通信。PLCI上位機(jī)通訊時(shí),通常由上位計(jì)算機(jī)發(fā)出命令給PLC,PLCM

5、于被動(dòng)狀態(tài)。臺(tái)達(dá)PLCIf有通訊口都遵循Modbus®訊協(xié)議,出廠默認(rèn)的通訊格式為“9600,7,E,1"、ASCII模式。波特率為9600,數(shù)據(jù)長(zhǎng)度為7位,數(shù)據(jù)校驗(yàn)方式為偶校驗(yàn),結(jié)束字元長(zhǎng)度為1位,以上參數(shù)可以通過WP編程軟件修改。本文僅以ASCII通訊模式為例實(shí)現(xiàn)臺(tái)達(dá)PLCWPCM的通訊。ASCII通訊格式如表1所示:StxAddressFunctionDataLRCEnd:1位1位132位1位回車鍵表1:ASCII通訊格式地址:地址棧號(hào)范圍為01FF十六進(jìn)制數(shù)功能碼:“01”讀多個(gè)S、Y、M、T、C的狀態(tài),PLC返回一串?dāng)?shù)據(jù),其中包含了讀出的一系列裝置的十六進(jìn)制數(shù)。0

6、2”讀取S、Y、M、T、C輸入狀態(tài),PLC返回一串?dāng)?shù)據(jù),其中包含了讀出的一系列裝置的十六進(jìn)制數(shù)。03”讀取D、T、C寄存器的值,返回?cái)?shù)據(jù)串中包含寄存器值的十六進(jìn)制數(shù)。05賀制使S、Y、M、T、C置位或復(fù)位,當(dāng)數(shù)據(jù)內(nèi)容為“FF00”置位,當(dāng)為“0000”則復(fù)位。06”向PLC的D、T、C寄存器寫值,值應(yīng)為十六進(jìn)制的。LRC校驗(yàn)碼:LRC(LongitudinalRedundancyCheck)錯(cuò)誤校驗(yàn)用于ASCII模式。這個(gè)錯(cuò)誤校驗(yàn)是一個(gè)8位二進(jìn)制數(shù),可作為2個(gè)ASCII十六進(jìn)制字節(jié)傳送。把十六進(jìn)制字符轉(zhuǎn)換成二進(jìn)制,加上無循環(huán)進(jìn)位的二進(jìn)制字符和二進(jìn)制補(bǔ)碼結(jié)果生成LRC錯(cuò)誤校驗(yàn)(參見圖)。這個(gè)LR

7、C在接收設(shè)備進(jìn)行核驗(yàn),并與被傳送的LRC進(jìn)行比較,冒號(hào)(:)、回車符號(hào)(CR)及置入的其他任何非ASCII十六進(jìn)制字符在運(yùn)算時(shí)忽略不計(jì)。范例如表2所示:StxAddressFunctionData1Data2Data3Data4LRCEnd010304010001CR表2:LRC校驗(yàn)碼計(jì)算示例Address+Function+Data1+Data2+Data3+Data4=01+03+04+01+00+01=0A將0A的值周轉(zhuǎn)換成2的補(bǔ)數(shù),0A的2補(bǔ)數(shù)=F6。2軟件實(shí)現(xiàn)我們采用的是基于VB(VisualBasic)平臺(tái)編寫的驅(qū)動(dòng)程序。VB是一個(gè)可視化的高級(jí)語(yǔ)言,為用戶提供直觀的工作環(huán)境,為監(jiān)控

8、系統(tǒng)建立良好的用戶界面奠定了基礎(chǔ)。VB采用事件驅(qū)動(dòng),編程與調(diào)試方便,可以快速地編制出性能良好的應(yīng)用程序,通過對(duì)串行通信控件MSComm的簡(jiǎn)單配置,就可以完成串行口的讀寫操作,是上位機(jī)監(jiān)控系統(tǒng)常用的開發(fā)工具。在PLC與上位機(jī)通信之前,必須對(duì)RS232通訊端口進(jìn)行初始化,包括波特率、起始位、數(shù)據(jù)位、停止位、奇偶校驗(yàn)等,使兩者按照相同的格式通訊.C200Hx的RS232C通訊口一般設(shè)置為9600bps,7位數(shù)據(jù)位,1個(gè)停止位,偶校驗(yàn),I位起始位.可對(duì)VB的MSComm控件的setting屬性進(jìn)行設(shè)置來實(shí)現(xiàn)對(duì)串口的初始化。2.1 MSCommMSComm控件通過串行端口傳輸和接收數(shù)據(jù),為應(yīng)用程序提供串

9、行通信功能。常用通信屬性如下:CommPort屬性:用來設(shè)置或返回通信端口號(hào)碼。Settings屬性:用來設(shè)置波特率、奇偶校驗(yàn)、數(shù)據(jù)位和停止位。PortOpen屬性:用來設(shè)置或返回通信連接口的狀態(tài)。Input屬性:用于從輸入緩存區(qū)返回并刪除字符。Output屬性:用于將一個(gè)字符串寫入輸出緩存區(qū)。CommEvent屬性:在通信錯(cuò)誤或事件發(fā)生時(shí)會(huì)產(chǎn)生OnComm事件,CommEvent屬性存有該錯(cuò)誤事件的數(shù)值碼。2.2 通信程序的編寫設(shè)置COM1通訊端口 打開串口此程序只涉及PC機(jī)與臺(tái)達(dá)PLC通訊部分,計(jì)算機(jī)對(duì)外部信號(hào)處理本文稍后介紹MSComml.CommPort=1IfMSComml.Port

10、Open=FalseThenMSComml.PortOpen=True'.Settings :設(shè)置并返回波特率9600、偶校驗(yàn)、數(shù)據(jù)位 7位、 停止位1位的通訊格式清空接收緩沖區(qū)清空發(fā)送緩沖區(qū)設(shè)置數(shù)據(jù)格式為字符形式 串口通訊使能PC向PLC發(fā)送數(shù)據(jù)PLC向PC機(jī)返回?cái)?shù)據(jù) 數(shù)據(jù)發(fā)送后關(guān)閉串口EndIfMSComm1.Settings="9600,E,7,1”MSComm1.InBufferCount=0MSComm1.OutBufferCount=0MSComm1.InputMode=0MSComm1.RTSEnable=TrueMSComm1.Output=符合協(xié)議的字符命令

11、串Text1.Text二MSComm1.InputMSComm1.PortOpen=FalseEndSub3通信示例預(yù)設(shè)PLC站號(hào)地址為“01”,以下若沒有特殊說明PLC站號(hào)地址均為“01“CR”表示回車3.1對(duì)輔助繼電器M0操作1)置位M0StxAddressFunctionData1Data2Data3Data4LRCEnd01050800FF00F3CRData1、Data2表示輔助繼電器的地址,Data1放入地址的高8位,Data2放入地址的低8位,“FF00”表示置位放入Data3、Data4,LRC為校驗(yàn)碼PC向PLC發(fā)送字符命令串=":01050800FF00F3CR”

12、PLC向PC返回字符串=":01050800FF00F3CR”2)復(fù)位M0StxAddressFunctionData1Data2Data3Data4LRCEnd010508000000F2CR“0000”表示復(fù)位放入Data3、Data4,其余同上不再解釋。PC向PLC發(fā)送字符命令串=":010508000000F3CR”PLC向PC返回字符串=":010508000000F2CR”若第三個(gè)數(shù)據(jù)位變?yōu)?,則通訊出現(xiàn)錯(cuò)誤。3.2對(duì)文件寄存器D512操作1)向D512寫入一個(gè)十進(jìn)制數(shù),如把D512設(shè)定為32,先將十進(jìn)制數(shù)值轉(zhuǎn)換為四位的十六進(jìn)制數(shù),32轉(zhuǎn)換為0020,

13、高低8位分別放入Data3,Data41200”表示D512的地址高低位分別放入Datal、Data2StxAddressFunctionData1Data2Data3Data4LRCEnd010612000020E6CRPC向PLC發(fā)送字符命令串=":010612000020c7CRPLC向PC返回字符串=":010612000020C7CR”2)讀取PLC的D512值StxAddressFunctionData1Data2Data3Data4LRCEnd010312000001E9CRData3、Data4中數(shù)據(jù)內(nèi)容表示讀取以Data1、Data2地址起始的寄存器個(gè)數(shù),

14、此值最大值為7(由通訊格式中數(shù)據(jù)位決定),若該數(shù)據(jù)內(nèi)容為0002,則表示讀取連續(xù)兩個(gè)寄存器的值,依次類推。1200表示D512的地址。PC向PLC發(fā)送字符命令串=":010312000001E9CR”PLC向PC返回字符串“:01030204B046CR”02表示返回值字節(jié)總數(shù)為2(一個(gè)寄存器的字節(jié)數(shù)為2),04B0表示目標(biāo)寄存器D512的數(shù)據(jù)內(nèi)容(十六進(jìn)制)即十進(jìn)制數(shù)1200,46表示校驗(yàn)碼。若第三個(gè)數(shù)據(jù)位變?yōu)?,則通訊出現(xiàn)錯(cuò)誤。4結(jié)束語(yǔ)臺(tái)達(dá)PLC與PC通訊的實(shí)現(xiàn)使PLC與GSM模塊通訊成為可能。PC機(jī)作為中轉(zhuǎn)站完成Modbus通訊協(xié)議與GSM通訊協(xié)議的轉(zhuǎn)換,使GSM無線數(shù)字蜂窩通訊網(wǎng)絡(luò)運(yùn)用于基于PLC勺工業(yè)控制系統(tǒng),實(shí)現(xiàn)制造裝備的遠(yuǎn)程監(jiān)測(cè)、診斷與維護(hù)技

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論