999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

PLC與計算機間通訊的研究

2011-06-13 12:53:02許曉君許建坪
電子測試 2011年8期
關鍵詞:程序計算機

許曉君,許建坪

(川東鉆探公司,重慶 400021)

0 引言

在未來過程控制技術的發(fā)展中,計算機通訊技術的應用前景將是十分可觀的。因此PLC與上位機之間的通信顯得尤其的重要,PLC可以多種方式與上位機通信,比如:VC++,VB,組態(tài)軟件,LabVIEW等都能勝任此工作。盡管組態(tài)軟件有著明顯卓越的性能,但是由于它昂貴的費用使得很難找到一種方法適用于所有的通信系統(tǒng)。因此針對中小型規(guī)模的控制系統(tǒng),人們更傾向于使用高級語言來編寫一些簡單、更實用、更經(jīng)濟的通信程序。因此,找到一種高性價比的通信方案,具有積極的工程意義[3]。利用VC++實現(xiàn)PLC與上位機的通信實現(xiàn)簡單,界面更加友好和人性化。

1 PLC

1.1 PLC工作原理

通用PC的工作方式是等待請求,PLC則采用循環(huán)掃描工作方式,兩者的差異在于PC針對的是人,而PLC針對的是設備[4]。

整個工作過程可分為5個階段:自診斷,與編程器、計算機或其他PLC設備等通信,輸入采樣,用戶程序執(zhí)行,輸出刷新.這5個工作階段稱為一個掃描周期,時間為0.2ms(如圖1所示)。

圖1 PLC工作過程示意圖

1.2 PLC通訊模塊

西門子的S7-300可編程控制器有不同性能級別的多種通信處理器模塊,CP 340,CP 341適合點對點的通信連接。西門子的s7-200小型PLC主要是通過EM-277通信模塊來構建網(wǎng)絡,支持Profibus現(xiàn)場總線通信系統(tǒng)[6]。三菱公司的FX2系列小型PLC也配有良好的通信接口和支持多種通信模式,下面重要介紹三菱公司的FX2系列的PLC與計算機的通訊。

2 PLC與上位機的通信實現(xiàn)

2.1 PLC與計算機的硬件連接

FX-232AW接口模塊用于FX2系列PLC與計算機的通信。但FX2系列PLC的編程接口采用RS422標準,而計算機的串口采用RS232標準,RS232與RS422標準在信號的傳送、邏輯電平方面均不相同。因此,作為實現(xiàn)PLC計算機通信的接口電路,必須將RS422標準轉換成RS232標準[5]。同時在實現(xiàn)上述轉換中采用光電耦合技術。PLC與計算機的硬件連接如圖2所示。

將計算機的RS232的4號和5號引腳(即RS,CS)短接,這樣對計算機發(fā)送數(shù)據(jù)來說,PLC總是處于就緒狀態(tài)。也就是說,計算機在任何時候都可以將數(shù)據(jù)送到PLC內。又由于RS232接口的20腳和6腳交叉相連接。因此,這樣對計算機接收數(shù)據(jù)來說,必須等待至PLC處于準備就緒狀態(tài)。由此組成了PLC與計算機間的通訊硬件連接。

2.2 PLC與計算機的通訊協(xié)議

圖2 FX-232AW與PLC和計算機的接線圖

FX2系列PLC與計算機之間的通信采用RS232標準,其傳輸速率固定為9 600 bit/s,奇偶校驗位采用偶校驗,數(shù)據(jù)以幀為單位發(fā)送和接收。FX2系列與計算機之間的通信是以主機發(fā)出的初始命令,PLC對其作出響應的方式進行通信。數(shù)據(jù)的格式如圖3-2(1)所示,奇偶校驗位采用偶校驗。如圖3(2)為字符STX(021-1)的書定格式。七段數(shù)據(jù)位為ASCII碼。

圖3 數(shù)據(jù)格式的規(guī)定

上位機可以實現(xiàn)對PLC的RAM區(qū)數(shù)據(jù)進行讀、寫、強制置位或復位等操作,并通過請求信號ENQ、響應信號ACK和NAK,來協(xié)調與PLC的通信應答[7]。

