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

下載本文檔

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

文檔簡(jiǎn)介

本文格式為Word版,下載可任意編輯——基于VB實(shí)現(xiàn)臺(tái)達(dá)PLC與PC機(jī)串行通訊

好東西無需介紹!自己總結(jié)的,絕對(duì)一手!希望對(duì)你有用!

基于VB實(shí)現(xiàn)臺(tái)達(dá)PLC與PC串行通訊

隨著工業(yè)自動(dòng)化控制技術(shù)的不斷發(fā)展,可編程規(guī)律控制器(PLC)與上位機(jī)之間通訊的應(yīng)用越來越廣泛。在PLC與上位機(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(數(shù)據(jù))等業(yè)務(wù),為選擇高效、廉價(jià)的數(shù)據(jù)傳輸提供了新的思路。各種組態(tài)軟件,如:iFix、MCGS、組態(tài)王等雖然可以實(shí)現(xiàn)PLC的遠(yuǎn)程監(jiān)控,但不能實(shí)現(xiàn)PLCModbus通訊協(xié)議與GSM模塊的通訊協(xié)議的轉(zhuǎn)換。本文就是基于這點(diǎn)考慮,運(yùn)用VB編制操作界面和通信功能,完成臺(tái)達(dá)PLC與PC機(jī)串行通訊,這是實(shí)現(xiàn)GSM模塊與PLC通訊的關(guān)鍵技術(shù)所在。

1通訊硬件及協(xié)議簡(jiǎn)介

1.1通訊硬件組成

臺(tái)達(dá)PLC自帶有兩個(gè)通訊串口(EH系列可擴(kuò)展第三個(gè)通訊口RS-485或RS-422)COM1和COM2。COM1采用標(biāo)準(zhǔn)RS-232接口,它是一種近距離、低干擾、點(diǎn)對(duì)點(diǎn)的通訊協(xié)議。該接口在下載完P(guān)LC程序后一般都處于閑置狀態(tài)。COM2是標(biāo)準(zhǔn)RS-485接口,可用于用抗干擾能力強(qiáng)、可多臺(tái)串接組網(wǎng)的通訊方式。在該生產(chǎn)線的控制系統(tǒng)中,COM2已用于PLC與變頻器之間的通訊,而一般PC機(jī)都自帶標(biāo)準(zhǔn)RS-232接口。因此PC機(jī)與PLC之間通訊采用COM1(RS-232)接口,連接線采用臺(tái)達(dá)PLC的編程電纜DVPACAB230。

1.2通訊協(xié)議介紹

Modbus協(xié)議是應(yīng)用于電子控制器上的一種通用語言。通過此協(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)行通信的。它描述了一控制器請(qǐng)求訪問其它設(shè)備的過程,假使回應(yīng)來自其它設(shè)備的請(qǐng)求,以及怎樣偵測(cè)錯(cuò)誤并記錄。它制定了消息域格局和內(nèi)容的公共格式。當(dāng)在一Modbus網(wǎng)絡(luò)上通信時(shí),此協(xié)議決定了每個(gè)控制器必需知道它們的設(shè)備地址,識(shí)別按地址發(fā)來的消息,決定要產(chǎn)生何種行動(dòng)。假使需要回應(yīng),控制器將生成反饋信息并用Modbus協(xié)議發(fā)出。在其它網(wǎng)絡(luò)上,包含了Modbus協(xié)議的消息轉(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ò)通信。

PLC與上位機(jī)通訊時(shí),尋常由上位計(jì)算機(jī)發(fā)出命令給PLC,PLC處于被動(dòng)狀態(tài)。臺(tái)達(dá)PLC所有通訊口都遵循Modbus通訊協(xié)議,出廠默認(rèn)的通訊格式為“9600,7,E,1〞、ASCII模式。波特率為9600,數(shù)據(jù)長(zhǎng)度為7位,數(shù)據(jù)校驗(yàn)方式為偶校驗(yàn),終止字元長(zhǎng)度為1位,以上參數(shù)可以通過WPL編程軟件修改。本文僅以ASCII通訊模式為例實(shí)現(xiàn)臺(tái)達(dá)PLC與PC機(jī)的通訊。ASCII通訊格式如表1所示:

好東西無需介紹!自己總結(jié)的,絕對(duì)一手!希望對(duì)你有用!

表1:ASCII通訊格式

地址:地址棧號(hào)范圍為01~FF十六進(jìn)制數(shù)

功能碼:〞01〞讀多個(gè)S、Y、M、T、C的狀態(tài),PLC返回一串?dāng)?shù)據(jù),其中包含了

讀出的一系列裝置的十六進(jìn)制數(shù)。

