利用VB實(shí)現(xiàn)PC與PLC的聯(lián)機(jī)控制

發(fā)布時間:2024-02-17
近年來,隨著可編程控制器(以下簡稱plc)技術(shù)的不斷發(fā)展,速度、功能、可靠性和穩(wěn)定性的不斷提升,其在工業(yè)控制中的運(yùn)用越來越廣泛。個人計(jì)算機(jī)(以下簡稱pc)具有人機(jī)界面好,編程軟件豐富,數(shù)據(jù)處理快,信息存儲方便,圖像功能完善等優(yōu)點(diǎn)。以plc為下位機(jī),以pc機(jī)為上位機(jī)的聯(lián)機(jī)控制模式,結(jié)合了plc與pc各自的優(yōu)點(diǎn),提高了控制能力和可靠性,不僅操作使用方便,產(chǎn)品造價(jià)也較低,因而成為工業(yè)控制中應(yīng)用較多的模式。本文以電動機(jī)正反轉(zhuǎn)控制為實(shí)例,說明松下fp1系列plc與pc實(shí)現(xiàn)聯(lián)機(jī)控制的方法。
1. 松下fp1系列plc與pc機(jī)的通信連接
松下fp1系列plc均設(shè)有一個rs422串行通信接口。該接口既可用于plc與pc機(jī)聯(lián)機(jī)進(jìn)行梯形圖程序編程與調(diào)試,也可用于正常工作時的數(shù)據(jù)通信。pc機(jī)一般均設(shè)有一個以上的rs232c串行通信接口。由于rs232c和rs422屬于不同的串行通信接口,通信信號的類型和工作方式不一樣,因此,plc與pc進(jìn)行串行通信連接時,必須在中間安裝一個rs422/rs232c適配器來完成信號的轉(zhuǎn)換(部分plc也具有rs232c口,此時可直接連接)。fp1系列plc與pc機(jī)的通信連接如圖1所示。
2. plc控制電機(jī)正反轉(zhuǎn)電路設(shè)計(jì) plc控制電機(jī)正反轉(zhuǎn)的接線如圖2所示,其中sb0、sb1、sb2開關(guān)按鈕分別用于控制電機(jī)的正轉(zhuǎn)、反轉(zhuǎn)和停止;km1、km2分別為電機(jī)正反轉(zhuǎn)控制的接觸器。由于plc直接控制交流接觸器,所以plc應(yīng)選擇繼電器輸出型,并在接觸器回路采用互鎖來保證電路的安全。
3. pc與plc的聯(lián)機(jī)控制程序
按上述圖1完成plc與pc機(jī)的通信連接后,還需采用plc聯(lián)機(jī)編程軟件或手持編程器對plc內(nèi)部通信參數(shù)專用的系統(tǒng)寄存器no.410~no.418進(jìn)行設(shè)定,具體為:串口選擇為com1,波特率為9600bps,數(shù)據(jù)位長度為8位,停止位為1位,奇校驗(yàn),單元號為1。
4.plc控制程序
plc的控制程序要既能現(xiàn)地控制,又能使pc機(jī)通過串口通信實(shí)現(xiàn)上位機(jī)對電動機(jī)的正反轉(zhuǎn)控制和電機(jī)狀態(tài)信息反饋。具體程序如圖3所示。 程
序中為實(shí)現(xiàn)pc機(jī)對電機(jī)的控制使用了r100、r101和r102三個內(nèi)部繼電器。內(nèi)部繼電器可由pc機(jī)按松下fp1系列plc的newtocol專用通信協(xié)議(具體協(xié)議可參考廠家資料),以發(fā)送特定字符串的形式進(jìn)行讀寫。為了仿效按鈕操作的效果,三個內(nèi)部繼電器由上位機(jī)置位后啟動對應(yīng)的定時器,經(jīng)0.8s后由定時器對內(nèi)部繼電器自動進(jìn)行復(fù)位。
5. pc機(jī)控制程序與界面
作為上位機(jī),pc機(jī)通過人機(jī)界面,將操作人員的操作指令轉(zhuǎn)換成相應(yīng)的通信字符串并經(jīng)串口發(fā)送至plc,實(shí)現(xiàn)對電機(jī)的控制;另一方面,pc機(jī)定時讀取plc寄存器的數(shù)據(jù),從而可判斷出plc對電動機(jī)的控制狀態(tài)并在人機(jī)界面上顯示出來。
pc機(jī)的程序利用visual basic 6.0進(jìn)行開發(fā),首先,從菜單“工程”→“部件…”→“控件”中添加串行口通信控件microsofc comm control 6.0到工具箱中,然后從工具箱中往窗體添加下表所列的控件。
序號 控件類型
控件名稱
說 明
1
form
frmmain
程序主窗體
2
frame
frame1
框架
3
mscomm
mscomm1
串口通信控件
4
timer
timer1
定時器
5
commandbutton
cmdzz
正轉(zhuǎn)按鈕
6
commandbutton
cmdfz
反轉(zhuǎn)按鈕
7
commandbutton
cmdtj
停機(jī)按鈕
8
label
labdjzt
電機(jī)狀態(tài)顯示標(biāo)簽
添加上述控件后的程序窗體如圖4所示。
pc機(jī)的控制程序如下:
private sub form_load() '窗體加載過程
mscomm1.commport = 1 '通信控件選用pc機(jī)的串口1
mscomm1.settings = 9600,o,8,1 '設(shè)定串口1的波特率為9600bps,奇校驗(yàn),8位數(shù)據(jù)位,1位停止位
mscomm1.portopen = true '打開串口1
timer1.interval = 1000 '定時器1的定時值為1s
timer1.enabled = true '啟動定時器1
end sub
function com(a as string, b as integer) '向plc讀寫寄存器內(nèi)容函數(shù)
mscomm1.inbuffercount = 0 '清空串口的接收緩沖區(qū)
mscomm1.output = a '將要發(fā)送的字符串從串口發(fā)送出去
do
doevents
loop until mscomm1.inbuffercount >= b '等待plc的響應(yīng)字符至一定位數(shù)
com = mscomm1.input '讀入串口接收到的字符串
end function
private sub timer1_timer() '定時讀取y0、y1的值以判斷電機(jī)當(dāng)前狀態(tài)
a = %01#rcp2y0000y0001** + chr(13) '定義讀y0、y1值的通信字符串
s = com((a), 9) '讀y0、y1的當(dāng)前值
if mid(s, 7, 1) = 1 then '返回字符串中第7位為1表示y0接通,電機(jī)正轉(zhuǎn)
cmdzz.enabled = false '電機(jī)已正轉(zhuǎn),禁止操作正轉(zhuǎn)按鈕但可操作反轉(zhuǎn)按鈕
cmdfz.enabled = true
labdjzt.caption = 電機(jī)當(dāng)前狀態(tài):正轉(zhuǎn)
elseif mid(s, 8, 1) = 1 then '反轉(zhuǎn)
cmdfz.enabled = false '電機(jī)反轉(zhuǎn),禁止操作反轉(zhuǎn)按鈕但可操作正轉(zhuǎn)按鈕
cmdzz.enabled = true
labdjzt.caption = 電機(jī)當(dāng)前狀態(tài):反轉(zhuǎn)
elseif mid(s, 7, 1) = 0 and mid(s, 8, 1) = 0 then '停機(jī)
cmdfz.enabled = true '電機(jī)已停止,可操作正轉(zhuǎn)或反轉(zhuǎn)按鈕
cmdzz.enabled = true
labdjzt.caption = 電機(jī)當(dāng)前狀態(tài):停止
end if
end sub
private sub cmdzz_click() '正轉(zhuǎn)指令
a = %01#wcsr01001** + chr(13) '定義將r100置1,啟動正轉(zhuǎn)的通信字符串
s = com((a), 7)
end sub
private sub cmdfz_click() '反轉(zhuǎn)指令
a = %01#wcsr01011** + chr(13) '定義將r101置1,啟動反轉(zhuǎn)的通信字符串
s = com((a), 7)
end sub
private sub cmdtj_click() '停機(jī)指令
a = %01#wcsr01021** + chr(13) '定義將r102置1使電機(jī)停轉(zhuǎn)的通信字符串
s = com((a), 7)
end sub
運(yùn)行上述程序,既可在pc機(jī)上實(shí)現(xiàn)對電機(jī)正反轉(zhuǎn)以及停止的控制,也可在現(xiàn)地通過sb0、sb1和sb2按鈕實(shí)現(xiàn)對電機(jī)的控制;既可在現(xiàn)地啟動或停止電機(jī)轉(zhuǎn)動,也可在pc機(jī)上實(shí)現(xiàn)停機(jī)或電機(jī)轉(zhuǎn)動控制。由于pc機(jī)定時讀取plc內(nèi)部y0、y1的值,所以在現(xiàn)地操作改變電機(jī)的工作狀態(tài)時,在pc機(jī)程序中可顯示出當(dāng)前電機(jī)的工作狀態(tài)并禁止相應(yīng)的操作,真正實(shí)現(xiàn)了pc與plc的聯(lián)機(jī)控制。
6. 結(jié)束語
上述設(shè)計(jì)已在實(shí)踐中應(yīng)用。經(jīng)驗(yàn)證,可在此基礎(chǔ)上,增加聯(lián)機(jī)通信故障自動檢測報(bào)警功能,利用數(shù)據(jù)讀寫命令實(shí)現(xiàn)聯(lián)機(jī)大批量數(shù)據(jù)傳送,根據(jù)現(xiàn)地來的狀態(tài)信息增加pc機(jī)動畫演示功能,從而使pc與plc的聯(lián)機(jī)控制程序更加完善,控制界面更加形象。根據(jù)上述原理,結(jié)合pc與plc控制的特點(diǎn),可在其它控制場合使用上述方法實(shí)現(xiàn)雙機(jī)甚至多機(jī)聯(lián)機(jī)控制。
上一個:阿里云服務(wù)器租用費(fèi)用價(jià)格表
下一個:電腦老是死機(jī)重啟(老電腦開機(jī)就死機(jī))

天然纖維增強(qiáng)復(fù)合材料的耐久性研究
龍珠超圖標(biāo)(龍珠電腦桌面)
鋼結(jié)構(gòu)工程施工安全管理
免費(fèi)試用云服務(wù)器報(bào)價(jià)
TAJD157K010RNJ鉭電容現(xiàn)貨查詢,價(jià)格查詢
空氣濕度對花卉有什么影響?
提示別名已設(shè)置-企業(yè)郵局
介紹一個秒懂rj45的接線方法,你學(xué)會了嗎?
瓜葉菊種植技術(shù)
華碩飛行堡壘8u盤啟動
十八禁 网站在线观看免费视频_2020av天堂网_一 级 黄 色 片免费网站_绝顶高潮合集Videos