日韩成人激情_欧美黑人xxx_国产一区二精品区在线_精品在线一区_97成人资源_久久久久久一区

產(chǎn)品分類

當(dāng)前位置: 首頁(yè) > 工業(yè)控制產(chǎn)品 > 自動(dòng)化控制 > PLC可編程控制器

類型分類:
科普知識(shí)
數(shù)據(jù)分類:
PLC可編程控制器

用VB實(shí)現(xiàn)歐姆龍PLC及計(jì)算機(jī)間的串行通信

發(fā)布日期:2022-04-26 點(diǎn)擊率:175 品牌:歐姆龍_Omron

    1引言

    在工業(yè)控制領(lǐng)域中,PLC作為一種穩(wěn)定可靠的控制器得到廣泛的應(yīng)用。但它也有自身的一些缺點(diǎn),即數(shù)據(jù)的計(jì)算處理和管理能力較弱,不能給用戶提供良好的界面等。而計(jì)算機(jī)恰好能彌補(bǔ)plc的不足,它不但有很強(qiáng)的數(shù)據(jù)處理和管理能力,而且能給用戶提供非常美觀而又易于操作的界面。將plc與計(jì)算機(jī)結(jié)合,可使系統(tǒng)達(dá)到既能及時(shí)地采集、存儲(chǔ)數(shù)據(jù),又可處理和使用好數(shù)據(jù),兩者結(jié)合的關(guān)鍵是plc與計(jì)算機(jī)之間的通信。本文以omron公司的cpmia小型plc為例,詳細(xì)的討論了plc與計(jì)算機(jī)通信的原理和用vb如何實(shí)現(xiàn)plc與計(jì)算機(jī)的通信。

    2通行原理與方法

    上位機(jī)要能夠通過(guò)plc監(jiān)控下層設(shè)備的狀態(tài),就要實(shí)現(xiàn)上位機(jī)與plc間的通信,一般工業(yè)控制中都是采用rs232c實(shí)現(xiàn)。上位機(jī)首先向plc發(fā)送查詢數(shù)據(jù)的指令(實(shí)際上是查詢plc中端子的狀態(tài)和dm區(qū)的值等),plc接收了上位的指令后,進(jìn)行校驗(yàn)(fcs校驗(yàn)碼),看其是否正確,如果正確,則向上位機(jī)傳送數(shù)據(jù)(包含首尾校驗(yàn)字節(jié))。否則,plc拒絕向上位機(jī)傳送數(shù)據(jù)。上位接收到plc傳送的數(shù)據(jù),也要判斷正確與否,如果正確,則接收,否則,拒絕接收。

    由于cpm1a沒(méi)有提供串行通信口,我們利用其提供的外設(shè)端口實(shí)現(xiàn)通信。plc與計(jì)算機(jī)之間的連接是通過(guò)omron提供的專用電纜cqm1-cif01來(lái)實(shí)現(xiàn)的,其硬件連接圖如圖1所示。

    3plc與計(jì)算機(jī)間的通信規(guī)約

    計(jì)算機(jī)與plc間的通信是以“幀”為單位進(jìn)行的,并且在通信的過(guò)程中,計(jì)算機(jī)具有更高的優(yōu)先級(jí)。首先,計(jì)算機(jī)向plc發(fā)出命令幀,然后,plc作出響應(yīng),向計(jì)算機(jī)發(fā)送回響應(yīng)幀。其中命令幀和響應(yīng)幀的格式如下:

    (1)命令幀格式。為了方便計(jì)算機(jī)和plc的通訊,cpm1a對(duì)在計(jì)算機(jī)連接通信中交換的命令和響應(yīng)規(guī)定了相應(yīng)的格式。當(dāng)計(jì)算機(jī)發(fā)送一個(gè)命令時(shí),命令數(shù)據(jù)主準(zhǔn)備格式如圖2所示。

    其中@放在首位,表示以@開(kāi)始,[emailprotected]?為命令代碼,用來(lái)設(shè)置用戶希望上位機(jī)完成的操作,fcs為幀檢驗(yàn)代碼,一旦通信出錯(cuò),通過(guò)計(jì)算fcs可以及時(shí)發(fā)現(xiàn)。結(jié)束符為“*”和cr回車(chē)符,表示命令結(jié)束。

    (2)響應(yīng)幀格式。由plc發(fā)出的對(duì)應(yīng)于命令格式的響應(yīng)幀格式如圖3所示。

    其中,異常碼可以確定計(jì)算機(jī)發(fā)送的命令是否正確執(zhí)行。其它的與正文中的含義相同。正文僅在有讀出數(shù)據(jù)時(shí)有返回。

    4通信程序的設(shè)計(jì)

    為了充分利用計(jì)算機(jī)數(shù)據(jù)處理的強(qiáng)大功能,我們可以采用計(jì)算機(jī)有優(yōu)先權(quán)的方式,在計(jì)算機(jī)上編寫(xiě)程序來(lái)實(shí)現(xiàn)計(jì)算機(jī)與plc的通信,計(jì)算機(jī)向plc發(fā)出命令發(fā)起通信,plc自動(dòng)返回響應(yīng)。本文中采用vb來(lái)編寫(xiě)計(jì)算機(jī)與plc間的通訊程序。在vb中提供了通信控件—應(yīng)用通信控件(mscomm),實(shí)現(xiàn)通過(guò)串行端口傳送和接受的功能。

    下面介紹mscomm控件的屬性:

    *commport:設(shè)定通信連接端口代號(hào),程序必須指定所要使用的串行端口號(hào),WINOOWs系統(tǒng)使用所設(shè)定的端口與外界通信。

    *portopen:設(shè)定通信口狀態(tài),若為真,通信端口打開(kāi),否則關(guān)閉。

    *settings:設(shè)定通信口參數(shù),其格式是"bbbb,p

    ,d,s",其中bbbb為通信速率(波特率),p為通信檢查方式(奇偶校驗(yàn)),d為數(shù)據(jù)位數(shù),s為停止位數(shù),其設(shè)定應(yīng)與plc的設(shè)定一致。

    *input:將對(duì)方傳送至輸入緩沖區(qū)的字符讀入到程序。

    *output:將字符寫(xiě)入輸出緩沖區(qū)。

    *inbuffercount:傳回接收緩沖區(qū)中的字符數(shù)。

    *outbuffercount:傳回輸出緩沖區(qū)中的字符數(shù)。

    *inputlen:設(shè)定串行端口讀入字符串的長(zhǎng)度。

    *inputmode:設(shè)定接收數(shù)據(jù)的方式。

    *rthreshold:設(shè)定引發(fā)接收事件的字符數(shù)。

    *commevent:傳回oncomm事件發(fā)生時(shí)的數(shù)值碼

    *oncomm事件:無(wú)論是錯(cuò)誤或事件發(fā)生,都會(huì)觸發(fā)此事件。

    (1)控件參數(shù)的初始化。

    初始化程序如下:

    mscomm.comport=2`使用串口com2

    mscomm.settings="9600,e,7,2"`波特率9600,偶校驗(yàn),7位數(shù)據(jù)位,2位停止位

    mscomm.portopen=true`打開(kāi)通信端口,準(zhǔn)備通信

    (2)計(jì)算校驗(yàn)碼fcs,計(jì)算fcs的vb自定義函數(shù)如下:

    functionfcs(byvalinputstrasstring)asstring

    dimslen,i,xorresultasinteger

    dimtempfesasstring

    slen=len(inputstr)`求輸入字符串長(zhǎng)度

    xorresult=0

    fori=1toslen

    xorresult=xorresultxorasc(mid$(inputstr,i,1))`按位異或

    nexti

    tempfes=hex$(xorresult)`轉(zhuǎn)化為16進(jìn)制

    iflen(tempfes)=1thentempfes=“0”+tempfes

    fcs=tempfes

    endfunction

    (3)計(jì)算機(jī)與plc通信程序。

    主要是一個(gè)自定義函數(shù)。

    functionreaddata(byvalinputstrasstring,byvalnumasinteger)asstring

    dimoutputstrasstring

    diminstringasstring

    dimreturnstrasstring

    dimendstringasstring

    dimfcsstringasstring

    dimreturnfcsstringasstring)

    mscomm.inbuffercount=0

    outputstr=inputstr+fcs(inputstr)+“*”`給出命令幀

    mscomm.output=outputstr+chr$(13)`向plc傳送命令幀

    do

    doevents

    loopwhilemscomm.inbuffercount<15

    instring=mscomm.input`獲取plc的響應(yīng)幀

    `結(jié)束碼判斷

    endstring=mid$(instring,len(instring)-

    num-5,2)

    ifendstring="13"then

    readdata="error"

    exitfunction

    elseifendstring="14"then

    readdata="error"

    exitfunction

    elseifendstring="15"then

    readdata="error"

    exitfunction

    elseifendstring="18"then

    readdata="error"

    exitfunction

    elseifendstring="a3"then

    readdata="error"

    exitfunction

    elseifendstring="a8"then

    readdata="error"

    exitfunction

    endif

    `響應(yīng)幀校驗(yàn)

    endstring=mid$(instring,1,len(instring)-4)

    returnfcsstring=mid$(instring,len(instring)-3,2)

    fcsstring=fcs(endstring)

    iffcsstring<>returnfcsstringthen

    readdata="error"

    exitfunction

    endif

    returnstr=mid$(instring,

    len(instring)-num-3,num)

    readdata=returnstr

    endfunction

    從上面程序可以看到,計(jì)算機(jī)對(duì)plc返回的響應(yīng)幀要進(jìn)行fcs校驗(yàn),并利用異常碼排除返回的異常數(shù)據(jù),這樣不但可以提高計(jì)算機(jī)獲取信息的正確性,而且提高了計(jì)算機(jī)監(jiān)控的實(shí)時(shí)性。

    5結(jié)束語(yǔ)

    本文介紹的通信方法在我校cims研究中心自行研制的一套機(jī)電一體化設(shè)備中得到實(shí)施運(yùn)用,經(jīng)試驗(yàn)運(yùn)行,證明這種通信方法穩(wěn)定、可靠,確實(shí)是一種非常有效的方法。將plc與計(jì)算機(jī)通信網(wǎng)絡(luò)連接起來(lái),plc作為下位機(jī),計(jì)算機(jī)作為上位機(jī),形成一個(gè)優(yōu)勢(shì)互補(bǔ)的自動(dòng)控制系統(tǒng),實(shí)現(xiàn)了“集中管理,分散控制”。其中各個(gè)plc子系統(tǒng)或遠(yuǎn)程工作站在生產(chǎn)現(xiàn)場(chǎng)對(duì)各個(gè)被控對(duì)象進(jìn)行控制,利用網(wǎng)絡(luò)連接構(gòu)成一個(gè)plc綜合控制,滿足了現(xiàn)代自動(dòng)化系統(tǒng)向信息化、網(wǎng)絡(luò)化、智能化的過(guò)渡。

下一篇: PLC、DCS、FCS三大控

上一篇: 索爾維全系列Solef?PV

推薦產(chǎn)品

更多
主站蜘蛛池模板: 在线观看的av | 亚洲高清av | 欧美精品在线一区二区三区 | 国产午夜精品一区二区三区 | 中国大陆高清aⅴ毛片 | 九九av | 日日夜夜免费精品视频 | 天天插日日操 | 人人鲁人人莫人人爱精品 | 国产福利91精品 | 国产精品一区一区三区 | 一色一黄视频 | 操到爽 | 一级黄色毛片a | 美女爽到呻吟久久久久 | 国产一区二区激情视频 | 午夜视频在线免费观看 | 欧美日韩精品一区二区三区四区 | 亚洲国产精品久久久久久 | 美日韩一区二区 | 日韩不卡一区二区 | 久久久久国产精品一区 | 天堂久久天堂综合色 | 亚洲网站在线播放 | 国产伦精品一区二区三区视频金莲 | 99九九视频 | 日韩欧美二区 | 久久久久国产精品一区二区 | 中文字幕亚洲视频 | 国产69久久精品成人看动漫 | 午夜在线影院 | 国产91亚洲精品一区二区三区 | 亚洲精品久久 | 成人一区二区三区视频 | 国产欧美一区二区三区在线看 | 日韩欧美在线观看 | 久久一区 | 国产激情91久久精品导航 | 久久亚洲一区 | 成人a免费 | 日韩在线一区二区三区 |