當前位置: 首頁 > 工業(yè)控制產(chǎn)品 > 自動化控制 > PLC可編程控制器 > 大型PLC可編程控制器
發(fā)布日期:2022-04-26 點擊率:56
近年來,隨著可編程控制器(以下簡稱PLC)技術(shù)的不斷發(fā)展,速度、功能、可靠性和穩(wěn)定性的不斷提升,其在工業(yè)控制中的運用越來越廣泛。個人計算機(以下簡稱PC)具有人機界面好,編程軟件豐富,數(shù)據(jù)處理快,信息存儲方便,圖像功能完善等優(yōu)點。以PLC為下位機,以PC機為上位機的聯(lián)機控制模式,結(jié)合了PLC與PC各自的優(yōu)點,提高了控制能力和可靠性,不僅操作使用方便,產(chǎn)品造價也較低,因而成為工業(yè)控制中應(yīng)用較多的模式。本文以電動機正反轉(zhuǎn)控制為實例,說明松下FP1系列PLC與PC實現(xiàn)聯(lián)機控制的方法。
1.松下FP1系列PLC與PC機的通信連接
松下FP1系列PLC均設(shè)有一個RS422串行通信接口。該接口既可用于PLC與PC機聯(lián)機進行梯形圖程序編程與調(diào)試,也可用于正常工作時的數(shù)據(jù)通信。PC機一般均設(shè)有一個以上的RS232C串行通信接口。由于RS232C和RS422屬于不同的串行通信接口,通信信號的類型和工作方式不一樣,因此,PLC與PC進行串行通信連接時,必須在中間安裝一個RS422/RS232C適配器來完成信號的轉(zhuǎn)換(部分PLC也具有RS232C口,此時可直接連接)。FP1系列PLC與PC機的通信連接如圖1所示。
2.PLC控制電機正反轉(zhuǎn)電路設(shè)計
PLC控制電機正反轉(zhuǎn)的接線如圖2所示,其中SB0、SB1、SB2開關(guān)按鈕分別用于控制電機的正轉(zhuǎn)、反轉(zhuǎn)和停止;KM1、KM2分別為電機正反轉(zhuǎn)控制的接觸器。由于PLC直接控制交流接觸器,所以PLC應(yīng)選擇繼電器輸出型,并在接觸器回路采用互鎖來保證電路的安全。
3.PC與PLC的聯(lián)機控制程序
按上述圖1完成PLC與PC機的通信連接后,還需采用PLC聯(lián)機編程軟件或手持編程器對PLC內(nèi)部通信參數(shù)專用的系統(tǒng)寄存器No.410~No.418進行設(shè)定,具體為:串口選擇為COM1,波特率為9600bps,數(shù)據(jù)位長度為8位,停止位為1位,奇校驗,單元號為1。
4.PLC控制程序
PLC的控制程序要既能現(xiàn)地控制,又能使PC機通過串口通信實現(xiàn)上位機對電動機的正反轉(zhuǎn)控制和電機狀態(tài)信息反饋。具體程序如圖3所示。
程序中為實現(xiàn)PC機對電機的控制使用了R100、R101和R102三個內(nèi)部繼電器。內(nèi)部繼電器可由PC機按松下FP1系列PLC的NEWTOCOL專用通信協(xié)議(具體協(xié)議可參考廠家資料),以發(fā)送特定字符串的形式進行讀寫。為了仿效按鈕操作的效果,三個內(nèi)部繼電器由上位機置位后啟動對應(yīng)的定時器,經(jīng)0.8S后由定時器對內(nèi)部繼電器自動進行復(fù)位。
5.PC機控制程序與界面
作為上位機,PC機通過人機界面,將操作人員的操作指令轉(zhuǎn)換成相應(yīng)的通信字符串并經(jīng)串口發(fā)送至PLC,實現(xiàn)對電機的控制;另一方面,PC機定時讀取PLC寄存器的數(shù)據(jù),從而可判斷出PLC對電動機的控制狀態(tài)并在人機界面上顯示出來。
PC機的程序利用VisualBasic6.0進行開發(fā),首先,從菜單“工程”→“部件…”→“控件”中添加串行口通信控件MicrosofcCommControl6.0到工具箱中,然后從工具箱中往窗體添加下表所列的控件。
PC機的控制程序如下:
PrivateSubForm_Load()'窗體加載過程
MSComm1.CommPort=1'通信控件選用PC機的串口1
MSComm1.Settings="9600,o,8,1"'設(shè)定串口1的波特率為9600bps,奇校驗,8位數(shù)據(jù)位,1位停止位
MSComm1.PortOpen=True'打開串口1
Timer1.Interval=1000'定時器1的定時值為1s
Timer1.Enabled=True'啟動定時器1
EndSub
Functioncom(aAsString,bAsInteger)'向PLC讀寫寄存器內(nèi)容函數(shù)
MSComm1.InBufferCount=0'清空串口的接收緩沖區(qū)
MSComm1.Output=a'將要發(fā)送的字符串從串口發(fā)送出去
Do
DoEvents
LoopUntilMSComm1.InBufferCount>=b'等待PLC的響應(yīng)字符至一定位數(shù)
com=MSComm1.Input'讀入串口接收到的字符串
EndFunction
PrivateSubTimer1_Timer()'定時讀取Y0、Y1的值以判斷電機當前狀態(tài)
a="%01#RCP2Y0000Y0001**"+Chr(13)'定義讀Y0、Y1值的通信字符串
s=com((a),9)'讀Y0、Y1的當前值
IfMid(s,7,1)="1"Then'返回字符串中第7位為1表示Y0接通,電機正轉(zhuǎn)
cmdzz.Enabled=False'電機已正轉(zhuǎn),禁止操作正轉(zhuǎn)按鈕但可操作反轉(zhuǎn)按鈕
cmdfz.Enabled=True
Labdjzt.Caption="電機當前狀態(tài):正轉(zhuǎn)"
ElseIfMid(s,8,1)="1"Then'反轉(zhuǎn)
cmdfz.Enabled=False'電機反轉(zhuǎn),禁止操作反轉(zhuǎn)按鈕但可操作正轉(zhuǎn)按鈕
cmdzz.Enabled=True
Labdjzt.Caption="電機當前狀態(tài):反轉(zhuǎn)"
ElseIfMid(s,7,1)="0"AndMid(s,8,1)="0"Then'停機
cmdfz.Enabled=True'電機已停止,可操作正轉(zhuǎn)或反轉(zhuǎn)按鈕
cmdzz.Enabled=True
Labdjzt.Caption="電機當前狀態(tài):停止"
EndIf
EndSub
PrivateSubcmdzz_Click()'正轉(zhuǎn)指令
a="%01#WCSR01001**"+Chr(13)'定義將R100置1,啟動正轉(zhuǎn)的通信字符串
s=com((a),7)
EndSub
PrivateSubcmdfz_Click()'反轉(zhuǎn)指令
a="%01#WCSR01011**"+Chr(13)'定義將R101置1,啟動反轉(zhuǎn)的通信字符串
s=com((a),7)
EndSub
PrivateSubcmdtj_Click()'停機指令
a="%01#WCSR01021**"+Chr(13)'定義將R102置1使電機停轉(zhuǎn)的通信字符串
s=com((a),7)
EndSub
運行上述程序,既可在PC機上實現(xiàn)對電機正反轉(zhuǎn)以及停止的控制,也可在現(xiàn)地通過SB0、SB1和SB2按鈕實現(xiàn)對電機的控制;既可在現(xiàn)地啟動或停止電機轉(zhuǎn)動,也可在PC機上實現(xiàn)停機或電機轉(zhuǎn)動控制。由于PC機定時讀取PLC內(nèi)部Y0、Y1的值,所以在現(xiàn)地操作改變電機的工作狀態(tài)時,在PC機程序中可顯示出當前電機的工作狀態(tài)并禁止相應(yīng)的操作,真正實現(xiàn)了PC與PLC的聯(lián)機控制。
6.結(jié)束語
上述設(shè)計已在實踐中應(yīng)用。經(jīng)驗證,可在此基礎(chǔ)上,增加聯(lián)機通信故障自動檢測報警功能,利用數(shù)據(jù)讀寫命令實現(xiàn)聯(lián)機大批量數(shù)據(jù)傳送,根據(jù)現(xiàn)地來的狀態(tài)信息增加PC機動畫演示功能,從而使PC與PLC的聯(lián)機控制程序更加完善,控制界面更加形象。根據(jù)上述原理,結(jié)合PC與PLC控制的特點,可在其它控制場合使用上述方法實現(xiàn)雙機甚至多機聯(lián)機控制。
下一篇: PLC、DCS、FCS三大控
上一篇: 索爾維全系列Solef?PV