2.3 基于VC++6.0通信程序的具體實現(xiàn)

本程序采用Microsoft Communications Control(MSComm)控件,采用事件驅動的方式實現(xiàn)PLC與上位機的串口通信。如果應用程序需要訪問多個串行端口,必須使用多個MSComm控件[8]。本程序主要部分包括:MSComm控件初始化程序,數(shù)據(jù)的發(fā)送程序,數(shù)據(jù)的FCS校驗程序,數(shù)據(jù)接收程序。下面對這些程序實現(xiàn)做簡單的說明。

(1)MSComm控件初始化

這部分程序放在主對話框的OnInitDialog()函數(shù)中,主要程序如下:

if(m_CommCtrl.GetPortOpen())

m_CommCtrl.SetPortOpen(FALSE);

m_CommCtrl.SetCommPort(1);

if(!m_CommCtrl.GetPortOpen())

m_CommCtrl.SetPortOpen(TRUE);//打開串口

else

AfxMessageBox("串口打開失敗");

m_CommCtrl.SetSettings("9600,e,7,2");//波特率 9600,校驗,7位數(shù)據(jù)位,兩個停止位

m_CommCtrl.SetRThreshold(1);//當串口接收緩沖區(qū)中有多于或者等于1個字符時觸發(fā)OnComm事件接收數(shù)據(jù)

//清除緩沖區(qū)數(shù)據(jù)

m_CommCtrl.SetInputLen(0);

m_CommCtrl.GetInput();

(2)數(shù)據(jù)發(fā)送程序

數(shù)據(jù)發(fā)送由點擊主對話框中的相應按鈕觸發(fā),實現(xiàn)函數(shù)如下:

void CPLC_TestDlg::OnSend()

{

CString fcs;

char enter_flag = 13;

char xing_flag = 42;

fcs = FCS(m_sendstr);

UpdateData(TRUE);

m_sendstr += fcs + xing_flag + enter_flag;

m_CommCtrl.SetOutput(COleVariant(m_sendstr));//數(shù)據(jù)發(fā)送

}

(3)數(shù)據(jù)的FCS程序

校驗碼(FCS)是通過異或來實現(xiàn)的,實現(xiàn)函數(shù)如下:

CString CPLC_TestDlg::FCS(CString m_str)

{

UINT mid_data = 0, zuo = 0;

int icount = m_str.GetLength();

for(int i=0; i<icount; i++)

mid_data ^= m_str.GetAt(i);

m_str.Format("%02X",mid_data);

return m_str;

}

(4)數(shù)據(jù)接收程序

添加MCComm控件的消息處理函數(shù)OnComm(),當數(shù)據(jù)緩存區(qū)字符消息事件,就會執(zhí)行該函數(shù),函數(shù)實現(xiàn)如下:

void CPLC_TestDlg::OnComm()

{

VARIANT variant_inp;

COleSafeArray safearray_inp;

LONG len,k;

BYTE rxdata[2048];

CString strtemp;

if(bReceive)

{

if(m_CommCtrl.GetCommEvent() == 2)

{

variant_inp = m_CommCtrl.GetInput();

safearray_inp = variant_inp;

len = safearray_inp.GetOneDimSize();

for(k=0; k<len; ++k)

safearray_inp.GetElement(&k,rxdata+k);

for(k=0; k<len; ++k)

{

BYTE bt = *(char*)(rxdata+k);

strtemp.Format("%c", bt);

m_recievestr += strtemp;

} } }

UpdateData(FALSE);}

3 結論

PLC在分布式系統(tǒng)中得到了越來越廣泛的應用.在這種控制方式中,PLC與上位機的通信是系統(tǒng)設計中的一個重要組成部分。大型PLC可以多種方式與上位機通信,本文利用VC++6.0中的MSComm控件開發(fā)了簡單PLC與上位機進行通信的用戶界面,可長期運行良好,其中一個界面如圖4所示。

圖4 通信用戶界面

[1]代保華.PLC與計算機的通信[J].交通與計算機,1998,16(4).

