午夜三级做爱黄片,午夜福利小视频,午夜国产成人精品,午夜黄色在线视频 - www.atkqc.com

由于操作過于頻繁茶窍,請(qǐng)點(diǎn)擊下方按鈕進(jìn)行驗(yàn)證禀挫!

用VC++開發(fā)微機(jī)與OMRON PLC間的一種通訊程序

本文介紹了一個(gè)使用Visual C++編寫的通信程序斜擎,主要實(shí)現(xiàn)微機(jī)與OMRON PLC間的通信细溅,并對(duì)它們間的通信協(xié)議作了闡述推捐。 
一卖陵、前言 
可編程控制器是一種數(shù)字運(yùn)算操作的電子系統(tǒng)遭顶,專為在工業(yè)環(huán)境下應(yīng)用而設(shè)計(jì)。它采用了可編程序的存儲(chǔ)器泪蔫,用于其內(nèi)部存儲(chǔ)程序棒旗,執(zhí)行邏輯運(yùn)算、順序控制撩荣、定時(shí)铣揉、計(jì)數(shù)和算術(shù)操作等面向用戶的指令,并通過數(shù)字式或模擬式輸入輸出控制各種類型的機(jī)械的生產(chǎn)過程餐曹」涔埃可編程控制器及其有關(guān)外部設(shè)備敌厘,都按易于與工業(yè)控制系統(tǒng)聯(lián)成一個(gè)整體、易于擴(kuò)充其功能的原則設(shè)計(jì)朽合。早期的PLC以數(shù)字量的順序控制為主俱两,提供了簡(jiǎn)單的慢速的通信功能(只支持RS232、RS485祖擦、多采用Modbus協(xié)議)舶酒,現(xiàn)在的PLC不僅具有邏輯運(yùn)算、順序控制酷豫、定時(shí)锨穷、計(jì)數(shù)和算術(shù)操作,而且還具有A / D汗势、D / A轉(zhuǎn)換岗憨,數(shù)值計(jì)算和數(shù)據(jù)處理等功能。它既可以對(duì)開關(guān)量進(jìn)行控制锁熟,也可以對(duì)模擬量進(jìn)行控制帝膊,隨著PLC功能不斷擴(kuò)充,它還有通訊聯(lián)網(wǎng)功能麸媒,舉例C200HX / HG / HE的OMRON PLC的CPU內(nèi)的RS - 232C端口和外設(shè)端口支持通信功能就有與編程設(shè)備(如編程器僻跳,CPT,或CXP (中文版))進(jìn)行通信胚览、與個(gè)人計(jì)算機(jī)和其它外設(shè)進(jìn)行上位機(jī)鏈接通信茶月、與個(gè)人計(jì)算機(jī)和其它外設(shè)進(jìn)行RS - 232C、與其它PC進(jìn)行1:1鹉动、再有是與裝有NT鏈接接口的可編程終端(PT)進(jìn)行NT鏈接通信(1:1轧坎、1:N),本課題就是基于OMRON PLC的鏈接通信(有通信協(xié)議)泽示,用VC++開發(fā)的上位機(jī)與PLC間的通信缸血。 
二、OMRON PLC的通信協(xié)議 
目前械筛,隨著PLC的快速發(fā)展捎泻,越來越多的PLC生產(chǎn)廠商開發(fā)了它與計(jì)算機(jī)的通信功能(主要是利用計(jì)算機(jī)串口進(jìn)行通信),本文是以C200HE PLC為例埋哟,作詳細(xì)闡述笆豁,本文的通信協(xié)議采用的是上位機(jī)鏈接通信。上位機(jī)鏈接通信通過在上位機(jī)與PLC之間交換命令和應(yīng)答實(shí)現(xiàn)的赤赊。在一次交換中傳輸?shù)拿詈蛻?yīng)答數(shù)據(jù)稱為一幀闯狱,一個(gè)幀最多可包含131個(gè)數(shù)據(jù)字符。 
識(shí)別碼和正文取決于接收到的上位機(jī)聯(lián)結(jié)命令,結(jié)束碼表示命令完成的狀態(tài)(即是否有錯(cuò)誤發(fā)生)扩氢,當(dāng)應(yīng)答超過132字符,它必須分成若干幀京佃。結(jié)束碼是應(yīng)答幀中表示PLC應(yīng)答的信息椎裕。例結(jié)束代碼為00表示正常結(jié)束,13表示FCS錯(cuò)誤崔狂,14表示格式錯(cuò)誤皿进,15表示入口碼數(shù)據(jù)錯(cuò)誤,18表示幀長(zhǎng)度錯(cuò)誤茶链,A3表示傳輸數(shù)據(jù)時(shí)因FCS錯(cuò)誤引起終止臊瞬,A8表示傳輸數(shù)據(jù)時(shí)因幀長(zhǎng)度錯(cuò)誤引起終止。 
本文的上位機(jī)命令幀包括讀寫PLC單元中的數(shù)據(jù)的命令颓之。讀命令幀為:@01RR0100000141* + CHR $(13)银景,意思是上位機(jī)讀取節(jié)點(diǎn)為1的PLC中的IR0100單元中的內(nèi)容。寫命令幀為:@01WR0100000171* + CHR $(13)鹤梳,意思是寫一個(gè)數(shù)到節(jié)點(diǎn)為1的PLC的IR0100單元中诽粪。 
三、系統(tǒng)結(jié)構(gòu)圖 
上位計(jì)算機(jī)與多個(gè)PLC進(jìn)行通信岁九,必須連接一個(gè)RS232 / 422電平轉(zhuǎn)換器君铁,RS422采用平衡發(fā)送接收方式,它具有傳輸距離長(zhǎng)据块、抗干擾能力強(qiáng)和多點(diǎn)通信能力码邻,最多可以接32臺(tái)PLC,如圖1所示另假,每一臺(tái)PLC都必須掛一個(gè)COM06單元進(jìn)行RS422方式連接像屋,所有的PLC與計(jì)算機(jī)間的通訊采用的是PLC上位機(jī)鏈接通信協(xié)議。 
1边篮、硬件設(shè)置 
RS232 / 422轉(zhuǎn)換器的設(shè)置開關(guān)撥到422方式开睡,OMRON PLC上的COM06通信板單元同樣設(shè)置為422方式和四線制。 
2苟耻、參數(shù)設(shè)置 
上下位機(jī)的通信波特率設(shè)置為9600篇恒,數(shù)據(jù)格式設(shè)置為E,7凶杖,2胁艰。 
3、節(jié)點(diǎn)設(shè)置 
在PLC的DC6558單元中設(shè)置節(jié)點(diǎn)號(hào)00(初始值)~ 31(號(hào)機(jī))智蝠。 
四腾么、用Visual C++6.0編寫串行通信程序 
本文的上位機(jī)鏈接通信程序是用Visual C++6.0編寫的,主要是利用VC++中的一個(gè)通信控件來實(shí)現(xiàn)的。 
首先利用MFC AppWizard ( exe ) 建立一個(gè)基于對(duì)話框靡隔,支持Activex控件扶蜻,命名為Transcomn的應(yīng)用程序。然后在對(duì)話框中加入一些控件谆纸,其中那個(gè)電話形狀的控件必須是在系統(tǒng)中注冊(cè)過的Microsoft Communications Control搔绿,由它進(jìn)行通訊時(shí)首先得設(shè)置它的一些屬性如表1。 
屬性
 設(shè)定值
 說明