“02〞讀取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〞強(qiáng)制使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è)LRC在接收設(shè)備進(jìn)行核驗(yàn),并與被傳送的LRC進(jìn)行比較,冒號(hào)(:)、回車符號(hào)(CR)及置入的其他任何非ASCII十六進(jìn)制字符在運(yùn)算時(shí)忽略不計(jì)。范例如表2所示:

表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í)語言,為用戶提供直觀的工作環(huán)境,為監(jiān)控系統(tǒng)建立良好的用戶界面奠定了基礎(chǔ)。VB采用事件驅(qū)動(dòng),編程與調(diào)試便利,可以快速地編制出性能良好的應(yīng)用程序,通過對(duì)串行通信控件MSComm的簡(jiǎn)單配置,就可以完成串行口的讀寫操作,是上位機(jī)監(jiān)控系統(tǒng)常用的開發(fā)工具。在PLC與上位機(jī)通信之前,必需對(duì)RS一232通訊端口進(jìn)行初始化,包括波特率、起始位、數(shù)據(jù)位、中止位、奇偶校驗(yàn)等,使兩者依照一致的格式通訊.C200HX的RS一232C通訊口一般設(shè)置為9600bps,7位數(shù)據(jù)位,1個(gè)中止位,偶校驗(yàn),I位起始位.可對(duì)VB的MSComm控件的setting屬性進(jìn)行設(shè)置來實(shí)現(xiàn)對(duì)串口的初始化。

2.1MSComm控件

MSComm控件通過串行端口傳輸和接收數(shù)據(jù),為應(yīng)用程序提供串行通信功能。常用通信屬性如下:

CommPort屬性:用來設(shè)置或返回通信端口號(hào)碼。

Settings屬性:用來設(shè)置波特率、奇偶校驗(yàn)、數(shù)據(jù)位和中止位。

PortOpen屬性:用來設(shè)置或返回通信連接口的狀態(tài)。

好東西無需介紹!自己總結(jié)的,絕對(duì)一手!希望對(duì)你有用!

Input屬性:用于從輸^緩存區(qū)返回并刪除字符。

Output屬性:用于將一個(gè)字符串寫入輸出緩存區(qū)。

CommEvent屬性:在通信錯(cuò)誤或事件發(fā)生時(shí)會(huì)產(chǎn)生OnComm事件,CommEvent

屬性存有該錯(cuò)誤事件的數(shù)值碼。

2.2通信程序的編寫

此程序只涉及PC機(jī)與臺(tái)達(dá)PLC通訊部分,計(jì)算機(jī)對(duì)外部信號(hào)處理本文稍后介紹mPort=1設(shè)置COM1通訊端口IfMSComm1.PortOpen=FalseThen開啟串口

MSComm1.PortOpen=True

EndIf

MSComm1.Settings=9600,E,7,1'.Settings:設(shè)置并返回波特率

9600、偶校驗(yàn)、數(shù)據(jù)位7位、

中止位1位的通訊格式

MSComm1.InBufferCount=0清空接收緩沖區(qū)

MSComm1.OutBufferCount=0清空發(fā)送緩沖區(qū)

MSComm1.InputMode=0設(shè)置數(shù)據(jù)格式為字符形式MSComm1.RTSEnable=True串口通訊使能

MSComm1.Output=符合協(xié)議的字符命令串PC向PLC發(fā)送數(shù)據(jù)Text1.Text=MSComm1.InputPLC向PC機(jī)返回?cái)?shù)據(jù)MSComm1.PortOpen=False數(shù)據(jù)發(fā)送后關(guān)閉串口EndSub

3通信例如

預(yù)設(shè)PLC站號(hào)地址為“01〞,以下若沒有特別說明PLC站號(hào)地址均為“01〞?!癈R〞表示回車

3.1對(duì)輔助繼電器M0操作

1)置位M0

入地址的低8位,“FF00〞表示置位放入Data3、Data4,LRC為校驗(yàn)碼PC向PLC發(fā)送字符命令串=“:01050800FF00F3CR〞

PLC向PC返回字符串=“:01050800FF00F3CR〞

PC向PLC發(fā)送字符命令串=“:010508000000F3CR〞

PLC向PC返回字符串=“:010508000000F2CR〞

若第三個(gè)數(shù)據(jù)位變?yōu)?,則通訊出現(xiàn)錯(cuò)誤。

好東西無需介紹!自己總結(jié)的,絕對(duì)一手!希望對(duì)你有用!

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,高低8位分別放入Data3,Data4

PLC向PC返回字符串=“:010612000020C7CR

此值最大值為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終止語

臺(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è)、診

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(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)論