直播推薦
企業(yè)動(dòng)態(tài)
- 制造業(yè)新生代的“破”與“立”:京東政企業(yè)務(wù)助力廠二代AI革新
- 第十九屆中國(guó)歐亞國(guó)際軍民兩用技術(shù)產(chǎn)業(yè)博覽會(huì)盛大啟幕
- 京東政企業(yè)務(wù)與中密控股達(dá)成戰(zhàn)略合作,共同推進(jìn)機(jī)械密封行業(yè)供應(yīng)鏈數(shù)智化轉(zhuǎn)型
- 三天三登央視!追覓AWE以尖端技術(shù)布局刷新行業(yè)格局
- 智造范式革命,新能源汽車全產(chǎn)業(yè)鏈技術(shù)耦合重塑百年生產(chǎn)邏輯
- 電費(fèi)憑空消失一半?海爾AWE館內(nèi)建起一棟節(jié)能示范樓
- 華測(cè)儀器塞貝克系數(shù)電阻測(cè)試儀新產(chǎn)品上市
- AI賦能新一代工業(yè)軟件,第四屆工業(yè)軟件創(chuàng)新應(yīng)用大賽頒獎(jiǎng)典禮圓滿舉辦
推薦展會(huì)
可編程控制器(plc)是集計(jì)算機(jī)技術(shù)、自動(dòng)控制技術(shù)、通信技術(shù)為一體的新型自動(dòng)控制裝置。由于體積小、可靠性高以及組態(tài)靈活等優(yōu)點(diǎn),plc在工業(yè)控制領(lǐng)域得到了廣泛的應(yīng)用。在plc組成的自動(dòng)測(cè)量和控制系統(tǒng)中,一般采用主從式控制結(jié)構(gòu),由plc向計(jì)算機(jī)發(fā)送數(shù)據(jù),計(jì)算機(jī)處理數(shù)據(jù)后根據(jù)具體情況向plc發(fā)出相應(yīng)的指令,控制plc的運(yùn)行。plc作為下位機(jī),完成數(shù)據(jù)采集、狀態(tài)判別、輸出控制等任務(wù),上位機(jī)(微型計(jì)算機(jī)、工業(yè)控制機(jī))完成采集數(shù)據(jù)信息的存儲(chǔ)、分析處理、狀態(tài)顯示以及打印輸出等任務(wù),以實(shí)現(xiàn)對(duì)系統(tǒng)的實(shí)時(shí)監(jiān)控。目前市場(chǎng)上常用的人機(jī)界面或監(jiān)控組態(tài)軟件價(jià)格昂貴且由國(guó)外公司壟斷, 對(duì)于小型企業(yè)的單機(jī)系統(tǒng)來(lái)說(shuō),許多功能并不實(shí)用,同時(shí)組態(tài)軟件的本身也還存在不足之處,不能滿足一些特殊要求。因此,目前仍然需要技術(shù)人員根據(jù)實(shí)際情況開發(fā)小型經(jīng)濟(jì)適用的軟件。筆者針對(duì)比較簡(jiǎn)單的控制系統(tǒng),利用vc++6.0設(shè)計(jì)了一個(gè)通信程序,實(shí)現(xiàn)了windows環(huán)境下上位計(jì)算機(jī)對(duì)多臺(tái)plc的靈活監(jiān)控。
2 通信類型
日本三菱公司是的工廠自動(dòng)化設(shè)備制造商,其工業(yè)可編程控制器在國(guó)內(nèi)市場(chǎng)占有相當(dāng)大的份額。本項(xiàng)目選用三菱fx2n-48mr型plc,fx系列plc支持以下5種通信類型:
(1) plc的n:n通信方式;
(2) plc雙機(jī)并聯(lián)通信方式;
(3) plc與計(jì)算機(jī)專有協(xié)議通信方式;
(4) plc與計(jì)算機(jī)無(wú)協(xié)議通信方式(使用rs指令或fx2n-232if特殊功能塊);
(5) 自由端口設(shè)計(jì)方式(需要特殊通信模塊,使用較少)。
各種通信類型的具體特性列于表1。本系統(tǒng)采用專有協(xié)議通信方式,以pc機(jī)為主站,通過fx-485pc-if及fx2n-485bd與多臺(tái)plc從站連接(zui多16臺(tái)),每臺(tái)plc被賦予*的站號(hào)用以標(biāo)志身份,上位機(jī)通過rs-485通信總線對(duì)plc進(jìn)行控制。
3 通信協(xié)議
fx2n系列plc通信采用異步格式,較常用的數(shù)據(jù)幀由1位起始位、7位數(shù)據(jù)位、1位停止位及1位校驗(yàn)位組成,波特率為9600bps。傳輸數(shù)據(jù)以字節(jié)為單位,分為高4位和低4位,每4位轉(zhuǎn)化為1個(gè)ascii字符發(fā)送。以上位機(jī)從plc讀取數(shù)據(jù)為例。
計(jì)算機(jī)方發(fā)送數(shù)據(jù)幀格式如表2所示:
enq是請(qǐng)求通信標(biāo)志;station no.代表plc站號(hào),設(shè)定范圍00h-0fh;pc no. 是plc的cpu代號(hào),fx系列為ffh;command是操作命令碼,具體內(nèi)容列于表3;message wait time表示從命令發(fā)出到plc回應(yīng)之間的等待時(shí)間,允許值從0-150ms,設(shè)定為00h-0fh;character area a為傳送字符串,包括位元件或字元件的首地址和單元字節(jié)個(gè)數(shù); sum check code是和校驗(yàn)碼,分為高4位和低4位。
plc應(yīng)答格式如表4所示。
stx是幀開始字符;character area b為傳送數(shù)據(jù),fx系列plc一次zui多可以傳送64比特即40h數(shù)據(jù);etx為幀結(jié)束字符;其余含義同上。
本程序的主要功能為,每隔一定時(shí)間(由用戶通過界面設(shè)定)按站號(hào)順序批量讀取plc中位元件y000-y017的狀態(tài),將數(shù)據(jù)存放入數(shù)據(jù)庫(kù)plc表中。
總共有2臺(tái)plc,對(duì)于站號(hào)為i 的plc,命令格式如表5所示。
4 軟件編程
軟件設(shè)計(jì)選用visualc++6.0作為開發(fā)平臺(tái),利用其提供的mscomm控件,可以方便地實(shí)現(xiàn)plc與上位機(jī)的串行通信。該通信控件提供了使用rs232開發(fā)串行通信軟件的細(xì)則,使用事件驅(qū)動(dòng)或查詢方式來(lái)解決開發(fā)通信軟件中遇到的問題。該控件有27個(gè)屬性,主要的屬性如表6所示。
首先將mscomm控件加入工程,同時(shí)安裝1個(gè)系統(tǒng)定時(shí)器。通信控件m_mycom用于訪問串口、發(fā)送和接收數(shù)據(jù);系統(tǒng)定時(shí)器用于控制每隔一定時(shí)間間由上位機(jī)向plc發(fā)送命令。通信程序部分代碼如下:
// 首先初始化通信端口
bool cplccommdlg::oninitdialog()
{……
m_mycom.setcommport(1); file://選擇com1
m_mycom.setinbuffersize(1024); file://設(shè)置輸入緩沖區(qū)的大小
m_mycom.setoutbuffersize(512); file://設(shè)置輸出緩沖區(qū)的大小
m_mycom.setinputmode(1);//設(shè)置數(shù)據(jù)獲取方式
m_mycom.setsettings("9600,e,7,1");//設(shè)置通信參數(shù)
m_mycom.setinputlen(0); file://設(shè)置讀取方式
if(!m_mycom.getportopen() );
m_mycom.setportopen (true); file://打開串口
stationno=0x30;
if(settimer(1,m_usertime,null)==0)
afxmessagebox("error setting,please check it!")
}
file://消息處理函數(shù)ontimer
void cplccommdlg::ontimer(uint nidevent)
{
byte receivedata[1024];
byte senddata[]={`0x05`,`0`,`i`,`f`,`f`,`w`,`r`,`a`,`y`,`0`,`0`,`0`,`0`,
`0`,`1`,`sumh`,`suml`};
if(stationno<0x31)
stationno++;
else
stationno=0x30;
senddata[3]= stationno;
sumcheck(senddata,17)
cbytearray array;
array.removeall();
array.setsize(17);
for(int k=0;k<17;k++)
{
array.setat(k,senddata[k]);
}
m_mycom.setoutput(colevariant(array));//發(fā)送命令
……//數(shù)據(jù)接收處理及加入數(shù)據(jù)庫(kù)操作
}
file://和校驗(yàn)函數(shù)sumcheck
void cplccommdlg::sumcheck(byte temp[],int n)
{
int i;
byte sum=0x00,sumh=0xf0,suml=0x0f;
for(i=1;i<=n-3;i++)
sum+=temp[i];
suml= suml∑
sumh= sumh∑
sumh= sumh>>4;
temp[n-1]= suml;
temp[n-2]= sumh;
}
5 結(jié)論
串行通信是目前計(jì)算機(jī)與其他設(shè)備之間重要的通信手段之一,本程序作為小型監(jiān)控系統(tǒng)的重要組成部分,實(shí)現(xiàn)了上位機(jī)對(duì)多臺(tái)plc的實(shí)時(shí)監(jiān)控,傳送數(shù)據(jù)準(zhǔn)確,程序運(yùn)行穩(wěn)定。整個(gè)控制系統(tǒng)方便可靠,同時(shí)又節(jié)省了大筆投資,具有相當(dāng)大的實(shí)用性。
免責(zé)聲明
- 凡本網(wǎng)注明"來(lái)源:智能制造網(wǎng)"的所有作品,版權(quán)均屬于智能制造網(wǎng),轉(zhuǎn)載請(qǐng)必須注明智能制造網(wǎng),http://towegas.com。違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
- 企業(yè)發(fā)布的公司新聞、技術(shù)文章、資料下載等內(nèi)容,如涉及侵權(quán)、違規(guī)遭投訴的,一律由發(fā)布企業(yè)自行承擔(dān)責(zé)任,本網(wǎng)有權(quán)刪除內(nèi)容并追溯責(zé)任。
- 本網(wǎng)轉(zhuǎn)載并注明自其它來(lái)源的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品來(lái)源,并自負(fù)版權(quán)等法律責(zé)任。
- 如涉及作品內(nèi)容、版權(quán)等問題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
2025第21屆鄭州工業(yè)自動(dòng)化展
展會(huì)城市:鄭州市展會(huì)時(shí)間:2025-05-09