CommPort
 1
 通訊協(xié)議為 PLC 上位機(jī)鏈接通信耻炕,利用微機(jī)的串口1
InputMode
 0
 接收數(shù)據(jù)類型為文本形式
Rthreshold
 1
 每接收一個(gè)字符就產(chǎn)生一個(gè)事件
Settings
 9600, E, 7, 2
 參數(shù)依次為波特率法顺、奇偶檢驗(yàn)數(shù)據(jù)位數(shù)、停止位數(shù)
五定邪、程序編寫 
在程序中需添加的代碼如下: 
// TranscommDlg.cpp:implementation file 
BOOL CTranscommDlg::OnInitDialog () 

最后要在ClassWizard中添加變量和響應(yīng)函數(shù)如表2快挡。 
控制名稱
 控制ID
 對(duì)應(yīng)變量或函數(shù)
通訊地址文本框
 ID - ADDRESS
 m_address
DM 區(qū)文本框
 ID - DM
 m_dmbox
LR 區(qū)文本框
 ID - LR
 m_lrbox
HR 區(qū)文本框
 ID - HR
 m_hrbox
IR 區(qū)文本框
 ID - IR
 m_irbox
應(yīng)答幀文本框
 ID - RESPONSE
 m_response
通訊控件
 ID - MSCOMM
 M - comm.
發(fā)送命令按鈕
 ID - SEND
 OnSend ( )
// TODO:Add extra initialization here 
// 打開通信端口1 
m_comm..SetCommPort (1); 
IF_(m_comm..GetPortOper ()) 
m_comm..SetPortOper (FALSE); 
m_comm.SetPortOpen (TRUE); 
// 初始狀態(tài)為選中地址為1的PLC,并對(duì)它的DM0100單元實(shí)行操作 
m_address= “1” 
m_dmbox=“0100” 
return TRUE;} 
// 發(fā)送事件 
void CTranscommDlg::OnSend () 

// TODO:Add your control notification handler code here 
// 按本文第二部分介紹的买臣,寫出需要傳出的命令碼字符串CString m_send 
// 將這個(gè)字符串發(fā)送到串行口 
Cstring m_send; 
m_comm.SetOutput (COleVariant (m_send)); 

// 接收事件 
void CTranscommDlg::OnComm () 

// TODO:Add your control notification handler code here 
if (m_comm..GetCommEvent () = 2) 

COle Variant m_input = m_comm.GetInput (); 
m_input.ChangeType (VT_BSTR); 
m_response = m_input.bstrVal; // 把接收到的變量賦給應(yīng)答幀文本框變量 
UpdateData (FALSE); 


六现蹂、結(jié)論 
按照類似的方法,選擇不同的地址和單元區(qū)术陶,可以編寫出其它命令的控制指令宣吱,以上的程序作過實(shí)驗(yàn),得到驗(yàn)證瞳别。

([來源:omron 技術(shù)支持)

聲明:本網(wǎng)站所收集的部分公開資料來源于互聯(lián)網(wǎng)征候,轉(zhuǎn)載的目的在于傳遞更多信息及用于網(wǎng)絡(luò)分享,并不代表本站贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé)祟敛,也不構(gòu)成任何其他建議疤坝。本站部分作品是由網(wǎng)友自主投稿和發(fā)布、編輯整理上傳馆铁,對(duì)此類作品本站僅提供交流平臺(tái)跑揉,不為其版權(quán)負(fù)責(zé)。如果您發(fā)現(xiàn)網(wǎng)站上所用視頻埠巨、圖片历谍、文字如涉及作品版權(quán)問題,請(qǐng)第一時(shí)間告知辣垒,我們將根據(jù)您提供的證明材料確認(rèn)版權(quán)并按國(guó)家標(biāo)準(zhǔn)支付稿酬或立即刪除內(nèi)容望侈,以保證您的權(quán)益!聯(lián)系電話:010-58612588 或 Email:editor@mmsonline.com.cn勋桶。

網(wǎng)友評(píng)論 匿名: