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)暗訪程序有待改進
主站蜘蛛池模板: 亚洲中文在线视频| 成人夜夜嗨| 亚洲午夜久久久精品电影院| 国产在线观看精品| 午夜日b视频| 国产素人在线| 中文字幕乱码中文乱码51精品| 成年人久久黄色网站| 青青热久免费精品视频6| 69国产精品视频免费| 无码电影在线观看| 欧美人与牲动交a欧美精品| 亚洲大尺度在线| 国产精品亚洲精品爽爽| 免费在线色| 日韩欧美国产三级| 久草热视频在线| 91九色视频网| 午夜福利在线观看成人| 亚洲高清在线播放| 天堂在线视频精品| 久久亚洲天堂| 久久综合一个色综合网| 亚洲AV人人澡人人双人| 亚洲国产天堂在线观看| 久久久久无码精品国产免费| 九月婷婷亚洲综合在线| 亚洲 欧美 偷自乱 图片| 国产一级毛片yw| 五月激情综合网| 国产微拍一区| 色网站在线免费观看| 四虎成人精品在永久免费| 一区二区自拍| 国产91熟女高潮一区二区| 国产一级视频久久| 91精品国产一区| 国产女人18毛片水真多1| 亚洲美女一区二区三区| 国产亚洲欧美另类一区二区| 亚洲va欧美ⅴa国产va影院| 九九久久精品国产av片囯产区| 国产成人精品高清在线| 久久亚洲国产视频| 欧美三级不卡在线观看视频| 精品无码国产自产野外拍在线| 91亚洲精品第一| 四虎精品免费久久| 亚洲国产AV无码综合原创| 伊人久综合| 久久semm亚洲国产| 国产高清在线观看| 无码免费视频| 国产一级小视频| 久久综合干| 欧美国产成人在线| 中文无码精品A∨在线观看不卡 | 91原创视频在线| 国产网友愉拍精品视频| 亚洲男人的天堂网| 91午夜福利在线观看| 亚洲精品黄| 直接黄91麻豆网站| 狠狠色丁香婷婷综合| 国产91无码福利在线| 久久精品这里只有国产中文精品| 国产乱码精品一区二区三区中文| 日韩精品亚洲一区中文字幕| 沈阳少妇高潮在线| 午夜激情婷婷| 精品国产成人三级在线观看| 免费国产黄线在线观看| 成人国产精品网站在线看| 99青青青精品视频在线| 一本色道久久88综合日韩精品| 欧美黑人欧美精品刺激| 亚洲一区网站| 亚洲日本中文字幕天堂网| 亚洲成人在线网| 成年人久久黄色网站| 99re精彩视频| 久久综合国产乱子免费|