[2]陳齊忠.PLC及其與計算機的通訊[J].石油化工自動化,2003(06): 6-41.

[3]Gao Qinhe.PLC application of technology and design examples[J].Post & Telecom Press, Beijing, July 2004.

[4]廖常初.FX系列PLC編程及應用[M].北京:機械工業(yè)出版社,2005.

[5]王兆義.可編程控制器教程[M].北京:機械工業(yè)出版社,1993.

[6]范逸之.Visual Basic與RS-232串行通信控制最新版[M].北京:中國青年出版社,2002.

[7]許 毅.基于PC與S7-200實現(xiàn)自由通信協(xié)議的研究[J].武漢理工大學學報,2002(4):512-515.

[8]Nelson M.串口通訊開發(fā)指南[M].北京:中國水利水電出版社, 1999:20-45.

猜你喜歡
程序計算機
計算機操作系統(tǒng)
穿裙子的“計算機”
基于計算機自然語言處理的機器翻譯技術應用與簡介
科技傳播(2019年22期)2020-01-14 03:06:34
計算機多媒體技術應用初探
科技傳播(2019年22期)2020-01-14 03:06:30
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
失能的信仰——走向衰亡的民事訴訟程序
信息系統(tǒng)審計中計算機審計的應用
消費導刊(2017年20期)2018-01-03 06:26:40
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
創(chuàng)衛(wèi)暗訪程序有待改進
主站蜘蛛池模板: 精品国产中文一级毛片在线看| 秋霞国产在线| 国产精品蜜芽在线观看| 一级香蕉视频在线观看| 国产一级二级在线观看| 久久精品亚洲中文字幕乱码| 天堂av高清一区二区三区| 亚洲永久色| 中文字幕在线一区二区在线| 欧美在线天堂| 国产女人18毛片水真多1| 欧美日韩理论| 国产Av无码精品色午夜| 无码国产偷倩在线播放老年人| 一级毛片免费观看不卡视频| 一区二区三区四区精品视频| 男女猛烈无遮挡午夜视频| 国产自在线拍| 在线欧美日韩| 亚洲 欧美 日韩综合一区| 国产第二十一页| 国产成人资源| 亚洲国产成人久久精品软件| 2020精品极品国产色在线观看 | 欧美日本在线一区二区三区| 午夜福利在线观看成人| 国语少妇高潮| 亚洲第一成年免费网站| 日韩精品欧美国产在线| 国产小视频免费观看| 中文字幕无码中文字幕有码在线 | 高潮爽到爆的喷水女主播视频 | 狠狠亚洲五月天| 国产Av无码精品色午夜| 青青草原国产| 青草视频在线观看国产| 久久精品视频一| 在线色国产| 亚洲天堂自拍| 99精品国产高清一区二区| 成人av专区精品无码国产| 欧美激情伊人| 又爽又黄又无遮挡网站| 青草精品视频| 一级福利视频| 国产又爽又黄无遮挡免费观看| 欧美自慰一级看片免费| 中文字幕在线观看日本| 免费国产高清视频| 夜夜操狠狠操| 99re热精品视频国产免费| 国产综合亚洲欧洲区精品无码| 免费无码一区二区| 亚洲男人天堂网址| 国内精品视频在线| 欧美综合区自拍亚洲综合天堂| 五月婷婷精品| 麻豆精品久久久久久久99蜜桃| 日本在线视频免费| 91热爆在线| 无码精品国产dvd在线观看9久| 亚洲黄色高清| 欧美成人看片一区二区三区| 91成人免费观看| 精品国产黑色丝袜高跟鞋| 91无码网站| 亚洲第一黄色网| 国产91丝袜| 色综合热无码热国产| 91精品国产综合久久不国产大片| 四虎亚洲国产成人久久精品| 亚洲热线99精品视频| 国产导航在线| 成人夜夜嗨| 丁香五月婷婷激情基地| 日韩午夜伦| 99久久精品国产麻豆婷婷| 国产二级毛片| 中国国产A一级毛片| 成人在线欧美| 成人韩免费网站| 久久视精品|